]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-network: add more testcases for *Allow/DenyList= 20513/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 23 Aug 2021 11:37:36 +0000 (20:37 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 23 Aug 2021 11:37:36 +0000 (20:37 +0900)
test/test-network/conf/dhcp-client-allow-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/dhcp-client-allow-list.network b/test/test-network/conf/dhcp-client-allow-list.network
new file mode 100644 (file)
index 0000000..8228369
--- /dev/null
@@ -0,0 +1,11 @@
+[Match]
+Name=veth99
+
+[Network]
+DHCP=ipv4
+IPv6AcceptRA=false
+
+[DHCPv4]
+# DenyList= will be ignored
+AllowList=192.168.5.0/24 192.168.6.0/24
+DenyList=192.168.5.0/24
index e18ecaf29054005fb30f63443dbd8fe15064df83..b046d9f992e203a88f8c9c6fbacb71e2fdc88939 100644 (file)
@@ -6,9 +6,8 @@ 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::
+# PrefixDenyList= will be ignored.
+PrefixAllowList=2001:db8:0:1:: 2001:db8:0:1:: 2001:db8:0:1::/64
+PrefixDenyList=2001:db8:0:1::/64 2001:db8:0:1:: 2001:db8:0:3::/64
+RouteDenyList=2001:db1:fff::/64 2001:db1:fff:: 2001:db2:fff::/64
 UseDomains=yes
index 72ad808b7187bcd24a90091abf29b1baab1b9fbc..ae74c6e2c6f5145199c811b0c2df61e4d82fc328 100644 (file)
@@ -15,6 +15,9 @@ Prefix=2001:db8:0:1::/64
 Prefix=2001:db8:0:2::/64
 Assign=yes
 
+[IPv6Prefix]
+Prefix=2001:db8:0:3::/64
+
 [IPv6RoutePrefix]
 Route=2001:db0:fff::/64
 LifetimeSec=1000
@@ -22,3 +25,7 @@ LifetimeSec=1000
 [IPv6RoutePrefix]
 Route=2001:db1:fff::/64
 LifetimeSec=1000
+
+[IPv6RoutePrefix]
+Route=2001:db2:fff::/64
+LifetimeSec=1000
index e5610bf1b2819067a4945fa520f5f26061d96355..bb27744d357ad4a25151b2d1a5398bebc7a8a298 100755 (executable)
@@ -3931,6 +3931,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
         '25-veth.netdev',
         '25-vrf.netdev',
         '25-vrf.network',
+        'dhcp-client-allow-list.network',
         'dhcp-client-anonymize.network',
         'dhcp-client-decline.network',
         'dhcp-client-gateway-ipv4.network',
@@ -4764,6 +4765,16 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
         print(output)
         self.assertRegex(output, 'inet 192.168.5.[0-9]*/24 metric 1024 brd 192.168.5.255 scope global dynamic veth99')
 
+    def test_dhcp_client_allow_list(self):
+        copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-decline.network', 'dhcp-client-allow-list.network')
+
+        start_networkd()
+        self.wait_online(['veth99:routable', 'veth-peer:routable'])
+
+        output = check_output('ip -4 address show dev veth99 scope global dynamic')
+        print(output)
+        self.assertRegex(output, 'inet 192.168.5.[0-9]*/24 metric 1024 brd 192.168.5.255 scope global dynamic veth99')
+
 class NetworkdIPv6PrefixTests(unittest.TestCase, Utilities):
     links = [
         'dummy98',
@@ -4800,18 +4811,22 @@ class NetworkdIPv6PrefixTests(unittest.TestCase, Utilities):
         print(output)
         self.assertIn('inet6 2001:db8:0:1:', output)
         self.assertNotIn('inet6 2001:db8:0:2:', output)
+        self.assertNotIn('inet6 2001:db8:0:3:', 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.assertNotIn('2001:db8:0:3::/64 proto ra', output)
         self.assertIn('2001:db0:fff::/64 via ', output)
         self.assertNotIn('2001:db1:fff::/64 via ', output)
+        self.assertNotIn('2001:db2:fff::/64 via ', output)
 
         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)
+        self.assertNotIn('inet6 2001:db8:0:3:', output)
 
         output = check_output(*resolvectl_cmd, 'dns', 'veth-peer', env=env)
         print(output)