提交 9ba2add3 编写于 作者: S Shmulik Ladkani 提交者: David S. Miller

ipv6: Make 'addrconf_rs_timer' send Router Solicitations (and re-arm itself)...

ipv6: Make 'addrconf_rs_timer' send Router Solicitations (and re-arm itself) if Router Advertisements are accepted

As of 026359bc [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: NAmi Koren <amikoren@yahoo.com>
Signed-off-by: NShmulik Ladkani <shmulik.ladkani@gmail.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 1c85382e
...@@ -2988,7 +2988,7 @@ static void addrconf_rs_timer(unsigned long data) ...@@ -2988,7 +2988,7 @@ static void addrconf_rs_timer(unsigned long data)
if (idev->dead || !(idev->if_flags & IF_READY)) if (idev->dead || !(idev->if_flags & IF_READY))
goto out; goto out;
if (idev->cnf.forwarding) if (!ipv6_accept_ra(idev))
goto out; goto out;
/* Announcement received after solicitation was sent */ /* Announcement received after solicitation was sent */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册