On Tue, Mar 29, 2016 at 11:46:20AM +0100, Stuart Henderson wrote:
> On 2016/03/24 20:27, Sebastien Marie wrote:
> > Hi,
> >
> > I encountered a problem with IPv6 connectivity after upgrade to snapshot
> > Mar 23 on my amd64 router.
> >
> > The router use a pppoe session to get IPv4 and IPv6. I had to made a
> > DHCP-ND request to get routable IPv6, and I use dhcpcd from ports for
> > that.
> >
> > The IPv4 is ok, but for IPv6, dhcpcd has the following error:
> >
> > Mar 24 20:16:33 alf dhcpcd[43667]: DUID 00:01:00:01:1e:40:7c:6c
> > Mar 24 20:16:33 alf dhcpcd[43667]: pppoe0: IAID 00:00:00:01
> > Mar 24 20:16:33 alf dhcpcd[43667]: pppoe0: IAID 00:00:00:02
> > Mar 24 20:16:33 alf dhcpcd[43667]: pppoe0: rebinding prior DHCPv6 lease
> > Mar 24 20:16:35 alf dhcpcd[43667]: pppoe0: dhcp6_sendmessage: sendmsg:
> > Invalid argument
> > Mar 24 20:17:03 alf dhcpcd[43667]: timed out
> > Mar 24 20:17:03 alf dhcpcd[43667]: forked to background, child pid 10317
>
> This is due to the new in6_pcbaddrisavail() check in udp6_output.c
> (that is also in the 5.9 errata). This will work-around it for now:
I confirm the workaround works.
> Index: udp6_output.c
> ===================================================================
> RCS file: /cvs/src/sys/netinet6/udp6_output.c,v
> retrieving revision 1.46
> diff -u -p -r1.46 udp6_output.c
> --- udp6_output.c 23 Mar 2016 15:50:36 -0000 1.46
> +++ udp6_output.c 29 Mar 2016 10:24:34 -0000
> @@ -175,7 +175,7 @@ udp6_output(struct inpcb *in6p, struct m
> valid.sin6_len = sizeof(valid);
> error = in6_pcbaddrisavail(in6p, &valid, 0, p);
> if (error)
> - goto release;
> + printf("udp6_output: in6_pcbaddrisavail\n");
> }
> } else {
> if (IN6_IS_ADDR_UNSPECIFIED(&in6p->inp_faddr6)) {
>
> (or just remove it).
Thanks.
--
Sebastien Marie