1 .. SPDX-License-Identifier: GPL-2.0 2 .. Copyright (C) 2023 Google LLC 3 4 =========================================== 5 net_device struct fast path usage breakdown 6 =========================================== 7 8 Type Name fastpath_tx_access fastpath_rx_access Comments 9 ..struct ..net_device 10 unsigned_long:32 priv_flags read_mostly - __dev_queue_xmit(tx) 11 unsigned_long:1 lltx read_mostly - HARD_TX_LOCK,HARD_TX_TRYLOCK,HARD_TX_UNLOCK(tx) 12 char name[16] - - 13 struct_netdev_name_node* name_node 14 struct_dev_ifalias* ifalias 15 unsigned_long mem_end 16 unsigned_long mem_start 17 unsigned_long base_addr 18 unsigned_long state read_mostly read_mostly netif_running(dev) 19 struct_list_head dev_list 20 struct_list_head napi_list 21 struct_list_head unreg_list 22 struct_list_head close_list 23 struct_list_head ptype_all read_mostly - dev_nit_active(tx) 24 struct_list_head ptype_specific read_mostly deliver_ptype_list_skb/__netif_receive_skb_core(rx) 25 struct adj_list 26 unsigned_int flags read_mostly read_mostly __dev_queue_xmit,__dev_xmit_skb,ip6_output,__ip6_finish_output(tx);ip6_rcv_core(rx) 27 xdp_features_t xdp_features 28 struct_net_device_ops* netdev_ops read_mostly - netdev_core_pick_tx,netdev_start_xmit(tx) 29 struct_xdp_metadata_ops* xdp_metadata_ops 30 int ifindex - read_mostly ip6_rcv_core 31 unsigned_short gflags 32 unsigned_short hard_header_len read_mostly read_mostly ip6_xmit(tx);gro_list_prepare(rx) 33 unsigned_int mtu read_mostly - ip_finish_output2 34 unsigned_short needed_headroom read_mostly - LL_RESERVED_SPACE/ip_finish_output2 35 unsigned_short needed_tailroom 36 netdev_features_t features read_mostly read_mostly HARD_TX_LOCK,netif_skb_features,sk_setup_caps(tx);netif_elide_gro(rx) 37 netdev_features_t hw_features 38 netdev_features_t wanted_features 39 netdev_features_t vlan_features 40 netdev_features_t hw_enc_features - - netif_skb_features 41 netdev_features_t mpls_features 42 netdev_features_t gso_partial_features read_mostly gso_features_check 43 unsigned_int min_mtu 44 unsigned_int max_mtu 45 unsigned_short type 46 unsigned_char min_header_len 47 unsigned_char name_assign_type 48 int group 49 struct_net_device_stats stats 50 struct_net_device_core_stats* core_stats 51 atomic_t carrier_up_count 52 atomic_t carrier_down_count 53 struct_iw_handler_def* wireless_handlers 54 struct_iw_public_data* wireless_data 55 struct_ethtool_ops* ethtool_ops 56 struct_l3mdev_ops* l3mdev_ops 57 struct_ndisc_ops* ndisc_ops 58 struct_xfrmdev_ops* xfrmdev_ops 59 struct_tlsdev_ops* tlsdev_ops 60 struct_header_ops* header_ops read_mostly - ip_finish_output2,ip6_finish_output2(tx) 61 unsigned_char operstate 62 unsigned_char link_mode 63 unsigned_char if_port 64 unsigned_char dma 65 unsigned_char perm_addr[32] 66 unsigned_char addr_assign_type 67 unsigned_char addr_len 68 unsigned_char upper_level 69 unsigned_char lower_level 70 unsigned_short neigh_priv_len 71 unsigned_short padded 72 unsigned_short dev_id 73 unsigned_short dev_port 74 spinlock_t addr_list_lock 75 int irq 76 struct_netdev_hw_addr_list uc 77 struct_netdev_hw_addr_list mc 78 struct_netdev_hw_addr_list dev_addrs 79 struct_kset* queues_kset 80 struct_list_head unlink_list 81 unsigned_int promiscuity 82 unsigned_int allmulti 83 bool uc_promisc 84 unsigned_char nested_level 85 struct_in_device* ip_ptr read_mostly read_mostly __in_dev_get 86 struct_inet6_dev* ip6_ptr read_mostly read_mostly __in6_dev_get 87 struct_vlan_info* vlan_info 88 struct_dsa_port* dsa_ptr 89 struct_tipc_bearer* tipc_ptr 90 void* atalk_ptr 91 void* ax25_ptr 92 struct_wireless_dev* ieee80211_ptr 93 struct_wpan_dev* ieee802154_ptr 94 struct_mpls_dev* mpls_ptr 95 struct_mctp_dev* mctp_ptr 96 unsigned_char* dev_addr 97 struct_netdev_queue* _rx read_mostly - netdev_get_rx_queue(rx) 98 unsigned_int num_rx_queues 99 unsigned_int real_num_rx_queues - read_mostly get_rps_cpu 100 struct_bpf_prog* xdp_prog - read_mostly netif_elide_gro() 101 unsigned_long gro_flush_timeout - read_mostly napi_complete_done 102 u32 napi_defer_hard_irqs - read_mostly napi_complete_done 103 unsigned_int gro_max_size - read_mostly skb_gro_receive 104 unsigned_int gro_ipv4_max_size - read_mostly skb_gro_receive 105 rx_handler_func_t* rx_handler read_mostly - __netif_receive_skb_core 106 void* rx_handler_data read_mostly - 107 struct_netdev_queue* ingress_queue read_mostly - 108 struct_bpf_mprog_entry tcx_ingress - read_mostly sch_handle_ingress 109 struct_nf_hook_entries* nf_hooks_ingress 110 unsigned_char broadcast[32] 111 struct_cpu_rmap* rx_cpu_rmap 112 struct_hlist_node index_hlist 113 struct_netdev_queue* _tx read_mostly - netdev_get_tx_queue(tx) 114 unsigned_int num_tx_queues - - 115 unsigned_int real_num_tx_queues read_mostly - skb_tx_hash,netdev_core_pick_tx(tx) 116 unsigned_int tx_queue_len 117 spinlock_t tx_global_lock 118 struct_xdp_dev_bulk_queue__percpu* xdp_bulkq 119 struct_xps_dev_maps* xps_maps[2] read_mostly - __netif_set_xps_queue 120 struct_bpf_mprog_entry tcx_egress read_mostly - sch_handle_egress 121 struct_nf_hook_entries* nf_hooks_egress read_mostly - 122 struct_hlist_head qdisc_hash[16] 123 struct_timer_list watchdog_timer 124 int watchdog_timeo 125 u32 proto_down_reason 126 struct_list_head todo_list 127 int__percpu* pcpu_refcnt 128 refcount_t dev_refcnt 129 struct_ref_tracker_dir refcnt_tracker 130 struct_list_head link_watch_list 131 enum:8 reg_state 132 bool dismantle 133 enum:16 rtnl_link_state 134 bool needs_free_netdev 135 void*priv_destructor struct_net_device 136 struct_netpoll_info* npinfo - read_mostly napi_poll/napi_poll_lock 137 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 138 void* ml_priv 139 enum_netdev_ml_priv_type ml_priv_type 140 struct_pcpu_lstats__percpu* lstats read_mostly dev_lstats_add() 141 struct_pcpu_sw_netstats__percpu* tstats read_mostly dev_sw_netstats_tx_add() 142 struct_pcpu_dstats__percpu* dstats 143 struct_garp_port* garp_port 144 struct_mrp_port* mrp_port 145 struct_dm_hw_stat_delta* dm_private 146 struct_device dev - - 147 struct_attribute_group* sysfs_groups[4] 148 struct_attribute_group* sysfs_rx_queue_group 149 struct_rtnl_link_ops* rtnl_link_ops 150 unsigned_int gso_max_size read_mostly - sk_dst_gso_max_size 151 unsigned_int tso_max_size 152 u16 gso_max_segs read_mostly - gso_max_segs 153 u16 tso_max_segs 154 unsigned_int gso_ipv4_max_size read_mostly - sk_dst_gso_max_size 155 struct_dcbnl_rtnl_ops* dcbnl_ops 156 s16 num_tc read_mostly - skb_tx_hash 157 struct_netdev_tc_txq tc_to_txq[16] read_mostly - skb_tx_hash 158 u8 prio_tc_map[16] 159 unsigned_int fcoe_ddp_xid 160 struct_netprio_map* priomap 161 struct_phy_device* phydev 162 struct_sfp_bus* sfp_bus 163 struct_lock_class_key* qdisc_tx_busylock 164 bool proto_down 165 unsigned:1 wol_enabled 166 unsigned:1 threaded - - napi_poll(napi_enable,dev_set_threaded) 167 unsigned_long:1 see_all_hwtstamp_requests 168 unsigned_long:1 change_proto_down 169 unsigned_long:1 netns_local 170 unsigned_long:1 fcoe_mtu 171 struct_list_head net_notifier_list 172 struct_macsec_ops* macsec_ops 173 struct_udp_tunnel_nic_info* udp_tunnel_nic_info 174 struct_udp_tunnel_nic* udp_tunnel_nic 175 unsigned_int xdp_zc_max_segs 176 struct_bpf_xdp_entity xdp_state[3] 177 u8 dev_addr_shadow[32] 178 netdevice_tracker linkwatch_dev_tracker 179 netdevice_tracker watchdog_dev_tracker 180 netdevice_tracker dev_registered_tracker 181 struct_rtnl_hw_stats64* offload_xstats_l3 182 struct_devlink_port* devlink_port 183 struct_dpll_pin* dpll_pin 184 struct hlist_head page_pools 185 struct dim_irq_moder* irq_moder
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.