ndisc_check_ns_na(9)
π ndisc_check_ns_na β Kernel API Manual π
okay so bestie, welcome to the ndisc_check_ns_na page β this is a Linux kernel API manual entry, and honestly it's giving "small function, big responsibilities" β¨
πΈ NAME πΈ
ndisc_check_ns_na β validate an NS/NA packet and set its transport header π
β¨ SYNOPSIS β¨
int ndisc_check_ns_na (struct sk_buff *skb );
literally just the one arg, no cap π«Ά
π¦ ARGUMENTS π¦
skbβ the skb to validate π
π DESCRIPTION π
so what does it actually do? it validates an IPv6 packet for compliance with RFC 4861 sections 7.1.1 (Neighbor Solicitation) and 7.1.2 (Neighbor Advertisement). yes, both sections, she checked them both π
if the packet is valid, it sets the skb transport header. slay.
β οΈ heads up bestie: the caller needs to set the skb network header. that part is on you, not her. don't come for her when it's your job π
π₯ RETURN π₯
0β valid NS/NA; the skb transport header has been set. icon behavior, honestly π-EINVALβ a broken packet was detected, i.e. it violates some internet standard. the packet did NOT pass the vibe check π-ENOMSGβ IP header validation succeeded but it is not an ICMPv6 packet. close, but no π-ENODATAβ IP+ICMPv6 header validation succeeded but it is not a Neighbor Solicitation or Neighbor Advertisement. so near and yet so far π
π SEE ALSO π
- Kernel file
./net/ipv6/ndisc_snoop.cβ go read the source bestie, it's right there π§
and that's the whole page!! ty for reading, mwah π
sign-off time π«Ά this one's from the ./net/ipv6 crew, dated October 2026, and the page you just read is ndisc_check_ns_na(9) β stay hydrated and always set your network header first πβ¨
π¦ 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