mrouted ports in net/mrouted look like no problem at compile time. But it can not sending and receiving IGMP message. Because, it code was too old. Fix: iphdrlen = ip->ip_hl << 2; - ipdatalen = ntohs(ip->ip_len) - iphdrlen; + ipdatalen = ip->ip_len; if ((size_t)(iphdrlen + ipdatalen) != recvlen) { logit(LOG_WARNING, 0, "received packet from %s shorter (%u bytes) than hdr+data length (%u+%u)", @@ -346,7 +346,7 @@ ip = (struct ip *)send_buf; ip->ip_src.s_addr = src; ip->ip_dst.s_addr = dst; - ip->ip_len = htons(len); + ip->ip_len = len; if (IN_MULTICAST(ntohl(dst))) { ip->ip_ttl = curttl; } else {--NPYZtrBZ0KgIO6fzsw2EVacSJBXjyFfqe1aU8Sc9BzOxRu8P Content-Type: text/plain; name="file.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="file.diff" --- igmp.c 2011-10-23 17:03:36.000000000 +0900 +++ igmp.c.orig 2014-03-24 21:14:48.897460682 +0900 @@ -196,7 +196,7 @@ } How-To-Repeat: execute it. You will see any waring.
Responsible Changed From-To: freebsd-ports-bugs->hrs Over to maintainer (via the GNATS Auto Assign Tool)
Note for people finding this: apparently on FreeBSD 10 (or 10.1??) you should use /etc/rc.d/mrouted start, not the ports version. That one works (probably has this fix?).
Forget last comment, it seems /etc/rc.d/mrouted is some kind of irrelevant remnant.
With this patch I still see this: warning - received packet from 192.168.x.x shorter (28 bytes) than hdr+data length (20+28) See this on two tunX interfaces, but also on a physical interface, but not on two other physical interfaces somehow.
FreeBSD 10 and 10.1 are gone. The code in igmp.c has changed. I think this is overcome by events.