#ifndef __NET_TI_PRUSS_FDB_TBL_H
#define __NET_TI_PRUSS_FDB_TBL_H
#include <linux/kernel.h>
#include <linux/debugfs.h>
#include "icssm_prueth.h"
struct fdb_index_tbl_entry {
u16 bucket_idx;
u16 bucket_entries;
};
struct fdb_index_array {
struct fdb_index_tbl_entry index_tbl_entry[FDB_INDEX_TBL_MAX_ENTRIES];
};
struct fdb_mac_tbl_entry {
u8 mac[ETH_ALEN];
u16 age;
u8 port;
union {
struct {
u8 is_static:1;
u8 active:1;
};
u8 flags;
};
};
struct fdb_mac_tbl_array {
struct fdb_mac_tbl_entry mac_tbl_entry[FDB_MAC_TBL_MAX_ENTRIES];
};
struct fdb_stp_config {
u8 state;
};
struct fdb_flood_config {
u8 host_flood_enable:1;
u8 port1_flood_enable:1;
u8 port2_flood_enable:1;
};
struct fdb_arbitration {
u8 host_lock;
u8 pru_locks;
};
struct fdb_tbl {
struct fdb_index_array __iomem *index_a;
struct fdb_mac_tbl_array __iomem *mac_tbl_a;
struct fdb_stp_config __iomem *port1_stp_cfg;
struct fdb_stp_config __iomem *port2_stp_cfg;
struct fdb_flood_config __iomem *flood_enable_flags;
struct fdb_arbitration __iomem *locks;
u16 total_entries;
};
#endif