mirror of
https://github.com/systemd/systemd.git
synced 2025-01-11 09:18:07 +03:00
test-network: add test case for removing conflicting routes
For issue #28439.
This commit is contained in:
parent
e3cc2bd9c6
commit
9fbab82bef
18
test/test-network/conf/25-veth-router-high2.network
Normal file
18
test/test-network/conf/25-veth-router-high2.network
Normal file
@ -0,0 +1,18 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[Match]
|
||||
Name=router-low
|
||||
|
||||
[Network]
|
||||
IPv6AcceptRA=no
|
||||
IPv6SendRA=yes
|
||||
|
||||
[IPv6SendRA]
|
||||
# changed from low to high
|
||||
RouterPreference=high
|
||||
EmitDNS=no
|
||||
EmitDomains=no
|
||||
|
||||
[IPv6Prefix]
|
||||
Prefix=2002:da8:1:98::/64
|
||||
PreferredLifetimeSec=1000s
|
||||
ValidLifetimeSec=2100s
|
18
test/test-network/conf/25-veth-router-low2.network
Normal file
18
test/test-network/conf/25-veth-router-low2.network
Normal file
@ -0,0 +1,18 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[Match]
|
||||
Name=router-high
|
||||
|
||||
[Network]
|
||||
IPv6AcceptRA=no
|
||||
IPv6SendRA=yes
|
||||
|
||||
[IPv6SendRA]
|
||||
# changed from high to low
|
||||
RouterPreference=low
|
||||
EmitDNS=no
|
||||
EmitDomains=no
|
||||
|
||||
[IPv6Prefix]
|
||||
Prefix=2002:da8:1:99::/64
|
||||
PreferredLifetimeSec=1000s
|
||||
ValidLifetimeSec=2100s
|
@ -5314,9 +5314,11 @@ class NetworkdRATests(unittest.TestCase, Utilities):
|
||||
|
||||
output = check_output('ip -6 route show dev client default via fe80::1034:56ff:fe78:9a99')
|
||||
print(output)
|
||||
self.assertIn('metric 512', output)
|
||||
self.assertIn('pref high', output)
|
||||
output = check_output('ip -6 route show dev client default via fe80::1034:56ff:fe78:9a98')
|
||||
print(output)
|
||||
self.assertIn('metric 2048', output)
|
||||
self.assertIn('pref low', output)
|
||||
|
||||
with open(os.path.join(network_unit_dir, '25-veth-client.network'), mode='a', encoding='utf-8') as f:
|
||||
@ -5332,11 +5334,35 @@ class NetworkdRATests(unittest.TestCase, Utilities):
|
||||
|
||||
output = check_output('ip -6 route show dev client default via fe80::1034:56ff:fe78:9a99')
|
||||
print(output)
|
||||
self.assertIn('metric 100', output)
|
||||
self.assertNotIn('metric 512', output)
|
||||
self.assertIn('pref high', output)
|
||||
output = check_output('ip -6 route show dev client default via fe80::1034:56ff:fe78:9a98')
|
||||
print(output)
|
||||
self.assertIn('metric 300', output)
|
||||
self.assertNotIn('metric 2048', output)
|
||||
self.assertIn('pref low', output)
|
||||
|
||||
# swap the preference (for issue #28439)
|
||||
remove_network_unit('25-veth-router-high.network', '25-veth-router-low.network')
|
||||
copy_network_unit('25-veth-router-high2.network', '25-veth-router-low2.network')
|
||||
networkctl_reload()
|
||||
self.wait_route('client', 'default via fe80::1034:56ff:fe78:9a99 proto ra metric 300', ipv='-6', timeout_sec=10)
|
||||
self.wait_route('client', 'default via fe80::1034:56ff:fe78:9a98 proto ra metric 100', ipv='-6', timeout_sec=10)
|
||||
|
||||
output = check_output('ip -6 route show dev client default via fe80::1034:56ff:fe78:9a99')
|
||||
print(output)
|
||||
self.assertIn('metric 300', output)
|
||||
self.assertNotIn('metric 100', output)
|
||||
self.assertIn('pref low', output)
|
||||
self.assertNotIn('pref high', output)
|
||||
output = check_output('ip -6 route show dev client default via fe80::1034:56ff:fe78:9a98')
|
||||
print(output)
|
||||
self.assertIn('metric 100', output)
|
||||
self.assertNotIn('metric 300', output)
|
||||
self.assertIn('pref high', output)
|
||||
self.assertNotIn('pref low', output)
|
||||
|
||||
@unittest.skipUnless(radvd_check_config('captive-portal.conf'), "Installed radvd doesn't support captive portals")
|
||||
def test_captive_portal(self):
|
||||
copy_network_unit('25-veth-client.netdev',
|
||||
|
Loading…
Reference in New Issue
Block a user