[IPV6] NDISC: Add proxy_ndp sysctl.
We do not always need proxy NDP functionality even we enable forwarding. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
62dd93181a
commit
fbea49e1e2
@@ -824,6 +824,7 @@ static void ndisc_recv_ns(struct sk_buff *skb)
|
||||
|
||||
if (ipv6_chk_acast_addr(dev, &msg->target) ||
|
||||
(idev->cnf.forwarding &&
|
||||
(ipv6_devconf.proxy_ndp || idev->cnf.proxy_ndp) &&
|
||||
(pneigh = pneigh_lookup(&nd_tbl,
|
||||
&msg->target, dev, 0)) != NULL)) {
|
||||
if (!(NEIGH_CB(skb)->flags & LOCALLY_ENQUEUED) &&
|
||||
@@ -966,8 +967,13 @@ static void ndisc_recv_na(struct sk_buff *skb)
|
||||
* 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))
|
||||
ipv6_devconf.forwarding && ipv6_devconf.proxy_ndp &&
|
||||
pneigh_lookup(&nd_tbl, &msg->target, dev, 0)) {
|
||||
/* XXX: idev->cnf.prixy_ndp */
|
||||
WARN_ON(skb->dst != NULL &&
|
||||
((struct rt6_info *)skb->dst)->rt6i_idev);
|
||||
goto out;
|
||||
}
|
||||
|
||||
neigh_update(neigh, lladdr,
|
||||
msg->icmph.icmp6_solicited ? NUD_REACHABLE : NUD_STALE,
|
||||
|
Reference in New Issue
Block a user