summaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorSabrina Dubroca <sd@queasysnail.net>2018-10-12 16:22:47 +0200
committerDavid S. Miller <davem@davemloft.net>2018-10-15 22:18:27 -0700
commitf547fac624be53ad8b07e9ebca7654a7827ba61b (patch)
treee8d39c6b9c62085154052363f89245575ded7282 /include/net
parent64bd9c8135751b561f27edaaffe93d07093f81af (diff)
downloadlinux-f547fac624be53ad8b07e9ebca7654a7827ba61b.tar.bz2
ipv6: rate-limit probes for neighbourless routes
When commit 270972554c91 ("[IPV6]: ROUTE: Add Router Reachability Probing (RFC4191).") introduced router probing, the rt6_probe() function required that a neighbour entry existed. This neighbour entry is used to record the timestamp of the last probe via the ->updated field. Later, commit 2152caea7196 ("ipv6: Do not depend on rt->n in rt6_probe().") removed the requirement for a neighbour entry. Neighbourless routes skip the interval check and are not rate-limited. This patch adds rate-limiting for neighbourless routes, by recording the timestamp of the last probe in the fib6_info itself. Fixes: 2152caea7196 ("ipv6: Do not depend on rt->n in rt6_probe().") Signed-off-by: Sabrina Dubroca <sd@queasysnail.net> Reviewed-by: Stefano Brivio <sbrivio@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/ip6_fib.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h
index 3d4930528db0..2d31e22babd8 100644
--- a/include/net/ip6_fib.h
+++ b/include/net/ip6_fib.h
@@ -159,6 +159,10 @@ struct fib6_info {
struct rt6_info * __percpu *rt6i_pcpu;
struct rt6_exception_bucket __rcu *rt6i_exception_bucket;
+#ifdef CONFIG_IPV6_ROUTER_PREF
+ unsigned long last_probe;
+#endif
+
u32 fib6_metric;
u8 fib6_protocol;
u8 fib6_type;