From f911da60ac8a5058b8182c30f765e12d7bdaf943 Mon Sep 17 00:00:00 2001 From: Niraj Kumar Goit Date: Wed, 13 Dec 2017 11:38:15 +0530 Subject: [PATCH] [Upstream] Wait 4 seconds for RA before re-sending RS messages. As per RFC 4861, a host should transmit up to 3 Router Solicitation messages, each separated by at least RTR_SOLICITATION_INTERVAL(4) seconds to obtain RA for IPv6 auto-configuration. Change-Id: I970a69737dd0dd030291d725888cac64bddd6b16 Signed-off-by: Niraj Kumar Goit --- src/network.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/network.c b/src/network.c index 23ba727..64c26cc 100755 --- a/src/network.c +++ b/src/network.c @@ -46,6 +46,13 @@ #define WIFI_BSSID_LEN_MAX 6 #endif +/* + * As per RFC 4861, a host should transmit up to MAX_RTR_SOLICITATIONS(3) + * Router Solicitation messages, each separated by at least + * RTR_SOLICITATION_INTERVAL(4) seconds to obtain RA for IPv6 auto-configuration. + */ +#define RTR_SOLICITATION_INTERVAL 4 + static GSList *network_list = NULL; static GSList *driver_list = NULL; @@ -461,7 +468,7 @@ static void check_dhcpv6(struct nd_router_advert *reply, DBG("re-send router solicitation %d", network->router_solicit_count); network->router_solicit_count--; - __connman_inet_ipv6_send_rs(network->index, 1, + __connman_inet_ipv6_send_rs(network->index, RTR_SOLICITATION_INTERVAL, check_dhcpv6, network); return; } @@ -632,7 +639,8 @@ static void autoconf_ipv6_set(struct connman_network *network) /* Try to get stateless DHCPv6 information, RFC 3736 */ network->router_solicit_count = 3; - __connman_inet_ipv6_send_rs(index, 1, check_dhcpv6, network); + __connman_inet_ipv6_send_rs(index, RTR_SOLICITATION_INTERVAL, + check_dhcpv6, network); } static void set_connected(struct connman_network *network) -- 2.7.4