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