batadv_bla_loopdetect_check(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– batadv_bla_loopdetect_check(9) β€” check and handle a detected loop πŸ’–

okay bestie, welcome to the batadv_bla_loopdetect_check(9) page, straight out of the Kernel API Manual ✨ this one's short and sweet, so grab your iced coffee and let's go 🧚


✨ NAME ✨

batadv_bla_loopdetect_check β€” check and handle a detected loop πŸŒ€


🌸 SYNOPSIS 🌸

bool batadv_bla_loopdetect_check (struct batadv_priv *bat_priv , struct
       sk_buff *skb , struct batadv_hard_iface *primary_if , unsigned short vid
       );

like, that's the whole signature, no cap. it hands you back a bool 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • bat_priv β€” the bat priv, aka the one holding all the mesh interface information πŸ‘‘ it's giving main character energy, everything lives in here.
  • skb β€” the packet to check πŸ“¦ the lil guy we're investigating.
  • primary_if β€” the interface where the request came on πŸ¦‹ lowkey important context.
  • vid β€” the VLAN ID of the frame 🏷️ yes, the VLAN. don't skip it.

πŸ’… DESCRIPTION πŸ’…

so here's the vibe: this function checks if this packet is a loop detect frame which has been sent by us πŸ‘€ like, did we send this? is this our own reflection in the mirror? πŸͺž

and if that's the case β€” if it really is one of ours β€” it throws an uevent and logs the event πŸ”₯ that's it, that's the job. it notices and it makes noise about it, periodt.


⭐ RETURN ⭐

  • true β€” yup, it is a loop detect frame which is to be dropped πŸ’€ bye bestie.
  • false β€” nope, not one of those, carry on 🌈

literally that simple.


πŸ¦‹ SEE ALSO πŸ¦‹

the kernel file it lives in: ./net/batman-adv/bridge_loop_avoidance.c πŸ“ and honestly? the whole friend group is here, so let's name them all:

fr fr that's the entire list, i didn't skip a single one πŸ’– iykyk.

okay that's the whole page bestie, go be iconic with it πŸ’…βœ¨ this came from ./net/batman-adv, dated October 2026, and it's the batadv_bla_loopdetect_check(9) page β€” mwah, love u, bye πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from