From: Brian Haley <[EMAIL PROTECTED]> Date: Wed, 03 Oct 2007 10:44:17 -0400
> When the ICMPv6 Target address is multicast, Linux processes the > redirect instead of dropping it. The problem is in this code in > ndisc_redirect_rcv(): > > if (ipv6_addr_equal(dest, target)) { > on_link = 1; > } else if (!(ipv6_addr_type(target) & IPV6_ADDR_LINKLOCAL)) { > ND_PRINTK2(KERN_WARNING > "ICMPv6 Redirect: target address is not > link-local.\n"); > return; > } > > This second check will succeed if the Target address is, for example, > FF02::1 because it has link-local scope. Instead, it should be checking > if it's a unicast link-local address, as stated in RFC 2461/4861 Section > 8.1: > > - The ICMP Target Address is either a link-local address (when > redirected to a router) or the same as the ICMP Destination > Address (when redirected to the on-link destination). > > I know this doesn't explicitly say unicast link-local address, but it's > implied. > > This bug is preventing Linux kernels from achieving IPv6 Logo Phase II > certification because of a recent error that was found in the TAHI test > suite - Neighbor Disovery suite test 206 (v6LC.2.3.6_G) had the > multicast address in the Destination field instead of Target field, so > we were passing the test. This won't be the case anymore. > > The patch below fixes this problem, and also fixes ndisc_send_redirect() > to not send an invalid redirect with a multicast address in the Target > field. I re-ran the TAHI Neighbor Discovery section to make sure Linux > passes all 245 tests now. > > Signed-off-by: Brian Haley <[EMAIL PROTECTED]> > Acked-by: David L Stevens <[EMAIL PROTECTED]> I believe everyone's concerns have been addressed in this version of the patch, so I have applied it to net-2.6 Thanks everyone! - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html