Files
Mattias Walström 37f7b5ba92 Add support for reading routing operational data for IPv4
In the CLI:
admin@infix-00-00-00:/> show routes
PREFIX                        DESTINATION                   PROTOCOL  METRIC
1.1.1.0/24                    e0                            kernel
192.168.100.0/24              1.1.1.1                       static    20
192.168.110.2/32              blackhole                     static    20
192.168.120.2/32              blackhole                     static    20
192.168.130.2/32              unreachable                   static    20
2023-11-23 10:30:26 +01:00

577 lines
15 KiB
JSON

{
"ietf-routing:routing": {
"ribs": {
"rib": [
{
"name": "ipv4",
"address-family": "ietf-routing:ipv4",
"routes": {
"route": [
{
"next-hop": {
"outgoing-interface": "e0"
},
"source-protocol": "infix-routing:kernel",
"ietf-ipv4-unicast-routing:destination-prefix": "1.1.1.0/24"
},
{
"next-hop": {
"ietf-ipv4-unicast-routing:next-hop-address": "1.1.1.1"
},
"source-protocol": "infix-routing:static",
"ietf-ipv4-unicast-routing:destination-prefix": "192.168.100.0/24"
},
{
"next-hop": {
"special-next-hop": "blackhole"
},
"source-protocol": "infix-routing:static",
"ietf-ipv4-unicast-routing:destination-prefix": "192.168.110.2/32"
},
{
"next-hop": {
"special-next-hop": "blackhole"
},
"source-protocol": "infix-routing:static",
"ietf-ipv4-unicast-routing:destination-prefix": "192.168.120.2/32"
},
{
"next-hop": {
"special-next-hop": "unreachable"
},
"source-protocol": "infix-routing:static",
"ietf-ipv4-unicast-routing:destination-prefix": "192.168.130.2/32"
}
]
}
}
]
}
},
"ietf-interfaces:interfaces": {
"interface": [
{
"TEST-DESCR": "Normal loopback",
"name": "lo",
"type": "infix-if-type:loopback",
"oper-status": "up",
"if-index": 1,
"phys-address": "02:00:00:06:a7:a0",
"statistics": {
"in-octets": "3099",
"out-octets": "3099"
},
"ietf-ip:ipv4": {
"address": [
{
"ip": "192.168.175.149",
"prefix-length": 8
}
]
}
},
{
"TEST-DESCR": "Bridge interface with IP",
"name": "e0",
"type": "infix-if-type:ethernet",
"oper-status": "up",
"if-index": 2,
"phys-address": "02:00:00:2d:66:d6",
"statistics": {
"in-octets": "0",
"out-octets": "21286"
},
"ieee802-ethernet-interface:ethernet": {
"auto-negotiation": {
"enable": false
}
},
"ietf-ip:ipv4": {
"mtu": 1500,
"address": [
{
"ip": "192.168.23.150",
"prefix-length": 24
}
]
},
"ietf-ip:ipv6": {
"mtu": 1500,
"address": [
{
"ip": "fe80::beff:dd09:6bca:a41e",
"prefix-length": 64,
"origin": "link-layer"
},
{
"ip": "fe80::beff:cda1:ab44:c775",
"prefix-length": 64,
"origin": "random"
}
]
},
"infix-interfaces:bridge-port": {
"bridge": "br0"
}
},
{
"TEST-DESCR": "Bridge interface without IP",
"name": "e1",
"type": "infix-if-type:ethernet",
"oper-status": "up",
"if-index": 4,
"phys-address": "02:00:00:3c:12:5a",
"statistics": {
"in-octets": "0",
"out-octets": "21286"
},
"ietf-ip:ipv4": {
"mtu": 1500
},
"infix-interfaces:bridge-port": {
"bridge": "br0"
}
},
{
"TEST-DESCR": "Bridge interface without IP",
"name": "e2",
"type": "infix-if-type:ethernet",
"oper-status": "up",
"if-index": 4,
"phys-address": "02:00:00:23:47:13",
"statistics": {
"in-octets": "0",
"out-octets": "21286"
},
"ieee802-ethernet-interface:ethernet": {
"auto-negotiation": {
"enable": "invalid-data"
}
},
"ietf-ip:ipv4": {
"mtu": 1500
},
"infix-interfaces:bridge-port": {
"bridge": "br1"
}
},
{
"TEST-DESCR": "Interface without IP",
"name": "e10",
"type": "infix-if-type:ethernet",
"oper-status": "up",
"if-index": 4,
"phys-address": "02:00:00:7f:d9:23",
"statistics": {
"in-octets": "0",
"out-octets": "21286"
},
"ietf-ip:ipv4": {
"mtu": 1500
}
},
{
"TEST-DESCR": "Interface with single IP",
"name": "e11",
"type": "infix-if-type:ethernet",
"oper-status": "up",
"if-index": 4,
"phys-address": "02:00:00:2c:21:89",
"statistics": {
"in-octets": "21280",
"out-octets": "21281"
},
"ietf-ip:ipv4": {
"mtu": 1500,
"address": [
{
"ip": "10.140.211.247",
"prefix-length": 24,
"origin": "static"
}
]
},
"ietf-ip:ipv6": {
"mtu": 1500,
"address": [
{
"ip": "fe80::beff:f45c:96c8:d582",
"prefix-length": 64,
"origin": "link-layer"
},
{
"ip": "fe80::beff:e7a3:64a5:1e55",
"prefix-length": 64,
"origin": "random"
}
]
}
},
{
"TEST-DESCR": "Interface with many IP",
"name": "e12",
"type": "infix-if-type:ethernet",
"oper-status": "up",
"if-index": 4,
"phys-address": "02:00:00:3f:83:71",
"statistics": {
"in-octets": "21280",
"out-octets": "21281"
},
"ietf-ip:ipv4": {
"mtu": 1500,
"address": [
{
"ip": "192.168.76.120",
"prefix-length": 24,
"origin": "static"
},
{
"ip": "192.168.151.147",
"prefix-length": 24,
"origin": "static"
},
{
"ip": "192.168.161.217",
"prefix-length": 24,
"origin": "dhcp"
},
{
"ip": "192.168.55.37",
"prefix-length": 24,
"origin": "dhcp"
},
{
"ip": "192.168.231.242",
"prefix-length": 24
}
]
}
},
{
"TEST-DESCR": "Interface ieee802-ethernet-interface stats",
"name": "e13",
"type": "infix-if-type:ethernet",
"oper-status": "up",
"if-index": 4,
"phys-address": "02:00:00:05:0d:36",
"statistics": {
"in-octets": "11",
"out-octets": "22"
},
"ieee802-ethernet-interface:ethernet": {
"statistics": {
"frame": {
"in-frames": "1111",
"out-frames": "2222"
}
}
},
"ietf-ip:ipv4": {
"mtu": 1500
}
},
{
"TEST-DESCR": "Interface with VLAN on top",
"name": "e20",
"type": "infix-if-type:ethernet",
"oper-status": "up",
"if-index": 4,
"phys-address": "02:00:00:76:88:bc",
"statistics": {
"in-octets": "21280",
"out-octets": "21281"
},
"ietf-ip:ipv4": {
"mtu": 1500,
"address": [
{
"ip": "192.168.5.213",
"prefix-length": 24
}
]
}
},
{
"TEST-DESCR": "Bridge without IP",
"name": "br0",
"type": "infix-if-type:bridge",
"oper-status": "up",
"if-index": 2,
"phys-address": "02:00:00:1f:b5:07",
"statistics": {
"in-octets": "0",
"out-octets": "378"
},
"ietf-ip:ipv4": {
"mtu": 1500
}
},
{
"TEST-DESCR": "Bridge with IP",
"name": "br1",
"type": "infix-if-type:bridge",
"oper-status": "up",
"if-index": 3,
"phys-address": "02:00:00:0e:01:c6",
"statistics": {
"in-octets": "0",
"out-octets": "378"
},
"ietf-ip:ipv4": {
"mtu": 1500,
"address": [
{
"ip": "10.132.4.90",
"prefix-length": 24
}
]
}
},
{
"TEST-DESCR": "Empty bridge with IP",
"name": "br2",
"type": "infix-if-type:bridge",
"oper-status": "up",
"if-index": 3,
"phys-address": "02:00:00:71:78:7c",
"statistics": {
"in-octets": "0",
"out-octets": "378"
},
"ietf-ip:ipv4": {
"mtu": 1500,
"address": [
{
"ip": "10.56.191.8",
"prefix-length": 24
},
{
"ip": "10.5.223.136",
"prefix-length": 24
}
]
}
},
{
"TEST-DESCR": "VLAN on bridge",
"name": "vlan1",
"type": "infix-if-type:vlan",
"oper-status": "up",
"if-index": 4,
"phys-address": "02:00:00:37:2e:bd",
"statistics": {
"in-octets": "0",
"out-octets": "0"
},
"ietf-if-extensions:parent-interface": "br0",
"ietf-ip:ipv4": {
"mtu": 1500
},
"ietf-if-vlan-encapsulation:dot1q-vlan": {
"outer-tag": {
"tag-type": "ieee802-dot1q-types:c-vlan",
"vlan-id": 10
}
}
},
{
"TEST-DESCR": "VLAN with IP on bridge",
"name": "vlan2",
"type": "infix-if-type:vlan",
"oper-status": "up",
"if-index": 4,
"phys-address": "02:00:00:1b:48:9b",
"statistics": {
"in-octets": "0",
"out-octets": "0"
},
"ietf-if-extensions:parent-interface": "br0",
"ietf-ip:ipv4": {
"mtu": 1500,
"address": [
{
"ip": "172.24.10.112",
"prefix-length": 24
}
]
},
"ietf-if-vlan-encapsulation:dot1q-vlan": {
"outer-tag": {
"tag-type": "ieee802-dot1q-types:c-vlan",
"vlan-id": 20
}
}
},
{
"TEST-DESCR": "VLAN without operstatus",
"name": "vlan20",
"type": "infix-if-type:vlan",
"if-index": 4,
"phys-address": "02:00:00:4f:e7:9e",
"statistics": {
"in-octets": "0",
"out-octets": "0"
},
"ietf-if-extensions:parent-interface": "e20",
"ietf-ip:ipv4": {
"mtu": 1500
},
"ietf-ip:ipv4": {
"mtu": 1500,
"address": [
{
"ip": "172.16.154.114",
"prefix-length": 24
}
]
},
"ietf-if-vlan-encapsulation:dot1q-vlan": {
"outer-tag": {
"tag-type": "ieee802-dot1q-types:c-vlan",
"vlan-id": 10
}
}
},
{
"TEST-DESCR": "veth pair with minimal data",
"name": "veth0c",
"type": "infix-if-type:veth",
"oper-status": "up",
"if-index": 13,
"phys-address": "02:00:00:38:27:36",
"statistics": {
"in-octets": "488",
"out-octets": "488"
},
"ieee802-ethernet-interface:ethernet": {
"auto-negotiation": {
"enable": false
}
},
"ietf-ip:ipv4": {
"mtu": 1500
},
"ietf-ip:ipv6": {
"mtu": 1500
},
"infix-interfaces:vlan": {
"lower-layer-if": "veth0b"
}
},
{
"TEST-DESCR": "veth pair with minimal data",
"name": "veth0d",
"type": "infix-if-type:veth",
"oper-status": "up",
"if-index": 13,
"phys-address": "02:00:00:47:17:0c",
"statistics": {
"in-octets": "488",
"out-octets": "488"
},
"ieee802-ethernet-interface:ethernet": {
"auto-negotiation": {
"enable": false
}
},
"ietf-ip:ipv4": {
"mtu": 1500
},
"ietf-ip:ipv6": {
"mtu": 1500
},
"infix-interfaces:vlan": {
"lower-layer-if": "veth0b"
}
},
{
"name": "veth0a",
"type": "infix-if-type:veth",
"oper-status": "up",
"if-index": 13,
"phys-address": "02:00:00:48:5a:03",
"statistics": {
"in-octets": "488",
"out-octets": "488"
},
"ieee802-ethernet-interface:ethernet": {
"auto-negotiation": {
"enable": false
}
},
"ietf-ip:ipv4": {
"mtu": 1500,
"address": [
{
"ip": "172.28.29.76",
"prefix-length": 24,
"origin": "static"
},
{
"ip": "172.16.187.13",
"prefix-length": 24,
"origin": "static"
}
]
},
"ietf-ip:ipv6": {
"mtu": 1500,
"address": [
{
"ip": "fe80::beff:407a:d738:aaaa",
"prefix-length": 64,
"origin": "link-layer"
},
{
"ip": "fe80::beff:aaaa:d738:aaab",
"prefix-length": 64,
"origin": "random"
}
]
},
"infix-interfaces:vlan": {
"lower-layer-if": "veth0b"
}
},
{
"name": "veth0b",
"type": "infix-if-type:veth",
"oper-status": "up",
"if-index": 13,
"phys-address": "02:00:00:02:e5:1e",
"statistics": {
"in-octets": "488",
"out-octets": "488"
},
"ieee802-ethernet-interface:ethernet": {
"auto-negotiation": {
"enable": false
}
},
"ietf-ip:ipv4": {
"mtu": 1500
},
"ietf-ip:ipv6": {
"mtu": 1500,
"address": [
{
"ip": "fe80::beff:407a:d738:aaac",
"prefix-length": 64,
"origin": "link-layer"
},
{
"ip": "fe80::beff:aaaa:d738:aaad",
"prefix-length": 64,
"origin": "random"
}
]
},
"infix-interfaces:vlan": {
"lower-layer-if": "veth0a"
}
}
]
}
}