From: Shmulik Ladkani Date: Sun, 2 Dec 2012 01:44:53 +0000 (+0000) Subject: ipv6: Make 'addrconf_rs_timer' send Router Solicitations (and re-arm itself) if Route... X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=9ba2add3cf5c103b7236f82a023c8ee05a51e4d1;p=openwrt%2Fstaging%2Fblogic.git 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 Signed-off-by: Shmulik Ladkani Signed-off-by: David S. Miller --- 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 */