Files
infix/test/case/interfaces/tunnel_bridged/test.py
T
Joachim Wiberg 1bbd80d8c7 test: drop leading ietf/infix prefix from directories
Let's drop the leading IETF or Infix prefixes from tests.  Initially the
idea was to mimnic the YANG models, but it's difficult to navigate and
does not provide any real benefit to developers or end-users.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-11-20 20:23:23 +01:00

123 lines
3.8 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Tunnel interface bridged with physical
Set up a layer-2 tunnel between two DUTs, host is connected to the first DUT.
Bridge the interface connected to the host and the tunnel interface on the
first DUT. On host, verify connectivity with the second DUT through tunnel.
- Tunnel types: GRETAP, and VxLAN
- Connectivity: IPv4
"""
import infamy
class ArgumentParser(infamy.ArgumentParser):
def __init__(self):
super().__init__()
self.add_argument("--tunnel")
with infamy.Test() as test:
with test.step("Set up topology and attach to target DUTs"):
arg = ArgumentParser()
env = infamy.Env(args=arg)
left = env.attach("left", "mgmt")
right = env.attach("right", "mgmt")
tunnel = env.args.tunnel
with test.step("Configure DUTs with tunnel {tunnel}"):
if tunnel == "gretap":
CONTAINER_TYPE = "gre"
else:
CONTAINER_TYPE = tunnel
container_left = {
"local": "192.168.50.1",
"remote": "192.168.50.2"
}
container_right = {
"local": "192.168.50.2",
"remote": "192.168.50.1"
}
container_left.update({
"vni": 4
})
container_right.update({
"vni": 4
})
left.put_config_dicts({"ietf-interfaces": {
"interfaces": {
"interface": [{
"name": left["link"],
"ipv4": {
"address": [{
"ip": "192.168.50.1",
"prefix-length": 24
}],
"forwarding": True
}
}, {
"name": left["data"],
"bridge-port": {
"bridge": "br0"
}
}, {
"name": "br0",
"type": "infix-if-type:bridge"
}, {
"name": f"{tunnel}0",
"type": f"infix-if-type:{tunnel}",
CONTAINER_TYPE: container_left,
"bridge-port": {
"bridge": "br0"
}
}]
}
}})
right.put_config_dicts({
"ietf-interfaces": {
"interfaces": {
"interface": [{
"name": right["link"],
"ipv4": {
"address": [{
"ip": "192.168.50.2",
"prefix-length": 24
}],
"forwarding": True
},
"ipv6": {
"address": [{
"ip": "2001:db8:3c4d:50::2",
"prefix-length": 64
}]
}
}, {
"name": f"{tunnel}0",
"type": f"infix-if-type:{tunnel}",
"ipv4": {
"address": [{
"ip": "192.168.10.2",
"prefix-length": 24
}],
"forwarding": True
},
CONTAINER_TYPE: container_right,
}]
}
}
})
_, hport = env.ltop.xlate("host", "data")
with test.step(f"Test connectivity host:data to right:{tunnel}0 at 192.168.10.2"):
with infamy.IsolatedMacVlan(hport) as ns0:
ns0.addip("192.168.10.1")
ns0.must_reach("192.168.10.2")
test.succeed()