Commit 52e16356 authored by YOSHIFUJI Hideaki's avatar YOSHIFUJI Hideaki Committed by David S. Miller

[IPV6]: ROUTE: Add router_probe_interval sysctl.

Signed-off-by: default avatarYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 930d6ff2
...@@ -789,6 +789,12 @@ mtu - INTEGER ...@@ -789,6 +789,12 @@ mtu - INTEGER
Default Maximum Transfer Unit Default Maximum Transfer Unit
Default: 1280 (IPv6 required minimum) Default: 1280 (IPv6 required minimum)
router_probe_interval - INTEGER
Minimum interval (in seconds) between Router Probing described
in RFC4191.
Default: 60
router_solicitation_delay - INTEGER router_solicitation_delay - INTEGER
Number of seconds to wait after interface is brought up Number of seconds to wait after interface is brought up
before sending Router Solicitations. before sending Router Solicitations.
......
...@@ -149,6 +149,7 @@ struct ipv6_devconf { ...@@ -149,6 +149,7 @@ struct ipv6_devconf {
__s32 accept_ra_pinfo; __s32 accept_ra_pinfo;
#ifdef CONFIG_IPV6_ROUTER_PREF #ifdef CONFIG_IPV6_ROUTER_PREF
__s32 accept_ra_rtr_pref; __s32 accept_ra_rtr_pref;
__s32 rtr_probe_interval;
#endif #endif
void *sysctl; void *sysctl;
}; };
...@@ -175,6 +176,7 @@ enum { ...@@ -175,6 +176,7 @@ enum {
DEVCONF_ACCEPT_RA_DEFRTR, DEVCONF_ACCEPT_RA_DEFRTR,
DEVCONF_ACCEPT_RA_PINFO, DEVCONF_ACCEPT_RA_PINFO,
DEVCONF_ACCEPT_RA_RTR_PREF, DEVCONF_ACCEPT_RA_RTR_PREF,
DEVCONF_RTR_PROBE_INTERVAL,
DEVCONF_MAX DEVCONF_MAX
}; };
......
...@@ -534,6 +534,7 @@ enum { ...@@ -534,6 +534,7 @@ enum {
NET_IPV6_ACCEPT_RA_DEFRTR=18, NET_IPV6_ACCEPT_RA_DEFRTR=18,
NET_IPV6_ACCEPT_RA_PINFO=19, NET_IPV6_ACCEPT_RA_PINFO=19,
NET_IPV6_ACCEPT_RA_RTR_PREF=20, NET_IPV6_ACCEPT_RA_RTR_PREF=20,
NET_IPV6_RTR_PROBE_INTERVAL=21,
__NET_IPV6_MAX __NET_IPV6_MAX
}; };
......
...@@ -169,6 +169,7 @@ struct ipv6_devconf ipv6_devconf = { ...@@ -169,6 +169,7 @@ struct ipv6_devconf ipv6_devconf = {
.accept_ra_pinfo = 1, .accept_ra_pinfo = 1,
#ifdef CONFIG_IPV6_ROUTER_PREF #ifdef CONFIG_IPV6_ROUTER_PREF
.accept_ra_rtr_pref = 1, .accept_ra_rtr_pref = 1,
.rtr_probe_interval = 60 * HZ,
#endif #endif
}; };
...@@ -195,6 +196,7 @@ static struct ipv6_devconf ipv6_devconf_dflt = { ...@@ -195,6 +196,7 @@ static struct ipv6_devconf ipv6_devconf_dflt = {
.accept_ra_pinfo = 1, .accept_ra_pinfo = 1,
#ifdef CONFIG_IPV6_ROUTER_PREF #ifdef CONFIG_IPV6_ROUTER_PREF
.accept_ra_rtr_pref = 1, .accept_ra_rtr_pref = 1,
.rtr_probe_interval = 60 * HZ,
#endif #endif
}; };
...@@ -3130,6 +3132,7 @@ static void inline ipv6_store_devconf(struct ipv6_devconf *cnf, ...@@ -3130,6 +3132,7 @@ static void inline ipv6_store_devconf(struct ipv6_devconf *cnf,
array[DEVCONF_ACCEPT_RA_PINFO] = cnf->accept_ra_pinfo; array[DEVCONF_ACCEPT_RA_PINFO] = cnf->accept_ra_pinfo;
#ifdef CONFIG_IPV6_ROUTER_PREF #ifdef CONFIG_IPV6_ROUTER_PREF
array[DEVCONF_ACCEPT_RA_RTR_PREF] = cnf->accept_ra_rtr_pref; array[DEVCONF_ACCEPT_RA_RTR_PREF] = cnf->accept_ra_rtr_pref;
array[DEVCONF_RTR_PROBE_INTERVAL] = cnf->rtr_probe_interval;
#endif #endif
} }
...@@ -3608,6 +3611,15 @@ static struct addrconf_sysctl_table ...@@ -3608,6 +3611,15 @@ static struct addrconf_sysctl_table
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{
.ctl_name = NET_IPV6_RTR_PROBE_INTERVAL,
.procname = "router_probe_interval",
.data = &ipv6_devconf.rtr_probe_interval,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = &proc_dointvec_jiffies,
.strategy = &sysctl_jiffies,
},
#endif #endif
{ {
.ctl_name = 0, /* sentinel */ .ctl_name = 0, /* sentinel */
......
...@@ -234,7 +234,7 @@ static void rt6_probe(struct rt6_info *rt) ...@@ -234,7 +234,7 @@ static void rt6_probe(struct rt6_info *rt)
return; return;
read_lock_bh(&neigh->lock); read_lock_bh(&neigh->lock);
if (!(neigh->nud_state & NUD_VALID) && if (!(neigh->nud_state & NUD_VALID) &&
time_after(jiffies, neigh->updated + 60 * HZ)) { time_after(jiffies, neigh->updated + rt->rt6i_idev->cnf.rtr_probe_interval)) {
struct in6_addr mcaddr; struct in6_addr mcaddr;
struct in6_addr *target; struct in6_addr *target;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment