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=3Drevision&revision=3D271396)= . The check 'ia =3D in6ifa_ifpwithaddr(ifp, &pktinfo->ipi6_addr);=E2=80=99 = (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=E2=80=99t match because the kernel keeps a =E2=80=98zoneid=E2=80=99 = in the link-local addresses. See for example in6_setscope(). That turns 'fe80::304d:b0ff:fe2e:9b88=E2=80=99 in userspace into = 'fe80:13::304d:b0ff:fe2e:9b88=E2=80=99 in the kernel, so the addresses = appear to be different. I=E2=80=99m a little uncertain about what the best fix for that would = be. I could mask out the =E2=80=98zoneid=E2=80=99 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>