#include <net/switchdev.h>
#include "lan966x_main.h"
struct lan966x_pgid_entry { … };
struct lan966x_mdb_entry { … };
void lan966x_mdb_init(struct lan966x *lan966x)
{ … }
static void lan966x_mdb_purge_mdb_entries(struct lan966x *lan966x)
{ … }
static void lan966x_mdb_purge_pgid_entries(struct lan966x *lan966x)
{ … }
void lan966x_mdb_deinit(struct lan966x *lan966x)
{ … }
static struct lan966x_mdb_entry *
lan966x_mdb_entry_get(struct lan966x *lan966x,
const unsigned char *mac,
u16 vid)
{ … }
static struct lan966x_mdb_entry *
lan966x_mdb_entry_add(struct lan966x *lan966x,
const struct switchdev_obj_port_mdb *mdb)
{ … }
static void lan966x_mdb_encode_mac(unsigned char *mac,
struct lan966x_mdb_entry *mdb_entry,
enum macaccess_entry_type type)
{ … }
static int lan966x_mdb_ip_add(struct lan966x_port *port,
const struct switchdev_obj_port_mdb *mdb,
enum macaccess_entry_type type)
{ … }
static int lan966x_mdb_ip_del(struct lan966x_port *port,
const struct switchdev_obj_port_mdb *mdb,
enum macaccess_entry_type type)
{ … }
static struct lan966x_pgid_entry *
lan966x_pgid_entry_add(struct lan966x *lan966x, int index, u16 ports)
{ … }
static struct lan966x_pgid_entry *
lan966x_pgid_entry_get(struct lan966x *lan966x,
struct lan966x_mdb_entry *mdb_entry)
{ … }
static void lan966x_pgid_entry_del(struct lan966x *lan966x,
struct lan966x_pgid_entry *pgid_entry)
{ … }
static int lan966x_mdb_l2_add(struct lan966x_port *port,
const struct switchdev_obj_port_mdb *mdb,
enum macaccess_entry_type type)
{ … }
static int lan966x_mdb_l2_del(struct lan966x_port *port,
const struct switchdev_obj_port_mdb *mdb,
enum macaccess_entry_type type)
{ … }
static enum macaccess_entry_type
lan966x_mdb_classify(const unsigned char *mac)
{ … }
int lan966x_handle_port_mdb_add(struct lan966x_port *port,
const struct switchdev_obj *obj)
{ … }
int lan966x_handle_port_mdb_del(struct lan966x_port *port,
const struct switchdev_obj *obj)
{ … }
static void lan966x_mdb_ip_cpu_copy(struct lan966x *lan966x,
struct lan966x_mdb_entry *mdb_entry,
enum macaccess_entry_type type)
{ … }
static void lan966x_mdb_l2_cpu_copy(struct lan966x *lan966x,
struct lan966x_mdb_entry *mdb_entry,
enum macaccess_entry_type type)
{ … }
void lan966x_mdb_write_entries(struct lan966x *lan966x, u16 vid)
{ … }
static void lan966x_mdb_ip_cpu_remove(struct lan966x *lan966x,
struct lan966x_mdb_entry *mdb_entry,
enum macaccess_entry_type type)
{ … }
static void lan966x_mdb_l2_cpu_remove(struct lan966x *lan966x,
struct lan966x_mdb_entry *mdb_entry,
enum macaccess_entry_type type)
{ … }
void lan966x_mdb_erase_entries(struct lan966x *lan966x, u16 vid)
{ … }
void lan966x_mdb_clear_entries(struct lan966x *lan966x)
{ … }
void lan966x_mdb_restore_entries(struct lan966x *lan966x)
{ … }