]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-network: test MultiPathRoute= via another interface
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 6 Nov 2023 18:20:38 +0000 (03:20 +0900)
committerLuca Boccassi <luca.boccassi@gmail.com>
Mon, 6 Nov 2023 20:59:49 +0000 (20:59 +0000)
Prompted by https://github.com/systemd/systemd/pull/14194#issuecomment-1795489641.

test/test-network/conf/25-route-static-test1.network [new file with mode: 0644]
test/test-network/conf/25-route-static.network
test/test-network/systemd-networkd-tests.py

diff --git a/test/test-network/conf/25-route-static-test1.network b/test/test-network/conf/25-route-static-test1.network
new file mode 100644 (file)
index 0000000..9ea521a
--- /dev/null
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Match]
+Name=test1
+
+[Network]
+IPv6AcceptRA=no
+Address=2001:1234:5:8f63::2/128
+Address=149.10.123.58/28
+
+[Route]
+Destination=2001:1234:5:6fff:ff:ff:ff:ff/128
+
+[Route]
+Destination=2001:1234:5:7fff:ff:ff:ff:ff/128
index 44acb19f3452575910ecadba6f690a49331899af..3574f021b0f47cbfb613360ef63096d60dbc1824 100644 (file)
@@ -90,15 +90,21 @@ Destination=149.10.123.4
 
 [Route]
 Destination=192.168.10.1/32
+MultiPathRoute=149.10.123.59@test1 20
+MultiPathRoute=149.10.123.60@test1 30
 MultiPathRoute=149.10.124.59 10
 MultiPathRoute=149.10.124.60 5
 
 [Route]
 Destination=2001:1234:5:7fff:ff:ff:ff:ff/128
+MultiPathRoute=2001:1234:5:6fff:ff:ff:ff:ff@test1 20
+MultiPathRoute=2001:1234:5:7fff:ff:ff:ff:ff@test1 30
 MultiPathRoute=2001:1234:5:8fff:ff:ff:ff:ff@dummy98 10
 MultiPathRoute=2001:1234:5:9fff:ff:ff:ff:ff@dummy98 5
 
 [Route]
 Destination=192.168.10.2/32
+MultiPathRoute=2001:1234:5:6fff:ff:ff:ff:ff@test1 20
+MultiPathRoute=2001:1234:5:7fff:ff:ff:ff:ff@test1 30
 MultiPathRoute=2001:1234:5:8fff:ff:ff:ff:ff@dummy98 10
 MultiPathRoute=2001:1234:5:9fff:ff:ff:ff:ff@dummy98 5
index f36bcaa44db717880bd10756aaf622ad8a6c2194..fd2906ef6b92b8f29b0c5a11471b53def73b65b3 100755 (executable)
@@ -3049,7 +3049,8 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
         if not manage_foreign_routes:
             copy_networkd_conf_dropin('networkd-manage-foreign-routes-no.conf')
 
-        copy_network_unit('25-route-static.network', '12-dummy.netdev')
+        copy_network_unit('25-route-static.network', '12-dummy.netdev',
+                          '25-route-static-test1.network', '11-dummy.netdev')
         start_networkd()
         self.wait_online(['dummy98:routable'])
 
@@ -3129,6 +3130,8 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
         output = check_output('ip route show 192.168.10.1')
         print(output)
         self.assertIn('192.168.10.1 proto static', output)
+        self.assertIn('nexthop via 149.10.123.59 dev test1 weight 20', output)
+        self.assertIn('nexthop via 149.10.123.60 dev test1 weight 30', output)
         self.assertIn('nexthop via 149.10.124.59 dev dummy98 weight 10', output)
         self.assertIn('nexthop via 149.10.124.60 dev dummy98 weight 5', output)
 
@@ -3138,6 +3141,8 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
         # old ip command does not show IPv6 gateways...
         self.assertIn('192.168.10.2 proto static', output)
         self.assertIn('nexthop', output)
+        self.assertIn('dev test1 weight 20', output)
+        self.assertIn('dev test1 weight 30', output)
         self.assertIn('dev dummy98 weight 10', output)
         self.assertIn('dev dummy98 weight 5', output)
 
@@ -3146,6 +3151,8 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
         print(output)
         # old ip command does not show 'nexthop' keyword and weight...
         self.assertIn('2001:1234:5:7fff:ff:ff:ff:ff', output)
+        self.assertIn('via 2001:1234:5:6fff:ff:ff:ff:ff dev test1', output)
+        self.assertIn('via 2001:1234:5:7fff:ff:ff:ff:ff dev test1', output)
         self.assertIn('via 2001:1234:5:8fff:ff:ff:ff:ff dev dummy98', output)
         self.assertIn('via 2001:1234:5:9fff:ff:ff:ff:ff dev dummy98', output)