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) | |
| unsigned long:1 | netmem_tx:1; | read_mostly | ||
| char | name[16] | |||
| 
 | name_node | |||
| 
 | ifalias | |||
| unsigned_long | mem_end | |||
| unsigned_long | mem_start | |||
| unsigned_long | base_addr | |||
| unsigned_long | state | read_mostly | read_mostly | netif_running(dev) | 
| 
 | dev_list | |||
| 
 | napi_list | |||
| 
 | unreg_list | |||
| 
 | close_list | |||
| 
 | ptype_all | read_mostly | dev_nit_active(tx) | |
| 
 | 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 | |||
| 
 | netdev_ops | read_mostly | netdev_core_pick_tx,netdev_start_xmit(tx) | |
| 
 | 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 | |||
| 
 | stats | |||
| 
 | core_stats | |||
| atomic_t | carrier_up_count | |||
| atomic_t | carrier_down_count | |||
| 
 | wireless_handlers | |||
| 
 | ethtool_ops | |||
| 
 | l3mdev_ops | |||
| 
 | ndisc_ops | |||
| 
 | xfrmdev_ops | |||
| 
 | tlsdev_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 | |||
| u8 | threaded | napi_poll(napi_enable,netif_set_threaded) | ||
| unsigned_short | neigh_priv_len | |||
| unsigned_short | padded | |||
| unsigned_short | dev_id | |||
| unsigned_short | dev_port | |||
| spinlock_t | addr_list_lock | |||
| int | irq | |||
| 
 | uc | |||
| 
 | mc | |||
| 
 | dev_addrs | |||
| 
 | queues_kset | |||
| 
 | unlink_list | |||
| unsigned_int | promiscuity | |||
| unsigned_int | allmulti | |||
| bool | uc_promisc | |||
| unsigned_char | nested_level | |||
| 
 | ip_ptr | read_mostly | read_mostly | __in_dev_get | 
| 
 | fib_nh_head | |||
| 
 | ip6_ptr | read_mostly | read_mostly | __in6_dev_get | 
| 
 | vlan_info | |||
| 
 | dsa_ptr | |||
| tipc_ptr | ||||
| void* | atalk_ptr | |||
| void* | ax25_ptr | |||
| ieee80211_ptr | ||||
| 
 | ieee802154_ptr | |||
| 
 | mpls_ptr | |||
| 
 | mctp_ptr | |||
| unsigned_char* | dev_addr | |||
| 
 | _rx | read_mostly | netdev_get_rx_queue(rx) | |
| unsigned_int | num_rx_queues | |||
| unsigned_int | real_num_rx_queues | read_mostly | get_rps_cpu | |
| 
 | xdp_prog | read_mostly | 
 | |
| 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 | ||
| 
 | ingress_queue | read_mostly | ||
| 
 | tcx_ingress | read_mostly | sch_handle_ingress | |
| 
 | nf_hooks_ingress | |||
| unsigned_char | broadcast[32] | |||
| 
 | rx_cpu_rmap | |||
| 
 | index_hlist | |||
| 
 | _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 | |||
| 
 | xdp_bulkq | |||
| 
 | xps_maps[2] | read_mostly | __netif_set_xps_queue | |
| 
 | tcx_egress | read_mostly | sch_handle_egress | |
| 
 | nf_hooks_egress | read_mostly | ||
| 
 | qdisc_hash[16] | |||
| 
 | watchdog_timer | |||
| int | watchdog_timeo | |||
| u32 | proto_down_reason | |||
| 
 | todo_list | |||
| int__percpu* | pcpu_refcnt | |||
| refcount_t | dev_refcnt | |||
| 
 | refcnt_tracker | |||
| 
 | link_watch_list | |||
| enum:8 | reg_state | |||
| bool | dismantle | |||
| bool | rtnl_link_initilizing | |||
| bool | needs_free_netdev | |||
| void*priv_destructor | ||||
| 
 | 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 | |||
| 
 | lstats | read_mostly | 
 | |
| 
 | tstats | read_mostly | 
 | |
| 
 | dstats | |||
| 
 | garp_port | |||
| 
 | mrp_port | |||
| 
 | dm_private | |||
| dev | ||||
| 
 | sysfs_groups[4] | |||
| 
 | sysfs_rx_queue_group | |||
| 
 | 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 | |
| 
 | dcbnl_ops | |||
| s16 | num_tc | read_mostly | skb_tx_hash | |
| 
 | tc_to_txq[16] | read_mostly | skb_tx_hash | |
| u8 | prio_tc_map[16] | |||
| unsigned_int | fcoe_ddp_xid | |||
| 
 | priomap | |||
| phydev | ||||
| sfp_bus | ||||
| 
 | qdisc_tx_busylock | |||
| bool | proto_down | |||
| unsigned:1 | wol_enabled | |||
| unsigned_long:1 | see_all_hwtstamp_requests | |||
| unsigned_long:1 | change_proto_down | |||
| unsigned_long:1 | netns_immutable | |||
| unsigned_long:1 | fcoe_mtu | |||
| 
 | net_notifier_list | |||
| 
 | macsec_ops | |||
| 
 | udp_tunnel_nic_info | |||
| 
 | udp_tunnel_nic | |||
| unsigned_int | xdp_zc_max_segs | |||
| 
 | xdp_state[3] | |||
| u8 | dev_addr_shadow[32] | |||
| netdevice_tracker | linkwatch_dev_tracker | |||
| netdevice_tracker | watchdog_dev_tracker | |||
| netdevice_tracker | dev_registered_tracker | |||
| 
 | offload_xstats_l3 | |||
| 
 | devlink_port | |||
| 
 | dpll_pin | |||
| 
 | page_pools | |||
| irq_moder | ||||
| u64 | max_pacing_offload_horizon | |||
| struct_napi_config* | napi_config | |||
| unsigned_long | gro_flush_timeout | |||
| u32 | napi_defer_hard_irqs | |||
| 
 | neighbours[2] |