ipv6: Enable new mode proxy_ndp == 2

This new mode allows Neighbor discovery packets to be sent to userspace
without regards to the state of the forwarding setting. Without this, NDP
packets addressed to the host are still received, but those for other
addresses are not.

Enabling this mode allows NDP proxying to be performed from userspace.

Change-Id: I69b7a7c0c42e3253c42d6f2e163c0ce1d848aed6
Signed-off-by: Jaime Lopez <jaimel@codeaurora.org>
This commit is contained in:
Jaime Lopez 2011-05-25 23:19:11 -07:00 committed by Stephen Boyd
parent f7b8e3517b
commit c433362e33
2 changed files with 10 additions and 3 deletions

View file

@ -1084,9 +1084,15 @@ conf/all/forwarding - BOOLEAN
This referred to as global forwarding.
proxy_ndp - BOOLEAN
proxy_ndp - INTEGER
Do proxy ndp.
Possible values are:
0 Proxy NDP is disabled
1 Proxy NDP is enabled
2 NDP packets are sent to userspace, where a userspace proxy
can be implemented
conf/interface/*:
Change special settings per interface.

View file

@ -401,8 +401,9 @@ int ip6_forward(struct sk_buff *skb)
}
/* XXX: idev->cnf.proxy_ndp? */
if (net->ipv6.devconf_all->proxy_ndp &&
pneigh_lookup(&nd_tbl, net, &hdr->daddr, skb->dev, 0)) {
if ((net->ipv6.devconf_all->proxy_ndp == 1 &&
pneigh_lookup(&nd_tbl, net, &hdr->daddr, skb->dev, 0))
|| net->ipv6.devconf_all->proxy_ndp >= 2) {
int proxied = ip6_forward_proxy_check(skb);
if (proxied > 0)
return ip6_input(skb);