mirror of
https://github.com/kernelkit/infix.git
synced 2026-08-02 22:03:01 +02:00
test: update verify_all_interface_types for collecting data
To collect vxlan interfaces and add some addresses to some interfaces to increase coverage of unit_test (show interface)
This commit is contained in:
@@ -58,201 +58,257 @@ with infamy.Test() as test:
|
||||
loopback = "lo"
|
||||
|
||||
with test.step("Configure an empty bridge br-0"):
|
||||
target.put_config_dict("ietf-interfaces", {
|
||||
"interfaces": {
|
||||
"interface": [
|
||||
{
|
||||
"name": br_0,
|
||||
"type": "infix-if-type:bridge",
|
||||
"enabled": True,
|
||||
target.put_config_dicts({
|
||||
"ietf-interfaces": {
|
||||
"interfaces": {
|
||||
"interface": [
|
||||
{
|
||||
"name": br_0,
|
||||
"type": "infix-if-type:bridge",
|
||||
"enabled": True,
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
with test.step("Configure bridge br-X and associated interfaces"):
|
||||
target.put_config_dict("ietf-interfaces", {
|
||||
"interfaces": {
|
||||
"interface": [
|
||||
{
|
||||
"name": br_X,
|
||||
"type": "infix-if-type:bridge",
|
||||
"enabled": True
|
||||
},
|
||||
{
|
||||
"name": eth_X_30,
|
||||
"type": "infix-if-type:vlan",
|
||||
"enabled": True,
|
||||
"vlan": {
|
||||
"lower-layer-if": eth_X,
|
||||
"id": 30
|
||||
},
|
||||
"infix-interfaces:bridge-port": {
|
||||
"bridge": br_X
|
||||
}
|
||||
target.put_config_dicts({
|
||||
"ietf-interfaces": {
|
||||
"interfaces": {
|
||||
"interface": [
|
||||
{
|
||||
"name": br_X,
|
||||
"type": "infix-if-type:bridge",
|
||||
"enabled": True
|
||||
},
|
||||
{
|
||||
"name": eth_X_30,
|
||||
"type": "infix-if-type:vlan",
|
||||
"enabled": True,
|
||||
"vlan": {
|
||||
"lower-layer-if": eth_X,
|
||||
"id": 30
|
||||
},
|
||||
"infix-interfaces:bridge-port": {
|
||||
"bridge": br_X
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
with test.step("Configure VETH pair"):
|
||||
target.put_config_dict("ietf-interfaces", {
|
||||
target.put_config_dicts({
|
||||
"ietf-interfaces": {
|
||||
"interfaces": {
|
||||
"interface": [
|
||||
{
|
||||
"name": veth_a,
|
||||
"type": "infix-if-type:veth",
|
||||
"enabled": True,
|
||||
"infix-interfaces:veth": {
|
||||
"peer": veth_b
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": veth_b,
|
||||
"type": "infix-if-type:veth",
|
||||
"enabled": True,
|
||||
"infix-interfaces:veth": {
|
||||
"peer": veth_a
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
with test.step("Configure bridge br-D and associated interfaces"):
|
||||
target.put_config_dicts({
|
||||
"ietf-interfaces": {
|
||||
"interfaces": {
|
||||
"interface": [
|
||||
{
|
||||
"name": veth_a,
|
||||
"type": "infix-if-type:veth",
|
||||
"name": br_D,
|
||||
"type": "infix-if-type:bridge",
|
||||
"enabled": True,
|
||||
"infix-interfaces:veth": {
|
||||
"peer": veth_b
|
||||
"ietf-ip:ipv4": {
|
||||
"address": [
|
||||
{ "ip": "192.168.20.1", "prefix-length": 24 },
|
||||
{ "ip": "10.0.0.1", "prefix-length": 8 },
|
||||
],
|
||||
},
|
||||
"ietf-ip:ipv6": {
|
||||
"address": [
|
||||
{ "ip": "2001:db8::1", "prefix-length": 64 },
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": veth_a_20,
|
||||
"type": "infix-if-type:vlan",
|
||||
"enabled": True,
|
||||
"vlan": {
|
||||
"lower-layer-if": "veth0a",
|
||||
"id": 20
|
||||
},
|
||||
"infix-interfaces:bridge-port": {
|
||||
"bridge": br_D
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
with test.step("Configure br-Q and associated interfaces"):
|
||||
target.put_config_dicts({
|
||||
"ietf-interfaces": {
|
||||
"interfaces": {
|
||||
"interface": [
|
||||
{
|
||||
"name": br_Q,
|
||||
"type": "infix-if-type:bridge",
|
||||
"enabled": True,
|
||||
"infix-interfaces:bridge": {
|
||||
"vlans": {
|
||||
"vlan": [
|
||||
{ "vid": 20, "untagged": [br_Q], "tagged": [eth_Q, veth_b] },
|
||||
{ "vid": 30, "untagged": [br_Q], "tagged": [eth_Q, veth_b] },
|
||||
{ "vid": 40, "untagged": [], "tagged": [br_Q, eth_Q, veth_b] },
|
||||
],
|
||||
}
|
||||
},
|
||||
"infix-interfaces:bridge-port": {
|
||||
"pvid": 10,
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": eth_Q,
|
||||
"enabled": True,
|
||||
"infix-interfaces:bridge-port": {
|
||||
"bridge": br_Q
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": veth_b,
|
||||
"type": "infix-if-type:veth",
|
||||
"enabled": True,
|
||||
"infix-interfaces:veth": {
|
||||
"peer": veth_a
|
||||
"infix-interfaces:bridge-port": {
|
||||
"bridge": br_Q
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": eth_Q_10,
|
||||
"type": "infix-if-type:vlan",
|
||||
"enabled": True,
|
||||
"vlan": {
|
||||
"lower-layer-if": eth_Q,
|
||||
"id": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": br_Q_40,
|
||||
"type": "infix-if-type:vlan",
|
||||
"enabled": True,
|
||||
"vlan": {
|
||||
"lower-layer-if": br_Q,
|
||||
"id": 40
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
with test.step("Configure bridge br-D and associated interfaces"):
|
||||
target.put_config_dict("ietf-interfaces", {
|
||||
"interfaces": {
|
||||
"interface": [
|
||||
{
|
||||
"name": br_D,
|
||||
"type": "infix-if-type:bridge",
|
||||
"enabled": True,
|
||||
"ietf-ip:ipv4": {
|
||||
"address": [
|
||||
{ "ip": "192.168.20.1", "prefix-length": 24 },
|
||||
{ "ip": "10.0.0.1", "prefix-length": 8 },
|
||||
],
|
||||
},
|
||||
"ietf-ip:ipv6": {
|
||||
"address": [
|
||||
{ "ip": "2001:db8::1", "prefix-length": 64 },
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": veth_a_20,
|
||||
"type": "infix-if-type:vlan",
|
||||
"enabled": True,
|
||||
"vlan": {
|
||||
"lower-layer-if": "veth0a",
|
||||
"id": 20
|
||||
},
|
||||
"infix-interfaces:bridge-port": {
|
||||
"bridge": br_D
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
with test.step("Configure br-Q and associated interfaces"):
|
||||
target.put_config_dict("ietf-interfaces", {
|
||||
"interfaces": {
|
||||
"interface": [
|
||||
{
|
||||
"name": br_Q,
|
||||
"type": "infix-if-type:bridge",
|
||||
"enabled": True,
|
||||
"infix-interfaces:bridge": {
|
||||
"vlans": {
|
||||
"vlan": [
|
||||
{ "vid": 20, "untagged": [br_Q], "tagged": [eth_Q, veth_b] },
|
||||
{ "vid": 30, "untagged": [br_Q], "tagged": [eth_Q, veth_b] },
|
||||
{ "vid": 40, "untagged": [], "tagged": [br_Q, eth_Q, veth_b] },
|
||||
],
|
||||
}
|
||||
},
|
||||
"infix-interfaces:bridge-port": {
|
||||
"pvid": 10,
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": eth_Q,
|
||||
"enabled": True,
|
||||
"infix-interfaces:bridge-port": {
|
||||
"bridge": br_Q
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": veth_b,
|
||||
"type": "infix-if-type:veth",
|
||||
"enabled": True,
|
||||
"infix-interfaces:bridge-port": {
|
||||
"bridge": br_Q
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": eth_Q_10,
|
||||
"type": "infix-if-type:vlan",
|
||||
"enabled": True,
|
||||
"vlan": {
|
||||
"lower-layer-if": eth_Q,
|
||||
"id": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": br_Q_40,
|
||||
"type": "infix-if-type:vlan",
|
||||
"enabled": True,
|
||||
"vlan": {
|
||||
"lower-layer-if": br_Q,
|
||||
"id": 40
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
with test.step("Configure GRE Tunnels"):
|
||||
target.put_config_dict("ietf-interfaces", {
|
||||
"interfaces": {
|
||||
"interface": [
|
||||
{
|
||||
"name": "gre-v4",
|
||||
"type": "infix-if-type:gre",
|
||||
"infix-interfaces:gre": {
|
||||
"local": "192.168.20.1",
|
||||
"remote": "192.168.20.2",
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gre-v6",
|
||||
"type": "infix-if-type:gre",
|
||||
"infix-interfaces:gre": {
|
||||
"local": "2001:db8::1",
|
||||
"remote": "2001:db8::2",
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gretap-v4",
|
||||
"type": "infix-if-type:gretap",
|
||||
"infix-interfaces:gre": {
|
||||
"local": "192.168.20.1",
|
||||
"remote": "192.168.20.2",
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gretap-v6",
|
||||
"type": "infix-if-type:gretap",
|
||||
"infix-interfaces:gre": {
|
||||
"local": "2001:db8::1",
|
||||
"remote": "2001:db8::2",
|
||||
}
|
||||
},
|
||||
]
|
||||
target.put_config_dicts({
|
||||
"ietf-interfaces": {
|
||||
"interfaces": {
|
||||
"interface": [
|
||||
{
|
||||
"name": "gre-v4",
|
||||
"type": "infix-if-type:gre",
|
||||
|
||||
"infix-interfaces:gre": {
|
||||
"local": "192.168.20.1",
|
||||
"remote": "192.168.20.2",
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gre-v6",
|
||||
"type": "infix-if-type:gre",
|
||||
"ietf-ip:ipv4": {
|
||||
"address": [
|
||||
{ "ip": "192.168.50.2", "prefix-length": 16 },
|
||||
]
|
||||
},
|
||||
"infix-interfaces:gre": {
|
||||
"local": "2001:db8::1",
|
||||
"remote": "2001:db8::2",
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gretap-v4",
|
||||
"type": "infix-if-type:gretap",
|
||||
"infix-interfaces:gre": {
|
||||
"local": "192.168.20.1",
|
||||
"remote": "192.168.20.2",
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gretap-v6",
|
||||
"type": "infix-if-type:gretap",
|
||||
"infix-interfaces:gre": {
|
||||
"local": "2001:db8::1",
|
||||
"remote": "2001:db8::2",
|
||||
}
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
with test.step("Configure VxLAN Tunnels"):
|
||||
target.put_config_dicts({
|
||||
"ietf-interfaces": {
|
||||
"interfaces": {
|
||||
"interface": [
|
||||
{
|
||||
"name": "vxlan-v4",
|
||||
"type": "infix-if-type:vxlan",
|
||||
"ietf-ip:ipv4": {
|
||||
"address": [
|
||||
{ "ip": "192.168.30.2", "prefix-length": 24 },
|
||||
]
|
||||
},
|
||||
"infix-interfaces:vxlan": {
|
||||
"local": "192.168.20.100",
|
||||
"remote": "192.168.20.200",
|
||||
"vni": "4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "vxlan-v6",
|
||||
"type": "infix-if-type:vxlan",
|
||||
"ietf-ip:ipv4": {
|
||||
"address": [
|
||||
{ "ip": "192.168.40.2", "prefix-length": 24 },
|
||||
]
|
||||
},
|
||||
"infix-interfaces:vxlan": {
|
||||
"local": "2001:db8::100",
|
||||
"remote": "2001:db8::200",
|
||||
"vni": "6"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
with test.step("Verify interface 'lo' is of type loopback"):
|
||||
verify_interface(target, "lo", "loopback")
|
||||
|
||||
@@ -282,4 +338,7 @@ with infamy.Test() as test:
|
||||
verify_interface(target, "gretap-v4", "gretap")
|
||||
verify_interface(target, "gretap-v6", "gretap")
|
||||
|
||||
with test.step("Verify VxLAN interfaces 'vxlan-v4' and 'vxlan-v6'"):
|
||||
verify_interface(target, "vxlan-v4", "vxlan")
|
||||
verify_interface(target, "vxlan-v6", "vxlan")
|
||||
test.succeed()
|
||||
|
||||
Reference in New Issue
Block a user