dev_fetch_sw_netstats(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… dev_fetch_sw_netstats(9) πŸ’…

okay so bestie, welcome to the dev_fetch_sw_netstats page from the Kernel API Manual β€” this is the one that grabs your per-cpu network device statistics for you ✨ no cap, it's a tiny little function but it's lowkey iconic in the network stack.


✨ NAME ✨

dev_fetch_sw_netstats β€” get per-cpu network device statistics πŸŽ€


🌸 SYNOPSIS 🌸

void dev_fetch_sw_netstats (struct rtnl_link_stats64 *s , const struct
pcpu_sw_netstats __percpu *netstats );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • s β€” the place to store stats πŸ’– this is where the numbers go, bestie, hand it a struct rtnl_link_stats64 * and it'll get filled in
  • netstats β€” the per-cpu network stats to read from 🌈 it's const struct pcpu_sw_netstats __percpu *, so it's per-cpu and it's read-only, we're literally just looking respectfully πŸ‘€

πŸ’œ DESCRIPTION πŸ’œ

Read per-cpu network statistics and populate the related fields in s. that's it, that's the whole vibe 🫢 it goes through the per-cpu stats and drops the relevant numbers into the matching fields of your struct rtnl_link_stats64 so you don't have to do the per-cpu archaeology yourself. main character energy, honestly πŸ‘‘


🧚 SEE ALSO 🧚

Kernel file ./net/core/dev.c, plus the whole friend group: dev_add_pack(9), __dev_remove_pack(9), dev_remove_pack(9), dev_get_iflink(9), dev_fill_metadata_dst(9), netdev_napi_by_id_lock(9), __dev_get_by_name(9), dev_get_by_name_rcu(9), netdev_get_by_name(9), __dev_get_by_index(9), dev_get_by_index_rcu(9), netdev_get_by_index(9), dev_get_by_napi_id(9), netdev_get_by_index_lock(9), netdev_get_name(9), dev_getbyhwaddr_rcu(9), dev_getbyhwaddr(9), netdev_get_by_flags_rcu(9), dev_valid_name(9), __dev_alloc_name(9), dev_alloc_name(9), dev_get_alias(9), netdev_features_change(9), __netdev_notify_peers(9), netdev_notify_peers(9), dev_disable_gro_hw(9), register_netdevice_notifier(9), unregister_netdevice_notifier(9), register_netdevice_notifier_net(9), unregister_netdevice_notifier_net(9), call_netdevice_notifiers_info(9), call_netdevice_notifiers_info_robust(9), call_netdevice_notifiers(9), call_netdevice_notifiers_mtu(9), dev_forward_skb(9), dev_nit_active_rcu(9), netif_setup_tc(9), netif_set_real_num_rx_queues(9), netif_set_real_num_queues(9), netif_set_tso_max_size(9), netif_set_tso_max_segs(9), netif_inherit_tso_max(9), netif_get_num_default_rss_queues(9), netif_device_detach(9), netif_device_attach(9), dev_loopback_xmit(9), __dev_queue_xmit(9), rps_flow_is_active(9), rps_may_expire_flow(9), __netif_rx(9), netif_rx(9), netdev_is_rx_handler_busy(9), netdev_rx_handler_register(9), netdev_rx_handler_unregister(9), netif_receive_skb_core(9), netif_receive_skb(9), netif_receive_skb_list(9), __napi_schedule(9), napi_schedule_prep(9), __napi_schedule_irqoff(9), netif_threaded_enable(9), netif_queue_set_napi(9), napi_disable(9), napi_enable(9), netdev_has_upper_dev(9), netdev_has_upper_dev_all_rcu(9), netdev_has_any_upper_dev(9), netdev_master_upper_dev_get(9), netdev_has_any_lower_dev(9), netdev_upper_get_next_dev_rcu(9), netdev_lower_get_next_private(9), netdev_lower_get_next_private_rcu(9), netdev_lower_get_next(9), netdev_lower_get_first_private_rcu(9), netdev_master_upper_dev_get_rcu(9), netdev_upper_dev_link(9), netdev_master_upper_dev_link(9), netdev_upper_dev_unlink(9), netdev_bonding_info_change(9), netdev_get_xmit_slave(9), netdev_sk_get_lowest_dev(9), netdev_lower_state_changed(9), netif_get_flags(9), netif_set_mtu_ext(9), netif_pre_changeaddr_notify(9), dev_get_phys_port_id(9), dev_get_phys_port_name(9), netif_get_port_parent_id(9), netdev_port_same_parent_id(9), netdev_change_proto_down_reason_locked(9), dev_change_xdp_fd(9), dev_index_reserve(9), netdev_update_features(9), netdev_change_features(9), netif_stacked_transfer_operstate(9), register_netdevice(9), register_netdev(9), netdev_wait_allrefs_any(9), dev_get_stats(9), dev_get_tstats64(9), netdev_sw_irq_coalesce_default_on(9), alloc_netdev_mqs(9), free_netdev(9), alloc_netdev_dummy(9), synchronize_net(9), unregister_netdevice_queue(9), unregister_netdevice_many(9), unregister_netdev(9), netdev_increment_features(9), netdev_compute_master_upper_features(9), netdev_drivername(9) πŸ’€ yeah that's a lot of friends, but they're all valid and you should go say hi

ngl that's an entire contact list, but every single one of those is fr fr in the original list, so go read them if you want the full dev.c cinematic universe 🌟

that's the whole page bestie!! πŸ“ this little cutie lives in ./net/core and the page you're reading is dated October 2026 β€” mwah, go populate some stats, you've got this πŸ’…πŸ’–βœ¨

πŸ“¦ where this page comes from