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

struct tipc_bearer*

tipc_ptr

void*

atalk_ptr

void*

ax25_ptr

struct wireless_dev*

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 net_device

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

struct device

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

struct phy_device*

phydev

struct sfp_bus*

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

struct dim_irq_moder*

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]