| /* |
| * 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_ */ |
| |
| /** |
| * @} |
| */ |
| |