Thomas Goff 1d6e55f195 IPv6: Fix multicast routing bugs.
This patch addresses the IPv6 multicast routing issues described
below.  It was tested with XORP 1.4/1.5 as the IPv6 PIM-SM routing
daemon against FreeBSD peers.

net/ipv6/ip6_input.c:

  - Don't try to forward link-local multicast packets.

  - Don't reset skb2->dev before calling ip6_mr_input() so packets can
    be identified as coming from the PIM register vif properly.

net/ipv6/ip6mr.c:

  - Fix incoming PIM register messages processing:

    * The IPv6 pseudo-header should be included when checksumming PIM
      messages (RFC 4601 section 4.9; RFC 3973 section 4.7.1).

    * Packets decapsulated from PIM register messages should have
      skb->protocol ETH_P_IPV6.

  - Enable/disable IPv6 multicast forwarding on the corresponding
    interface when a routing daemon adds/removes a multicast virtual
    interface.

  - Remove incorrect skb_pull() to fix userspace signaling.

  - Enable/disable global IPv6 multicast forwarding when an IPv6
    multicast routing socket is opened/closed.

net/ipv6/route.c:

  - Don't use strict routing logic for packets decapsulated from PIM
    register messages (similar to disabling rp_filter for the IPv4
    case).

Signed-off-by: Thomas Goff <thomas.goff@boeing.com>
Reviewed-by: Fred Templin <fred.l.templin@boeing.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-01-27 22:39:59 -08:00
..
2009-01-19 16:20:15 -08:00
2008-12-08 01:14:16 -08:00
2009-01-07 17:23:17 -08:00
2009-01-20 14:44:03 -08:00
2009-01-04 17:29:21 -08:00
2009-01-11 00:17:22 -08:00
2008-12-10 15:18:31 -08:00
2009-01-06 16:45:26 -08:00
2009-01-27 22:39:59 -08:00
2008-11-03 18:21:05 -08:00
2009-01-06 10:44:34 -08:00
2009-01-25 20:49:14 -08:00
2009-01-07 17:24:34 -08:00
2009-01-22 13:16:00 +03:00
2009-01-11 00:06:33 -08:00
2008-11-03 18:21:05 -08:00
2008-11-19 18:49:57 -08:00