summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcelo Ricardo Leitner <mleitner@redhat.com>2013-01-29 23:26:08 +0100
committerDavid S. Miller <davem@davemloft.net>2013-01-31 02:26:07 +0100
commitbd30e947207e2ea0ff2c08f5b4a03025ddce48d3 (patch)
treecfab650a0ba6328f46762849d6200d07436c4d68
parentnet: usbnet: prevent buggy devices from killing us (diff)
downloadlinux-bd30e947207e2ea0ff2c08f5b4a03025ddce48d3.tar.xz
linux-bd30e947207e2ea0ff2c08f5b4a03025ddce48d3.zip
ipv6: do not create neighbor entries for local delivery
They will be created at output, if ever needed. This avoids creating empty neighbor entries when TPROXYing/Forwarding packets for addresses that are not even directly reachable. Note that IPv4 already handles it this way. No neighbor entries are created for local input. Tested by myself and customer. Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv6/route.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index e229a3bc345d..363d8b7772e8 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -928,7 +928,7 @@ restart:
dst_hold(&rt->dst);
read_unlock_bh(&table->tb6_lock);
- if (!rt->n && !(rt->rt6i_flags & RTF_NONEXTHOP))
+ if (!rt->n && !(rt->rt6i_flags & (RTF_NONEXTHOP | RTF_LOCAL)))
nrt = rt6_alloc_cow(rt, &fl6->daddr, &fl6->saddr);
else if (!(rt->dst.flags & DST_HOST))
nrt = rt6_alloc_clone(rt, &fl6->daddr);