summaryrefslogtreecommitdiff
path: root/smoketest/scripts/cli
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2025-09-15 11:19:01 +0100
committerGitHub <noreply@github.com>2025-09-15 11:19:01 +0100
commit48b9f84e5ce681946271e159a19013d23e13d43e (patch)
treede933d4fe1783a4afb10b53bfeabb08238a0e61a /smoketest/scripts/cli
parent238a9006cc78022ba5e95258c1033ccf8abfb1af (diff)
parent048ff4fab605a1c6ebf5124fe2adedb81788066e (diff)
downloadvyos-1x-48b9f84e5ce681946271e159a19013d23e13d43e.tar.gz
vyos-1x-48b9f84e5ce681946271e159a19013d23e13d43e.zip
Merge pull request #4686 from l0crian1/container-macvlan
container: T7186: Add macvlan network type for containers
Diffstat (limited to 'smoketest/scripts/cli')
-rwxr-xr-xsmoketest/scripts/cli/test_container.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/smoketest/scripts/cli/test_container.py b/smoketest/scripts/cli/test_container.py
index 7590ed1cd..864207308 100755
--- a/smoketest/scripts/cli/test_container.py
+++ b/smoketest/scripts/cli/test_container.py
@@ -165,6 +165,64 @@ class TestContainer(VyOSUnitTestSHIM.TestCase):
# Check for running process
self.assertEqual(process_named_running(PROCESS_NAME), pid)
+ def test_network_types(self):
+ self.cli_set(['interfaces', 'ethernet', 'eth0', 'vif', '100'])
+ self.cli_set(['interfaces', 'ethernet', 'eth0', 'vif', '101'])
+
+ # MACVLAN Networks
+ self.cli_set(base_path + ['network', 'macvlan1', 'prefix', '10.0.0.0/24'])
+ self.cli_set(base_path + ['network', 'macvlan1', 'type', 'macvlan', 'parent', 'eth0'])
+ self.cli_set(base_path + ['network', 'macvlan1', 'type', 'macvlan', 'mode', 'bridge'])
+ self.cli_set(base_path + ['network', 'macvlan2', 'prefix', '10.0.100.0/24'])
+ self.cli_set(base_path + ['network', 'macvlan2', 'gateway', '10.0.100.5'])
+ self.cli_set(base_path + ['network', 'macvlan2', 'type', 'macvlan', 'parent', 'eth0.100'])
+ self.cli_set(base_path + ['network', 'macvlan2', 'type', 'macvlan', 'mode', 'private'])
+ self.cli_set(base_path + ['network', 'macvlan3', 'prefix', '2001::/64'])
+ self.cli_set(base_path + ['network', 'macvlan3', 'type', 'macvlan', 'parent', 'eth0.101'])
+ self.cli_set(base_path + ['network', 'macvlan3', 'type', 'macvlan', 'mode', 'vepa'])
+
+ # Bridge Network
+ self.cli_set(base_path + ['network', 'bridge1', 'prefix', '10.0.1.0/24'])
+ self.cli_set(base_path + ['network', 'bridge1', 'type', 'bridge'])
+
+ # Bridge Network before T7186; default network type is bridge
+ self.cli_set(base_path + ['network', 'bridge2', 'prefix', '10.0.2.0/24'])
+
+ self.cli_commit()
+
+ n = cmd_to_json(f'sudo podman network inspect macvlan1')
+ self.assertEqual(n['driver'], 'macvlan')
+ self.assertEqual(n['network_interface'], 'eth0')
+ self.assertEqual(n['options']['mode'], 'bridge')
+ self.assertEqual(n['subnets'][0]['subnet'], '10.0.0.0/24')
+ self.assertEqual(n['subnets'][0]['gateway'], '10.0.0.1')
+
+ n = cmd_to_json(f'sudo podman network inspect macvlan2')
+ self.assertEqual(n['driver'], 'macvlan')
+ self.assertEqual(n['network_interface'], 'eth0.100')
+ self.assertEqual(n['options']['mode'], 'private')
+ self.assertEqual(n['subnets'][0]['subnet'], '10.0.100.0/24')
+ self.assertEqual(n['subnets'][0]['gateway'], '10.0.100.5')
+
+ n = cmd_to_json(f'sudo podman network inspect macvlan3')
+ self.assertEqual(n['driver'], 'macvlan')
+ self.assertEqual(n['network_interface'], 'eth0.101')
+ self.assertEqual(n['options']['mode'], 'vepa')
+ self.assertEqual(n['subnets'][0]['subnet'], '2001::/64')
+ self.assertEqual(n['subnets'][0]['gateway'], '2001::1')
+
+ n = cmd_to_json(f'sudo podman network inspect bridge1')
+ self.assertEqual(n['driver'], 'bridge')
+ self.assertEqual(n['network_interface'], 'pod-bridge1')
+ self.assertEqual(n['subnets'][0]['subnet'], '10.0.1.0/24')
+ self.assertEqual(n['subnets'][0]['gateway'], '10.0.1.1')
+
+ n = cmd_to_json(f'sudo podman network inspect bridge2')
+ self.assertEqual(n['driver'], 'bridge')
+ self.assertEqual(n['network_interface'], 'pod-bridge2')
+ self.assertEqual(n['subnets'][0]['subnet'], '10.0.2.0/24')
+ self.assertEqual(n['subnets'][0]['gateway'], '10.0.2.1')
+
def test_ipv4_network(self):
prefix = '192.0.2.0/24'
base_name = 'ipv4'