Loading Documentation/networking/ip-sysctl.txt +3 −0 Original line number Diff line number Diff line Loading @@ -765,6 +765,9 @@ conf/all/forwarding - BOOLEAN This referred to as global forwarding. proxy_ndp - BOOLEAN Do proxy ndp. conf/interface/*: Change special settings per interface. Loading include/linux/ipv6.h +2 −0 Original line number Diff line number Diff line Loading @@ -176,6 +176,7 @@ struct ipv6_devconf { __s32 accept_ra_rt_info_max_plen; #endif #endif __s32 proxy_ndp; void *sysctl; }; Loading Loading @@ -203,6 +204,7 @@ enum { DEVCONF_ACCEPT_RA_RTR_PREF, DEVCONF_RTR_PROBE_INTERVAL, DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN, DEVCONF_PROXY_NDP, DEVCONF_MAX }; Loading include/linux/sysctl.h +1 −0 Original line number Diff line number Diff line Loading @@ -556,6 +556,7 @@ enum { NET_IPV6_ACCEPT_RA_RTR_PREF=20, NET_IPV6_RTR_PROBE_INTERVAL=21, NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22, NET_IPV6_PROXY_NDP=23, __NET_IPV6_MAX }; Loading net/ipv6/addrconf.c +11 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,7 @@ struct ipv6_devconf ipv6_devconf __read_mostly = { .accept_ra_rt_info_max_plen = 0, #endif #endif .proxy_ndp = 0, }; static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = { Loading Loading @@ -205,6 +206,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = { .accept_ra_rt_info_max_plen = 0, #endif #endif .proxy_ndp = 0, }; /* IPv6 Wildcard Address and Loopback Address defined by RFC2553 */ Loading Loading @@ -3337,6 +3339,7 @@ static void inline ipv6_store_devconf(struct ipv6_devconf *cnf, array[DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN] = cnf->accept_ra_rt_info_max_plen; #endif #endif array[DEVCONF_PROXY_NDP] = cnf->proxy_ndp; } /* Maximum length of ifinfomsg attributes */ Loading Loading @@ -3859,6 +3862,14 @@ static struct addrconf_sysctl_table }, #endif #endif { .ctl_name = NET_IPV6_PROXY_NDP, .procname = "proxy_ndp", .data = &ipv6_devconf.proxy_ndp, .maxlen = sizeof(int), .mode = 0644, .proc_handler = &proc_dointvec, }, { .ctl_name = 0, /* sentinel */ } Loading net/ipv6/ip6_output.c +3 −1 Original line number Diff line number Diff line Loading @@ -412,7 +412,9 @@ int ip6_forward(struct sk_buff *skb) return -ETIMEDOUT; } if (pneigh_lookup(&nd_tbl, &hdr->daddr, skb->dev, 0)) { /* XXX: idev->cnf.proxy_ndp? */ if (ipv6_devconf.proxy_ndp && pneigh_lookup(&nd_tbl, &hdr->daddr, skb->dev, 0)) { int proxied = ip6_forward_proxy_check(skb); if (proxied > 0) return ip6_input(skb); Loading Loading
Documentation/networking/ip-sysctl.txt +3 −0 Original line number Diff line number Diff line Loading @@ -765,6 +765,9 @@ conf/all/forwarding - BOOLEAN This referred to as global forwarding. proxy_ndp - BOOLEAN Do proxy ndp. conf/interface/*: Change special settings per interface. Loading
include/linux/ipv6.h +2 −0 Original line number Diff line number Diff line Loading @@ -176,6 +176,7 @@ struct ipv6_devconf { __s32 accept_ra_rt_info_max_plen; #endif #endif __s32 proxy_ndp; void *sysctl; }; Loading Loading @@ -203,6 +204,7 @@ enum { DEVCONF_ACCEPT_RA_RTR_PREF, DEVCONF_RTR_PROBE_INTERVAL, DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN, DEVCONF_PROXY_NDP, DEVCONF_MAX }; Loading
include/linux/sysctl.h +1 −0 Original line number Diff line number Diff line Loading @@ -556,6 +556,7 @@ enum { NET_IPV6_ACCEPT_RA_RTR_PREF=20, NET_IPV6_RTR_PROBE_INTERVAL=21, NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22, NET_IPV6_PROXY_NDP=23, __NET_IPV6_MAX }; Loading
net/ipv6/addrconf.c +11 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,7 @@ struct ipv6_devconf ipv6_devconf __read_mostly = { .accept_ra_rt_info_max_plen = 0, #endif #endif .proxy_ndp = 0, }; static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = { Loading Loading @@ -205,6 +206,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = { .accept_ra_rt_info_max_plen = 0, #endif #endif .proxy_ndp = 0, }; /* IPv6 Wildcard Address and Loopback Address defined by RFC2553 */ Loading Loading @@ -3337,6 +3339,7 @@ static void inline ipv6_store_devconf(struct ipv6_devconf *cnf, array[DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN] = cnf->accept_ra_rt_info_max_plen; #endif #endif array[DEVCONF_PROXY_NDP] = cnf->proxy_ndp; } /* Maximum length of ifinfomsg attributes */ Loading Loading @@ -3859,6 +3862,14 @@ static struct addrconf_sysctl_table }, #endif #endif { .ctl_name = NET_IPV6_PROXY_NDP, .procname = "proxy_ndp", .data = &ipv6_devconf.proxy_ndp, .maxlen = sizeof(int), .mode = 0644, .proc_handler = &proc_dointvec, }, { .ctl_name = 0, /* sentinel */ } Loading
net/ipv6/ip6_output.c +3 −1 Original line number Diff line number Diff line Loading @@ -412,7 +412,9 @@ int ip6_forward(struct sk_buff *skb) return -ETIMEDOUT; } if (pneigh_lookup(&nd_tbl, &hdr->daddr, skb->dev, 0)) { /* XXX: idev->cnf.proxy_ndp? */ if (ipv6_devconf.proxy_ndp && pneigh_lookup(&nd_tbl, &hdr->daddr, skb->dev, 0)) { int proxied = ip6_forward_proxy_check(skb); if (proxied > 0) return ip6_input(skb); Loading