vti6_addr_conflict(9)
π NAME π
Okay bestie, welcome to vti6_addr_conflict(9) from the Kernel API Manual β this function compares packet addresses to the tunnelβs own. Lowkey iconic loop-protection behavior, no cap. β¨
β¨ SYNOPSIS β¨
bool vti6_addr_conflict (const struct ip6_tnl *t , const struct ipv6hdr *hdr );
π ARGUMENTS π
tβ the outgoing tunnel device, main character of this parameter list π«Άhdrβ IPv6 header from the incoming packet, no cap π¦
π¦ DESCRIPTION π¦
The whole goal: avoid a trivial tunneling loop by checking that the tunnel exit-point doesn't match the source of the incoming packet. Itβs giving βare you talking to yourself?β but for packets, and honestly? necessary. πβ¨
π₯ RETURN π₯
1if conflict,0else β periodt. π₯
π SEE ALSO π
Kernel file: ./net/ipv6/ip6_vti.c. And the whole friend group:
vti6_tnl_lookup(9)vti6_tnl_bucket(9)vti6_locate(9)vti6_dev_uninit(9)vti6_xmit(9)vti6_tnl_change(9)vti6_siocdevprivate(9)vti6_dev_setup(9)vti6_dev_init_gen(9)vti6_dev_init(9)vti6_fb_tnl_dev_init(9)vti6_tunnel_init(9)vti6_tunnel_cleanup(9)
Sign-off: source ./net/ipv6, date October 2026, page vti6_addr_conflict(9) β byeee bestie, go prevent those loops π
π
π¦ 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