| |
@@ -2,6 +2,9 @@
|
| |
# SPDX-License-Identifier: LGPL-2.1-or-later
|
| |
# systemd-networkd tests
|
| |
|
| |
+ # These tests can be executed in the systemd mkosi image when booted in QEMU. After booting the QEMU VM,
|
| |
+ # simply run this file which can be found in the VM at /root/src/test/test-network/systemd-networkd-tests.py.
|
| |
+
|
| |
import argparse
|
| |
import errno
|
| |
import itertools
|
| |
@@ -702,7 +705,7 @@
|
| |
'12-dummy.link',
|
| |
'25-address-static.network',
|
| |
'25-veth.netdev',
|
| |
- 'netdev-link-local-addressing-yes.network',
|
| |
+ '26-netdev-link-local-addressing-yes.network',
|
| |
]
|
| |
|
| |
def setUp(self):
|
| |
@@ -716,7 +719,7 @@
|
| |
|
| |
@expectedFailureIfAlternativeNameIsNotAvailable()
|
| |
def test_altname(self):
|
| |
- copy_unit_to_networkd_unit_path('netdev-link-local-addressing-yes.network', '12-dummy.netdev', '12-dummy.link')
|
| |
+ copy_unit_to_networkd_unit_path('26-netdev-link-local-addressing-yes.network', '12-dummy.netdev', '12-dummy.link')
|
| |
check_output('udevadm control --reload')
|
| |
start_networkd()
|
| |
self.wait_online(['dummy98:degraded'])
|
| |
@@ -858,7 +861,7 @@
|
| |
|
| |
def test_delete_links(self):
|
| |
copy_unit_to_networkd_unit_path('11-dummy.netdev', '11-dummy.network',
|
| |
- '25-veth.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
+ '25-veth.netdev', '26-netdev-link-local-addressing-yes.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['test1:degraded', 'veth99:degraded', 'veth-peer:degraded'])
|
| |
@@ -871,6 +874,7 @@
|
| |
class NetworkdNetDevTests(unittest.TestCase, Utilities):
|
| |
|
| |
links_remove_earlier = [
|
| |
+ 'xfrm98',
|
| |
'xfrm99',
|
| |
]
|
| |
|
| |
@@ -1037,29 +1041,29 @@
|
| |
'25-wireguard.network',
|
| |
'25-xfrm.netdev',
|
| |
'25-xfrm-independent.netdev',
|
| |
- '6rd.network',
|
| |
- 'erspan.network',
|
| |
- 'gre.network',
|
| |
- 'gretap.network',
|
| |
- 'gretun.network',
|
| |
- 'ip6gretap.network',
|
| |
- 'ip6gretun.network',
|
| |
- 'ip6tnl.network',
|
| |
- 'ipip.network',
|
| |
- 'ipvlan.network',
|
| |
- 'ipvtap.network',
|
| |
- 'isatap.network',
|
| |
- 'macsec.network',
|
| |
- 'macvlan.network',
|
| |
- 'macvtap.network',
|
| |
- 'netdev-link-local-addressing-yes.network',
|
| |
- 'sit.network',
|
| |
- 'vti6.network',
|
| |
- 'vti.network',
|
| |
- 'vxlan-ipv6.network',
|
| |
- 'vxlan-test1.network',
|
| |
- 'vxlan.network',
|
| |
- 'xfrm.network',
|
| |
+ '25-6rd.network',
|
| |
+ '25-erspan.network',
|
| |
+ '25-gre.network',
|
| |
+ '25-gretap.network',
|
| |
+ '25-gretun.network',
|
| |
+ '25-ip6gretap.network',
|
| |
+ '25-ip6gretun.network',
|
| |
+ '25-ip6tnl.network',
|
| |
+ '25-ipip.network',
|
| |
+ '25-ipvlan.network',
|
| |
+ '25-ipvtap.network',
|
| |
+ '25-isatap.network',
|
| |
+ '26-macsec.network',
|
| |
+ '25-macvlan.network',
|
| |
+ '25-macvtap.network',
|
| |
+ '26-netdev-link-local-addressing-yes.network',
|
| |
+ '25-sit.network',
|
| |
+ '25-vti6.network',
|
| |
+ '25-vti.network',
|
| |
+ '25-vxlan-ipv6.network',
|
| |
+ '25-vxlan-test1.network',
|
| |
+ '25-vxlan.network',
|
| |
+ '25-xfrm.network',
|
| |
]
|
| |
|
| |
fou_ports = [
|
| |
@@ -1109,7 +1113,7 @@
|
| |
|
| |
@expectedFailureIfModuleIsNotAvailable('bareudp')
|
| |
def test_bareudp(self):
|
| |
- copy_unit_to_networkd_unit_path('25-bareudp.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-bareudp.netdev', '26-netdev-link-local-addressing-yes.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['bareudp99:degraded'])
|
| |
@@ -1121,7 +1125,7 @@
|
| |
|
| |
@expectedFailureIfModuleIsNotAvailable('batman-adv')
|
| |
def test_batadv(self):
|
| |
- copy_unit_to_networkd_unit_path('25-batadv.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-batadv.netdev', '26-netdev-link-local-addressing-yes.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['batadv99:degraded'])
|
| |
@@ -1208,8 +1212,8 @@
|
| |
with self.subTest(mode=mode):
|
| |
if mode != 'private':
|
| |
self.tearDown()
|
| |
- copy_unit_to_networkd_unit_path('21-macvtap.netdev', 'netdev-link-local-addressing-yes.network',
|
| |
- '11-dummy.netdev', 'macvtap.network')
|
| |
+ copy_unit_to_networkd_unit_path('21-macvtap.netdev', '26-netdev-link-local-addressing-yes.network',
|
| |
+ '11-dummy.netdev', '25-macvtap.network')
|
| |
with open(os.path.join(network_unit_file_path, '21-macvtap.netdev'), mode='a') as f:
|
| |
f.write('[MACVTAP]\nMode=' + mode)
|
| |
start_networkd()
|
| |
@@ -1226,8 +1230,8 @@
|
| |
with self.subTest(mode=mode):
|
| |
if mode != 'private':
|
| |
self.tearDown()
|
| |
- copy_unit_to_networkd_unit_path('21-macvlan.netdev', 'netdev-link-local-addressing-yes.network',
|
| |
- '11-dummy.netdev', 'macvlan.network')
|
| |
+ copy_unit_to_networkd_unit_path('21-macvlan.netdev', '26-netdev-link-local-addressing-yes.network',
|
| |
+ '11-dummy.netdev', '25-macvlan.network')
|
| |
with open(os.path.join(network_unit_file_path, '21-macvlan.netdev'), mode='a') as f:
|
| |
f.write('[MACVLAN]\nMode=' + mode)
|
| |
start_networkd()
|
| |
@@ -1270,8 +1274,8 @@
|
| |
with self.subTest(mode=mode, flag=flag):
|
| |
if mode != 'L2':
|
| |
self.tearDown()
|
| |
- copy_unit_to_networkd_unit_path('25-ipvlan.netdev', 'netdev-link-local-addressing-yes.network',
|
| |
- '11-dummy.netdev', 'ipvlan.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-ipvlan.netdev', '26-netdev-link-local-addressing-yes.network',
|
| |
+ '11-dummy.netdev', '25-ipvlan.network')
|
| |
with open(os.path.join(network_unit_file_path, '25-ipvlan.netdev'), mode='a') as f:
|
| |
f.write('[IPVLAN]\nMode=' + mode + '\nFlags=' + flag)
|
| |
|
| |
@@ -1288,8 +1292,8 @@
|
| |
with self.subTest(mode=mode, flag=flag):
|
| |
if mode != 'L2':
|
| |
self.tearDown()
|
| |
- copy_unit_to_networkd_unit_path('25-ipvtap.netdev', 'netdev-link-local-addressing-yes.network',
|
| |
- '11-dummy.netdev', 'ipvtap.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-ipvtap.netdev', '26-netdev-link-local-addressing-yes.network',
|
| |
+ '11-dummy.netdev', '25-ipvtap.network')
|
| |
with open(os.path.join(network_unit_file_path, '25-ipvtap.netdev'), mode='a') as f:
|
| |
f.write('[IPVTAP]\nMode=' + mode + '\nFlags=' + flag)
|
| |
|
| |
@@ -1301,7 +1305,7 @@
|
| |
self.assertRegex(output, 'ipvtap *mode ' + mode.lower() + ' ' + flag)
|
| |
|
| |
def test_veth(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'netdev-link-local-addressing-yes.network',
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '26-netdev-link-local-addressing-yes.network',
|
| |
'25-veth-mtu.netdev')
|
| |
start_networkd()
|
| |
|
| |
@@ -1347,21 +1351,21 @@
|
| |
|
| |
@expectedFailureIfModuleIsNotAvailable('vrf')
|
| |
def test_vrf(self):
|
| |
- copy_unit_to_networkd_unit_path('25-vrf.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-vrf.netdev', '26-netdev-link-local-addressing-yes.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['vrf99:carrier'])
|
| |
|
| |
@expectedFailureIfModuleIsNotAvailable('vcan')
|
| |
def test_vcan(self):
|
| |
- copy_unit_to_networkd_unit_path('25-vcan.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-vcan.netdev', '26-netdev-link-local-addressing-yes.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['vcan99:carrier'])
|
| |
|
| |
@expectedFailureIfModuleIsNotAvailable('vxcan')
|
| |
def test_vxcan(self):
|
| |
- copy_unit_to_networkd_unit_path('25-vxcan.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-vxcan.netdev', '26-netdev-link-local-addressing-yes.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['vxcan99:carrier', 'vxcan-peer:carrier'])
|
| |
@@ -1483,7 +1487,7 @@
|
| |
self.assertEqual(output, '0x4d3')
|
| |
|
| |
def test_geneve(self):
|
| |
- copy_unit_to_networkd_unit_path('25-geneve.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-geneve.netdev', '26-netdev-link-local-addressing-yes.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['geneve99:degraded'])
|
| |
@@ -1496,7 +1500,7 @@
|
| |
self.assertRegex(output, 'udp6zerocsumrx')
|
| |
|
| |
def test_ipip_tunnel(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'ipip.network',
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-ipip.network',
|
| |
'25-ipip-tunnel.netdev', '25-tunnel.network',
|
| |
'25-ipip-tunnel-local-any.netdev', '25-tunnel-local-any.network',
|
| |
'25-ipip-tunnel-remote-any.netdev', '25-tunnel-remote-any.network',
|
| |
@@ -1518,7 +1522,7 @@
|
| |
self.assertRegex(output, 'ipip (ipip )?remote any local any dev dummy98')
|
| |
|
| |
def test_gre_tunnel(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'gretun.network',
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-gretun.network',
|
| |
'25-gre-tunnel.netdev', '25-tunnel.network',
|
| |
'25-gre-tunnel-local-any.netdev', '25-tunnel-local-any.network',
|
| |
'25-gre-tunnel-remote-any.netdev', '25-tunnel-remote-any.network',
|
| |
@@ -1556,7 +1560,7 @@
|
| |
self.assertNotRegex(output, 'oseq')
|
| |
|
| |
def test_ip6gre_tunnel(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'ip6gretun.network',
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-ip6gretun.network',
|
| |
'25-ip6gre-tunnel.netdev', '25-tunnel.network',
|
| |
'25-ip6gre-tunnel-local-any.netdev', '25-tunnel-local-any.network',
|
| |
'25-ip6gre-tunnel-remote-any.netdev', '25-tunnel-remote-any.network',
|
| |
@@ -1585,7 +1589,7 @@
|
| |
self.assertRegex(output, 'ip6gre remote any local any dev dummy98')
|
| |
|
| |
def test_gretap_tunnel(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'gretap.network',
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-gretap.network',
|
| |
'25-gretap-tunnel.netdev', '25-tunnel.network',
|
| |
'25-gretap-tunnel-local-any.netdev', '25-tunnel-local-any.network')
|
| |
start_networkd()
|
| |
@@ -1607,7 +1611,7 @@
|
| |
self.assertRegex(output, 'oseq')
|
| |
|
| |
def test_ip6gretap_tunnel(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'ip6gretap.network',
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-ip6gretap.network',
|
| |
'25-ip6gretap-tunnel.netdev', '25-tunnel.network',
|
| |
'25-ip6gretap-tunnel-local-any.netdev', '25-tunnel-local-any.network')
|
| |
start_networkd()
|
| |
@@ -1621,7 +1625,7 @@
|
| |
self.assertRegex(output, 'ip6gretap remote 2001:473:fece:cafe::5179 local any dev dummy98')
|
| |
|
| |
def test_vti_tunnel(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'vti.network',
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-vti.network',
|
| |
'25-vti-tunnel.netdev', '25-tunnel.network',
|
| |
'25-vti-tunnel-local-any.netdev', '25-tunnel-local-any.network',
|
| |
'25-vti-tunnel-remote-any.netdev', '25-tunnel-remote-any.network',
|
| |
@@ -1643,7 +1647,7 @@
|
| |
self.assertRegex(output, 'vti remote any local any dev dummy98')
|
| |
|
| |
def test_vti6_tunnel(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'vti6.network',
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-vti6.network',
|
| |
'25-vti6-tunnel.netdev', '25-tunnel.network',
|
| |
'25-vti6-tunnel-local-any.netdev', '25-tunnel-local-any.network',
|
| |
'25-vti6-tunnel-remote-any.netdev', '25-tunnel-remote-any.network')
|
| |
@@ -1661,7 +1665,7 @@
|
| |
self.assertRegex(output, 'vti6 remote (any|::) local 2a00:ffde:4567:edde::4987 dev dummy98')
|
| |
|
| |
def test_ip6tnl_tunnel(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'ip6tnl.network',
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-ip6tnl.network',
|
| |
'25-ip6tnl-tunnel.netdev', '25-tunnel.network',
|
| |
'25-ip6tnl-tunnel-local-any.netdev', '25-tunnel-local-any.network',
|
| |
'25-ip6tnl-tunnel-remote-any.netdev', '25-tunnel-remote-any.network')
|
| |
@@ -1679,7 +1683,7 @@
|
| |
self.assertRegex(output, 'ip6tnl ip6ip6 remote (any|::) local 2a00:ffde:4567:edde::4987 dev dummy98')
|
| |
|
| |
def test_sit_tunnel(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'sit.network',
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-sit.network',
|
| |
'25-sit-tunnel.netdev', '25-tunnel.network',
|
| |
'25-sit-tunnel-local-any.netdev', '25-tunnel-local-any.network',
|
| |
'25-sit-tunnel-remote-any.netdev', '25-tunnel-remote-any.network',
|
| |
@@ -1701,7 +1705,7 @@
|
| |
self.assertRegex(output, "sit (ip6ip )?remote any local any dev dummy98")
|
| |
|
| |
def test_isatap_tunnel(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'isatap.network',
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-isatap.network',
|
| |
'25-isatap-tunnel.netdev', '25-tunnel.network')
|
| |
start_networkd()
|
| |
self.wait_online(['isataptun99:routable', 'dummy98:degraded'])
|
| |
@@ -1711,7 +1715,7 @@
|
| |
self.assertRegex(output, "isatap ")
|
| |
|
| |
def test_6rd_tunnel(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', '6rd.network',
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-6rd.network',
|
| |
'25-6rd-tunnel.netdev', '25-tunnel.network')
|
| |
start_networkd()
|
| |
self.wait_online(['sittun99:routable', 'dummy98:degraded'])
|
| |
@@ -1722,7 +1726,7 @@
|
| |
|
| |
@expectedFailureIfERSPANModuleIsNotAvailable()
|
| |
def test_erspan_tunnel(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'erspan.network',
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-erspan.network',
|
| |
'25-erspan-tunnel.netdev', '25-tunnel.network',
|
| |
'25-erspan-tunnel-local-any.netdev', '25-tunnel-local-any.network')
|
| |
start_networkd()
|
| |
@@ -1745,34 +1749,35 @@
|
| |
self.assertRegex(output, 'oseq')
|
| |
|
| |
def test_tunnel_independent(self):
|
| |
- copy_unit_to_networkd_unit_path('25-ipip-tunnel-independent.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-ipip-tunnel-independent.netdev', '26-netdev-link-local-addressing-yes.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['ipiptun99:carrier'])
|
| |
|
| |
def test_tunnel_independent_loopback(self):
|
| |
- copy_unit_to_networkd_unit_path('25-ipip-tunnel-independent-loopback.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-ipip-tunnel-independent-loopback.netdev', '26-netdev-link-local-addressing-yes.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['ipiptun99:carrier'])
|
| |
|
| |
@expectedFailureIfModuleIsNotAvailable('xfrm_interface')
|
| |
def test_xfrm(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'xfrm.network',
|
| |
- '25-xfrm.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-xfrm.network',
|
| |
+ '25-xfrm.netdev', '25-xfrm-independent.netdev',
|
| |
+ '26-netdev-link-local-addressing-yes.network')
|
| |
start_networkd()
|
| |
|
| |
- self.wait_online(['xfrm99:degraded', 'dummy98:degraded'])
|
| |
+ self.wait_online(['dummy98:degraded', 'xfrm98:degraded', 'xfrm99:degraded'])
|
| |
|
| |
- output = check_output('ip link show dev xfrm99')
|
| |
+ output = check_output('ip -d link show dev xfrm98')
|
| |
print(output)
|
| |
+ self.assertIn('xfrm98@dummy98:', output)
|
| |
+ self.assertIn('xfrm if_id 0x98 ', output)
|
| |
|
| |
- @expectedFailureIfModuleIsNotAvailable('xfrm_interface')
|
| |
- def test_xfrm_independent(self):
|
| |
- copy_unit_to_networkd_unit_path('25-xfrm-independent.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
- start_networkd()
|
| |
-
|
| |
- self.wait_online(['xfrm99:degraded'])
|
| |
+ output = check_output('ip -d link show dev xfrm99')
|
| |
+ print(output)
|
| |
+ self.assertIn('xfrm99@lo:', output)
|
| |
+ self.assertIn('xfrm if_id 0x99 ', output)
|
| |
|
| |
@expectedFailureIfModuleIsNotAvailable('fou')
|
| |
def test_fou(self):
|
| |
@@ -1806,10 +1811,10 @@
|
| |
self.assertRegex(output, 'encap fou encap-sport auto encap-dport 55556')
|
| |
|
| |
def test_vxlan(self):
|
| |
- copy_unit_to_networkd_unit_path('25-vxlan.netdev', 'vxlan.network',
|
| |
- '25-vxlan-ipv6.netdev', 'vxlan-ipv6.network',
|
| |
- '25-vxlan-independent.netdev', 'netdev-link-local-addressing-yes.network',
|
| |
- '11-dummy.netdev', 'vxlan-test1.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-vxlan.netdev', '25-vxlan.network',
|
| |
+ '25-vxlan-ipv6.netdev', '25-vxlan-ipv6.network',
|
| |
+ '25-vxlan-independent.netdev', '26-netdev-link-local-addressing-yes.network',
|
| |
+ '11-dummy.netdev', '25-vxlan-test1.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['test1:degraded', 'vxlan99:degraded', 'vxlan98:degraded', 'vxlan97:degraded'])
|
| |
@@ -1845,9 +1850,10 @@
|
| |
self.assertIn('00:00:00:00:00:00 dst fe80::27c:16ff:fec0:6c74 via test1 self permanent', output)
|
| |
self.assertIn('00:00:00:00:00:00 dst fe80::2a2:e4ff:fef9:2269 via test1 self permanent', output)
|
| |
|
| |
+ @unittest.skip(reason="Causes kernel panic on recent kernels: https://bugzilla.kernel.org/show_bug.cgi?id=208315")
|
| |
def test_macsec(self):
|
| |
copy_unit_to_networkd_unit_path('25-macsec.netdev', '25-macsec.network', '25-macsec.key',
|
| |
- 'macsec.network', '12-dummy.netdev')
|
| |
+ '26-macsec.network', '12-dummy.netdev')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['dummy98:degraded', 'macsec99:routable'])
|
| |
@@ -1874,14 +1880,14 @@
|
| |
self.assertRegex(output, '0: PN [0-9]*, state off, key 02030400000000000000000000000000')
|
| |
|
| |
def test_nlmon(self):
|
| |
- copy_unit_to_networkd_unit_path('25-nlmon.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-nlmon.netdev', '26-netdev-link-local-addressing-yes.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['nlmon99:carrier'])
|
| |
|
| |
@expectedFailureIfModuleIsNotAvailable('ifb')
|
| |
def test_ifb(self):
|
| |
- copy_unit_to_networkd_unit_path('25-ifb.netdev', 'netdev-link-local-addressing-yes.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-ifb.netdev', '26-netdev-link-local-addressing-yes.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['ifb99:degraded'])
|
| |
@@ -2040,14 +2046,14 @@
|
| |
'25-vrf.netdev',
|
| |
'25-vrf.network',
|
| |
'26-link-local-addressing-ipv6.network',
|
| |
- 'dhcp-client-ipv4-ipv6ra-prefix-client-with-delay.network',
|
| |
- 'dhcp-server-with-ipv6-prefix.network',
|
| |
- 'ipv6ra-prefix-client-with-static-ipv4-address.network',
|
| |
- 'ipv6-prefix-with-delay.network',
|
| |
- 'routing-policy-rule-dummy98.network',
|
| |
- 'routing-policy-rule-test1.network',
|
| |
- 'routing-policy-rule-reconfigure1.network',
|
| |
- 'routing-policy-rule-reconfigure2.network',
|
| |
+ '25-dhcp-client-ipv4-ipv6ra-prefix-client-with-delay.network',
|
| |
+ '25-dhcp-server-with-ipv6-prefix.network',
|
| |
+ '25-ipv6ra-prefix-client-with-static-ipv4-address.network',
|
| |
+ '25-ipv6-prefix-with-delay.network',
|
| |
+ '25-routing-policy-rule-dummy98.network',
|
| |
+ '25-routing-policy-rule-test1.network',
|
| |
+ '25-routing-policy-rule-reconfigure1.network',
|
| |
+ '25-routing-policy-rule-reconfigure2.network',
|
| |
]
|
| |
|
| |
networkd_conf_dropins = [
|
| |
@@ -2319,7 +2325,7 @@
|
| |
self.assertRegex(output, routable_map[carrier])
|
| |
|
| |
def test_routing_policy_rule(self):
|
| |
- copy_unit_to_networkd_unit_path('routing-policy-rule-test1.network', '11-dummy.netdev')
|
| |
+ copy_unit_to_networkd_unit_path('25-routing-policy-rule-test1.network', '11-dummy.netdev')
|
| |
start_networkd()
|
| |
self.wait_online(['test1:degraded'])
|
| |
|
| |
@@ -2357,8 +2363,8 @@
|
| |
check_output(*networkctl_cmd, '--json=short', 'status', env=env)
|
| |
|
| |
def test_routing_policy_rule_issue_11280(self):
|
| |
- copy_unit_to_networkd_unit_path('routing-policy-rule-test1.network', '11-dummy.netdev',
|
| |
- 'routing-policy-rule-dummy98.network', '12-dummy.netdev')
|
| |
+ copy_unit_to_networkd_unit_path('25-routing-policy-rule-test1.network', '11-dummy.netdev',
|
| |
+ '25-routing-policy-rule-dummy98.network', '12-dummy.netdev')
|
| |
|
| |
for trial in range(3):
|
| |
# Remove state files only first time
|
| |
@@ -2377,7 +2383,7 @@
|
| |
stop_networkd(remove_state_files=False)
|
| |
|
| |
def test_routing_policy_rule_reconfigure(self):
|
| |
- copy_unit_to_networkd_unit_path('routing-policy-rule-reconfigure2.network', '11-dummy.netdev')
|
| |
+ copy_unit_to_networkd_unit_path('25-routing-policy-rule-reconfigure2.network', '11-dummy.netdev')
|
| |
start_networkd()
|
| |
self.wait_online(['test1:degraded'])
|
| |
|
| |
@@ -2392,7 +2398,7 @@
|
| |
print(output)
|
| |
self.assertIn('10112: from all oif test1 lookup 1011', output)
|
| |
|
| |
- copy_unit_to_networkd_unit_path('routing-policy-rule-reconfigure1.network', '11-dummy.netdev')
|
| |
+ copy_unit_to_networkd_unit_path('25-routing-policy-rule-reconfigure1.network', '11-dummy.netdev')
|
| |
run(*networkctl_cmd, 'reload', env=env)
|
| |
time.sleep(1)
|
| |
self.wait_online(['test1:degraded'])
|
| |
@@ -3443,7 +3449,7 @@
|
| |
call('rmmod netdevsim', stderr=subprocess.DEVNULL)
|
| |
|
| |
def test_wait_online_ipv4(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-with-ipv6-prefix.network', 'dhcp-client-ipv4-ipv6ra-prefix-client-with-delay.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-with-ipv6-prefix.network', '25-dhcp-client-ipv4-ipv6ra-prefix-client-with-delay.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['veth99:routable'], ipv4=True)
|
| |
@@ -3451,7 +3457,7 @@
|
| |
self.wait_address('veth99', r'192.168.5.[0-9]+', ipv='-4', timeout_sec=1)
|
| |
|
| |
def test_wait_online_ipv6(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6-prefix-with-delay.network', 'ipv6ra-prefix-client-with-static-ipv4-address.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-ipv6-prefix-with-delay.network', '25-ipv6ra-prefix-client-with-static-ipv4-address.network')
|
| |
start_networkd()
|
| |
|
| |
self.wait_online(['veth99:routable'], ipv6=True)
|
| |
@@ -3465,7 +3471,7 @@
|
| |
|
| |
units = [
|
| |
'12-dummy.netdev',
|
| |
- 'state-file-tests.network',
|
| |
+ '25-state-file-tests.network',
|
| |
]
|
| |
|
| |
def setUp(self):
|
| |
@@ -3478,7 +3484,7 @@
|
| |
stop_networkd(show_logs=True)
|
| |
|
| |
def test_state_file(self):
|
| |
- copy_unit_to_networkd_unit_path('12-dummy.netdev', 'state-file-tests.network')
|
| |
+ copy_unit_to_networkd_unit_path('12-dummy.netdev', '25-state-file-tests.network')
|
| |
start_networkd()
|
| |
self.wait_online(['dummy98:routable'])
|
| |
|
| |
@@ -3505,7 +3511,7 @@
|
| |
self.assertRegex(data, r'REQUIRED_OPER_STATE_FOR_ONLINE=routable')
|
| |
self.assertRegex(data, r'REQUIRED_FAMILY_FOR_ONLINE=both')
|
| |
self.assertRegex(data, r'ACTIVATION_POLICY=up')
|
| |
- self.assertRegex(data, r'NETWORK_FILE=/run/systemd/network/state-file-tests.network')
|
| |
+ self.assertRegex(data, r'NETWORK_FILE=/run/systemd/network/25-state-file-tests.network')
|
| |
self.assertRegex(data, r'DNS=10.10.10.10#aaa.com 10.10.10.11:1111#bbb.com \[1111:2222::3333\]:1234#ccc.com')
|
| |
self.assertRegex(data, r'NTP=0.fedora.pool.ntp.org 1.fedora.pool.ntp.org')
|
| |
self.assertRegex(data, r'DOMAINS=hogehoge')
|
| |
@@ -3580,8 +3586,8 @@
|
| |
'23-primary-slave.network',
|
| |
'25-bond-active-backup-slave.netdev',
|
| |
'25-bond.netdev',
|
| |
- 'bond99.network',
|
| |
- 'bond-slave.network']
|
| |
+ '25-bond99.network',
|
| |
+ '25-bond-slave.network']
|
| |
|
| |
def setUp(self):
|
| |
remove_links(self.links)
|
| |
@@ -3629,7 +3635,7 @@
|
| |
|
| |
def test_bond_operstate(self):
|
| |
copy_unit_to_networkd_unit_path('25-bond.netdev', '11-dummy.netdev', '12-dummy.netdev',
|
| |
- 'bond99.network','bond-slave.network')
|
| |
+ '25-bond99.network','25-bond-slave.network')
|
| |
start_networkd()
|
| |
self.wait_online(['dummy98:enslaved', 'test1:enslaved', 'bond99:routable'])
|
| |
|
| |
@@ -3697,8 +3703,8 @@
|
| |
'26-bridge-vlan-master.network',
|
| |
'26-bridge-vlan-slave-issue-20373.network',
|
| |
'26-bridge-vlan-slave.network',
|
| |
- 'bridge99-ignore-carrier-loss.network',
|
| |
- 'bridge99.network'
|
| |
+ '25-bridge99-ignore-carrier-loss.network',
|
| |
+ '25-bridge99.network'
|
| |
]
|
| |
|
| |
routing_policy_rule_tables = ['100']
|
| |
@@ -3804,7 +3810,7 @@
|
| |
def test_bridge_property(self):
|
| |
copy_unit_to_networkd_unit_path('11-dummy.netdev', '12-dummy.netdev', '26-bridge.netdev',
|
| |
'26-bridge-slave-interface-1.network', '26-bridge-slave-interface-2.network',
|
| |
- 'bridge99.network')
|
| |
+ '25-bridge99.network')
|
| |
start_networkd()
|
| |
self.wait_online(['dummy98:enslaved', 'test1:enslaved', 'bridge99:routable'])
|
| |
|
| |
@@ -3926,7 +3932,7 @@
|
| |
def test_bridge_ignore_carrier_loss(self):
|
| |
copy_unit_to_networkd_unit_path('11-dummy.netdev', '12-dummy.netdev', '26-bridge.netdev',
|
| |
'26-bridge-slave-interface-1.network', '26-bridge-slave-interface-2.network',
|
| |
- 'bridge99-ignore-carrier-loss.network')
|
| |
+ '25-bridge99-ignore-carrier-loss.network')
|
| |
start_networkd()
|
| |
self.wait_online(['dummy98:enslaved', 'test1:enslaved', 'bridge99:routable'])
|
| |
|
| |
@@ -3945,7 +3951,7 @@
|
| |
|
| |
def test_bridge_ignore_carrier_loss_frequent_loss_and_gain(self):
|
| |
copy_unit_to_networkd_unit_path('26-bridge.netdev', '26-bridge-slave-interface-1.network',
|
| |
- 'bridge99-ignore-carrier-loss.network')
|
| |
+ '25-bridge99-ignore-carrier-loss.network')
|
| |
start_networkd()
|
| |
self.wait_online(['bridge99:no-carrier'])
|
| |
|
| |
@@ -4003,11 +4009,11 @@
|
| |
|
| |
units = [
|
| |
'25-veth.netdev',
|
| |
- 'ipv6-prefix.network',
|
| |
- 'ipv6-prefix-veth.network',
|
| |
- 'ipv6-prefix-veth-token-static.network',
|
| |
- 'ipv6-prefix-veth-token-prefixstable.network',
|
| |
- 'ipv6-prefix-veth-token-prefixstable-without-address.network']
|
| |
+ '25-ipv6-prefix.network',
|
| |
+ '25-ipv6-prefix-veth.network',
|
| |
+ '25-ipv6-prefix-veth-token-static.network',
|
| |
+ '25-ipv6-prefix-veth-token-prefixstable.network',
|
| |
+ '25-ipv6-prefix-veth-token-prefixstable-without-address.network']
|
| |
|
| |
def setUp(self):
|
| |
remove_links(self.links)
|
| |
@@ -4019,7 +4025,7 @@
|
| |
stop_networkd(show_logs=True)
|
| |
|
| |
def test_ipv6_prefix_delegation(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6-prefix.network', 'ipv6-prefix-veth.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-ipv6-prefix.network', '25-ipv6-prefix-veth.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth99:routable', 'veth-peer:degraded'])
|
| |
|
| |
@@ -4037,7 +4043,7 @@
|
| |
self.assertRegex(output, '2002:da8:1:0')
|
| |
|
| |
def test_ipv6_token_static(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6-prefix.network', 'ipv6-prefix-veth-token-static.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-ipv6-prefix.network', '25-ipv6-prefix-veth-token-static.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth99:routable', 'veth-peer:degraded'])
|
| |
|
| |
@@ -4049,7 +4055,7 @@
|
| |
self.assertRegex(output, '2002:da8:2:0:fa:de:ca:fe')
|
| |
|
| |
def test_ipv6_token_prefixstable(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6-prefix.network', 'ipv6-prefix-veth-token-prefixstable.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-ipv6-prefix.network', '25-ipv6-prefix-veth-token-prefixstable.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth99:routable', 'veth-peer:degraded'])
|
| |
|
| |
@@ -4059,7 +4065,7 @@
|
| |
self.assertIn('2002:da8:2:0:1034:56ff:fe78:9abc', output) # EUI64
|
| |
|
| |
def test_ipv6_token_prefixstable_without_address(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6-prefix.network', 'ipv6-prefix-veth-token-prefixstable-without-address.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-ipv6-prefix.network', '25-ipv6-prefix-veth-token-prefixstable-without-address.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth99:routable', 'veth-peer:degraded'])
|
| |
|
| |
@@ -4077,13 +4083,13 @@
|
| |
units = [
|
| |
'12-dummy.netdev',
|
| |
'25-veth.netdev',
|
| |
- 'dhcp-client.network',
|
| |
- 'dhcp-client-static-lease.network',
|
| |
- 'dhcp-client-timezone-router.network',
|
| |
- 'dhcp-server.network',
|
| |
- 'dhcp-server-static-lease.network',
|
| |
- 'dhcp-server-timezone-router.network',
|
| |
- 'dhcp-server-uplink.network',
|
| |
+ '25-dhcp-client.network',
|
| |
+ '25-dhcp-client-static-lease.network',
|
| |
+ '25-dhcp-client-timezone-router.network',
|
| |
+ '25-dhcp-server.network',
|
| |
+ '25-dhcp-server-static-lease.network',
|
| |
+ '25-dhcp-server-timezone-router.network',
|
| |
+ '25-dhcp-server-uplink.network',
|
| |
]
|
| |
|
| |
def setUp(self):
|
| |
@@ -4096,8 +4102,8 @@
|
| |
stop_networkd(show_logs=True)
|
| |
|
| |
def test_dhcp_server(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-client.network', 'dhcp-server.network',
|
| |
- '12-dummy.netdev', 'dhcp-server-uplink.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-client.network', '25-dhcp-server.network',
|
| |
+ '12-dummy.netdev', '25-dhcp-server-uplink.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth99:routable', 'veth-peer:routable'])
|
| |
|
| |
@@ -4109,7 +4115,7 @@
|
| |
self.assertIn('NTP: 192.168.5.1', output)
|
| |
|
| |
def test_emit_router_timezone(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-client-timezone-router.network', 'dhcp-server-timezone-router.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-client-timezone-router.network', '25-dhcp-server-timezone-router.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth99:routable', 'veth-peer:routable'])
|
| |
|
| |
@@ -4120,7 +4126,7 @@
|
| |
self.assertIn('Time Zone: Europe/Berlin', output)
|
| |
|
| |
def test_dhcp_server_static_lease(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-client-static-lease.network', 'dhcp-server-static-lease.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-client-static-lease.network', '25-dhcp-server-static-lease.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth99:routable', 'veth-peer:routable'])
|
| |
|
| |
@@ -4137,12 +4143,12 @@
|
| |
]
|
| |
|
| |
units = [
|
| |
- 'agent-veth-client.netdev',
|
| |
- 'agent-veth-server.netdev',
|
| |
- 'agent-client.network',
|
| |
- 'agent-server.network',
|
| |
- 'agent-client-peer.network',
|
| |
- 'agent-server-peer.network',
|
| |
+ '25-agent-veth-client.netdev',
|
| |
+ '25-agent-veth-server.netdev',
|
| |
+ '25-agent-client.network',
|
| |
+ '25-agent-server.network',
|
| |
+ '25-agent-client-peer.network',
|
| |
+ '25-agent-server-peer.network',
|
| |
]
|
| |
|
| |
def setUp(self):
|
| |
@@ -4173,37 +4179,37 @@
|
| |
'25-veth.netdev',
|
| |
'25-vrf.netdev',
|
| |
'25-vrf.network',
|
| |
- 'dhcp-client-allow-list.network',
|
| |
- 'dhcp-client-anonymize.network',
|
| |
- 'dhcp-client-decline.network',
|
| |
- 'dhcp-client-gateway-ipv4.network',
|
| |
- 'dhcp-client-gateway-ipv6.network',
|
| |
- 'dhcp-client-gateway-onlink-implicit.network',
|
| |
- 'dhcp-client-ipv4-dhcp-settings.network',
|
| |
- 'dhcp-client-ipv4-only-ipv6-disabled.network',
|
| |
- 'dhcp-client-ipv4-only.network',
|
| |
- 'dhcp-client-ipv4-use-routes-use-gateway.network',
|
| |
- 'dhcp-client-ipv6-only.network',
|
| |
- 'dhcp-client-keep-configuration-dhcp-on-stop.network',
|
| |
- 'dhcp-client-keep-configuration-dhcp.network',
|
| |
- 'dhcp-client-listen-port.network',
|
| |
- 'dhcp-client-reassign-static-routes-ipv4.network',
|
| |
- 'dhcp-client-reassign-static-routes-ipv6.network',
|
| |
- 'dhcp-client-route-metric.network',
|
| |
- 'dhcp-client-route-table.network',
|
| |
- 'dhcp-client-use-dns-ipv4-and-ra.network',
|
| |
- 'dhcp-client-use-dns-ipv4.network',
|
| |
- 'dhcp-client-use-dns-no.network',
|
| |
- 'dhcp-client-use-dns-yes.network',
|
| |
- 'dhcp-client-use-domains.network',
|
| |
- 'dhcp-client-vrf.network',
|
| |
- 'dhcp-client-with-ipv4ll.network',
|
| |
- 'dhcp-client-with-static-address.network',
|
| |
- 'dhcp-client.network',
|
| |
- 'dhcp-server-decline.network',
|
| |
- 'dhcp-server-veth-peer.network',
|
| |
- 'dhcp-v4-server-veth-peer.network',
|
| |
- 'static.network']
|
| |
+ '25-dhcp-client-allow-list.network',
|
| |
+ '25-dhcp-client-anonymize.network',
|
| |
+ '25-dhcp-client-decline.network',
|
| |
+ '25-dhcp-client-gateway-ipv4.network',
|
| |
+ '25-dhcp-client-gateway-ipv6.network',
|
| |
+ '25-dhcp-client-gateway-onlink-implicit.network',
|
| |
+ '25-dhcp-client-ipv4-dhcp-settings.network',
|
| |
+ '25-dhcp-client-ipv4-only-ipv6-disabled.network',
|
| |
+ '25-dhcp-client-ipv4-only.network',
|
| |
+ '25-dhcp-client-ipv4-use-routes-use-gateway.network',
|
| |
+ '25-dhcp-client-ipv6-only.network',
|
| |
+ '25-dhcp-client-keep-configuration-dhcp-on-stop.network',
|
| |
+ '25-dhcp-client-keep-configuration-dhcp.network',
|
| |
+ '25-dhcp-client-listen-port.network',
|
| |
+ '25-dhcp-client-reassign-static-routes-ipv4.network',
|
| |
+ '25-dhcp-client-reassign-static-routes-ipv6.network',
|
| |
+ '25-dhcp-client-route-metric.network',
|
| |
+ '25-dhcp-client-route-table.network',
|
| |
+ '25-dhcp-client-use-dns-ipv4-and-ra.network',
|
| |
+ '25-dhcp-client-use-dns-ipv4.network',
|
| |
+ '25-dhcp-client-use-dns-no.network',
|
| |
+ '25-dhcp-client-use-dns-yes.network',
|
| |
+ '25-dhcp-client-use-domains.network',
|
| |
+ '25-dhcp-client-vrf.network',
|
| |
+ '25-dhcp-client-with-ipv4ll.network',
|
| |
+ '25-dhcp-client-with-static-address.network',
|
| |
+ '25-dhcp-client.network',
|
| |
+ '25-dhcp-server-decline.network',
|
| |
+ '25-dhcp-server-veth-peer.network',
|
| |
+ '25-dhcp-v4-server-veth-peer.network',
|
| |
+ '25-static.network']
|
| |
|
| |
def setUp(self):
|
| |
stop_dnsmasq()
|
| |
@@ -4221,7 +4227,7 @@
|
| |
stop_networkd(show_logs=True)
|
| |
|
| |
def test_dhcp_client_ipv6_only(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv6-only.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-ipv6-only.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
@@ -4245,7 +4251,7 @@
|
| |
self.assertRegex(output, 'token :: dev veth99')
|
| |
|
| |
def test_dhcp_client_ipv4_only(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv4-only-ipv6-disabled.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-ipv4-only-ipv6-disabled.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
@@ -4299,8 +4305,8 @@
|
| |
self.tearDown()
|
| |
|
| |
def _test_dhcp_client_ipv4_use_routes_gateway(self, use_routes, use_gateway, dns_and_ntp_routes, classless):
|
| |
- testunit = 'dhcp-client-ipv4-use-routes-use-gateway.network'
|
| |
- testunits = ['25-veth.netdev', 'dhcp-server-veth-peer.network', testunit]
|
| |
+ testunit = '25-dhcp-client-ipv4-use-routes-use-gateway.network'
|
| |
+ testunits = ['25-veth.netdev', '25-dhcp-server-veth-peer.network', testunit]
|
| |
testunits.append(f'{testunit}.d/use-routes-{use_routes}.conf');
|
| |
testunits.append(f'{testunit}.d/use-gateway-{use_gateway}.conf');
|
| |
testunits.append(f'{testunit}.d/use-dns-and-ntp-routes-{dns_and_ntp_routes}.conf');
|
| |
@@ -4369,7 +4375,7 @@
|
| |
check_output(*networkctl_cmd, '--json=short', 'status', env=env)
|
| |
|
| |
def test_dhcp_client_ipv4_ipv6(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv4-only.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-ipv4-only.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq()
|
| |
@@ -4385,7 +4391,7 @@
|
| |
self.assertRegex(output, '192.168.5')
|
| |
|
| |
def test_dhcp_client_settings(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv4-dhcp-settings.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-ipv4-dhcp-settings.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
@@ -4423,7 +4429,7 @@
|
| |
self.assertTrue(search_words_in_dnsmasq_log('26:mtu'))
|
| |
|
| |
def test_dhcp_client_settings_anonymize(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-anonymize.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-anonymize.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq()
|
| |
@@ -4434,7 +4440,7 @@
|
| |
self.assertFalse(search_words_in_dnsmasq_log('26:mtu'))
|
| |
|
| |
def test_dhcp_client_listen_port(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-listen-port.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-listen-port.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq('--dhcp-alternate-port=67,5555')
|
| |
@@ -4445,8 +4451,8 @@
|
| |
self.assertRegex(output, '192.168.5.* dynamic')
|
| |
|
| |
def test_dhcp_client_with_static_address(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-v4-server-veth-peer.network',
|
| |
- 'dhcp-client-with-static-address.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-v4-server-veth-peer.network',
|
| |
+ '25-dhcp-client-with-static-address.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq()
|
| |
@@ -4464,7 +4470,7 @@
|
| |
self.assertRegex(output, r'192.168.5.1 proto dhcp scope link src 192.168.5.[0-9]* metric 1024')
|
| |
|
| |
def test_dhcp_route_table_id(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-v4-server-veth-peer.network', 'dhcp-client-route-table.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-v4-server-veth-peer.network', '25-dhcp-client-route-table.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq()
|
| |
@@ -4476,7 +4482,7 @@
|
| |
self.assertRegex(output, '192.168.5.1')
|
| |
|
| |
def test_dhcp_route_metric(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-v4-server-veth-peer.network', 'dhcp-client-route-metric.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-v4-server-veth-peer.network', '25-dhcp-client-route-metric.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq()
|
| |
@@ -4489,8 +4495,8 @@
|
| |
self.assertIn('192.168.5.1 proto dhcp scope link src 192.168.5.181 metric 24', output)
|
| |
|
| |
def test_dhcp_client_reassign_static_routes_ipv4(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network',
|
| |
- 'dhcp-client-reassign-static-routes-ipv4.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network',
|
| |
+ '25-dhcp-client-reassign-static-routes-ipv4.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq(lease_time='2m')
|
| |
@@ -4524,8 +4530,8 @@
|
| |
self.assertRegex(output, r'192.168.7.0/24 proto static')
|
| |
|
| |
def test_dhcp_client_reassign_static_routes_ipv6(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network',
|
| |
- 'dhcp-client-reassign-static-routes-ipv6.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network',
|
| |
+ '25-dhcp-client-reassign-static-routes-ipv6.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq(lease_time='2m')
|
| |
@@ -4555,7 +4561,7 @@
|
| |
self.assertRegex(output, r'2600:0:0:1::/64 proto static metric 1024 pref medium')
|
| |
|
| |
def test_dhcp_keep_configuration_dhcp(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-v4-server-veth-peer.network', 'dhcp-client-keep-configuration-dhcp.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-v4-server-veth-peer.network', '25-dhcp-client-keep-configuration-dhcp.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq(lease_time='2m')
|
| |
@@ -4593,7 +4599,7 @@
|
| |
print(output)
|
| |
self.assertRegex(output, r'192.168.5.*')
|
| |
|
| |
- with open(os.path.join(network_unit_file_path, 'dhcp-client-keep-configuration-dhcp.network'), mode='a') as f:
|
| |
+ with open(os.path.join(network_unit_file_path, '25-dhcp-client-keep-configuration-dhcp.network'), mode='a') as f:
|
| |
f.write('[Network]\nDHCP=no\n')
|
| |
|
| |
start_networkd()
|
| |
@@ -4609,7 +4615,7 @@
|
| |
self.assertRegex(output, r'192.168.5.*')
|
| |
|
| |
def test_dhcp_keep_configuration_dhcp_on_stop(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-v4-server-veth-peer.network', 'dhcp-client-keep-configuration-dhcp-on-stop.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-v4-server-veth-peer.network', '25-dhcp-client-keep-configuration-dhcp-on-stop.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq(lease_time='2m')
|
| |
@@ -4635,7 +4641,7 @@
|
| |
self.assertNotRegex(output, r'192.168.5.*')
|
| |
|
| |
def test_dhcp_client_reuse_address_as_static(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq()
|
| |
@@ -4655,9 +4661,9 @@
|
| |
static_network = '\n'.join(['[Match]', 'Name=veth99', '[Network]', 'IPv6AcceptRA=no', 'Address=' + ipv4_address.group(), 'Address=' + ipv6_address.group()])
|
| |
print(static_network)
|
| |
|
| |
- remove_unit_from_networkd_path(['dhcp-client.network'])
|
| |
+ remove_unit_from_networkd_path(['25-dhcp-client.network'])
|
| |
|
| |
- with open(os.path.join(network_unit_file_path, 'static.network'), mode='w') as f:
|
| |
+ with open(os.path.join(network_unit_file_path, '25-static.network'), mode='w') as f:
|
| |
f.write(static_network)
|
| |
|
| |
# When networkd started, the links are already configured, so let's wait for 5 seconds
|
| |
@@ -4677,7 +4683,7 @@
|
| |
|
| |
@expectedFailureIfModuleIsNotAvailable('vrf')
|
| |
def test_dhcp_client_vrf(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-vrf.network',
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-vrf.network',
|
| |
'25-vrf.netdev', '25-vrf.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
@@ -4720,8 +4726,8 @@
|
| |
self.assertEqual(output, '')
|
| |
|
| |
def test_dhcp_client_gateway_ipv4(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network',
|
| |
- 'dhcp-client-gateway-ipv4.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network',
|
| |
+ '25-dhcp-client-gateway-ipv4.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq()
|
| |
@@ -4732,7 +4738,7 @@
|
| |
self.assertRegex(output, 'default via 192.168.5.1 proto dhcp src 192.168.5.[0-9]*')
|
| |
self.assertIn('10.0.0.0/8 via 192.168.5.1 proto dhcp', output)
|
| |
|
| |
- with open(os.path.join(network_unit_file_path, 'dhcp-client-gateway-ipv4.network'), mode='a') as f:
|
| |
+ with open(os.path.join(network_unit_file_path, '25-dhcp-client-gateway-ipv4.network'), mode='a') as f:
|
| |
f.write('[DHCPv4]\nUseGateway=no\n')
|
| |
|
| |
rc = call(*networkctl_cmd, 'reload', env=env)
|
| |
@@ -4747,8 +4753,8 @@
|
| |
self.assertIn('10.0.0.0/8 via 192.168.5.1 proto dhcp', output)
|
| |
|
| |
def test_dhcp_client_gateway_ipv6(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network',
|
| |
- 'dhcp-client-gateway-ipv6.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network',
|
| |
+ '25-dhcp-client-gateway-ipv6.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq()
|
| |
@@ -4759,8 +4765,8 @@
|
| |
self.assertRegex(output, 'via fe80::1034:56ff:fe78:9abd')
|
| |
|
| |
def test_dhcp_client_gateway_onlink_implicit(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network',
|
| |
- 'dhcp-client-gateway-onlink-implicit.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network',
|
| |
+ '25-dhcp-client-gateway-onlink-implicit.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq()
|
| |
@@ -4778,8 +4784,8 @@
|
| |
self.assertRegex(output, 'onlink')
|
| |
|
| |
def test_dhcp_client_with_ipv4ll_with_dhcp_server(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network',
|
| |
- 'dhcp-client-with-ipv4ll.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network',
|
| |
+ '25-dhcp-client-with-ipv4ll.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq(lease_time='2m')
|
| |
@@ -4815,8 +4821,8 @@
|
| |
search_words_in_dnsmasq_log('DHCPOFFER', show_all=True)
|
| |
|
| |
def test_dhcp_client_with_ipv4ll_without_dhcp_server(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network',
|
| |
- 'dhcp-client-with-ipv4ll.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network',
|
| |
+ '25-dhcp-client-with-ipv4ll.network')
|
| |
start_networkd()
|
| |
# we need to increase timeout above default, as this will need to wait for
|
| |
# systemd-networkd to get the dhcpv4 transient failure event
|
| |
@@ -4839,8 +4845,8 @@
|
| |
self.wait_address_dropped('veth99', r'inet 169\.254\.\d+\.\d+/16 metric 2048 brd 169\.255\.255\.255 scope link', scope='link', ipv='-4')
|
| |
|
| |
def test_dhcp_client_route_remove_on_renew(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network',
|
| |
- 'dhcp-client-ipv4-only-ipv6-disabled.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network',
|
| |
+ '25-dhcp-client-ipv4-only-ipv6-disabled.network')
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
start_dnsmasq(ipv4_range='192.168.5.100,192.168.5.199', lease_time='2m')
|
| |
@@ -4887,7 +4893,7 @@
|
| |
self.assertRegex(output, f'192.168.5.1 proto dhcp scope link src {address2} metric 1024')
|
| |
|
| |
def test_dhcp_client_use_dns_yes(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-use-dns-yes.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-use-dns-yes.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
@@ -4908,7 +4914,7 @@
|
| |
check_output(*networkctl_cmd, '--json=short', 'status', env=env)
|
| |
|
| |
def test_dhcp_client_use_dns_no(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-use-dns-no.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-use-dns-no.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
@@ -4926,7 +4932,7 @@
|
| |
self.assertNotRegex(output, '2600::1')
|
| |
|
| |
def test_dhcp_client_use_dns_ipv4(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-use-dns-ipv4.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-use-dns-ipv4.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
@@ -4944,7 +4950,7 @@
|
| |
self.assertNotRegex(output, '2600::1')
|
| |
|
| |
def test_dhcp_client_use_dns_ipv4_and_ra(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-use-dns-ipv4-and-ra.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-use-dns-ipv4-and-ra.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
@@ -4962,7 +4968,7 @@
|
| |
self.assertRegex(output, '2600::1')
|
| |
|
| |
def test_dhcp_client_use_domains(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-use-domains.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-use-domains.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:carrier'])
|
| |
@@ -4979,7 +4985,7 @@
|
| |
self.assertRegex(output, 'example.com')
|
| |
|
| |
def test_dhcp_client_decline(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-decline.network', 'dhcp-client-decline.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-decline.network', '25-dhcp-client-decline.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth99:routable', 'veth-peer:routable'])
|
| |
@@ -4989,7 +4995,7 @@
|
| |
self.assertRegex(output, 'inet 192.168.5.[0-9]*/24 metric 1024 brd 192.168.5.255 scope global dynamic veth99')
|
| |
|
| |
def test_dhcp_client_allow_list(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-decline.network', 'dhcp-client-allow-list.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp-server-decline.network', '25-dhcp-client-allow-list.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth99:routable', 'veth-peer:routable'])
|
| |
@@ -5017,18 +5023,18 @@
|
| |
'25-veth-downstream-veth97.netdev',
|
| |
'25-veth-downstream-veth98.netdev',
|
| |
'80-6rd-tunnel.network',
|
| |
- 'dhcp-pd-downstream-dummy97.network',
|
| |
- 'dhcp-pd-downstream-dummy98.network',
|
| |
- 'dhcp-pd-downstream-dummy99.network',
|
| |
- 'dhcp-pd-downstream-test1.network',
|
| |
- 'dhcp-pd-downstream-veth97.network',
|
| |
- 'dhcp-pd-downstream-veth97-peer.network',
|
| |
- 'dhcp-pd-downstream-veth98.network',
|
| |
- 'dhcp-pd-downstream-veth98-peer.network',
|
| |
- 'dhcp4-6rd-server.network',
|
| |
- 'dhcp4-6rd-upstream.network',
|
| |
- 'dhcp6pd-server.network',
|
| |
- 'dhcp6pd-upstream.network',
|
| |
+ '25-dhcp-pd-downstream-dummy97.network',
|
| |
+ '25-dhcp-pd-downstream-dummy98.network',
|
| |
+ '25-dhcp-pd-downstream-dummy99.network',
|
| |
+ '25-dhcp-pd-downstream-test1.network',
|
| |
+ '25-dhcp-pd-downstream-veth97.network',
|
| |
+ '25-dhcp-pd-downstream-veth97-peer.network',
|
| |
+ '25-dhcp-pd-downstream-veth98.network',
|
| |
+ '25-dhcp-pd-downstream-veth98-peer.network',
|
| |
+ '25-dhcp4-6rd-server.network',
|
| |
+ '25-dhcp4-6rd-upstream.network',
|
| |
+ '25-dhcp6pd-server.network',
|
| |
+ '25-dhcp6pd-upstream.network',
|
| |
]
|
| |
|
| |
def setUp(self):
|
| |
@@ -5045,13 +5051,13 @@
|
| |
stop_networkd(show_logs=True)
|
| |
|
| |
def test_dhcp6pd(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp6pd-server.network', 'dhcp6pd-upstream.network',
|
| |
- '25-veth-downstream-veth97.netdev', 'dhcp-pd-downstream-veth97.network', 'dhcp-pd-downstream-veth97-peer.network',
|
| |
- '25-veth-downstream-veth98.netdev', 'dhcp-pd-downstream-veth98.network', 'dhcp-pd-downstream-veth98-peer.network',
|
| |
- '11-dummy.netdev', 'dhcp-pd-downstream-test1.network',
|
| |
- 'dhcp-pd-downstream-dummy97.network',
|
| |
- '12-dummy.netdev', 'dhcp-pd-downstream-dummy98.network',
|
| |
- '13-dummy.netdev', 'dhcp-pd-downstream-dummy99.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp6pd-server.network', '25-dhcp6pd-upstream.network',
|
| |
+ '25-veth-downstream-veth97.netdev', '25-dhcp-pd-downstream-veth97.network', '25-dhcp-pd-downstream-veth97-peer.network',
|
| |
+ '25-veth-downstream-veth98.netdev', '25-dhcp-pd-downstream-veth98.network', '25-dhcp-pd-downstream-veth98-peer.network',
|
| |
+ '11-dummy.netdev', '25-dhcp-pd-downstream-test1.network',
|
| |
+ '25-dhcp-pd-downstream-dummy97.network',
|
| |
+ '12-dummy.netdev', '25-dhcp-pd-downstream-dummy98.network',
|
| |
+ '13-dummy.netdev', '25-dhcp-pd-downstream-dummy99.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth-peer:routable'])
|
| |
@@ -5419,13 +5425,13 @@
|
| |
self.assertIn('via ::10.0.0.1 dev {}'.format(tunnel_name), output)
|
| |
|
| |
def test_dhcp4_6rd(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp4-6rd-server.network', 'dhcp4-6rd-upstream.network',
|
| |
- '25-veth-downstream-veth97.netdev', 'dhcp-pd-downstream-veth97.network', 'dhcp-pd-downstream-veth97-peer.network',
|
| |
- '25-veth-downstream-veth98.netdev', 'dhcp-pd-downstream-veth98.network', 'dhcp-pd-downstream-veth98-peer.network',
|
| |
- '11-dummy.netdev', 'dhcp-pd-downstream-test1.network',
|
| |
- 'dhcp-pd-downstream-dummy97.network',
|
| |
- '12-dummy.netdev', 'dhcp-pd-downstream-dummy98.network',
|
| |
- '13-dummy.netdev', 'dhcp-pd-downstream-dummy99.network',
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-dhcp4-6rd-server.network', '25-dhcp4-6rd-upstream.network',
|
| |
+ '25-veth-downstream-veth97.netdev', '25-dhcp-pd-downstream-veth97.network', '25-dhcp-pd-downstream-veth97-peer.network',
|
| |
+ '25-veth-downstream-veth98.netdev', '25-dhcp-pd-downstream-veth98.network', '25-dhcp-pd-downstream-veth98-peer.network',
|
| |
+ '11-dummy.netdev', '25-dhcp-pd-downstream-test1.network',
|
| |
+ '25-dhcp-pd-downstream-dummy97.network',
|
| |
+ '12-dummy.netdev', '25-dhcp-pd-downstream-dummy98.network',
|
| |
+ '13-dummy.netdev', '25-dhcp-pd-downstream-dummy99.network',
|
| |
'80-6rd-tunnel.network')
|
| |
|
| |
start_networkd()
|
| |
@@ -5486,10 +5492,10 @@
|
| |
units = [
|
| |
'12-dummy.netdev',
|
| |
'25-veth.netdev',
|
| |
- 'ipv6ra-prefix-client-deny-list.network',
|
| |
- 'ipv6ra-prefix-client.network',
|
| |
- 'ipv6ra-prefix.network',
|
| |
- 'ipv6ra-uplink.network',
|
| |
+ '25-ipv6ra-prefix-client-deny-list.network',
|
| |
+ '25-ipv6ra-prefix-client.network',
|
| |
+ '25-ipv6ra-prefix.network',
|
| |
+ '25-ipv6ra-uplink.network',
|
| |
]
|
| |
|
| |
def setUp(self):
|
| |
@@ -5502,8 +5508,8 @@
|
| |
stop_networkd(show_logs=True)
|
| |
|
| |
def test_ipv6_route_prefix(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6ra-prefix-client.network', 'ipv6ra-prefix.network',
|
| |
- '12-dummy.netdev', 'ipv6ra-uplink.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-ipv6ra-prefix-client.network', '25-ipv6ra-prefix.network',
|
| |
+ '12-dummy.netdev', '25-ipv6ra-uplink.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth99:routable', 'veth-peer:routable', 'dummy98:routable'])
|
| |
@@ -5542,8 +5548,8 @@
|
| |
check_output(*networkctl_cmd, '--json=short', 'status', env=env)
|
| |
|
| |
def test_ipv6_route_prefix_deny_list(self):
|
| |
- copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6ra-prefix-client-deny-list.network', 'ipv6ra-prefix.network',
|
| |
- '12-dummy.netdev', 'ipv6ra-uplink.network')
|
| |
+ copy_unit_to_networkd_unit_path('25-veth.netdev', '25-ipv6ra-prefix-client-deny-list.network', '25-ipv6ra-prefix.network',
|
| |
+ '12-dummy.netdev', '25-ipv6ra-uplink.network')
|
| |
|
| |
start_networkd()
|
| |
self.wait_online(['veth99:routable', 'veth-peer:routable', 'dummy98:routable'])
|
| |
These changes allow running systemd-networkd-tests.py in a mkosi generated image booted in a qemu VM. We need to backport these so that we can run the integration tests when backporting the networkd external tunnel commits to verify that they actually work.
There's a lot of files touched here but they're all networkd test files. The only change affecting regular networkd behavior is a backport of the commit disallowing using interface ID 0 for XFRM interfaces.