table of contents
STRUCT NET_DEVICE(9) | Network device support | STRUCT NET_DEVICE(9) |
NAME¶
struct_net_device - The DEVICE structure. Actually, this whole structure is a big mistake. It mixes I/O data with strictly “high-level” data, and it has to know about almost every data structure used in the INET module.
SYNOPSIS¶
struct net_device {
char name[IFNAMSIZ];
struct hlist_node name_hlist;
char * ifalias;
unsigned long mem_end;
unsigned long mem_start;
unsigned long base_addr;
int irq;
atomic_t carrier_changes;
unsigned long state;
struct list_head dev_list;
struct list_head napi_list;
struct list_head unreg_list;
struct list_head close_list;
struct list_head ptype_all;
struct list_head ptype_specific;
struct {unnamed_struct}; #if IS_ENABLED(CONFIG_GARP)
struct garp_port __rcu * garp_port; #endif #if IS_ENABLED(CONFIG_MRP)
struct mrp_port __rcu * mrp_port; #endif
struct device dev;
const struct attribute_group * sysfs_groups[4];
const struct attribute_group * sysfs_rx_queue_group;
const struct rtnl_link_ops * rtnl_link_ops; #define GSO_MAX_SIZE 65536
unsigned int gso_max_size; #define GSO_MAX_SEGS 65535
u16 gso_max_segs; #ifdef CONFIG_DCB
const struct dcbnl_rtnl_ops * dcbnl_ops; #endif
u8 num_tc;
struct netdev_tc_txq tc_to_txq[TC_MAX_QUEUE];
u8 prio_tc_map[TC_BITMASK + 1]; #if IS_ENABLED(CONFIG_FCOE)
unsigned int fcoe_ddp_xid; #endif #if IS_ENABLED(CONFIG_CGROUP_NET_PRIO)
struct netprio_map __rcu * priomap; #endif
struct phy_device * phydev;
struct lock_class_key * qdisc_tx_busylock;
struct lock_class_key * qdisc_running_key;
bool proto_down; };
MEMBERS¶
char name[IFNAMSIZ]
struct hlist_node name_hlist
char * ifalias
unsigned long mem_end
unsigned long mem_start
unsigned long base_addr
int irq
atomic_t carrier_changes
unsigned long state
struct list_head dev_list
struct list_head napi_list
struct list_head unreg_list
struct list_head close_list
struct list_head ptype_all
struct list_head ptype_specific
struct {unnamed_struct}
struct garp_port __rcu * garp_port
struct mrp_port __rcu * mrp_port
struct device dev
const struct attribute_group * sysfs_groups[4]
const struct attribute_group * sysfs_rx_queue_group
const struct rtnl_link_ops * rtnl_link_ops
unsigned int gso_max_size
u16 gso_max_segs
const struct dcbnl_rtnl_ops * dcbnl_ops
u8 num_tc
struct netdev_tc_txq tc_to_txq[TC_MAX_QUEUE]
u8 prio_tc_map[TC_BITMASK + 1]
unsigned int fcoe_ddp_xid
struct netprio_map __rcu * priomap
struct phy_device * phydev
struct lock_class_key * qdisc_tx_busylock
struct lock_class_key * qdisc_running_key
bool proto_down
DESCRIPTION¶
interface address info:
FIXME: cleanup struct net_device such that network protocol info moves out.
COPYRIGHT¶
June 2017 | Kernel Hackers Manual 4.11 |