On 03/24/16 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
>
>
> I had ktraced it for grabing the sendmsg syscall arguments used:
>
> 43667 dhcpcd CALL sendmsg(10,0x1abbb5052020,0)
> 43667 dhcpcd STRU struct msghdr { name=0x7f7ffffc5260, namelen=28,
> iov=0x1abbb5052050, iovlen=1, control=0x1abbb5052070, controllen=40, flags=0 }
> 43667 dhcpcd STRU struct iovec { base=0x1abb901b5000, len=167 }
> 43667 dhcpcd STRU struct sockaddr { AF_INET6, [ff02::1:2]:547 }
> 43667 dhcpcd STRU struct cmsghdr { len=36, level=41<ipv6>, type=46 }
> 43667 dhcpcd RET sendmsg -1 errno 22 Invalid argument
>
> Below a full dmesg.
>
> Thanks.
>
Hi, can you apply this diff and check if the problem persists ?
diff --git a/sys/netinet6/udp6_output.c b/sys/netinet6/udp6_output.c
index f9473d8..fa40fcf 100644
--- a/sys/netinet6/udp6_output.c
+++ b/sys/netinet6/udp6_output.c
@@ -171,6 +171,7 @@ udp6_output(struct inpcb *in6p, struct mbuf *m, struct mbuf
*addr6,
if (!IN6_ARE_ADDR_EQUAL(&in6p->inp_laddr6, laddr)) {
valid.sin6_addr = *laddr;
valid.sin6_port = in6p->inp_lport;
+ valid.sin6_scope_id = 0;
valid.sin6_family = AF_INET6;
valid.sin6_len = sizeof(valid);
error = in6_pcbaddrisavail(in6p, &valid, 0, p);