dsa_port
Regular
4.4
: Absent ⚠️
4.8
: ✅struct dsa_port {
struct net_device *netdev;
struct device_node *dn;
unsigned int ageing_time;
};
4.10
: ✅struct dsa_port {
struct net_device *netdev;
struct device_node *dn;
unsigned int ageing_time;
u8 stp_state;
};
4.13
: ✅struct dsa_port {
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
struct net_device *netdev;
struct device_node *dn;
unsigned int ageing_time;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct ethtool_ops ethtool_ops;
const struct ethtool_ops *orig_ethtool_ops;
};
4.15
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
const struct dsa_port *cpu_dp;
struct device_node *dn;
unsigned int ageing_time;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
const struct ethtool_ops *orig_ethtool_ops;
};
4.18
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
const struct dsa_port *cpu_dp;
struct device_node *dn;
unsigned int ageing_time;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
const struct ethtool_ops *orig_ethtool_ops;
};
5.0
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
const struct dsa_port *cpu_dp;
struct device_node *dn;
unsigned int ageing_time;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
const struct ethtool_ops *orig_ethtool_ops;
};
5.3
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
const char *mac;
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct work_struct xmit_work;
struct sk_buff_head xmit_queue;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct net_device_ops *orig_ndo_ops;
};
5.4
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
const char *mac;
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct work_struct xmit_work;
struct sk_buff_head xmit_queue;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct net_device_ops *orig_ndo_ops;
};
5.8
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
const char *mac;
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct list_head list;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct net_device_ops *orig_ndo_ops;
bool setup;
};
5.11
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
const char *mac;
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
bool devlink_port_setup;
struct phylink *pl;
struct phylink_config pl_config;
struct list_head list;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct dsa_netdevice_ops *netdev_ops;
bool setup;
};
5.13
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
u8 mac[6];
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
bool devlink_port_setup;
struct phylink *pl;
struct phylink_config pl_config;
struct net_device *lag_dev;
bool lag_tx_enabled;
struct net_device *hsr_dev;
struct list_head list;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct dsa_netdevice_ops *netdev_ops;
bool setup;
};
5.15
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
u8 mac[6];
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
bool learning;
u8 stp_state;
struct net_device *bridge_dev;
int bridge_num;
struct devlink_port devlink_port;
bool devlink_port_setup;
struct phylink *pl;
struct phylink_config pl_config;
struct net_device *lag_dev;
bool lag_tx_enabled;
struct net_device *hsr_dev;
struct list_head list;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct dsa_netdevice_ops *netdev_ops;
struct list_head fdbs;
struct list_head mdbs;
bool setup;
};
5.19
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *);
struct dsa_switch *ds;
unsigned int index;
enum (anon) type;
const char *name;
struct dsa_port *cpu_dp;
u8 mac[6];
u8 stp_state;
u8 vlan_filtering;
u8 learning;
u8 lag_tx_enabled;
u8 devlink_port_setup;
u8 master_admin_up;
u8 master_oper_up;
u8 setup;
struct device_node *dn;
unsigned int ageing_time;
struct dsa_bridge *bridge;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct dsa_lag *lag;
struct net_device *hsr_dev;
struct list_head list;
const struct ethtool_ops *orig_ethtool_ops;
const struct dsa_netdevice_ops *netdev_ops;
struct mutex addr_lists_lock;
struct list_head fdbs;
struct list_head mdbs;
struct mutex vlans_lock;
struct list_head vlans;
};
6.2
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *);
struct dsa_switch *ds;
unsigned int index;
enum (anon) type;
const char *name;
struct dsa_port *cpu_dp;
u8 mac[6];
u8 stp_state;
u8 vlan_filtering;
u8 learning;
u8 lag_tx_enabled;
u8 master_admin_up;
u8 master_oper_up;
u8 cpu_port_in_lag;
u8 setup;
struct device_node *dn;
unsigned int ageing_time;
struct dsa_bridge *bridge;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct dsa_lag *lag;
struct net_device *hsr_dev;
struct list_head list;
const struct ethtool_ops *orig_ethtool_ops;
const struct dsa_netdevice_ops *netdev_ops;
struct mutex addr_lists_lock;
struct list_head fdbs;
struct list_head mdbs;
struct mutex vlans_lock;
struct list_head vlans;
};
6.5
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *);
struct dsa_switch *ds;
unsigned int index;
enum (anon) type;
const char *name;
struct dsa_port *cpu_dp;
u8 mac[6];
u8 stp_state;
u8 vlan_filtering;
u8 learning;
u8 lag_tx_enabled;
u8 master_admin_up;
u8 master_oper_up;
u8 cpu_port_in_lag;
u8 setup;
struct device_node *dn;
unsigned int ageing_time;
struct dsa_bridge *bridge;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct dsa_lag *lag;
struct net_device *hsr_dev;
struct list_head list;
const struct ethtool_ops *orig_ethtool_ops;
struct mutex addr_lists_lock;
struct list_head fdbs;
struct list_head mdbs;
struct mutex vlans_lock;
struct list_head vlans;
struct list_head user_vlans;
};
6.8
: ✅struct dsa_port {
struct net_device *conduit;
struct net_device *user;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *);
struct dsa_switch *ds;
unsigned int index;
enum (anon) type;
const char *name;
struct dsa_port *cpu_dp;
u8 mac[6];
u8 stp_state;
u8 vlan_filtering;
u8 learning;
u8 lag_tx_enabled;
u8 conduit_admin_up;
u8 conduit_oper_up;
u8 cpu_port_in_lag;
u8 setup;
struct device_node *dn;
unsigned int ageing_time;
struct dsa_bridge *bridge;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct dsa_lag *lag;
struct net_device *hsr_dev;
struct list_head list;
const struct ethtool_ops *orig_ethtool_ops;
struct mutex addr_lists_lock;
struct list_head fdbs;
struct list_head mdbs;
struct mutex vlans_lock;
struct list_head vlans;
struct list_head user_vlans;
};
arm64
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
const char *mac;
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct work_struct xmit_work;
struct sk_buff_head xmit_queue;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct net_device_ops *orig_ndo_ops;
};
armhf
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
const char *mac;
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct work_struct xmit_work;
struct sk_buff_head xmit_queue;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct net_device_ops *orig_ndo_ops;
};
ppc64el
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
const char *mac;
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct work_struct xmit_work;
struct sk_buff_head xmit_queue;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct net_device_ops *orig_ndo_ops;
};
riscv64
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
const char *mac;
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct work_struct xmit_work;
struct sk_buff_head xmit_queue;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct net_device_ops *orig_ndo_ops;
};
aws
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
const char *mac;
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct work_struct xmit_work;
struct sk_buff_head xmit_queue;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct net_device_ops *orig_ndo_ops;
};
azure
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
const char *mac;
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct work_struct xmit_work;
struct sk_buff_head xmit_queue;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct net_device_ops *orig_ndo_ops;
};
gcp
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
const char *mac;
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct work_struct xmit_work;
struct sk_buff_head xmit_queue;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct net_device_ops *orig_ndo_ops;
};
lowlatency
: ✅struct dsa_port {
struct net_device *master;
struct net_device *slave;
const struct dsa_device_ops *tag_ops;
struct dsa_switch_tree *dst;
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *);
bool (*filter)(const struct sk_buff *, struct net_device *);
enum (anon) type;
struct dsa_switch *ds;
unsigned int index;
const char *name;
struct dsa_port *cpu_dp;
const char *mac;
struct device_node *dn;
unsigned int ageing_time;
bool vlan_filtering;
u8 stp_state;
struct net_device *bridge_dev;
struct devlink_port devlink_port;
struct phylink *pl;
struct phylink_config pl_config;
struct work_struct xmit_work;
struct sk_buff_head xmit_queue;
void *priv;
const struct ethtool_ops *orig_ethtool_ops;
const struct net_device_ops *orig_ndo_ops;
};
Regular
4.8
and 4.10
⚠️u8 stp_state
4.10
and 4.13
⚠️struct dsa_switch *ds
unsigned int index
const char *name
struct dsa_port *cpu_dp
struct net_device *bridge_dev
struct devlink_port devlink_port
struct ethtool_ops ethtool_ops
const struct ethtool_ops *orig_ethtool_ops
4.13
and 4.15
⚠️struct net_device *master
struct net_device *slave
const struct dsa_device_ops *tag_ops
struct dsa_switch_tree *dst
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *)
enum (anon) type
struct net_device *netdev
struct ethtool_ops ethtool_ops
struct dsa_port *cpu_dp
➡️ const struct dsa_port *cpu_dp
4.15
and 4.18
⚠️struct phylink *pl
4.18
and 5.0
✅
5.0
and 5.3
⚠️bool (*filter)(const struct sk_buff *, struct net_device *)
const char *mac
bool vlan_filtering
struct phylink_config pl_config
struct work_struct xmit_work
struct sk_buff_head xmit_queue
void *priv
const struct net_device_ops *orig_ndo_ops
const struct dsa_port *cpu_dp
➡️ struct dsa_port *cpu_dp
5.3
and 5.4
✅
5.4
and 5.8
⚠️struct list_head list
bool setup
struct work_struct xmit_work
struct sk_buff_head xmit_queue
5.8
and 5.11
⚠️bool devlink_port_setup
const struct dsa_netdevice_ops *netdev_ops
const struct net_device_ops *orig_ndo_ops
5.11
and 5.13
⚠️struct net_device *lag_dev
bool lag_tx_enabled
struct net_device *hsr_dev
const char *mac
➡️ u8 mac[6]
5.13
and 5.15
⚠️bool learning
int bridge_num
struct list_head fdbs
struct list_head mdbs
bool (*filter)(const struct sk_buff *, struct net_device *)
struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *, struct packet_type *)
➡️ struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *)
5.15
and 5.19
⚠️u8 master_admin_up
u8 master_oper_up
struct dsa_bridge *bridge
struct dsa_lag *lag
struct mutex addr_lists_lock
struct mutex vlans_lock
struct list_head vlans
struct net_device *bridge_dev
int bridge_num
struct net_device *lag_dev
void *priv
bool vlan_filtering
➡️ u8 vlan_filtering
bool learning
➡️ u8 learning
bool devlink_port_setup
➡️ u8 devlink_port_setup
bool lag_tx_enabled
➡️ u8 lag_tx_enabled
bool setup
➡️ u8 setup
5.19
and 6.2
⚠️u8 cpu_port_in_lag
u8 devlink_port_setup
6.2
and 6.5
⚠️struct list_head user_vlans
const struct dsa_netdevice_ops *netdev_ops
6.5
and 6.8
⚠️struct net_device *conduit
struct net_device *user
u8 conduit_admin_up
u8 conduit_oper_up
struct net_device *master
struct net_device *slave
u8 master_admin_up
u8 master_oper_up
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
✅
amd64
and riscv64
✅
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅