diff options
author | David Ahern <dsa@cumulusnetworks.com> | 2016-10-31 15:54:00 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-11-01 11:54:26 -0400 |
commit | e58e415968110648231ed6783d38e78032661cee (patch) | |
tree | 25d5ed4792bddd6ffe33ea76d0c74460fc10bd60 /arch/m32r | |
parent | 1c851758edecd1ccbdfed7dcb0e5ee869e94615b (diff) | |
download | linux-e58e415968110648231ed6783d38e78032661cee.tar.bz2 |
net: Enable support for VRF with ipv4 multicast
Enable support for IPv4 multicast:
- similar to unicast the flow struct is updated to L3 master device
if relevant prior to calling fib_rules_lookup. The table id is saved
to the lookup arg so the rule action for ipmr can return the table
associated with the device.
- ip_mr_forward needs to check for master device mismatch as well
since the skb->dev is set to it
- allow multicast address on VRF device for Rx by checking for the
daddr in the VRF device as well as the original ingress device
- on Tx need to drop to __mkroute_output when FIB lookup fails for
multicast destination address.
- if CONFIG_IP_MROUTE_MULTIPLE_TABLES is enabled VRF driver creates
IPMR FIB rules on first device create similar to FIB rules. In
addition the VRF driver does not divert IPv4 multicast packets:
it breaks on Tx since the fib lookup fails on the mcast address.
With this patch, ipmr forwarding and local rx/tx work.
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/m32r')
0 files changed, 0 insertions, 0 deletions