dev_fill_metadata_dst(9)
๐ dev_fill_metadata_dst โ a Kernel API Manual moment (section 9, bestie)
okay so this vibe is from the kernel API manual, section 9 โ like, the section for kernel routines, iykyk. and the whole thing is about ONE tiny little function that does a very specific slay. let's get into it ๐ฉท
โจ NAME โจ
dev_fill_metadata_dst โ literally just "Retrieve tunnel egress information." that's the whole assignment. periodt.
๐ธ SYNOPSIS ๐ธ
int dev_fill_metadata_dst (struct net_device *dev , struct sk_buff *skb
);
it returns an int, takes a struct net_device * and a struct sk_buff *, and that's the cast. no notes ๐
๐ ARGUMENTS ๐
devโ the targeted interface. the one we're pointing at ๐๐ฆskbโ The packet. the actual lil guy we're doing this to ๐ฆโจ
๐ง DESCRIPTION ๐ง
so here's the lore: for better visibility of tunnel traffic, OVS needs to retrieve egress tunnel information for a packet. that's it, that's the reason. the following API allows the user to get this info ๐
like the whole point of this function is that OVS wants to see what's coming out of the tunnel, and this is the lil doorway that gives it that info. no cap, that's the entire description โ it's short but it's iconic ๐
๐ฅ SEE ALSO ๐ฅ
kernel file ./net/core/dev.c โ and bestie, buckle up, because this list is LONG. like, genuinely long. i'm not skipping a single one, we're doing the full roll call ๐:
dev_add_pack(9), __dev_remove_pack(9), dev_remove_pack(9), dev_get_iflink(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_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)
likeโฆ that's the whole friend group right there. every single one of them showed up to the party ๐๐ซถ
ngl, that SEE ALSO list is giving "read the whole dev.c file while you're at it" energy ๐ญ but honestly? valid.
okay that's the page!! and for the lil sign-off: this one lives in the source tree at ./net/core, and it's dated October 2026 โ a whole future date, main character energy honestly ๐ฎโญ mwah, go read your kernel source bestie, ily, bye ๐๐๐ฆ
๐ฆ 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