1/* 2 * Copyright (c) 2015, The Linux Foundation. All rights reserved. 3 * Permission to use, copy, modify, and/or distribute this software for 4 * any purpose with or without fee is hereby granted, provided that the 5 * above copyright notice and this permission notice appear in all copies. 6 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 7 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 8 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 9 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 10 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 11 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 12 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 13 */ 14 15 16/** 17 * @defgroup fal_rfs FAL_RFS 18 * @{ 19 */ 20#ifndef _FAL_RFS_H_ 21#define _FAL_RFS_H_ 22 23#ifdef __cplusplus 24extern "C" { 25#endif /* __cplusplus */ 26#if 0 27typedef struct 28{ 29 u8 addr[6]; 30 u16 fid; 31 u8 load_balance; 32} ssdk_fdb_rfs_t; 33 34typedef struct 35{ 36 u8 mac_addr[6]; 37 u32 ip4_addr; 38 u32 vid; 39 u8 load_balance; 40} ssdk_ip4_rfs_t; 41 42typedef struct 43{ 44 u8 mac_addr[6]; 45 u32 ip6_addr[4]; 46 u32 vid; 47 u8 load_balance; 48} ssdk_ip6_rfs_t; 49 50 51 52int ssdk_rfs_ipct_rule_set( 53 __be32 ip_src, __be32 ip_dst, 54 __be16 sport, __be16 dport, uint8_t proto, 55 u16 loadbalance, bool action); 56 57int ssdk_rfs_mac_rule_set(ssdk_fdb_rfs_t *rfs); 58int ssdk_rfs_mac_rule_del(ssdk_fdb_rfs_t *rfs); 59 60int 61ssdk_ip_rfs_ip4_rule_set(ssdk_ip4_rfs_t * rfs); 62 63int 64ssdk_ip_rfs_ip6_rule_set(ssdk_ip6_rfs_t * rfs); 65 66int 67ssdk_ip_rfs_ip4_rule_del(ssdk_ip4_rfs_t * rfs); 68 69int 70ssdk_ip_rfs_ip6_rule_del(ssdk_ip6_rfs_t * rfs); 71#endif 72int ssdk_rfs_mac_rule_set(u16 vid, u8* mac, u8 ldb, int is_set); 73int ssdk_rfs_ip4_rule_set(u16 vid, u32 ip, u8* mac, u8 ldb, int is_set); 74int ssdk_rfs_ip6_rule_set(u16 vid, u8* ip, u8* mac, u8 ldb, int is_set); 75int ssdk_rfs_ipct_rule_set( 76 __be32 ip_src, __be32 ip_dst, 77 __be16 sport, __be16 dport, uint8_t proto, 78 u16 loadbalance, bool action); 79 80 81 82#ifdef __cplusplus 83} 84#endif /* __cplusplus */ 85#endif /* _FAL_RFS_H_ */ 86 87/** 88 * @} 89 */ 90 91