UPSTREAM: ipv6 addrconf: implement RFC7559 router solicitation backoff
authorMaciej Żenczykowski <maze@google.com>
Wed, 28 Sep 2016 06:57:58 +0000 (23:57 -0700)
committerAmit Pundir <amit.pundir@linaro.org>
Mon, 10 Apr 2017 07:59:27 +0000 (13:29 +0530)
commitf8dc2db873ec44ab98cf5ecdec3b16d092eea80e
tree4f86e68d9b3962ebeccb9a23dae53c73ea4ee5ff
parentaadba8263313c853416a3c33f23b1d8c077c3f39
UPSTREAM: ipv6 addrconf: implement RFC7559 router solicitation backoff

This implements:
  https://tools.ietf.org/html/rfc7559

Backoff is performed according to RFC3315 section 14:
  https://tools.ietf.org/html/rfc3315#section-14

We allow setting /proc/sys/net/ipv6/conf/*/router_solicitations
to a negative value meaning an unlimited number of retransmits,
and we make this the new default (inline with the RFC).

We also add a new setting:
  /proc/sys/net/ipv6/conf/*/router_solicitation_max_interval
defaulting to 1 hour (per RFC recommendation).

Signed-off-by: Maciej Żenczykowski <maze@google.com>
Acked-by: Erik Kline <ek@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit bd11f0741fa5a2c296629898ad07759dd12b35bb in
DaveM's net-next/master, should make Linus' tree in 4.9-rc1)
Change-Id: Ia32cdc5c61481893ef8040734e014bf2229fc39e
include/linux/ipv6.h
include/net/addrconf.h
include/net/if_inet6.h
net/ipv6/addrconf.c