]> 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)
commit05e8cdac2be1605ce281a316c1ee24ded71d1075
tree0ea1ed7aca978f9575d56ca2ad8f8f046069e642
parent32773354aad8551365c4f95ff409d7aea2fe6bac
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: 7d6835d9bd3a ("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