• Thomas Goff's avatar
    IPv6: Fix multicast routing bugs. · 1d6e55f1
    Thomas Goff authored
    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 socke...
    1d6e55f1
route.c 67.7 KB