net_device struct fast path usage breakdown¶
Type |
Name |
fastpath_tx_access |
fastpath_rx_access |
Comments |
---|---|---|---|---|
unsigned_long:32 |
priv_flags |
read_mostly |
__dev_queue_xmit(tx) |
|
unsigned_long:1 |
lltx |
read_mostly |
HARD_TX_LOCK,HARD_TX_TRYLOCK,HARD_TX_UNLOCK(tx) |
|
char |
name[16] |
|||
struct netdev_name_node* |
name_node |
|||
struct dev_ifalias* |
ifalias |
|||
unsigned_long |
mem_end |
|||
unsigned_long |
mem_start |
|||
unsigned_long |
base_addr |
|||
unsigned_long |
state |
read_mostly |
read_mostly |
netif_running(dev) |
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 |
read_mostly |
dev_nit_active(tx) |
|
struct list_head |
ptype_specific |
read_mostly |
deliver_ptype_list_skb/__netif_receive_skb_core(rx) |
|
struct |
adj_list |
|||
unsigned_int |
flags |
read_mostly |
read_mostly |
__dev_queue_xmit,__dev_xmit_skb,ip6_output,__ip6_finish_output(tx);ip6_rcv_core(rx) |
xdp_features_t |
xdp_features |
|||
struct net_device_ops* |
netdev_ops |
read_mostly |
netdev_core_pick_tx,netdev_start_xmit(tx) |
|
struct xdp_metadata_ops* |
xdp_metadata_ops |
|||
int |
ifindex |
read_mostly |
ip6_rcv_core |
|
unsigned_short |
gflags |
|||
unsigned_short |
hard_header_len |
read_mostly |
read_mostly |
ip6_xmit(tx);gro_list_prepare(rx) |
unsigned_int |
mtu |
read_mostly |
ip_finish_output2 |
|
unsigned_short |
needed_headroom |
read_mostly |
LL_RESERVED_SPACE/ip_finish_output2 |
|
unsigned_short |
needed_tailroom |
|||
netdev_features_t |
features |
read_mostly |
read_mostly |
HARD_TX_LOCK,netif_skb_features,sk_setup_caps(tx);netif_elide_gro(rx) |
netdev_features_t |
hw_features |
|||
netdev_features_t |
wanted_features |
|||
netdev_features_t |
vlan_features |
|||
netdev_features_t |
hw_enc_features |
netif_skb_features |
||
netdev_features_t |
mpls_features |
|||
netdev_features_t |
gso_partial_features |
read_mostly |
gso_features_check |
|
unsigned_int |
min_mtu |
|||
unsigned_int |
max_mtu |
|||
unsigned_short |
type |
|||
unsigned_char |
min_header_len |
|||
unsigned_char |
name_assign_type |
|||
int |
group |
|||
struct net_device_stats |
stats |
|||
struct net_device_core_stats* |
core_stats |
|||
atomic_t |
carrier_up_count |
|||
atomic_t |
carrier_down_count |
|||
struct iw_handler_def* |
wireless_handlers |
|||
struct ethtool_ops* |
ethtool_ops |
|||
struct l3mdev_ops* |
l3mdev_ops |
|||
struct ndisc_ops* |
ndisc_ops |
|||
struct xfrmdev_ops* |
xfrmdev_ops |
|||
struct tlsdev_ops* |
tlsdev_ops |
|||
struct header_ops* |
header_ops |
read_mostly |
ip_finish_output2,ip6_finish_output2(tx) |
|
unsigned_char |
operstate |
|||
unsigned_char |
link_mode |
|||
unsigned_char |
if_port |
|||
unsigned_char |
dma |
|||
unsigned_char |
perm_addr[32] |
|||
unsigned_char |
addr_assign_type |
|||
unsigned_char |
addr_len |
|||
unsigned_char |
upper_level |
|||
unsigned_char |
lower_level |
|||
unsigned_short |
neigh_priv_len |
|||
unsigned_short |
padded |
|||
unsigned_short |
dev_id |
|||
unsigned_short |
dev_port |
|||
spinlock_t |
addr_list_lock |
|||
int |
irq |
|||
struct netdev_hw_addr_list |
uc |
|||
struct netdev_hw_addr_list |
mc |
|||
struct netdev_hw_addr_list |
dev_addrs |
|||
struct kset* |
queues_kset |
|||
struct list_head |
unlink_list |
|||
unsigned_int |
promiscuity |
|||
unsigned_int |
allmulti |
|||
bool |
uc_promisc |
|||
unsigned_char |
nested_level |
|||
struct in_device* |
ip_ptr |
read_mostly |
read_mostly |
__in_dev_get |
struct hlist_head |
fib_nh_head |
|||
struct inet6_dev* |
ip6_ptr |
read_mostly |
read_mostly |
__in6_dev_get |
struct vlan_info* |
vlan_info |
|||
struct dsa_port* |
dsa_ptr |
|||
tipc_ptr |
||||
void* |
atalk_ptr |
|||
void* |
ax25_ptr |
|||
ieee80211_ptr |
||||
struct wpan_dev* |
ieee802154_ptr |
|||
struct mpls_dev* |
mpls_ptr |
|||
struct mctp_dev* |
mctp_ptr |
|||
unsigned_char* |
dev_addr |
|||
struct netdev_queue* |
_rx |
read_mostly |
netdev_get_rx_queue(rx) |
|
unsigned_int |
num_rx_queues |
|||
unsigned_int |
real_num_rx_queues |
read_mostly |
get_rps_cpu |
|
struct bpf_prog* |
xdp_prog |
read_mostly |
netif_elide_gro() |
|
unsigned_long |
gro_flush_timeout |
read_mostly |
napi_complete_done |
|
u32 |
napi_defer_hard_irqs |
read_mostly |
napi_complete_done |
|
unsigned_int |
gro_max_size |
read_mostly |
skb_gro_receive |
|
unsigned_int |
gro_ipv4_max_size |
read_mostly |
skb_gro_receive |
|
rx_handler_func_t* |
rx_handler |
read_mostly |
__netif_receive_skb_core |
|
void* |
rx_handler_data |
read_mostly |
||
struct netdev_queue* |
ingress_queue |
read_mostly |
||
struct bpf_mprog_entry |
tcx_ingress |
read_mostly |
sch_handle_ingress |
|
struct nf_hook_entries* |
nf_hooks_ingress |
|||
unsigned_char |
broadcast[32] |
|||
struct cpu_rmap* |
rx_cpu_rmap |
|||
struct hlist_node |
index_hlist |
|||
struct netdev_queue* |
_tx |
read_mostly |
netdev_get_tx_queue(tx) |
|
unsigned_int |
num_tx_queues |
|||
unsigned_int |
real_num_tx_queues |
read_mostly |
skb_tx_hash,netdev_core_pick_tx(tx) |
|
unsigned_int |
tx_queue_len |
|||
spinlock_t |
tx_global_lock |
|||
struct xdp_dev_bulk_queue__percpu* |
xdp_bulkq |
|||
struct xps_dev_maps* |
xps_maps[2] |
read_mostly |
__netif_set_xps_queue |
|
struct bpf_mprog_entry |
tcx_egress |
read_mostly |
sch_handle_egress |
|
struct nf_hook_entries* |
nf_hooks_egress |
read_mostly |
||
struct hlist_head |
qdisc_hash[16] |
|||
struct timer_list |
watchdog_timer |
|||
int |
watchdog_timeo |
|||
u32 |
proto_down_reason |
|||
struct list_head |
todo_list |
|||
int__percpu* |
pcpu_refcnt |
|||
refcount_t |
dev_refcnt |
|||
struct ref_tracker_dir |
refcnt_tracker |
|||
struct list_head |
link_watch_list |
|||
enum:8 |
reg_state |
|||
bool |
dismantle |
|||
enum:16 |
rtnl_link_state |
|||
bool |
needs_free_netdev |
|||
void*priv_destructor |
||||
struct netpoll_info* |
npinfo |
read_mostly |
napi_poll/napi_poll_lock |
|
possible_net_t |
nd_net |
read_mostly |
(dev_net)napi_busy_loop,tcp_v(4/6)_rcv,ip(v6)_rcv,ip(6)_input,ip(6)_input_finish |
|
void* |
ml_priv |
|||
enum_netdev_ml_priv_type |
ml_priv_type |
|||
struct pcpu_lstats__percpu* |
lstats |
read_mostly |
dev_lstats_add() |
|
struct pcpu_sw_netstats__percpu* |
tstats |
read_mostly |
dev_sw_netstats_tx_add() |
|
struct pcpu_dstats__percpu* |
dstats |
|||
struct garp_port* |
garp_port |
|||
struct mrp_port* |
mrp_port |
|||
struct dm_hw_stat_delta* |
dm_private |
|||
dev |
||||
struct attribute_group* |
sysfs_groups[4] |
|||
struct attribute_group* |
sysfs_rx_queue_group |
|||
struct rtnl_link_ops* |
rtnl_link_ops |
|||
unsigned_int |
gso_max_size |
read_mostly |
sk_dst_gso_max_size |
|
unsigned_int |
tso_max_size |
|||
u16 |
gso_max_segs |
read_mostly |
gso_max_segs |
|
u16 |
tso_max_segs |
|||
unsigned_int |
gso_ipv4_max_size |
read_mostly |
sk_dst_gso_max_size |
|
struct dcbnl_rtnl_ops* |
dcbnl_ops |
|||
s16 |
num_tc |
read_mostly |
skb_tx_hash |
|
struct netdev_tc_txq |
tc_to_txq[16] |
read_mostly |
skb_tx_hash |
|
u8 |
prio_tc_map[16] |
|||
unsigned_int |
fcoe_ddp_xid |
|||
struct netprio_map* |
priomap |
|||
phydev |
||||
sfp_bus |
||||
struct lock_class_key* |
qdisc_tx_busylock |
|||
bool |
proto_down |
|||
unsigned:1 |
wol_enabled |
|||
unsigned:1 |
threaded |
napi_poll(napi_enable,dev_set_threaded) |
||
unsigned_long:1 |
see_all_hwtstamp_requests |
|||
unsigned_long:1 |
change_proto_down |
|||
unsigned_long:1 |
netns_local |
|||
unsigned_long:1 |
fcoe_mtu |
|||
struct list_head |
net_notifier_list |
|||
struct macsec_ops* |
macsec_ops |
|||
struct udp_tunnel_nic_info* |
udp_tunnel_nic_info |
|||
struct udp_tunnel_nic* |
udp_tunnel_nic |
|||
unsigned_int |
xdp_zc_max_segs |
|||
struct bpf_xdp_entity |
xdp_state[3] |
|||
u8 |
dev_addr_shadow[32] |
|||
netdevice_tracker |
linkwatch_dev_tracker |
|||
netdevice_tracker |
watchdog_dev_tracker |
|||
netdevice_tracker |
dev_registered_tracker |
|||
struct rtnl_hw_stats64* |
offload_xstats_l3 |
|||
struct devlink_port* |
devlink_port |
|||
struct dpll_pin* |
dpll_pin |
|||
struct hlist_head |
page_pools |
|||
irq_moder |
||||
u64 |
max_pacing_offload_horizon |
|||
struct_napi_config* |
napi_config |
|||
unsigned_long |
gro_flush_timeout |
|||
u32 |
napi_defer_hard_irqs |
|||
struct hlist_head |
neighbours[2] |