#ifndef _FBNIC_RPC_H_
#define _FBNIC_RPC_H_
#include <uapi/linux/in6.h>
#include <linux/bitfield.h>
enum { … };
#define FBNIC_RPC_TCAM_MACDA_WORD_LEN …
#define FBNIC_RPC_TCAM_MACDA_NUM_ENTRIES …
#define FBNIC_RPC_TCAM_ACT_WORD_LEN …
#define FBNIC_RPC_TCAM_ACT_NUM_ENTRIES …
struct fbnic_mac_addr { … };
struct fbnic_act_tcam { … };
enum { … };
#define FBNIC_RPC_ACT_TBL_BMC_OFFSET …
#define FBNIC_RPC_ACT_TBL_BMC_ALL_MULTI_OFFSET …
#define FBNIC_RPC_ACT_TBL_RSS_OFFSET …
enum { … };
#define FBNIC_MAC_ADDR_T_HOST_LEN …
#define FBNIC_RPC_TCAM_ACT0_IPSRC_IDX …
#define FBNIC_RPC_TCAM_ACT0_IPSRC_VALID …
#define FBNIC_RPC_TCAM_ACT0_IPDST_IDX …
#define FBNIC_RPC_TCAM_ACT0_IPDST_VALID …
#define FBNIC_RPC_TCAM_ACT0_OUTER_IPSRC_IDX …
#define FBNIC_RPC_TCAM_ACT0_OUTER_IPSRC_VALID …
#define FBNIC_RPC_TCAM_ACT0_OUTER_IPDST_IDX …
#define FBNIC_RPC_TCAM_ACT0_OUTER_IPDST_VALID …
#define FBNIC_RPC_TCAM_ACT1_L2_MACDA_IDX …
#define FBNIC_RPC_TCAM_ACT1_L2_MACDA_VALID …
#define FBNIC_RPC_TCAM_ACT1_IP_IS_V6 …
#define FBNIC_RPC_TCAM_ACT1_IP_VALID …
#define FBNIC_RPC_TCAM_ACT1_OUTER_IP_VALID …
#define FBNIC_RPC_TCAM_ACT1_L4_IS_UDP …
#define FBNIC_RPC_TCAM_ACT1_L4_VALID …
#define FBNIC_RPC_TCAM_MACDA_BMC_ADDR_IDX …
#define FBNIC_RPC_TCAM_MACDA_BROADCAST_IDX …
#define FBNIC_RPC_TCAM_MACDA_MULTICAST_IDX …
#define FBNIC_RPC_TCAM_MACDA_DEFAULT_BOUNDARY …
#define FBNIC_RPC_TCAM_MACDA_HOST_ADDR_IDX …
#define FBNIC_RPC_TCAM_MACDA_PROMISC_IDX …
enum { … };
struct fbnic_dev;
struct fbnic_net;
void fbnic_bmc_rpc_init(struct fbnic_dev *fbd);
void fbnic_bmc_rpc_all_multi_config(struct fbnic_dev *fbd, bool enable_host);
void fbnic_reset_indir_tbl(struct fbnic_net *fbn);
void fbnic_rss_key_fill(u32 *buffer);
void fbnic_rss_init_en_mask(struct fbnic_net *fbn);
void fbnic_rss_disable_hw(struct fbnic_dev *fbd);
void fbnic_rss_reinit_hw(struct fbnic_dev *fbd, struct fbnic_net *fbn);
void fbnic_rss_reinit(struct fbnic_dev *fbd, struct fbnic_net *fbn);
int __fbnic_xc_unsync(struct fbnic_mac_addr *mac_addr, unsigned int tcam_idx);
struct fbnic_mac_addr *__fbnic_uc_sync(struct fbnic_dev *fbd,
const unsigned char *addr);
struct fbnic_mac_addr *__fbnic_mc_sync(struct fbnic_dev *fbd,
const unsigned char *addr);
void fbnic_sift_macda(struct fbnic_dev *fbd);
void fbnic_write_macda(struct fbnic_dev *fbd);
static inline int __fbnic_uc_unsync(struct fbnic_mac_addr *mac_addr)
{ … }
static inline int __fbnic_mc_unsync(struct fbnic_mac_addr *mac_addr)
{ … }
void fbnic_clear_rules(struct fbnic_dev *fbd);
void fbnic_write_rules(struct fbnic_dev *fbd);
#endif