#include <linux/kernel.h>
#include <net/switchdev.h>
#include "br_private.h"
DEFINE_STATIC_KEY_FALSE(br_mst_used);
bool br_mst_enabled(const struct net_device *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
int br_mst_get_info(const struct net_device *dev, u16 msti, unsigned long *vids)
{ … }
EXPORT_SYMBOL_GPL(…);
int br_mst_get_state(const struct net_device *dev, u16 msti, u8 *state)
{ … }
EXPORT_SYMBOL_GPL(…);
static void br_mst_vlan_set_state(struct net_bridge_vlan_group *vg,
struct net_bridge_vlan *v,
u8 state)
{ … }
int br_mst_set_state(struct net_bridge_port *p, u16 msti, u8 state,
struct netlink_ext_ack *extack)
{ … }
static void br_mst_vlan_sync_state(struct net_bridge_vlan *pv, u16 msti)
{ … }
int br_mst_vlan_set_msti(struct net_bridge_vlan *mv, u16 msti)
{ … }
void br_mst_vlan_init_state(struct net_bridge_vlan *v)
{ … }
int br_mst_set_enabled(struct net_bridge *br, bool on,
struct netlink_ext_ack *extack)
{ … }
size_t br_mst_info_size(const struct net_bridge_vlan_group *vg)
{ … }
int br_mst_fill_info(struct sk_buff *skb,
const struct net_bridge_vlan_group *vg)
{ … }
static const struct nla_policy br_mst_nl_policy[IFLA_BRIDGE_MST_ENTRY_MAX + 1] = …;
static int br_mst_process_one(struct net_bridge_port *p,
const struct nlattr *attr,
struct netlink_ext_ack *extack)
{ … }
int br_mst_process(struct net_bridge_port *p, const struct nlattr *mst_attr,
struct netlink_ext_ack *extack)
{ … }