ip6-nd: stop sending RA by default 53/35553/4
authorAlexander Chernavin <[email protected]>
Sat, 5 Mar 2022 15:51:54 +0000 (15:51 +0000)
committerMatthew Smith <[email protected]>
Thu, 24 Mar 2022 14:26:28 +0000 (14:26 +0000)
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 <[email protected]>
Change-Id: I2a8865199cb665c59268504aefe2976e5ee96dc2

src/vnet/ip6-nd/ip6_ra.c
test/test_ip6.py

index dac5ec0..2985ac4 100644 (file)
@@ -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);
index 3c79496..c86cb77 100644 (file)
@@ -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 """