summaryrefslogtreecommitdiffstats
path: root/test/test-network
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2024-11-11 05:51:49 +0100
committerLuca Boccassi <bluca@debian.org>2024-11-11 14:59:41 +0100
commit1ca180b994bc6a299450894ea3c836e434c8db72 (patch)
treef594ff19fd46becba686f9a783554b1c4aad1eb4 /test/test-network
parentnetwork/route: update reference of the route from nexthop (diff)
downloadsystemd-1ca180b994bc6a299450894ea3c836e434c8db72.tar.xz
systemd-1ca180b994bc6a299450894ea3c836e434c8db72.zip
network/nexthop: do not remove depending nexthops when a nexthop is removed
Previously, when a nexthop is removed, depending nexthops were removed, but that's not necessary, as the kernel keeps them, at least with v6.11.
Diffstat (limited to 'test/test-network')
-rwxr-xr-xtest/test-network/systemd-networkd-tests.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py
index 111da949ab..6b19a8a938 100755
--- a/test/test-network/systemd-networkd-tests.py
+++ b/test/test-network/systemd-networkd-tests.py
@@ -4798,11 +4798,18 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
# Remove nexthop with ID 20
check_output('ip nexthop del id 20')
+
+ # Check the nexthop ID 20 is dropped from the group nexthop.
+ output = check_output('ip -0 nexthop list id 21')
+ print(output)
+ self.assertRegex(output, r'id 21 group 1,3')
+
+ # Remove nexthop with ID 21
+ check_output('ip nexthop del id 21')
copy_network_unit('11-dummy.netdev', '25-nexthop-test1.network')
networkctl_reload()
- # 25-nexthop-test1.network requests a route with nexthop ID 21,
- # which is silently removed by the kernel when nexthop with ID 20 is removed in the above,
+ # 25-nexthop-test1.network requests a route with nexthop ID 21, which is removed in the above,
# hence test1 should be stuck in the configuring state.
self.wait_operstate('test1', operstate='routable', setup_state='configuring')
@@ -4811,7 +4818,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
output = networkctl_status('test1')
self.assertIn('State: routable (configuring)', output)
- # Check if the route which needs nexthop 20 and 21 are forgotten.
+ # Check if the route which needs nexthop 21 are forgotten.
output = networkctl_json()
check_json(output)
self.assertNotIn('"Destination":[10.10.10.14]', output)