blob: 08c64d6dbc5f96c44cf8f4112d58a5567889447c [file] [log] [blame]
/*
* Copyright (c) 2015, The Linux Foundation. All rights reserved.
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all copies.
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/**
* @defgroup fal_rfs FAL_RFS
* @{
*/
#ifndef _FAL_RFS_H_
#define _FAL_RFS_H_
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#if 0
typedef struct
{
u8 addr[6];
u16 fid;
u8 load_balance;
} ssdk_fdb_rfs_t;
typedef struct
{
u8 mac_addr[6];
u32 ip4_addr;
u32 vid;
u8 load_balance;
} ssdk_ip4_rfs_t;
typedef struct
{
u8 mac_addr[6];
u32 ip6_addr[4];
u32 vid;
u8 load_balance;
} ssdk_ip6_rfs_t;
int ssdk_rfs_ipct_rule_set(
__be32 ip_src, __be32 ip_dst,
__be16 sport, __be16 dport, uint8_t proto,
u16 loadbalance, bool action);
int ssdk_rfs_mac_rule_set(ssdk_fdb_rfs_t *rfs);
int ssdk_rfs_mac_rule_del(ssdk_fdb_rfs_t *rfs);
int
ssdk_ip_rfs_ip4_rule_set(ssdk_ip4_rfs_t * rfs);
int
ssdk_ip_rfs_ip6_rule_set(ssdk_ip6_rfs_t * rfs);
int
ssdk_ip_rfs_ip4_rule_del(ssdk_ip4_rfs_t * rfs);
int
ssdk_ip_rfs_ip6_rule_del(ssdk_ip6_rfs_t * rfs);
#endif
int ssdk_rfs_mac_rule_set(u16 vid, u8* mac, u8 ldb, int is_set);
int ssdk_rfs_ip4_rule_set(u16 vid, u32 ip, u8* mac, u8 ldb, int is_set);
int ssdk_rfs_ip6_rule_set(u16 vid, u8* ip, u8* mac, u8 ldb, int is_set);
int ssdk_rfs_ipct_rule_set(
__be32 ip_src, __be32 ip_dst,
__be16 sport, __be16 dport, uint8_t proto,
u16 loadbalance, bool action);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _FAL_RFS_H_ */
/**
* @}
*/