]> git.baikalelectronics.ru Git - kernel.git/commit
net: ipmr: Fix some mroute forwarding issues in vrf's
authorDonald Sharp <sharpd@cumulusnetworks.com>
Sat, 10 Jun 2017 20:30:17 +0000 (16:30 -0400)
committerDavid S. Miller <davem@davemloft.net>
Sun, 11 Jun 2017 22:15:06 +0000 (18:15 -0400)
commitbf7a710c56407ebff31411f3ad0aec075af8d528
tree0ea1ed7aca978f9575d56ca2ad8f8f046069e642
parent1fd7e34f27f4e86edfc3dc65193d6e792ff9119d
net: ipmr: Fix some mroute forwarding issues in vrf's

This patch fixes two issues:

1) When forwarding on *,G mroutes that are in a vrf, the
kernel was dropping information about the actual incoming
interface when calling ip_mr_forward from ip_mr_input.
This caused ip_mr_forward to send the multicast packet
back out the incoming interface.  Fix this by
modifying ip_mr_forward to be handed the correctly
resolved dev.

2) When a unresolved cache entry is created we store
the incoming skb on the unresolved cache entry and
upon mroute resolution from the user space daemon,
we attempt to forward the packet.  Again we were
not resolving to the correct incoming device for
a vrf scenario, before calling ip_mr_forward.
Fix this by resolving to the correct interface
and calling ip_mr_forward with the result.

Fixes: 00ba4bc64bbc ("net: Enable support for VRF with ipv4 multicast")
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Acked-by: David Ahern <dsahern@gmail.com>
Acked-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Reviewed-by: Yotam Gigi <yotamg@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ipmr.c