Date: Thu, 2 Jul 2015 22:12:18 +0200 From: Kristof Provost <kp@FreeBSD.org> To: freebsd-net@FreeBSD.org Cc: ae@FreeBSD.org Subject: radvd issue on CURRENT Message-ID: <7B00338E-6264-44FD-9A55-8E29C01467E7@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
Hi, In the process of setting up my TPLink device (Thanks Allan!) I ran into problems getting radvd to work. It fails while processing the IPV6_PKTINFO options in ip6_setpktopt(). Specifically, it fails one of the extra checks added in r271396(https://svnweb.freebsd.org/base?view=revision&revision=271396). The check 'ia = in6ifa_ifpwithaddr(ifp, &pktinfo->ipi6_addr);’ (i.e. does the address exist on the interface?) fails, even though radvd sets a correct address. The cause of that is that radvd picks a link-local address. Those don’t match because the kernel keeps a ‘zoneid’ in the link-local addresses. See for example in6_setscope(). That turns 'fe80::304d:b0ff:fe2e:9b88’ in userspace into 'fe80:13::304d:b0ff:fe2e:9b88’ in the kernel, so the addresses appear to be different. I’m a little uncertain about what the best fix for that would be. I could mask out the ‘zoneid’ for link-local addresses in in6fa_ifpwithaddr(), but that might break other things. Regards, Kristof
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7B00338E-6264-44FD-9A55-8E29C01467E7>
