projects
/
GitHub
/
moto-9609
/
android_kernel_motorola_exynos9610.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
74553b0
)
[IPV6] NDISC: Avoid updating neighbor cache for proxied address in receiving NA.
author
Ville Nuorvala
<vnuorval@tcs.hut.fi>
Fri, 22 Sep 2006 21:42:46 +0000
(14:42 -0700)
committer
David S. Miller
<davem@sunset.davemloft.net>
Fri, 22 Sep 2006 22:20:23 +0000
(15:20 -0700)
This aims at proxying router not updating neighbor cache entry for proxied
address when it receives NA because either the proxied node is off link or
it has already sent a NA to the proxied router.
Based on MIPL2 kernel patch.
Signed-off-by: Ville Nuorvala <vnuorval@tcs.hut.fi>
Signed-off-by: Masahide NAKAMURA <nakam@linux-ipv6.org>
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
net/ipv6/ndisc.c
patch
|
blob
|
blame
|
history
diff --git
a/net/ipv6/ndisc.c
b/net/ipv6/ndisc.c
index ed01f9a330d6d6eb2900ddcf44a08be81381ee0b..0e0d6ce6902134617bb360e980c75ad9eb8cec28 100644
(file)
--- a/
net/ipv6/ndisc.c
+++ b/
net/ipv6/ndisc.c
@@
-952,6
+952,15
@@
static void ndisc_recv_na(struct sk_buff *skb)
if (neigh->nud_state & NUD_FAILED)
goto out;
+ /*
+ * Don't update the neighbor cache entry on a proxy NA from
+ * ourselves because either the proxied node is off link or it
+ * has already sent a NA to us.
+ */
+ if (lladdr && !memcmp(lladdr, dev->dev_addr, dev->addr_len) &&
+ pneigh_lookup(&nd_tbl, &msg->target, dev, 0))
+ goto out;
+
neigh_update(neigh, lladdr,
msg->icmph.icmp6_solicited ? NUD_REACHABLE : NUD_STALE,
NEIGH_UPDATE_F_WEAK_OVERRIDE|