]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-network: add tests for [IPv6AcceptRA] PrefixDenyList= or friends 18021/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 24 Dec 2020 04:50:48 +0000 (13:50 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 24 Dec 2020 08:16:15 +0000 (17:16 +0900)
test/test-network/conf/ipv6ra-prefix-client-deny-list.network [new file with mode: 0644]
test/test-network/conf/ipv6ra-prefix-client.network
test/test-network/conf/ipv6ra-prefix.network
test/test-network/systemd-networkd-tests.py

diff --git a/test/test-network/conf/ipv6ra-prefix-client-deny-list.network b/test/test-network/conf/ipv6ra-prefix-client-deny-list.network
new file mode 100644 (file)
index 0000000..ce7a76f
--- /dev/null
@@ -0,0 +1,11 @@
+[Match]
+Name=veth-peer
+
+[Network]
+DHCP=no
+IPv6AcceptRA=yes
+
+[IPv6AcceptRA]
+RouterDenyList=2001::1
+PrefixDenyList=2001:db8:0:2::
+RouteDenyList=2001:db1:fff::
index bc40b123c768196cc55b14aaa6b50b5db6205ecc..58883658f31d10e1695a75da29fb51ea264aa40b 100644 (file)
@@ -4,3 +4,10 @@ Name=veth-peer
 [Network]
 DHCP=no
 IPv6AcceptRA=yes
+
+[IPv6AcceptRA]
+# PrefixDenyList= and RouteDenyList= will be ignored.
+PrefixAllowList=2001:db8:0:1:: 2001:db8:0:1::
+PrefixDenyList=2001:db8:0:1:: 2001:db8:0:1::
+RouteAllowList=2001:db0:fff:: 2001:db0:fff::
+RouteDenyList=2001:db0:fff:: 2001:db0:fff::
index a0ac1e45379c7f854b0e0d9a9eaa7a30ecfcf5f8..cfb03f50c47b2353ef7536bae512c5978ed7a646 100644 (file)
@@ -15,3 +15,7 @@ Assign=yes
 [IPv6RoutePrefix]
 Route=2001:db0:fff::/64
 LifetimeSec=1000
+
+[IPv6RoutePrefix]
+Route=2001:db1:fff::/64
+LifetimeSec=1000
index 454e6ce66b4bde0f6b4de7d9594c07fe6edeccf0..1c4046d4f27a9968c3046ddde9451bea07d49bfc 100755 (executable)
@@ -4274,6 +4274,7 @@ class NetworkdIPv6PrefixTests(unittest.TestCase, Utilities):
 
     units = [
         '25-veth.netdev',
+        'ipv6ra-prefix-client-deny-list.network',
         'ipv6ra-prefix-client.network',
         'ipv6ra-prefix.network'
         ]
@@ -4294,14 +4295,45 @@ class NetworkdIPv6PrefixTests(unittest.TestCase, Utilities):
         start_networkd()
         self.wait_online(['veth99:routable', 'veth-peer:routable'])
 
+        output = check_output('ip address show dev veth-peer')
+        print(output)
+        self.assertIn('inet6 2001:db8:0:1:', output)
+        self.assertNotIn('inet6 2001:db8:0:2:', output)
+
         output = check_output('ip -6 route show dev veth-peer')
         print(output)
-        self.assertRegex(output, '2001:db8:0:1::/64 proto ra')
+        self.assertIn('2001:db8:0:1::/64 proto ra', output)
+        self.assertNotIn('2001:db8:0:2::/64 proto ra', output)
+        self.assertIn('2001:db0:fff::/64 via ', output)
+        self.assertNotIn('2001:db1:fff::/64 via ', output)
 
-        output = check_output('ip addr show dev veth99')
+        output = check_output('ip address show dev veth99')
+        print(output)
+        self.assertNotIn('inet6 2001:db8:0:1:', output)
+        self.assertIn('inet6 2001:db8:0:2:', output)
+
+    def test_ipv6_route_prefix_deny_list(self):
+        copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6ra-prefix-client-deny-list.network', 'ipv6ra-prefix.network')
+
+        start_networkd()
+        self.wait_online(['veth99:routable', 'veth-peer:routable'])
+
+        output = check_output('ip address show dev veth-peer')
+        print(output)
+        self.assertIn('inet6 2001:db8:0:1:', output)
+        self.assertNotIn('inet6 2001:db8:0:2:', output)
+
+        output = check_output('ip -6 route show dev veth-peer')
+        print(output)
+        self.assertIn('2001:db8:0:1::/64 proto ra', output)
+        self.assertNotIn('2001:db8:0:2::/64 proto ra', output)
+        self.assertIn('2001:db0:fff::/64 via ', output)
+        self.assertNotIn('2001:db1:fff::/64 via ', output)
+
+        output = check_output('ip address show dev veth99')
         print(output)
-        self.assertNotRegex(output, '2001:db8:0:1')
-        self.assertRegex(output, '2001:db8:0:2')
+        self.assertNotIn('inet6 2001:db8:0:1:', output)
+        self.assertIn('inet6 2001:db8:0:2:', output)
 
 class NetworkdMTUTests(unittest.TestCase, Utilities):
     links = ['dummy98']