diff --git a/src/statd/python/yanger/yanger.py b/src/statd/python/yanger/yanger.py index c8fab1b89..cf093139f 100755 --- a/src/statd/python/yanger/yanger.py +++ b/src/statd/python/yanger/yanger.py @@ -592,16 +592,22 @@ def get_brport_multicast(ifname): return multicast -def add_ip_link(ifname, iface_out): +# We always get all interfaces for two reasons. +# 1) To increase speed on large iron with many ports. +# 2) To simplify testing (single dummy file ip-link-show.json). +def get_ip_link(): """Fetch interface link information from kernel""" - data = run_json_cmd(['ip', '-s', '-d', '-j', 'link', 'show', 'dev', ifname], - f"ip-link-show-dev-{ifname}.json") - if len(data) != 1: - logger.error("expected ip link output to be array with length 1") - sys.exit(1) + return run_json_cmd(['ip', '-s', '-d', '-j', 'link', 'show'], + f"ip-link-show.json") + + +def get_ip_addr(): + """Fetch interface address information from kernel""" + return run_json_cmd(['ip', '-j', 'addr', 'show'], + f"ip-addr-show.json") - iface_in = data[0] +def add_ip_link(ifname, iface_in, iface_out): if 'ifname' in iface_in: iface_out['name'] = iface_in['ifname'] @@ -652,17 +658,7 @@ def add_ip_link(ifname, iface_out): insert(iface_out, "statistics", "in-octets", str(val)) -def add_ip_addr(ifname, iface_out): - """Fetch interface address information from kernel""" - - data = run_json_cmd(['ip', '-j', 'addr', 'show', 'dev', ifname], - f"ip-addr-show-dev-{ifname}.json") - if len(data) != 1: - logger.error("expected ip addr output to be array with length 1") - sys.exit(1) - - iface_in = data[0] - +def add_ip_addr(ifname, iface_in, iface_out): if 'mtu' in iface_in and ifname != "lo": insert(iface_out, "ietf-ip:ipv4", "mtu", iface_in['mtu']) @@ -881,11 +877,11 @@ def add_vlans_to_bridge(brname, iface_out, mc_status): insert(iface_out, "infix-interfaces:bridge", "vlans", "vlan", vlans) -def get_iface_data(ifname): +def get_iface_data(ifname, ip_link_data, ip_addr_data): iface_out = {} - add_ip_link(ifname, iface_out) - add_ip_addr(ifname, iface_out) + add_ip_link(ifname, ip_link_data, iface_out) + add_ip_addr(ifname, ip_addr_data, iface_out) if 'type' in iface_out and iface_out['type'] == "infix-if-type:ethernet": add_ethtool_groups(ifname, iface_out) @@ -902,6 +898,30 @@ def get_iface_data(ifname): return iface_out +def _add_interface(ifname, ip_link_data, ip_addr_data, yang_ifaces): + # We expect both ip addr and link data to exist. + if not ip_link_data or not ip_addr_data: + return + + # Skip internal interfaces. + if 'group' in ip_link_data and ip_link_data['group'] == "internal": + return + + yang_ifaces.append(get_iface_data(ifname, ip_link_data, ip_addr_data)) + +def add_interface(ifname, yang_ifaces): + ip_link_data = get_ip_link() + ip_addr_data = get_ip_addr() + + if ifname: + ip_link_data = next((d for d in ip_link_data if d.get('ifname') == ifname), None) + ip_addr_data = next((d for d in ip_addr_data if d.get('ifname') == ifname), None) + _add_interface(ifname, ip_link_data, ip_addr_data, yang_ifaces) + else: + for link in ip_link_data: + addr = next((d for d in ip_addr_data if d.get('ifname') == link["ifname"]), None) + _add_interface(link["ifname"], link, addr, yang_ifaces) + def main(): global TESTPATH global logger @@ -936,15 +956,7 @@ def main(): "interface": [] } } - - if args.param: - iface_data = get_iface_data(args.param) - yang_data['ietf-interfaces:interfaces']['interface'].append(iface_data) - else: - ifnames = os.listdir('/sys/class/net/') - for ifname in ifnames: - iface_data = get_iface_data(ifname) - yang_data['ietf-interfaces:interfaces']['interface'].append(iface_data) + add_interface(args.param, yang_data['ietf-interfaces:interfaces']['interface']) elif args.model == 'ietf-routing': yang_data = { diff --git a/test/case/cli/sysrepo-emulator.sh b/test/case/cli/sysrepo-emulator.sh index 2693f6280..df9cd2eb3 100755 --- a/test/case/cli/sysrepo-emulator.sh +++ b/test/case/cli/sysrepo-emulator.sh @@ -5,13 +5,10 @@ ROOT_PATH="$SCRIPT_PATH/../../../" YANGER_TOOL="$ROOT_PATH/src/statd/python/yanger/yanger.py" -INTERFACES="br0 br1 e0 e1 e2 e3 e4" - -INTERFACE_OUTPUT_FILE="$(mktemp)" INTERFACES_OUTPUT_FILE="$(mktemp)" ROUTES_OUTPUT_FILE="$(mktemp)" cleanup() { - rm -f "$INTERFACE_OUTPUT_FILE" + rm -f "$INTERFACES_OUTPUT_FILE" rm -f "$ROUTES_OUTPUT_FILE" } trap cleanup EXIT @@ -21,22 +18,10 @@ if [ ! -e "$YANGER_TOOL" ]; then exit 1 fi - -for iface in $INTERFACES; do - if ! "$YANGER_TOOL" "ietf-interfaces" \ - -t "$SCRIPT_PATH/system-output/" \ - -p "$iface" >> "$INTERFACE_OUTPUT_FILE"; then - echo "Error, running yanger for interface $iface" >&2 - exit 1 - fi -done - -if ! jq -s 'reduce .[] as $item - ({}; .["ietf-interfaces:interfaces"].interface += - $item["ietf-interfaces:interfaces"].interface)' \ - "$INTERFACE_OUTPUT_FILE" >> $INTERFACES_OUTPUT_FILE; then - echo "Error, merging yanger output data" >&2 - exit 1 +if ! "$YANGER_TOOL" "ietf-interfaces" \ + -t "$SCRIPT_PATH/system-output/" >> "$INTERFACES_OUTPUT_FILE"; then + echo "Error, running yanger for interface $iface" >&2 + exit 1 fi $YANGER_TOOL "ietf-routing" -t "$SCRIPT_PATH/system-output/" > "$ROUTES_OUTPUT_FILE" diff --git a/test/case/cli/system-output/ethtool-dsa0.txt b/test/case/cli/system-output/ethtool-dsa0.txt new file mode 100644 index 000000000..6fb392baa --- /dev/null +++ b/test/case/cli/system-output/ethtool-dsa0.txt @@ -0,0 +1,32 @@ +Settings for dsa0: + Supported ports: [ MII ] + Supported link modes: 10000baseT/Full + 10000baseKX4/Full + 10000baseKR/Full + 10000baseCR/Full + 10000baseSR/Full + 10000baseLR/Full + 10000baseLRM/Full + 10000baseER/Full + Supported pause frame use: Symmetric Receive-only + Supports auto-negotiation: Yes + Supported FEC modes: Not reported + Advertised link modes: 10000baseT/Full + 10000baseKX4/Full + 10000baseKR/Full + 10000baseCR/Full + 10000baseSR/Full + 10000baseLR/Full + 10000baseLRM/Full + 10000baseER/Full + Advertised pause frame use: Symmetric Receive-only + Advertised auto-negotiation: Yes + Advertised FEC modes: Not reported + Speed: 10000Mb/s + Duplex: Full + Auto-negotiation: on + Port: MII + PHYAD: 0 + Transceiver: internal +netlink error: Operation not permitted + Link detected: yes diff --git a/test/case/cli/system-output/ethtool-groups-dsa0.json b/test/case/cli/system-output/ethtool-groups-dsa0.json new file mode 100644 index 000000000..55cd26367 --- /dev/null +++ b/test/case/cli/system-output/ethtool-groups-dsa0.json @@ -0,0 +1,7 @@ +[ { + "ifname": "dsa0", + "eth-phy": {}, + "eth-mac": {}, + "eth-ctrl": {}, + "rmon": {} +} ] diff --git a/test/case/cli/system-output/ip-addr-show-dev-br0.json b/test/case/cli/system-output/ip-addr-show-dev-br0.json deleted file mode 100644 index 665b50f34..000000000 --- a/test/case/cli/system-output/ip-addr-show-dev-br0.json +++ /dev/null @@ -1,101 +0,0 @@ -[ - { - "ifindex": 7, - "ifname": "br0", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "noqueue", - "operstate": "UP", - "linkmode": "DEFAULT", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:00", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 0, - "allmulti": 0, - "min_mtu": 68, - "max_mtu": 65535, - "linkinfo": { - "info_kind": "bridge", - "info_data": { - "forward_delay": 1500, - "hello_time": 200, - "max_age": 2000, - "ageing_time": 30000, - "stp_state": 0, - "priority": 32768, - "vlan_filtering": 1, - "vlan_protocol": "802.1Q", - "bridge_id": "8000.2:0:0:0:0:0", - "root_id": "8000.2:0:0:0:0:0", - "root_port": 0, - "root_path_cost": 0, - "topology_change": 0, - "topology_change_detected": 0, - "hello_timer": 0, - "tcn_timer": 0, - "topology_change_timer": 0, - "gc_timer": 63.88, - "vlan_default_pvid": 0, - "vlan_stats_enabled": 0, - "vlan_stats_per_port": 0, - "group_fwd_mask": "0", - "group_addr": "01:80:c2:00:00:00", - "mcast_snooping": 0, - "no_linklocal_learn": 0, - "mcast_vlan_snooping": 0, - "mcast_router": 1, - "mcast_query_use_ifaddr": 0, - "mcast_querier": 0, - "mcast_hash_elasticity": 16, - "mcast_hash_max": 4096, - "mcast_last_member_cnt": 2, - "mcast_startup_query_cnt": 2, - "mcast_last_member_intvl": 100, - "mcast_membership_intvl": 26000, - "mcast_querier_intvl": 25500, - "mcast_query_intvl": 12500, - "mcast_query_response_intvl": 1000, - "mcast_startup_query_intvl": 3124, - "mcast_stats_enabled": 0, - "mcast_igmp_version": 2, - "mcast_mld_version": 1, - "nf_call_iptables": 0, - "nf_call_ip6tables": 0, - "nf_call_arptables": 0 - } - }, - "inet6_addr_gen_mode": "none", - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "stats64": { - "rx": { - "bytes": 3158, - "packets": 42, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 37 - }, - "tx": { - "bytes": 0, - "packets": 0, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-addr-show-dev-br1.json b/test/case/cli/system-output/ip-addr-show-dev-br1.json deleted file mode 100644 index 4091eb318..000000000 --- a/test/case/cli/system-output/ip-addr-show-dev-br1.json +++ /dev/null @@ -1,100 +0,0 @@ -[ - { - "ifindex": 8, - "ifname": "br1", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "noqueue", - "operstate": "UP", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:02", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 0, - "allmulti": 0, - "min_mtu": 68, - "max_mtu": 65535, - "linkinfo": { - "info_kind": "bridge", - "info_data": { - "forward_delay": 1500, - "hello_time": 200, - "max_age": 2000, - "ageing_time": 30000, - "stp_state": 0, - "priority": 32768, - "vlan_filtering": 1, - "vlan_protocol": "802.1Q", - "bridge_id": "8000.2:0:0:0:0:2", - "root_id": "8000.2:0:0:0:0:2", - "root_port": 0, - "root_path_cost": 0, - "topology_change": 0, - "topology_change_detected": 0, - "hello_timer": 0.00, - "tcn_timer": 0.00, - "topology_change_timer": 0.00, - "gc_timer": 0.00, - "vlan_default_pvid": 0, - "vlan_stats_enabled": 0, - "vlan_stats_per_port": 0, - "group_fwd_mask": "0", - "group_addr": "01:80:c2:00:00:00", - "mcast_snooping": 0, - "no_linklocal_learn": 0, - "mcast_vlan_snooping": 0, - "mcast_router": 1, - "mcast_query_use_ifaddr": 0, - "mcast_querier": 0, - "mcast_hash_elasticity": 16, - "mcast_hash_max": 4096, - "mcast_last_member_cnt": 2, - "mcast_startup_query_cnt": 2, - "mcast_last_member_intvl": 100, - "mcast_membership_intvl": 26000, - "mcast_querier_intvl": 25500, - "mcast_query_intvl": 12500, - "mcast_query_response_intvl": 1000, - "mcast_startup_query_intvl": 3124, - "mcast_stats_enabled": 0, - "mcast_igmp_version": 2, - "mcast_mld_version": 1, - "nf_call_iptables": 0, - "nf_call_ip6tables": 0, - "nf_call_arptables": 0 - } - }, - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "addr_info": [], - "stats64": { - "rx": { - "bytes": 0, - "packets": 0, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 0 - }, - "tx": { - "bytes": 0, - "packets": 0, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-addr-show-dev-e0.json b/test/case/cli/system-output/ip-addr-show-dev-e0.json deleted file mode 100644 index ce4bda9ce..000000000 --- a/test/case/cli/system-output/ip-addr-show-dev-e0.json +++ /dev/null @@ -1,91 +0,0 @@ -[ - { - "ifindex": 2, - "ifname": "e0", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "pfifo_fast", - "master": "br0", - "operstate": "UP", - "linkmode": "DEFAULT", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:00", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 1, - "allmulti": 1, - "min_mtu": 68, - "max_mtu": 65535, - "linkinfo": { - "info_slave_kind": "bridge", - "info_slave_data": { - "state": "forwarding", - "priority": 32, - "cost": 100, - "hairpin": false, - "guard": false, - "root_block": false, - "fastleave": false, - "learning": true, - "flood": true, - "id": "0x8001", - "no": "0x1", - "designated_port": 32769, - "designated_cost": 0, - "bridge_id": "8000.2:0:0:0:0:0", - "root_id": "8000.2:0:0:0:0:0", - "hold_timer": 0, - "message_age_timer": 0, - "forward_delay_timer": 0, - "topology_change_ack": 0, - "config_pending": 0, - "proxy_arp": false, - "proxy_arp_wifi": false, - "multicast_router": 1, - "mcast_flood": true, - "bcast_flood": true, - "mcast_to_unicast": false, - "neigh_suppress": false, - "group_fwd_mask": "0", - "group_fwd_mask_str": "0x0", - "vlan_tunnel": false, - "isolated": false, - "locked": false - } - }, - "inet6_addr_gen_mode": "eui64", - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "parentbus": "virtio", - "parentdev": "virtio2", - "stats64": { - "rx": { - "bytes": 6795, - "packets": 62, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 0 - }, - "tx": { - "bytes": 22830, - "packets": 114, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-addr-show-dev-e1.json b/test/case/cli/system-output/ip-addr-show-dev-e1.json deleted file mode 100644 index a5bc3ab54..000000000 --- a/test/case/cli/system-output/ip-addr-show-dev-e1.json +++ /dev/null @@ -1,91 +0,0 @@ -[ - { - "ifindex": 3, - "ifname": "e1", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "pfifo_fast", - "master": "br0", - "operstate": "UP", - "linkmode": "DEFAULT", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:01", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 1, - "allmulti": 1, - "min_mtu": 68, - "max_mtu": 65535, - "linkinfo": { - "info_slave_kind": "bridge", - "info_slave_data": { - "state": "forwarding", - "priority": 32, - "cost": 100, - "hairpin": false, - "guard": false, - "root_block": false, - "fastleave": false, - "learning": true, - "flood": true, - "id": "0x8002", - "no": "0x2", - "designated_port": 32770, - "designated_cost": 0, - "bridge_id": "8000.2:0:0:0:0:0", - "root_id": "8000.2:0:0:0:0:0", - "hold_timer": 0, - "message_age_timer": 0, - "forward_delay_timer": 0, - "topology_change_ack": 0, - "config_pending": 0, - "proxy_arp": false, - "proxy_arp_wifi": false, - "multicast_router": 1, - "mcast_flood": true, - "bcast_flood": true, - "mcast_to_unicast": false, - "neigh_suppress": false, - "group_fwd_mask": "0", - "group_fwd_mask_str": "0x0", - "vlan_tunnel": false, - "isolated": false, - "locked": false - } - }, - "inet6_addr_gen_mode": "eui64", - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "parentbus": "virtio", - "parentdev": "virtio3", - "stats64": { - "rx": { - "bytes": 1397, - "packets": 11, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 0 - }, - "tx": { - "bytes": 23781, - "packets": 126, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-addr-show-dev-e2.json b/test/case/cli/system-output/ip-addr-show-dev-e2.json deleted file mode 100644 index e5ecc225f..000000000 --- a/test/case/cli/system-output/ip-addr-show-dev-e2.json +++ /dev/null @@ -1,100 +0,0 @@ -[ - { - "ifindex": 4, - "ifname": "e2", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "pfifo_fast", - "master": "br1", - "operstate": "UP", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:02", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 0, - "allmulti": 1, - "min_mtu": 68, - "max_mtu": 65535, - "linkinfo": { - "info_slave_kind": "bridge", - "info_slave_data": { - "state": "forwarding", - "priority": 32, - "cost": 100, - "hairpin": false, - "guard": false, - "root_block": false, - "fastleave": false, - "learning": true, - "flood": true, - "id": "0x8001", - "no": "0x1", - "designated_port": 32769, - "designated_cost": 0, - "bridge_id": "8000.2:0:0:0:0:2", - "root_id": "8000.2:0:0:0:0:2", - "hold_timer": 0.00, - "message_age_timer": 0.00, - "forward_delay_timer": 0.00, - "topology_change_ack": 0, - "config_pending": 0, - "proxy_arp": false, - "proxy_arp_wifi": false, - "multicast_router": 1, - "mcast_flood": true, - "bcast_flood": true, - "mcast_to_unicast": false, - "neigh_suppress": false, - "group_fwd_mask": "0", - "group_fwd_mask_str": "0x0", - "vlan_tunnel": false, - "isolated": false, - "locked": false - } - }, - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "parentbus": "virtio", - "parentdev": "virtio4", - "addr_info": [ - { - "family": "inet6", - "local": "fe80::ff:fe00:2", - "prefixlen": 64, - "scope": "link", - "protocol": "kernel_ll", - "valid_life_time": 4294967295, - "preferred_life_time": 4294967295 - } - ], - "stats64": { - "rx": { - "bytes": 0, - "packets": 0, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 0 - }, - "tx": { - "bytes": 19676, - "packets": 83, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-addr-show-dev-e3.json b/test/case/cli/system-output/ip-addr-show-dev-e3.json deleted file mode 100644 index 4c09aeb04..000000000 --- a/test/case/cli/system-output/ip-addr-show-dev-e3.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "ifindex": 5, - "ifname": "e3", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "pfifo_fast", - "operstate": "UP", - "linkmode": "DEFAULT", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:03", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 0, - "allmulti": 0, - "min_mtu": 68, - "max_mtu": 65535, - "inet6_addr_gen_mode": "eui64", - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "parentbus": "virtio", - "parentdev": "virtio5", - "stats64": { - "rx": { - "bytes": 1327, - "packets": 10, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 0 - }, - "tx": { - "bytes": 13837, - "packets": 67, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-addr-show-dev-e4.json b/test/case/cli/system-output/ip-addr-show-dev-e4.json deleted file mode 100644 index d47ff78c9..000000000 --- a/test/case/cli/system-output/ip-addr-show-dev-e4.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "ifindex": 6, - "ifname": "e4", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "pfifo_fast", - "operstate": "DOWN", - "linkmode": "DEFAULT", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:04", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 0, - "allmulti": 0, - "min_mtu": 68, - "max_mtu": 65535, - "inet6_addr_gen_mode": "eui64", - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "parentbus": "virtio", - "parentdev": "virtio6", - "stats64": { - "rx": { - "bytes": 1327, - "packets": 10, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 0 - }, - "tx": { - "bytes": 18046, - "packets": 91, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-addr-show.json b/test/case/cli/system-output/ip-addr-show.json new file mode 100644 index 000000000..04ad3de78 --- /dev/null +++ b/test/case/cli/system-output/ip-addr-show.json @@ -0,0 +1,629 @@ +[ + { + "ifindex": 2, + "ifname": "dsa0", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1504, + "qdisc": "mq", + "operstate": "UP", + "group": "internal", + "txqlen": 2048, + "link_type": "ether", + "address": "02:00:de:ad:02:20", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 0, + "allmulti": 0, + "min_mtu": 68, + "max_mtu": 9888, + "num_tx_queues": 8, + "num_rx_queues": 4, + "gso_max_size": 65536, + "gso_max_segs": 300, + "tso_max_size": 65536, + "tso_max_segs": 300, + "gro_max_size": 65536, + "gso_ipv4_max_size": 65536, + "gro_ipv4_max_size": 65536, + "parentbus": "platform", + "parentdev": "f2000000.ethernet", + "addr_info": [], + "stats64": { + "rx": { + "bytes": 1756811, + "packets": 6777, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 1849127, + "packets": 7157, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 7, + "ifname": "br0", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "noqueue", + "operstate": "UP", + "linkmode": "DEFAULT", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:00", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 0, + "allmulti": 0, + "min_mtu": 68, + "max_mtu": 65535, + "linkinfo": { + "info_kind": "bridge", + "info_data": { + "forward_delay": 1500, + "hello_time": 200, + "max_age": 2000, + "ageing_time": 30000, + "stp_state": 0, + "priority": 32768, + "vlan_filtering": 1, + "vlan_protocol": "802.1Q", + "bridge_id": "8000.2:0:0:0:0:0", + "root_id": "8000.2:0:0:0:0:0", + "root_port": 0, + "root_path_cost": 0, + "topology_change": 0, + "topology_change_detected": 0, + "hello_timer": 0, + "tcn_timer": 0, + "topology_change_timer": 0, + "gc_timer": 63.88, + "vlan_default_pvid": 0, + "vlan_stats_enabled": 0, + "vlan_stats_per_port": 0, + "group_fwd_mask": "0", + "group_addr": "01:80:c2:00:00:00", + "mcast_snooping": 0, + "no_linklocal_learn": 0, + "mcast_vlan_snooping": 0, + "mcast_router": 1, + "mcast_query_use_ifaddr": 0, + "mcast_querier": 0, + "mcast_hash_elasticity": 16, + "mcast_hash_max": 4096, + "mcast_last_member_cnt": 2, + "mcast_startup_query_cnt": 2, + "mcast_last_member_intvl": 100, + "mcast_membership_intvl": 26000, + "mcast_querier_intvl": 25500, + "mcast_query_intvl": 12500, + "mcast_query_response_intvl": 1000, + "mcast_startup_query_intvl": 3124, + "mcast_stats_enabled": 0, + "mcast_igmp_version": 2, + "mcast_mld_version": 1, + "nf_call_iptables": 0, + "nf_call_ip6tables": 0, + "nf_call_arptables": 0 + } + }, + "inet6_addr_gen_mode": "none", + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "stats64": { + "rx": { + "bytes": 3158, + "packets": 42, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 37 + }, + "tx": { + "bytes": 0, + "packets": 0, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 8, + "ifname": "br1", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "noqueue", + "operstate": "UP", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:02", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 0, + "allmulti": 0, + "min_mtu": 68, + "max_mtu": 65535, + "linkinfo": { + "info_kind": "bridge", + "info_data": { + "forward_delay": 1500, + "hello_time": 200, + "max_age": 2000, + "ageing_time": 30000, + "stp_state": 0, + "priority": 32768, + "vlan_filtering": 1, + "vlan_protocol": "802.1Q", + "bridge_id": "8000.2:0:0:0:0:2", + "root_id": "8000.2:0:0:0:0:2", + "root_port": 0, + "root_path_cost": 0, + "topology_change": 0, + "topology_change_detected": 0, + "hello_timer": 0.00, + "tcn_timer": 0.00, + "topology_change_timer": 0.00, + "gc_timer": 0.00, + "vlan_default_pvid": 0, + "vlan_stats_enabled": 0, + "vlan_stats_per_port": 0, + "group_fwd_mask": "0", + "group_addr": "01:80:c2:00:00:00", + "mcast_snooping": 0, + "no_linklocal_learn": 0, + "mcast_vlan_snooping": 0, + "mcast_router": 1, + "mcast_query_use_ifaddr": 0, + "mcast_querier": 0, + "mcast_hash_elasticity": 16, + "mcast_hash_max": 4096, + "mcast_last_member_cnt": 2, + "mcast_startup_query_cnt": 2, + "mcast_last_member_intvl": 100, + "mcast_membership_intvl": 26000, + "mcast_querier_intvl": 25500, + "mcast_query_intvl": 12500, + "mcast_query_response_intvl": 1000, + "mcast_startup_query_intvl": 3124, + "mcast_stats_enabled": 0, + "mcast_igmp_version": 2, + "mcast_mld_version": 1, + "nf_call_iptables": 0, + "nf_call_ip6tables": 0, + "nf_call_arptables": 0 + } + }, + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "addr_info": [], + "stats64": { + "rx": { + "bytes": 0, + "packets": 0, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 0, + "packets": 0, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 2, + "ifname": "e0", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "pfifo_fast", + "master": "br0", + "operstate": "UP", + "linkmode": "DEFAULT", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:00", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 1, + "allmulti": 1, + "min_mtu": 68, + "max_mtu": 65535, + "linkinfo": { + "info_slave_kind": "bridge", + "info_slave_data": { + "state": "forwarding", + "priority": 32, + "cost": 100, + "hairpin": false, + "guard": false, + "root_block": false, + "fastleave": false, + "learning": true, + "flood": true, + "id": "0x8001", + "no": "0x1", + "designated_port": 32769, + "designated_cost": 0, + "bridge_id": "8000.2:0:0:0:0:0", + "root_id": "8000.2:0:0:0:0:0", + "hold_timer": 0, + "message_age_timer": 0, + "forward_delay_timer": 0, + "topology_change_ack": 0, + "config_pending": 0, + "proxy_arp": false, + "proxy_arp_wifi": false, + "multicast_router": 1, + "mcast_flood": true, + "bcast_flood": true, + "mcast_to_unicast": false, + "neigh_suppress": false, + "group_fwd_mask": "0", + "group_fwd_mask_str": "0x0", + "vlan_tunnel": false, + "isolated": false, + "locked": false + } + }, + "inet6_addr_gen_mode": "eui64", + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "parentbus": "virtio", + "parentdev": "virtio2", + "stats64": { + "rx": { + "bytes": 6795, + "packets": 62, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 22830, + "packets": 114, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 3, + "ifname": "e1", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "pfifo_fast", + "master": "br0", + "operstate": "UP", + "linkmode": "DEFAULT", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:01", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 1, + "allmulti": 1, + "min_mtu": 68, + "max_mtu": 65535, + "linkinfo": { + "info_slave_kind": "bridge", + "info_slave_data": { + "state": "forwarding", + "priority": 32, + "cost": 100, + "hairpin": false, + "guard": false, + "root_block": false, + "fastleave": false, + "learning": true, + "flood": true, + "id": "0x8002", + "no": "0x2", + "designated_port": 32770, + "designated_cost": 0, + "bridge_id": "8000.2:0:0:0:0:0", + "root_id": "8000.2:0:0:0:0:0", + "hold_timer": 0, + "message_age_timer": 0, + "forward_delay_timer": 0, + "topology_change_ack": 0, + "config_pending": 0, + "proxy_arp": false, + "proxy_arp_wifi": false, + "multicast_router": 1, + "mcast_flood": true, + "bcast_flood": true, + "mcast_to_unicast": false, + "neigh_suppress": false, + "group_fwd_mask": "0", + "group_fwd_mask_str": "0x0", + "vlan_tunnel": false, + "isolated": false, + "locked": false + } + }, + "inet6_addr_gen_mode": "eui64", + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "parentbus": "virtio", + "parentdev": "virtio3", + "stats64": { + "rx": { + "bytes": 1397, + "packets": 11, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 23781, + "packets": 126, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 4, + "ifname": "e2", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "pfifo_fast", + "master": "br1", + "operstate": "UP", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:02", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 0, + "allmulti": 1, + "min_mtu": 68, + "max_mtu": 65535, + "linkinfo": { + "info_slave_kind": "bridge", + "info_slave_data": { + "state": "forwarding", + "priority": 32, + "cost": 100, + "hairpin": false, + "guard": false, + "root_block": false, + "fastleave": false, + "learning": true, + "flood": true, + "id": "0x8001", + "no": "0x1", + "designated_port": 32769, + "designated_cost": 0, + "bridge_id": "8000.2:0:0:0:0:2", + "root_id": "8000.2:0:0:0:0:2", + "hold_timer": 0.00, + "message_age_timer": 0.00, + "forward_delay_timer": 0.00, + "topology_change_ack": 0, + "config_pending": 0, + "proxy_arp": false, + "proxy_arp_wifi": false, + "multicast_router": 1, + "mcast_flood": true, + "bcast_flood": true, + "mcast_to_unicast": false, + "neigh_suppress": false, + "group_fwd_mask": "0", + "group_fwd_mask_str": "0x0", + "vlan_tunnel": false, + "isolated": false, + "locked": false + } + }, + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "parentbus": "virtio", + "parentdev": "virtio4", + "addr_info": [ + { + "family": "inet6", + "local": "fe80::ff:fe00:2", + "prefixlen": 64, + "scope": "link", + "protocol": "kernel_ll", + "valid_life_time": 4294967295, + "preferred_life_time": 4294967295 + } + ], + "stats64": { + "rx": { + "bytes": 0, + "packets": 0, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 19676, + "packets": 83, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 5, + "ifname": "e3", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "pfifo_fast", + "operstate": "UP", + "linkmode": "DEFAULT", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:03", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 0, + "allmulti": 0, + "min_mtu": 68, + "max_mtu": 65535, + "inet6_addr_gen_mode": "eui64", + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "parentbus": "virtio", + "parentdev": "virtio5", + "stats64": { + "rx": { + "bytes": 1327, + "packets": 10, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 13837, + "packets": 67, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 6, + "ifname": "e4", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "pfifo_fast", + "operstate": "DOWN", + "linkmode": "DEFAULT", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:04", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 0, + "allmulti": 0, + "min_mtu": 68, + "max_mtu": 65535, + "inet6_addr_gen_mode": "eui64", + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "parentbus": "virtio", + "parentdev": "virtio6", + "stats64": { + "rx": { + "bytes": 1327, + "packets": 10, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 18046, + "packets": 91, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + } +] diff --git a/test/case/cli/system-output/ip-link-show-dev-br0.json b/test/case/cli/system-output/ip-link-show-dev-br0.json deleted file mode 100644 index 1b04d324a..000000000 --- a/test/case/cli/system-output/ip-link-show-dev-br0.json +++ /dev/null @@ -1,101 +0,0 @@ -[ - { - "ifindex": 7, - "ifname": "br0", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "noqueue", - "operstate": "UP", - "linkmode": "DEFAULT", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:00", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 0, - "allmulti": 0, - "min_mtu": 68, - "max_mtu": 65535, - "linkinfo": { - "info_kind": "bridge", - "info_data": { - "forward_delay": 1500, - "hello_time": 200, - "max_age": 2000, - "ageing_time": 30000, - "stp_state": 0, - "priority": 32768, - "vlan_filtering": 1, - "vlan_protocol": "802.1Q", - "bridge_id": "8000.2:0:0:0:0:0", - "root_id": "8000.2:0:0:0:0:0", - "root_port": 0, - "root_path_cost": 0, - "topology_change": 0, - "topology_change_detected": 0, - "hello_timer": 0, - "tcn_timer": 0, - "topology_change_timer": 0, - "gc_timer": 27.38, - "vlan_default_pvid": 0, - "vlan_stats_enabled": 0, - "vlan_stats_per_port": 0, - "group_fwd_mask": "0", - "group_addr": "01:80:c2:00:00:00", - "mcast_snooping": 0, - "no_linklocal_learn": 0, - "mcast_vlan_snooping": 0, - "mcast_router": 1, - "mcast_query_use_ifaddr": 0, - "mcast_querier": 0, - "mcast_hash_elasticity": 16, - "mcast_hash_max": 4096, - "mcast_last_member_cnt": 2, - "mcast_startup_query_cnt": 2, - "mcast_last_member_intvl": 100, - "mcast_membership_intvl": 26000, - "mcast_querier_intvl": 25500, - "mcast_query_intvl": 12500, - "mcast_query_response_intvl": 1000, - "mcast_startup_query_intvl": 3124, - "mcast_stats_enabled": 0, - "mcast_igmp_version": 2, - "mcast_mld_version": 1, - "nf_call_iptables": 0, - "nf_call_ip6tables": 0, - "nf_call_arptables": 0 - } - }, - "inet6_addr_gen_mode": "none", - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "stats64": { - "rx": { - "bytes": 3158, - "packets": 42, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 37 - }, - "tx": { - "bytes": 0, - "packets": 0, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-link-show-dev-br1.json b/test/case/cli/system-output/ip-link-show-dev-br1.json deleted file mode 100644 index 227ed0227..000000000 --- a/test/case/cli/system-output/ip-link-show-dev-br1.json +++ /dev/null @@ -1,101 +0,0 @@ -[ - { - "ifindex": 8, - "ifname": "br1", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "noqueue", - "operstate": "UP", - "linkmode": "DEFAULT", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:02", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 0, - "allmulti": 0, - "min_mtu": 68, - "max_mtu": 65535, - "linkinfo": { - "info_kind": "bridge", - "info_data": { - "forward_delay": 1500, - "hello_time": 200, - "max_age": 2000, - "ageing_time": 30000, - "stp_state": 0, - "priority": 32768, - "vlan_filtering": 1, - "vlan_protocol": "802.1Q", - "bridge_id": "8000.2:0:0:0:0:2", - "root_id": "8000.2:0:0:0:0:2", - "root_port": 0, - "root_path_cost": 0, - "topology_change": 0, - "topology_change_detected": 0, - "hello_timer": 0.00, - "tcn_timer": 0.00, - "topology_change_timer": 0.00, - "gc_timer": 53.73, - "vlan_default_pvid": 0, - "vlan_stats_enabled": 0, - "vlan_stats_per_port": 0, - "group_fwd_mask": "0", - "group_addr": "01:80:c2:00:00:00", - "mcast_snooping": 0, - "no_linklocal_learn": 0, - "mcast_vlan_snooping": 0, - "mcast_router": 1, - "mcast_query_use_ifaddr": 0, - "mcast_querier": 0, - "mcast_hash_elasticity": 16, - "mcast_hash_max": 4096, - "mcast_last_member_cnt": 2, - "mcast_startup_query_cnt": 2, - "mcast_last_member_intvl": 100, - "mcast_membership_intvl": 26000, - "mcast_querier_intvl": 25500, - "mcast_query_intvl": 12500, - "mcast_query_response_intvl": 1000, - "mcast_startup_query_intvl": 3124, - "mcast_stats_enabled": 0, - "mcast_igmp_version": 2, - "mcast_mld_version": 1, - "nf_call_iptables": 0, - "nf_call_ip6tables": 0, - "nf_call_arptables": 0 - } - }, - "inet6_addr_gen_mode": "none", - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "stats64": { - "rx": { - "bytes": 0, - "packets": 0, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 0 - }, - "tx": { - "bytes": 0, - "packets": 0, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-link-show-dev-e0.json b/test/case/cli/system-output/ip-link-show-dev-e0.json deleted file mode 100644 index 49b39b6fc..000000000 --- a/test/case/cli/system-output/ip-link-show-dev-e0.json +++ /dev/null @@ -1,91 +0,0 @@ -[ - { - "ifindex": 2, - "ifname": "e0", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "pfifo_fast", - "master": "br0", - "operstate": "UP", - "linkmode": "DEFAULT", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:00", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 1, - "allmulti": 1, - "min_mtu": 68, - "max_mtu": 65535, - "linkinfo": { - "info_slave_kind": "bridge", - "info_slave_data": { - "state": "forwarding", - "priority": 32, - "cost": 100, - "hairpin": false, - "guard": false, - "root_block": false, - "fastleave": false, - "learning": true, - "flood": true, - "id": "0x8001", - "no": "0x1", - "designated_port": 32769, - "designated_cost": 0, - "bridge_id": "8000.2:0:0:0:0:0", - "root_id": "8000.2:0:0:0:0:0", - "hold_timer": 0, - "message_age_timer": 0, - "forward_delay_timer": 0, - "topology_change_ack": 0, - "config_pending": 0, - "proxy_arp": false, - "proxy_arp_wifi": false, - "multicast_router": 1, - "mcast_flood": true, - "bcast_flood": true, - "mcast_to_unicast": false, - "neigh_suppress": false, - "group_fwd_mask": "0", - "group_fwd_mask_str": "0x0", - "vlan_tunnel": false, - "isolated": false, - "locked": false - } - }, - "inet6_addr_gen_mode": "eui64", - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "parentbus": "e1000", - "parentdev": "e1000-foobar", - "stats64": { - "rx": { - "bytes": 6537, - "packets": 59, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 0 - }, - "tx": { - "bytes": 20891, - "packets": 106, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-link-show-dev-e1.json b/test/case/cli/system-output/ip-link-show-dev-e1.json deleted file mode 100644 index 55930658a..000000000 --- a/test/case/cli/system-output/ip-link-show-dev-e1.json +++ /dev/null @@ -1,91 +0,0 @@ -[ - { - "ifindex": 3, - "ifname": "e1", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "pfifo_fast", - "master": "br0", - "operstate": "UP", - "linkmode": "DEFAULT", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:01", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 1, - "allmulti": 1, - "min_mtu": 68, - "max_mtu": 65535, - "linkinfo": { - "info_slave_kind": "bridge", - "info_slave_data": { - "state": "forwarding", - "priority": 32, - "cost": 100, - "hairpin": false, - "guard": false, - "root_block": false, - "fastleave": false, - "learning": true, - "flood": true, - "id": "0x8002", - "no": "0x2", - "designated_port": 32770, - "designated_cost": 0, - "bridge_id": "8000.2:0:0:0:0:0", - "root_id": "8000.2:0:0:0:0:0", - "hold_timer": 0, - "message_age_timer": 0, - "forward_delay_timer": 0, - "topology_change_ack": 0, - "config_pending": 0, - "proxy_arp": false, - "proxy_arp_wifi": false, - "multicast_router": 1, - "mcast_flood": true, - "bcast_flood": true, - "mcast_to_unicast": false, - "neigh_suppress": false, - "group_fwd_mask": "0", - "group_fwd_mask_str": "0x0", - "vlan_tunnel": false, - "isolated": false, - "locked": false - } - }, - "inet6_addr_gen_mode": "eui64", - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "parentbus": "e1000", - "parentdev": "e1000-foobar", - "stats64": { - "rx": { - "bytes": 1397, - "packets": 11, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 0 - }, - "tx": { - "bytes": 24849, - "packets": 130, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-link-show-dev-e2.json b/test/case/cli/system-output/ip-link-show-dev-e2.json deleted file mode 100644 index 2baa6af95..000000000 --- a/test/case/cli/system-output/ip-link-show-dev-e2.json +++ /dev/null @@ -1,91 +0,0 @@ -[ - { - "ifindex": 4, - "ifname": "e2", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "pfifo_fast", - "master": "br1", - "operstate": "UP", - "linkmode": "DEFAULT", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:02", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 0, - "allmulti": 1, - "min_mtu": 68, - "max_mtu": 65535, - "linkinfo": { - "info_slave_kind": "bridge", - "info_slave_data": { - "state": "forwarding", - "priority": 32, - "cost": 100, - "hairpin": false, - "guard": false, - "root_block": false, - "fastleave": false, - "learning": true, - "flood": true, - "id": "0x8001", - "no": "0x1", - "designated_port": 32769, - "designated_cost": 0, - "bridge_id": "8000.2:0:0:0:0:2", - "root_id": "8000.2:0:0:0:0:2", - "hold_timer": 0.00, - "message_age_timer": 0.00, - "forward_delay_timer": 0.00, - "topology_change_ack": 0, - "config_pending": 0, - "proxy_arp": false, - "proxy_arp_wifi": false, - "multicast_router": 1, - "mcast_flood": true, - "bcast_flood": true, - "mcast_to_unicast": false, - "neigh_suppress": false, - "group_fwd_mask": "0", - "group_fwd_mask_str": "0x0", - "vlan_tunnel": false, - "isolated": false, - "locked": false - } - }, - "inet6_addr_gen_mode": "eui64", - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "parentbus": "virtio", - "parentdev": "virtio4", - "stats64": { - "rx": { - "bytes": 0, - "packets": 0, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 0 - }, - "tx": { - "bytes": 19114, - "packets": 81, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-link-show-dev-e3.json b/test/case/cli/system-output/ip-link-show-dev-e3.json deleted file mode 100644 index 4df9b2d7a..000000000 --- a/test/case/cli/system-output/ip-link-show-dev-e3.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "ifindex": 5, - "ifname": "e3", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "pfifo_fast", - "operstate": "UP", - "linkmode": "DEFAULT", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:03", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 0, - "allmulti": 0, - "min_mtu": 68, - "max_mtu": 65535, - "inet6_addr_gen_mode": "eui64", - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "parentbus": "virtio", - "parentdev": "virtio5", - "stats64": { - "rx": { - "bytes": 1327, - "packets": 10, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 0 - }, - "tx": { - "bytes": 15057, - "packets": 72, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-link-show-dev-e4.json b/test/case/cli/system-output/ip-link-show-dev-e4.json deleted file mode 100644 index ae9b1d26a..000000000 --- a/test/case/cli/system-output/ip-link-show-dev-e4.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "ifindex": 6, - "ifname": "e4", - "flags": [ - "BROADCAST", - "MULTICAST", - "UP", - "LOWER_UP" - ], - "mtu": 1500, - "qdisc": "pfifo_fast", - "operstate": "DOWN", - "linkmode": "DEFAULT", - "group": "default", - "txqlen": 1000, - "link_type": "ether", - "address": "02:00:00:00:00:04", - "broadcast": "ff:ff:ff:ff:ff:ff", - "promiscuity": 0, - "allmulti": 0, - "min_mtu": 68, - "max_mtu": 65535, - "inet6_addr_gen_mode": "eui64", - "num_tx_queues": 1, - "num_rx_queues": 1, - "gso_max_size": 65536, - "gso_max_segs": 65535, - "tso_max_size": 65536, - "tso_max_segs": 65535, - "gro_max_size": 65536, - "parentbus": "virtio", - "parentdev": "virtio6", - "stats64": { - "rx": { - "bytes": 1327, - "packets": 10, - "errors": 0, - "dropped": 0, - "over_errors": 0, - "multicast": 0 - }, - "tx": { - "bytes": 19022, - "packets": 95, - "errors": 0, - "dropped": 0, - "carrier_errors": 0, - "collisions": 0 - } - } - } -] diff --git a/test/case/cli/system-output/ip-link-show.json b/test/case/cli/system-output/ip-link-show.json new file mode 100644 index 000000000..3d7b2dee3 --- /dev/null +++ b/test/case/cli/system-output/ip-link-show.json @@ -0,0 +1,622 @@ +[ + { + "ifindex": 2, + "ifname": "dsa0", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1504, + "qdisc": "mq", + "operstate": "UP", + "linkmode": "DEFAULT", + "group": "internal", + "txqlen": 2048, + "link_type": "ether", + "address": "02:00:de:ad:02:20", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 0, + "allmulti": 0, + "min_mtu": 68, + "max_mtu": 9888, + "inet6_addr_gen_mode": "eui64", + "num_tx_queues": 8, + "num_rx_queues": 4, + "gso_max_size": 65536, + "gso_max_segs": 300, + "tso_max_size": 65536, + "tso_max_segs": 300, + "gro_max_size": 65536, + "gso_ipv4_max_size": 65536, + "gro_ipv4_max_size": 65536, + "parentbus": "platform", + "parentdev": "f2000000.ethernet", + "stats64": { + "rx": { + "bytes": 1751876, + "packets": 6757, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 1843945, + "packets": 7136, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 7, + "ifname": "br0", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "noqueue", + "operstate": "UP", + "linkmode": "DEFAULT", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:00", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 0, + "allmulti": 0, + "min_mtu": 68, + "max_mtu": 65535, + "linkinfo": { + "info_kind": "bridge", + "info_data": { + "forward_delay": 1500, + "hello_time": 200, + "max_age": 2000, + "ageing_time": 30000, + "stp_state": 0, + "priority": 32768, + "vlan_filtering": 1, + "vlan_protocol": "802.1Q", + "bridge_id": "8000.2:0:0:0:0:0", + "root_id": "8000.2:0:0:0:0:0", + "root_port": 0, + "root_path_cost": 0, + "topology_change": 0, + "topology_change_detected": 0, + "hello_timer": 0, + "tcn_timer": 0, + "topology_change_timer": 0, + "gc_timer": 27.38, + "vlan_default_pvid": 0, + "vlan_stats_enabled": 0, + "vlan_stats_per_port": 0, + "group_fwd_mask": "0", + "group_addr": "01:80:c2:00:00:00", + "mcast_snooping": 0, + "no_linklocal_learn": 0, + "mcast_vlan_snooping": 0, + "mcast_router": 1, + "mcast_query_use_ifaddr": 0, + "mcast_querier": 0, + "mcast_hash_elasticity": 16, + "mcast_hash_max": 4096, + "mcast_last_member_cnt": 2, + "mcast_startup_query_cnt": 2, + "mcast_last_member_intvl": 100, + "mcast_membership_intvl": 26000, + "mcast_querier_intvl": 25500, + "mcast_query_intvl": 12500, + "mcast_query_response_intvl": 1000, + "mcast_startup_query_intvl": 3124, + "mcast_stats_enabled": 0, + "mcast_igmp_version": 2, + "mcast_mld_version": 1, + "nf_call_iptables": 0, + "nf_call_ip6tables": 0, + "nf_call_arptables": 0 + } + }, + "inet6_addr_gen_mode": "none", + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "stats64": { + "rx": { + "bytes": 3158, + "packets": 42, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 37 + }, + "tx": { + "bytes": 0, + "packets": 0, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 8, + "ifname": "br1", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "noqueue", + "operstate": "UP", + "linkmode": "DEFAULT", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:02", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 0, + "allmulti": 0, + "min_mtu": 68, + "max_mtu": 65535, + "linkinfo": { + "info_kind": "bridge", + "info_data": { + "forward_delay": 1500, + "hello_time": 200, + "max_age": 2000, + "ageing_time": 30000, + "stp_state": 0, + "priority": 32768, + "vlan_filtering": 1, + "vlan_protocol": "802.1Q", + "bridge_id": "8000.2:0:0:0:0:2", + "root_id": "8000.2:0:0:0:0:2", + "root_port": 0, + "root_path_cost": 0, + "topology_change": 0, + "topology_change_detected": 0, + "hello_timer": 0.00, + "tcn_timer": 0.00, + "topology_change_timer": 0.00, + "gc_timer": 53.73, + "vlan_default_pvid": 0, + "vlan_stats_enabled": 0, + "vlan_stats_per_port": 0, + "group_fwd_mask": "0", + "group_addr": "01:80:c2:00:00:00", + "mcast_snooping": 0, + "no_linklocal_learn": 0, + "mcast_vlan_snooping": 0, + "mcast_router": 1, + "mcast_query_use_ifaddr": 0, + "mcast_querier": 0, + "mcast_hash_elasticity": 16, + "mcast_hash_max": 4096, + "mcast_last_member_cnt": 2, + "mcast_startup_query_cnt": 2, + "mcast_last_member_intvl": 100, + "mcast_membership_intvl": 26000, + "mcast_querier_intvl": 25500, + "mcast_query_intvl": 12500, + "mcast_query_response_intvl": 1000, + "mcast_startup_query_intvl": 3124, + "mcast_stats_enabled": 0, + "mcast_igmp_version": 2, + "mcast_mld_version": 1, + "nf_call_iptables": 0, + "nf_call_ip6tables": 0, + "nf_call_arptables": 0 + } + }, + "inet6_addr_gen_mode": "none", + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "stats64": { + "rx": { + "bytes": 0, + "packets": 0, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 0, + "packets": 0, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 2, + "ifname": "e0", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "pfifo_fast", + "master": "br0", + "operstate": "UP", + "linkmode": "DEFAULT", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:00", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 1, + "allmulti": 1, + "min_mtu": 68, + "max_mtu": 65535, + "linkinfo": { + "info_slave_kind": "bridge", + "info_slave_data": { + "state": "forwarding", + "priority": 32, + "cost": 100, + "hairpin": false, + "guard": false, + "root_block": false, + "fastleave": false, + "learning": true, + "flood": true, + "id": "0x8001", + "no": "0x1", + "designated_port": 32769, + "designated_cost": 0, + "bridge_id": "8000.2:0:0:0:0:0", + "root_id": "8000.2:0:0:0:0:0", + "hold_timer": 0, + "message_age_timer": 0, + "forward_delay_timer": 0, + "topology_change_ack": 0, + "config_pending": 0, + "proxy_arp": false, + "proxy_arp_wifi": false, + "multicast_router": 1, + "mcast_flood": true, + "bcast_flood": true, + "mcast_to_unicast": false, + "neigh_suppress": false, + "group_fwd_mask": "0", + "group_fwd_mask_str": "0x0", + "vlan_tunnel": false, + "isolated": false, + "locked": false + } + }, + "inet6_addr_gen_mode": "eui64", + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "parentbus": "e1000", + "parentdev": "e1000-foobar", + "stats64": { + "rx": { + "bytes": 6537, + "packets": 59, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 20891, + "packets": 106, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 3, + "ifname": "e1", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "pfifo_fast", + "master": "br0", + "operstate": "UP", + "linkmode": "DEFAULT", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:01", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 1, + "allmulti": 1, + "min_mtu": 68, + "max_mtu": 65535, + "linkinfo": { + "info_slave_kind": "bridge", + "info_slave_data": { + "state": "forwarding", + "priority": 32, + "cost": 100, + "hairpin": false, + "guard": false, + "root_block": false, + "fastleave": false, + "learning": true, + "flood": true, + "id": "0x8002", + "no": "0x2", + "designated_port": 32770, + "designated_cost": 0, + "bridge_id": "8000.2:0:0:0:0:0", + "root_id": "8000.2:0:0:0:0:0", + "hold_timer": 0, + "message_age_timer": 0, + "forward_delay_timer": 0, + "topology_change_ack": 0, + "config_pending": 0, + "proxy_arp": false, + "proxy_arp_wifi": false, + "multicast_router": 1, + "mcast_flood": true, + "bcast_flood": true, + "mcast_to_unicast": false, + "neigh_suppress": false, + "group_fwd_mask": "0", + "group_fwd_mask_str": "0x0", + "vlan_tunnel": false, + "isolated": false, + "locked": false + } + }, + "inet6_addr_gen_mode": "eui64", + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "parentbus": "e1000", + "parentdev": "e1000-foobar", + "stats64": { + "rx": { + "bytes": 1397, + "packets": 11, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 24849, + "packets": 130, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 4, + "ifname": "e2", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "pfifo_fast", + "master": "br1", + "operstate": "UP", + "linkmode": "DEFAULT", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:02", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 0, + "allmulti": 1, + "min_mtu": 68, + "max_mtu": 65535, + "linkinfo": { + "info_slave_kind": "bridge", + "info_slave_data": { + "state": "forwarding", + "priority": 32, + "cost": 100, + "hairpin": false, + "guard": false, + "root_block": false, + "fastleave": false, + "learning": true, + "flood": true, + "id": "0x8001", + "no": "0x1", + "designated_port": 32769, + "designated_cost": 0, + "bridge_id": "8000.2:0:0:0:0:2", + "root_id": "8000.2:0:0:0:0:2", + "hold_timer": 0.00, + "message_age_timer": 0.00, + "forward_delay_timer": 0.00, + "topology_change_ack": 0, + "config_pending": 0, + "proxy_arp": false, + "proxy_arp_wifi": false, + "multicast_router": 1, + "mcast_flood": true, + "bcast_flood": true, + "mcast_to_unicast": false, + "neigh_suppress": false, + "group_fwd_mask": "0", + "group_fwd_mask_str": "0x0", + "vlan_tunnel": false, + "isolated": false, + "locked": false + } + }, + "inet6_addr_gen_mode": "eui64", + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "parentbus": "virtio", + "parentdev": "virtio4", + "stats64": { + "rx": { + "bytes": 0, + "packets": 0, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 19114, + "packets": 81, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 5, + "ifname": "e3", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "pfifo_fast", + "operstate": "UP", + "linkmode": "DEFAULT", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:03", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 0, + "allmulti": 0, + "min_mtu": 68, + "max_mtu": 65535, + "inet6_addr_gen_mode": "eui64", + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "parentbus": "virtio", + "parentdev": "virtio5", + "stats64": { + "rx": { + "bytes": 1327, + "packets": 10, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 15057, + "packets": 72, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + }, + { + "ifindex": 6, + "ifname": "e4", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "pfifo_fast", + "operstate": "DOWN", + "linkmode": "DEFAULT", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "02:00:00:00:00:04", + "broadcast": "ff:ff:ff:ff:ff:ff", + "promiscuity": 0, + "allmulti": 0, + "min_mtu": 68, + "max_mtu": 65535, + "inet6_addr_gen_mode": "eui64", + "num_tx_queues": 1, + "num_rx_queues": 1, + "gso_max_size": 65536, + "gso_max_segs": 65535, + "tso_max_size": 65536, + "tso_max_segs": 65535, + "gro_max_size": 65536, + "parentbus": "virtio", + "parentdev": "virtio6", + "stats64": { + "rx": { + "bytes": 1327, + "packets": 10, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 19022, + "packets": 95, + "errors": 0, + "dropped": 0, + "carrier_errors": 0, + "collisions": 0 + } + } + } +]