netif_device_attach(9)
π netif_device_attach(9) π
okay so bestie, we're in the Kernel API Manual, section 9 β this is the netif_device_attach page and it's honestly a short little icon. One function, one argument, one job. Let's get into it π«Ά
β¨ NAME β¨
netif_device_attach β mark device as attached π
β¨ SYNOPSIS β¨
void netif_device_attach (struct net_device *dev );
not a single return value in sight. it's void, she doesn't owe you an exit status, she's just doing the thing π
πΈ ARGUMENTS πΈ
devβ the network device. that's it. that's the whole argument list. the network device. the little guy we're attaching π¦
π DESCRIPTION π
So here's the vibe check: this function marks the device as attached from system and restarts it if needed.
That's literally the whole description in the manpage and honestly? it ate. no notes. it marks the device as attached, and it restarts if needed. lowkey iconic for how much it doesn't overexplain itself β¨
π SEE ALSO π
fr fr this is the main character section of this page β it links out to basically the entire networking stack π and look, the page also points you at the kernel file ./net/core/dev.c, so if you want the actual source, that's where she lives π
Here's the whole family, bestie, nobody gets left behind:
- the packet-type girlies:
dev_add_pack(9),__dev_remove_pack(9),dev_remove_pack(9) - interface link + metadata crowd:
dev_get_iflink(9),dev_fill_metadata_dst(9),netdev_napi_by_id_lock(9) - looking things up by name:
__dev_get_by_name(9),dev_get_by_name_rcu(9),netdev_get_by_name(9) - looking things up by index (and friends):
__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) - hardware address + naming crew:
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) - features + peers notify squad:
netdev_features_change(9),__netdev_notify_peers(9),netdev_notify_peers(9),dev_disable_gro_hw(9) - the notifier committee:
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) - xmit / tc / queue-shaping besties:
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),dev_loopback_xmit(9),__dev_queue_xmit(9) - rps + rx handler crew:
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 gang π:
__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) - upper/lower device hierarchy icons:
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) - flags / mtu / port-id miscellany:
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) - registration, features + stats era:
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_fetch_sw_netstats(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)
and that's the whole page, bestie π§ go attach a device, mark it attached, restart it if needed, and slay π β¨
this little love letter comes from the source dir ./net/core, dated October 2026 β mwah, take care of her ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms