diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -740,7 +740,10 @@ } if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr))) { MROUTER_RLOCK(); - /* Do not forward packets from IN_LINKLOCAL. */ + /* + * RFC 3927 2.7: Do not forward multicast packets from + * IN_LINKLOCAL. + */ if (V_ip_mrouter && !IN_LINKLOCAL(ntohl(ip->ip_src.s_addr))) { /* * If we are acting as a multicast router, all @@ -780,7 +783,7 @@ goto ours; if (ip->ip_dst.s_addr == INADDR_ANY) goto ours; - /* Do not forward packets to or from IN_LINKLOCAL. */ + /* RFC 3927 2.7: Do not forward packets to or from IN_LINKLOCAL. */ if (IN_LINKLOCAL(ntohl(ip->ip_dst.s_addr)) || IN_LINKLOCAL(ntohl(ip->ip_src.s_addr))) { IPSTAT_INC(ips_cantforward);