From e99f762346ae018ce5b76b729a12f0cd091aec43 Mon Sep 17 00:00:00 2001 From: Alexander Chernavin Date: Sat, 5 Mar 2022 15:51:54 +0000 Subject: ip6-nd: stop sending RA by default Type: improvement Currently, RA message sending is enabled by default - both periodic and in response to RS message. However, RFC 4861 section 6.2.1 says the following: Note that AdvSendAdvertisements MUST be FALSE by default so that a node will not accidentally start acting as a router unless it is explicitly configured by system management to send Router Advertisements. With this change, RA message sending is disabled by default and "test_ip6.TestIPv6.test_rs" updated appropriately. Signed-off-by: Alexander Chernavin Change-Id: I2a8865199cb665c59268504aefe2976e5ee96dc2 --- src/vnet/ip6-nd/ip6_ra.c | 3 --- test/test_ip6.py | 7 +++++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/vnet/ip6-nd/ip6_ra.c b/src/vnet/ip6-nd/ip6_ra.c index dac5ec09937..2985ac44be2 100644 --- a/src/vnet/ip6-nd/ip6_ra.c +++ b/src/vnet/ip6-nd/ip6_ra.c @@ -1391,9 +1391,6 @@ ip6_ra_link_enable (u32 sw_if_index) radv_info->initial_adverts_sent = radv_info->initial_adverts_count - 1; radv_info->initial_adverts_interval = MAX_INITIAL_RTR_ADVERT_INTERVAL; - /* deafult is to send */ - radv_info->send_radv = 1; - /* fill in delegate for this interface that will be needed later */ radv_info->adv_link_mtu = vnet_sw_interface_get_mtu (vnet_get_main (), sw_if_index, VNET_MTU_IP6); diff --git a/test/test_ip6.py b/test/test_ip6.py index 3c79496d991..c86cb777aed 100644 --- a/test/test_ip6.py +++ b/test/test_ip6.py @@ -676,6 +676,8 @@ class TestIPv6(TestIPv6ND): Test scenario: """ + self.pg0.ip6_ra_config(no=1, suppress=1) + # # Before we begin change the IPv6 RA responses to use the unicast # address - that way we will not confuse them with the periodic @@ -771,7 +773,7 @@ class TestIPv6(TestIPv6ND): # If we happen to pick up the periodic RA at this point then so be it, # it's not an error. # - self.pg0.ip6_ra_config(send_unicast=1, suppress=0) + self.pg0.ip6_ra_config(send_unicast=1) p = (Ether(dst=dmac, src=self.pg0.remote_mac) / IPv6(dst="ff02::2", src="::") / ICMPv6ND_RS()) @@ -979,7 +981,8 @@ class TestIPv6(TestIPv6ND): # # Reset the periodic advertisements back to default values # - self.pg0.ip6_ra_config(no=1, suppress=1, send_unicast=0) + self.pg0.ip6_ra_config(suppress=1) + self.pg0.ip6_ra_config(no=1, send_unicast=1) def test_mld(self): """ MLD Report """ -- cgit 1.2.3-korg