test-network: test MultiPathRoute= via another interface

Prompted by https://github.com/systemd/systemd/pull/14194#issuecomment-1795489641.
This commit is contained in:
Yu Watanabe 2023-11-07 03:20:38 +09:00 committed by Luca Boccassi
parent 8691613c68
commit d377949085
3 changed files with 28 additions and 1 deletions

View file

@ -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

View 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

View file

@ -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)