Re: in6_unlink_ifa: interface address has no prefix
On 10/06/13(Mon) 02:05, Alexander Bluhm wrote: On Sun, Jun 09, 2013 at 06:34:27PM +0200, Christopher Zimmermann wrote: inet 172.26.153.50 0xff00 NONE mtu 1398 in6_unlink_ifa: interface address 0x80624a00 has no prefix in6_unlink_ifa: interface address 0x80624a00 has no prefix The error message is triggered by ifconfig lo1 create up. With address instead of pointer logging and sysctl net.inet6.icmp6.nd6_debug=1 you see the source of the problem. in6_unlink_ifa: interface address ::0001 has no prefix in6_ifattach_loopback: failed to configure the loopback address on lo1 (errno=17) It is a different issue that creating lo1 tries to add a ::1 address. But when this fails, it is correct that it has no prefix. So don't log an error here. I'm not sure to understand here, you're saying that is it correct that lo1 has no prefix because it is a loopback interface or because, in this case adding an IPv6 address failed? Martin
Re: in6_unlink_ifa: interface address has no prefix
On 2013/06/12 12:51, Martin Pieuchot wrote: On 10/06/13(Mon) 02:05, Alexander Bluhm wrote: On Sun, Jun 09, 2013 at 06:34:27PM +0200, Christopher Zimmermann wrote: inet 172.26.153.50 0xff00 NONE mtu 1398 in6_unlink_ifa: interface address 0x80624a00 has no prefix in6_unlink_ifa: interface address 0x80624a00 has no prefix The error message is triggered by ifconfig lo1 create up. With address instead of pointer logging and sysctl net.inet6.icmp6.nd6_debug=1 you see the source of the problem. in6_unlink_ifa: interface address ::0001 has no prefix in6_ifattach_loopback: failed to configure the loopback address on lo1 (errno=17) It is a different issue that creating lo1 tries to add a ::1 address. But when this fails, it is correct that it has no prefix. So don't log an error here. Diff is OK sthen. I'm not sure to understand here, you're saying that is it correct that lo1 has no prefix because it is a loopback interface or because, in this case adding an IPv6 address failed? Martin Both.. 1. it is correct that it has no prefix because it's a loopback address, and 2. in6_unlink_ifa is called on the loopback address, which then complains about the adress. but also: 3. the reason for in6_unlink_ifa being called at all is because in6_ifattach_loopback automatically tries to add in6addr_loopback to a newly created lo interface, which is the wrong thing to do in the case of multiple lo(4) interfaces. In the v4 case, 127.0.0.1 is set on the interface explicitly by /etc/netstart; v6 should probably do the same.
Re: in6_unlink_ifa: interface address has no prefix
On 12/06/13(Wed) 12:19, Stuart Henderson wrote: On 2013/06/12 12:51, Martin Pieuchot wrote: On 10/06/13(Mon) 02:05, Alexander Bluhm wrote: On Sun, Jun 09, 2013 at 06:34:27PM +0200, Christopher Zimmermann wrote: inet 172.26.153.50 0xff00 NONE mtu 1398 in6_unlink_ifa: interface address 0x80624a00 has no prefix in6_unlink_ifa: interface address 0x80624a00 has no prefix The error message is triggered by ifconfig lo1 create up. With address instead of pointer logging and sysctl net.inet6.icmp6.nd6_debug=1 you see the source of the problem. in6_unlink_ifa: interface address ::0001 has no prefix in6_ifattach_loopback: failed to configure the loopback address on lo1 (errno=17) It is a different issue that creating lo1 tries to add a ::1 address. But when this fails, it is correct that it has no prefix. So don't log an error here. Diff is OK sthen. I'm not sure to understand here, you're saying that is it correct that lo1 has no prefix because it is a loopback interface or because, in this case adding an IPv6 address failed? Martin Both.. 1. it is correct that it has no prefix because it's a loopback address, and Thanks for the explanation, I'm ok with the diff then. 2. in6_unlink_ifa is called on the loopback address, which then complains about the adress. but also: 3. the reason for in6_unlink_ifa being called at all is because in6_ifattach_loopback automatically tries to add in6addr_loopback to a newly created lo interface, which is the wrong thing to do in the case of multiple lo(4) interfaces. In the v4 case, 127.0.0.1 is set on the interface explicitly by /etc/netstart; v6 should probably do the same.
Re: in6_unlink_ifa: interface address has no prefix
On Wed, Jun 12, 2013 at 12:19:30PM +0100, Stuart Henderson wrote: 3. the reason for in6_unlink_ifa being called at all is because in6_ifattach_loopback automatically tries to add in6addr_loopback to a newly created lo interface, which is the wrong thing to do in the case of multiple lo(4) interfaces. In the v4 case, 127.0.0.1 is set on the interface explicitly by /etc/netstart; v6 should probably do the same. I don't think so. Many things that are handled by userland in IPv4 are done by the kernel in IPv6. These are autoconfiguration, and link-local addresses, and the ::1 address. Like it or not, this is part of the idea. There are just bugs and unimplemented cases in our stack. Look at these comments in netinet6/in6_ifattach.c . * XXX multiple loopback interface needs more care. for instance, * nodelocal address needs to be configured onto only one of them. * XXX multiple link-local address case * assign loopback address for loopback interface. * XXX multiple loopback interface case. bluhm
in6_unlink_ifa: interface address has no prefix
Hi, I have this as /etc/hostname.lo1: inet 172.26.153.50 0xff00 NONE mtu 1398 !route add 172.26.153.0/24 172.26.153.50 !route add default 172.26.153.50 -priority 12 and see the following on boot: in6_unlink_ifa: interface address 0x80624a00 has no prefix in6_unlink_ifa: interface address 0x80624a00 has no prefix by adding -inet6 to the first line I can work around this warning. Christopher
Re: in6_unlink_ifa: interface address has no prefix
On Sun, Jun 09, 2013 at 06:34:27PM +0200, Christopher Zimmermann wrote: inet 172.26.153.50 0xff00 NONE mtu 1398 in6_unlink_ifa: interface address 0x80624a00 has no prefix in6_unlink_ifa: interface address 0x80624a00 has no prefix The error message is triggered by ifconfig lo1 create up. With address instead of pointer logging and sysctl net.inet6.icmp6.nd6_debug=1 you see the source of the problem. in6_unlink_ifa: interface address ::0001 has no prefix in6_ifattach_loopback: failed to configure the loopback address on lo1 (errno=17) It is a different issue that creating lo1 tries to add a ::1 address. But when this fails, it is correct that it has no prefix. So don't log an error here. ok? bluhm Index: netinet6/in6.c === RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/in6.c,v retrieving revision 1.112 diff -u -p -r1.112 in6.c --- netinet6/in6.c 31 May 2013 15:04:23 - 1.112 +++ netinet6/in6.c 9 Jun 2013 23:48:08 - @@ -1238,9 +1238,10 @@ in6_unlink_ifa(struct in6_ifaddr *ia, st /* Release the reference to the base prefix. */ if (ia-ia6_ndpr == NULL) { - if (!IN6_IS_ADDR_LINKLOCAL(IA6_IN6(ia))) + if (!IN6_IS_ADDR_LINKLOCAL(IA6_IN6(ia)) + !IN6_IS_ADDR_LOOPBACK(IA6_IN6(ia))) log(LOG_NOTICE, in6_unlink_ifa: interface address - %p has no prefix\n, ia); + %s has no prefix\n, ip6_sprintf(IA6_IN6(ia))); } else { ia-ia6_flags = ~IN6_IFF_AUTOCONF; if (--ia-ia6_ndpr-ndpr_refcnt == 0)