From: | Kyle Butt <kylebutt@xxxxxxxxx> |
Date: | Fri, 26 Jun 2009 23:31:07 -0400 |
In trying to get dhcpv6 running on my new router, I found that udp6 multicasct packets weren't being delivered to userland clients. I could see them via a non-promiscuous tcpdump, I could ping the multicast address while the process using it was active, and I could see the associations via ifmcstatus. I looked in the kernel and found something suspicious. Attached is a patch. Let me know what you think. Kyle
From 96cba86ef2bbee7892238be165b1ef6c14bf3b38 Mon Sep 17 00:00:00 2001 From: Kyle Butt <kyle@vidanueva.greenhatgeek.net> Date: Sat, 27 Jun 2009 00:15:07 -0400 Subject: [PATCH] Skip placemarker PCB's instead of looking for them. Fixes UDP6 multicast Compared with other PCB loops including UDP6 unicast and UDP4 multicast. --- sys/netinet6/udp6_usrreq.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c index 0b33627..748429b 100644 --- a/sys/netinet6/udp6_usrreq.c +++ b/sys/netinet6/udp6_usrreq.c @@ -231,7 +231,7 @@ udp6_input(struct mbuf **mp, int *offp, int proto) */ last = NULL; LIST_FOREACH(in6p, &udbinfo.pcblisthead, inp_list) { - if (!(in6p->inp_flags & INP_PLACEMARKER)) + if (in6p->inp_flags & INP_PLACEMARKER) continue; if (!(in6p->inp_vflag & INP_IPV6)) continue; -- 1.6.2.5
Attachment:
pgp00000.pgp
Description: PGP signature