Merge branch 'vrf-ipv6-mcast-link-local'
authorDavid S. Miller <davem@davemloft.net>
Wed, 15 Jun 2016 19:34:34 +0000 (12:34 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Jun 2016 19:34:34 +0000 (12:34 -0700)
commita6e225cad3659ac904c81dbbbc9b5725a3d67ae2
tree35a4899be648232e3a96c47220f08414eb5fd6c3
parentc9ad5a6568fb9b81c8fc10bd97867def79d2e41d
parent9ff74384600aeecba34ebdacbbde0627489ff601
Merge branch 'vrf-ipv6-mcast-link-local'

David Ahern says:

====================
net: vrf: Handle ipv6 multicast and link-local addresses

IPv6 multicast and link-local addresses require special handling by the
VRF driver. Rather than using the VRF device index and full FIB lookups,
packets to/from these addresses should use direct FIB lookups based on
the VRF device table.

Multicast routes do not make sense for the L3 master device directly.
Accordingly, do not add mcast routes for the device, and the VRF driver
should fail attempts to send packets to ipv6 mcast addresses on the
device (e.g, ping6 ff02::1%<vrf> should fail)

With this change connections into and out of a VRF enslaved device work
for multicast and link-local addresses (icmp, tcp, and udp).  e.g.,

1. packets into VM with VRF config:
    ping6 -c3 fe80::e0:f9ff:fe1c:b974%br1
    ping6 -c3 ff02::1%br1
    ssh -6 fe80::e0:f9ff:fe1c:b974%br1

2. packets going out a VRF enslaved device:
    ping6 -c3 fe80::18f8:83ff:fe4b:7a2e%eth1
    ping6 -c3 ff02::1%eth1
    ssh -6 root@fe80::18f8:83ff:fe4b:7a2e%eth1
====================

Signed-off-by: David S. Miller <davem@davemloft.net>