diff options
author | Shmulik Ladkani <shmulik.ladkani@gmail.com> | 2012-12-02 02:44:53 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-12-03 19:59:57 +0100 |
commit | 9ba2add3cf5c103b7236f82a023c8ee05a51e4d1 (patch) | |
tree | 8469098d33a0786b3d1f016f1206d54028738683 /net/ipv6 | |
parent | sky2: fix cleanup sequence in probe() function (diff) | |
download | linux-9ba2add3cf5c103b7236f82a023c8ee05a51e4d1.tar.xz linux-9ba2add3cf5c103b7236f82a023c8ee05a51e4d1.zip |
ipv6: Make 'addrconf_rs_timer' send Router Solicitations (and re-arm itself) if Router Advertisements are accepted
As of 026359b [ipv6: Send ICMPv6 RSes only when RAs are accepted],
Router Solicitations are sent whenever kernel accepts Router
Advertisements on the interface.
However, this logic isn't reflected in 'addrconf_rs_timer'.
The timer fails to issue subsequent RS messages (and fails to re-arm
itself) if forwarding is enabled and the special hybrid mode is
enabled (accept_ra=2).
Fix the condition determining whether next RS should be sent, by using
'ipv6_accept_ra()'.
Reported-by: Ami Koren <amikoren@yahoo.com>
Signed-off-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/addrconf.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 4b644f656c41..22ae75d54017 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -2988,7 +2988,7 @@ static void addrconf_rs_timer(unsigned long data) if (idev->dead || !(idev->if_flags & IF_READY)) goto out; - if (idev->cnf.forwarding) + if (!ipv6_accept_ra(idev)) goto out; /* Announcement received after solicitation was sent */ |