Commit 1b22d2ddf4f62bc4f600f9b4c5d9d6ad65dcca14

Authored by Thomas Graf
Committed by Greg Kroah-Hartman
1 parent 96dd4ee679

net: Don't proxy arp respond if iif == rt->dst.dev if private VLAN is disabled

[ Upstream commit 70620c46ac2b45c24b0f22002fdf5ddd1f7daf81 ]

Commit 653241 (net: RFC3069, private VLAN proxy arp support) changed
the behavior of arp proxy to send arp replies back out on the interface
the request came in even if the private VLAN feature is disabled.

Previously we checked rt->dst.dev != skb->dev for in scenarios, when
proxy arp is enabled on for the netdevice and also when individual proxy
neighbour entries have been added.

This patch adds the check back for the pneigh_lookup() scenario.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Acked-by: Jesper Dangaard Brouer <hawk@comx.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Showing 1 changed file with 2 additions and 1 deletions Side-by-side Diff

... ... @@ -867,7 +867,8 @@
867 867 if (addr_type == RTN_UNICAST &&
868 868 (arp_fwd_proxy(in_dev, dev, rt) ||
869 869 arp_fwd_pvlan(in_dev, dev, rt, sip, tip) ||
870   - pneigh_lookup(&arp_tbl, net, &tip, dev, 0))) {
  870 + (rt->dst.dev != dev &&
  871 + pneigh_lookup(&arp_tbl, net, &tip, dev, 0)))) {
871 872 n = neigh_event_ns(&arp_tbl, sha, &sip, dev);
872 873 if (n)
873 874 neigh_release(n);