2023-11-29 00:27:52 -07:00
|
|
|
.. SPDX-License-Identifier: GPL-2.0
|
|
|
|
.. Copyright (C) 2023 Google LLC
|
2023-12-04 15:07:28 -07:00
|
|
|
|
2023-11-29 00:27:52 -07:00
|
|
|
===========================================
|
|
|
|
net_device struct fast path usage breakdown
|
|
|
|
===========================================
|
|
|
|
|
|
|
|
Type Name fastpath_tx_access fastpath_rx_access Comments
|
|
|
|
..struct ..net_device
|
2024-08-29 05:33:36 -07:00
|
|
|
unsigned_long:32 priv_flags read_mostly - __dev_queue_xmit(tx)
|
2024-08-29 05:33:37 -07:00
|
|
|
unsigned_long:1 lltx read_mostly - HARD_TX_LOCK,HARD_TX_TRYLOCK,HARD_TX_UNLOCK(tx)
|
2023-11-29 00:27:52 -07:00
|
|
|
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
|
2024-03-14 13:08:45 -07:00
|
|
|
unsigned_long state read_mostly read_mostly netif_running(dev)
|
2023-11-29 00:27:52 -07:00
|
|
|
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
|
2023-12-21 07:07:47 -07:00
|
|
|
netdev_features_t gso_partial_features read_mostly gso_features_check
|
2023-11-29 00:27:52 -07:00
|
|
|
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_iw_public_data* wireless_data
|
|
|
|
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_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
|
2024-01-02 09:22:20 -07:00
|
|
|
struct_bpf_prog* xdp_prog - read_mostly netif_elide_gro()
|
2023-11-29 00:27:52 -07:00
|
|
|
unsigned_long gro_flush_timeout - read_mostly napi_complete_done
|
2024-09-04 08:34:30 -07:00
|
|
|
u32 napi_defer_hard_irqs - read_mostly napi_complete_done
|
2023-11-29 00:27:52 -07:00
|
|
|
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
|
2024-02-08 07:43:23 -07:00
|
|
|
struct_pcpu_lstats__percpu* lstats read_mostly dev_lstats_add()
|
|
|
|
struct_pcpu_sw_netstats__percpu* tstats read_mostly dev_sw_netstats_tx_add()
|
2023-11-29 00:27:52 -07:00
|
|
|
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)
|
2024-08-29 05:33:36 -07:00
|
|
|
unsigned_long:1 see_all_hwtstamp_requests
|
|
|
|
unsigned_long:1 change_proto_down
|
2024-08-29 05:33:38 -07:00
|
|
|
unsigned_long:1 netns_local
|
2024-08-29 05:33:39 -07:00
|
|
|
unsigned_long:1 fcoe_mtu
|
2023-11-29 00:27:52 -07:00
|
|
|
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
|
2024-08-29 08:57:42 -07:00
|
|
|
struct hlist_head page_pools
|
|
|
|
struct dim_irq_moder* irq_moder
|