batadv_mutual_parents(9)
π batadv_mutual_parents(9) π
okay bestie so this is a page from the Kernel API Manual and honestly? it's a little guy with a big job. it's literally called batadv_mutual_parents and no cap, that name is doing exactly what it says on the tin. let's get into it π«Ά
β¨ NAME β¨
batadv_mutual_parents β check if two devices are each others parent π
like... are y'all each other's parent? because that's a vibe and we need to know.
πΈ SYNOPSIS πΈ
bool batadv_mutual_parents (const struct net_device *dev1 , struct net
*net1 , const struct net_device *dev2 , struct net *net2 );
it returns a bool, it takes four things, and yes the line break in the middle of the signature is just how the man page formatted it β we do not judge, we reproduce π
π ARGUMENTS π
dev1β the 1st net dev π± like, the first device in the duonet1β the 1st device's netns π«§ its whole networking namespace situationdev2β the 2nd net dev π· the other half of the pairingnet2β the 2nd device's netns π§ and its namespace bestie
four arguments, all accounted for, nothing skipped, we love a complete cast β¨
π¦ DESCRIPTION π¦
okay so here's the lore: veth devices come in pairs and each is the parent of the other! π
not me getting emotional over virtual ethernet interfaces. veth pairs are literally mutually parenting each other. it's giving found family. it's giving we are each other's parent and also each other's child simultaneously. the way that's just how veth works π₯
so this function is here to check if the two devices you handed it are doing exactly that β the mutual parent thing. iconic behavior, honestly.
β RETURN β
it returns true if the devices are each others parent, otherwise false π
that's it. that's the whole vibe check. true = mutual parents, false = nope, not doing that.
π SEE ALSO π
this section is LONG bestie, hydrate before reading. all from the Kernel file ./net/batman-adv/hard-interface.c π
batadv_hardif_release(9)batadv_hardif_get_by_netdev(9)batadv_getlink_net(9)batadv_is_on_batman_iface(9)batadv_is_valid_iface(9)__batadv_get_real_netdev(9)batadv_get_real_netdev(9)batadv_is_wext_netdev(9)batadv_is_cfg80211_netdev(9)batadv_wifi_flags_evaluate(9)batadv_netdev_get_wifi_flags(9)batadv_hardif_get_wifi_flags(9)batadv_is_wifi_hardif(9)batadv_hardif_no_broadcast(9)batadv_hardif_get_active(9)batadv_primary_if_update_addr(9)batadv_primary_if_select(9)batadv_hardif_is_iface_up(9)batadv_check_known_mac_addr(9)batadv_hardif_recalc_extra_skbroom(9)batadv_hardif_min_mtu(9)batadv_update_min_mtu(9)batadv_hardif_activate_interface(9)batadv_hardif_deactivate_interface(9)batadv_hardif_enable_interface(9)batadv_hardif_disable_interface(9)batadv_hard_if_event_meshif(9)batadv_wifi_net_device_insert(9)batadv_wifi_net_device_remove(9)batadv_wifi_net_device_update(9)batadv_wifi_net_device_unregister(9)batadv_wifi_net_device_event(9)batadv_hard_if_event(9)batadv_wifi_net_devices_init(9)batadv_wifi_net_devices_deinit(9)
thirty-something functions, all present and correct, no crumbs left behind π
π gentle heads up: every single one of those references above matters β if you're chasing down how batman-adv handles hard interfaces, the wifi flags, the netdevs, or the events, they're all listed up there. don't come for me if you skip one, i literally typed them all out for you.
and that's the page!! β¨ this beauty ships from ./net/batman-adv and the date on it is October 2026 β so yes, it's from the future, and it's slaying there too π
π mwah, go check your veth pairs, they're probably each other's parents, periodt ππ¦
π¦ 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