All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH] ipv6: do not create neighbor entries for local delivery
@ 2012-12-07 17:30 Marcelo Ricardo Leitner
  0 siblings, 0 replies; only message in thread
From: Marcelo Ricardo Leitner @ 2012-12-07 17:30 UTC (permalink / raw)
  To: netdev; +Cc: Thomas Graf, Flavio Leitner

[-- Attachment #1: Type: text/plain, Size: 1702 bytes --]

RFC comment:

Please note that I do not fully understand the impacts of this, thus why 
RFC. I don't know if this is the best way to address the issue.

I have a report that when using TPROXY and IPv6, neighbor cache gets 
flooded with empty entries, while this does not happen with IPv4. These 
empty entries looks like:

# ip -6 neigh show nud all   (I masked some bits)
...
20xx::f0xx:x:3xdb dev lo lladdr 00:00:00:00:00:00 NOARP
...

Note that this address was not directly reachable by this host. It was 1 
hop away, and still got a neighbor entry.

These entries seems to be not used during input. I disabled their 
creation and I could not notice any abnormal results.

Bellow the dashes, my original patch description. Applies to net-next.

Please advise.

Thanks,
Marcelo.

----------------

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.
---
  net/ipv6/route.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 
e229a3bc345dc4138a188282c4ab4f1717882832..e6058ab0bb94233da1eec3349e098175d5abf831 
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);
-- 
1.7.11.7


[-- Attachment #2: Seção da mensagem anexada --]
[-- Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2012-12-07 17:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-07 17:30 [RFC PATCH] ipv6: do not create neighbor entries for local delivery Marcelo Ricardo Leitner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.