From d377949085cede60e038d55487dfb61638666535 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 7 Nov 2023 03:20:38 +0900 Subject: [PATCH] test-network: test MultiPathRoute= via another interface Prompted by https://github.com/systemd/systemd/pull/14194#issuecomment-1795489641. --- .../conf/25-route-static-test1.network | 14 ++++++++++++++ test/test-network/conf/25-route-static.network | 6 ++++++ test/test-network/systemd-networkd-tests.py | 9 ++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 test/test-network/conf/25-route-static-test1.network 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 index 00000000000..9ea521a11b8 --- /dev/null +++ b/test/test-network/conf/25-route-static-test1.network @@ -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 diff --git a/test/test-network/conf/25-route-static.network b/test/test-network/conf/25-route-static.network index 44acb19f345..3574f021b0f 100644 --- a/test/test-network/conf/25-route-static.network +++ b/test/test-network/conf/25-route-static.network @@ -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 diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index f36bcaa44db..fd2906ef6b9 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -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)