diff options
author | Patrick Rohr <prohr@google.com> | 2023-10-10 00:13:02 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-10-10 00:13:02 +0000 |
commit | fc3ba1a8a65fedc575d8bc10ae9028380ed498b6 (patch) | |
tree | 3655b33798ef31bdc2137fe4712089c671246a97 | |
parent | c2415195bfa004e75774c35e4edf9e024d95a05c (diff) | |
parent | 6890bde6d0b858f8dae6ccba100a73b38fb7f084 (diff) | |
download | tests-fc3ba1a8a65fedc575d8bc10ae9028380ed498b6.tar.gz |
Add tests for ra_honor_pio_life am: 55c763f684 am: 2ddde83b68 am: 9a0052e33a am: 6890bde6d0
Original change: https://android-review.googlesource.com/c/kernel/tests/+/2736034
Change-Id: I4acc25f4d2981ce98e0ce6d3521b1e0bcb28afd0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | net/test/multinetwork_base.py | 3 | ||||
-rwxr-xr-x | net/test/multinetwork_test.py | 29 |
2 files changed, 32 insertions, 0 deletions
diff --git a/net/test/multinetwork_base.py b/net/test/multinetwork_base.py index b02eaa3..5bf9b03 100644 --- a/net/test/multinetwork_base.py +++ b/net/test/multinetwork_base.py @@ -56,10 +56,13 @@ ACCEPT_RA_MIN_LFT_SYSCTL = "/proc/sys/net/ipv6/conf/default/accept_ra_min_lft" AUTOCONF_TABLE_SYSCTL = "/proc/sys/net/ipv6/conf/default/accept_ra_rt_table" IPV4_MARK_REFLECT_SYSCTL = "/proc/sys/net/ipv4/fwmark_reflect" IPV6_MARK_REFLECT_SYSCTL = "/proc/sys/net/ipv6/fwmark_reflect" +RA_HONOR_PIO_LIFE_SYSCTL = "/proc/sys/net/ipv6/conf/default/ra_honor_pio_life" HAVE_ACCEPT_RA_MIN_LFT = (os.path.isfile(ACCEPT_RA_MIN_LFT_SYSCTL) or net_test.KernelAtLeast([(6, 6, 0)])) HAVE_AUTOCONF_TABLE = os.path.isfile(AUTOCONF_TABLE_SYSCTL) +HAVE_RA_HONOR_PIO_LIFE = (os.path.isfile(RA_HONOR_PIO_LIFE_SYSCTL) or + net_test.KernelAtLeast([(6, 7, 0)])) class ConfigurationError(AssertionError): diff --git a/net/test/multinetwork_test.py b/net/test/multinetwork_test.py index ec128b4..d106239 100755 --- a/net/test/multinetwork_test.py +++ b/net/test/multinetwork_test.py @@ -599,6 +599,8 @@ class RIOTest(multinetwork_base.MultiNetworkBaseTest): self.SetAcceptRaRtInfoMaxPlen(0) if multinetwork_base.HAVE_ACCEPT_RA_MIN_LFT: self.SetAcceptRaMinLft(0) + if multinetwork_base.HAVE_RA_HONOR_PIO_LIFE: + self.SetRaHonorPioLife(0) def GetRoutingTable(self): return self._TableForNetid(self.NETID) @@ -629,6 +631,14 @@ class RIOTest(multinetwork_base.MultiNetworkBaseTest): return int(self.GetSysctl( "/proc/sys/net/ipv6/conf/%s/accept_ra_min_lft" % self.IFACE)) + def SetRaHonorPioLife(self, enabled): + self.SetSysctl( + "/proc/sys/net/ipv6/conf/%s/ra_honor_pio_life" % self.IFACE, enabled) + + def GetRaHonorPioLife(self): + return int(self.GetSysctl( + "/proc/sys/net/ipv6/conf/%s/ra_honor_pio_life" % self.IFACE)) + def SendRIO(self, rtlifetime, plen, prefix, prf): options = scapy.ICMPv6NDOptRouteInfo(rtlifetime=rtlifetime, plen=plen, prefix=prefix, prf=prf) @@ -804,6 +814,25 @@ class RIOTest(multinetwork_base.MultiNetworkBaseTest): self.SetAcceptRaMinLft(500) self.assertEqual(500, self.GetAcceptRaMinLft()) + @unittest.skipUnless(multinetwork_base.HAVE_RA_HONOR_PIO_LIFE, + "need support for ra_honor_pio_life") + def testRaHonorPioLifeReadWrite(self): + self.assertEqual(0, self.GetRaHonorPioLife()) + self.SetRaHonorPioLife(1) + self.assertEqual(1, self.GetRaHonorPioLife()) + + @unittest.skipUnless(multinetwork_base.HAVE_RA_HONOR_PIO_LIFE, + "need support for ra_honor_pio_life") + def testRaHonorPioLife(self): + self.SetRaHonorPioLife(1) + + # Test setup has sent an initial RA -- expire it. + self.SendRA(self.NETID, routerlft=0, piolft=0) + time.sleep(0.1) # Give the kernel time to notice our RA + + # Assert that the address was deleted. + self.assertIsNone(self.MyAddress(6, self.NETID)) + @unittest.skipUnless(multinetwork_base.HAVE_ACCEPT_RA_MIN_LFT, "need support for accept_ra_min_lft") def testAcceptRaMinLftRouterLifetime(self): |