diff --git a/board/netconf/rootfs/lib/infix/yanger b/board/netconf/rootfs/lib/infix/yanger index b03fa8165..771c8d65f 100755 --- a/board/netconf/rootfs/lib/infix/yanger +++ b/board/netconf/rootfs/lib/infix/yanger @@ -153,8 +153,11 @@ def add_ipv4_route(routes): out['route'].append(new) insert(routes, 'routes', out) -def add_ip_link(ifname, iface_out): - cmd = ['ip', '-s', '-d', '-j', 'link', 'show', 'dev', ifname] +def add_ip_link(ifname, iface_out, test): + if test: + cmd = ['cat', f"{test}/ip-link-show-dev-{ifname}.json"] + else: + cmd = ['ip', '-s', '-d', '-j', 'link', 'show', 'dev', ifname] data = run_json_cmd(cmd) if len(data) != 1: @@ -202,8 +205,11 @@ def add_ip_link(ifname, iface_out): if val is not None: insert(iface_out, "statistics", "in-octets", str(val)) -def add_ip_addr(ifname, iface_out): - cmd = ['ip', '-j', 'addr', 'show', 'dev', ifname] +def add_ip_addr(ifname, iface_out, test): + if test: + cmd = ['cat', f"{test}/ip-addr-show-dev-{ifname}.json"] + else: + cmd = ['ip', '-j', 'addr', 'show', 'dev', ifname] data = run_json_cmd(cmd) if len(data) != 1: @@ -249,8 +255,11 @@ def add_ip_addr(ifname, iface_out): insert(iface_out, "ietf-ip:ipv4", "address", inet) insert(iface_out, "ietf-ip:ipv6", "address", inet6) -def add_ethtool_groups(ifname, iface_out): - cmd = ['ethtool', '--json', '-S', ifname, '--all-groups'] +def add_ethtool_groups(ifname, iface_out, test): + if test: + cmd = ['cat', f"{test}/ethtool-groups-{ifname}.json"] + else: + cmd = ['ethtool', '--json', '-S', ifname, '--all-groups'] data = run_json_cmd(cmd) if len(data) != 1: @@ -324,11 +333,15 @@ def add_ethtool_groups(ifname, iface_out): if found: frame['in-error-oversize-frames'] = str(tot) -def add_ethtool_std(ifname, iface_out): - cmd = ['ethtool', ifname] +def add_ethtool_std(ifname, iface_out, test): keys = ['Speed', 'Duplex', 'Auto-negotiation'] result = {} + if test: + cmd = ['cat', f"{test}/ethtool-{ifname}.txt"] + else: + cmd = ['ethtool', ifname] + lines = run_cmd(cmd) for line in lines: line = line.strip() @@ -363,6 +376,7 @@ if __name__ == "__main__": parser = argparse.ArgumentParser(description="YANG data creator") parser.add_argument("model", help="IETF Model") parser.add_argument("-p", "--param", default=None, help="Model dependant parameter") + parser.add_argument("-t", "--test", default=None, help="Test data base path") args = parser.parse_args() if (args.model == 'ietf-interfaces'): @@ -383,10 +397,10 @@ if __name__ == "__main__": ifname = args.param iface_out = yang_data['ietf-interfaces:interfaces']['interface'][0] - add_ip_link(ifname, iface_out) - add_ip_addr(ifname, iface_out) - add_ethtool_groups(ifname, iface_out) - add_ethtool_std(ifname, iface_out) + add_ip_link(ifname, iface_out, args.test) + add_ip_addr(ifname, iface_out, args.test) + add_ethtool_groups(ifname, iface_out, args.test) + add_ethtool_std(ifname, iface_out, args.test) elif (args.model == 'ietf-routing'): yang_data = { "ietf-routing:routing": { diff --git a/test/case/all-unit.yaml b/test/case/all-unit.yaml index 31f44e435..8b42d6f45 100644 --- a/test/case/all-unit.yaml +++ b/test/case/all-unit.yaml @@ -1,5 +1,9 @@ --- # Tests in this suite can be run on localhost without a target environment +- name: cli-output + suite: cli/all.yaml + - name: cli-pretty suite: cli_pretty/all.yaml + diff --git a/test/case/cli/all.yaml b/test/case/cli/all.yaml new file mode 100644 index 000000000..bde52354c --- /dev/null +++ b/test/case/cli/all.yaml @@ -0,0 +1,3 @@ +--- +- case: run.sh + name: "cli-check-output" diff --git a/test/case/cli/cli-output/show-interface-br0.txt b/test/case/cli/cli-output/show-interface-br0.txt new file mode 100644 index 000000000..7948a4911 --- /dev/null +++ b/test/case/cli/cli-output/show-interface-br0.txt @@ -0,0 +1,22 @@ +name : br0 +index : 7 +mtu : 1500 +operational status : up +auto-negotiation : on +duplex : full +speed : 10000 +physical address : 02:00:00:00:00:00 +ipv4 addresses : +ipv6 addresses : +in-octets : 0 +out-octets : 3158 + +eth-out-frames : 713 +eth-out-multicast-frames : 605 +eth-out-broadcast-frames : 69 +eth-in-frames : 418 +eth-in-multicast-frames : 336 +eth-in-broadcast-frames : 46 +eth-in-error-fcs-frames : 0 +eth-in-total-frames : 418 +eth-in-error-oversize-frames : 0 diff --git a/test/case/cli/cli-output/show-interface-e0.txt b/test/case/cli/cli-output/show-interface-e0.txt new file mode 100644 index 000000000..24e3e7153 --- /dev/null +++ b/test/case/cli/cli-output/show-interface-e0.txt @@ -0,0 +1,22 @@ +name : e0 +index : 2 +mtu : 1500 +operational status : up +auto-negotiation : on +duplex : full +speed : 10000 +physical address : 02:00:00:00:00:00 +ipv4 addresses : +ipv6 addresses : +in-octets : 20891 +out-octets : 6537 + +eth-out-frames : 713 +eth-out-multicast-frames : 605 +eth-out-broadcast-frames : 69 +eth-in-frames : 418 +eth-in-multicast-frames : 336 +eth-in-broadcast-frames : 46 +eth-in-error-fcs-frames : 0 +eth-in-total-frames : 418 +eth-in-error-oversize-frames : 0 diff --git a/test/case/cli/cli-output/show-interface-e1.txt b/test/case/cli/cli-output/show-interface-e1.txt new file mode 100644 index 000000000..fb4117be7 --- /dev/null +++ b/test/case/cli/cli-output/show-interface-e1.txt @@ -0,0 +1,22 @@ +name : e1 +index : 3 +mtu : 1500 +operational status : up +auto-negotiation : on +duplex : full +speed : 10000 +physical address : 02:00:00:00:00:01 +ipv4 addresses : +ipv6 addresses : +in-octets : 24849 +out-octets : 1397 + +eth-out-frames : 713 +eth-out-multicast-frames : 605 +eth-out-broadcast-frames : 69 +eth-in-frames : 418 +eth-in-multicast-frames : 336 +eth-in-broadcast-frames : 46 +eth-in-error-fcs-frames : 0 +eth-in-total-frames : 418 +eth-in-error-oversize-frames : 0 diff --git a/test/case/cli/cli-output/show-interface-e2.txt b/test/case/cli/cli-output/show-interface-e2.txt new file mode 100644 index 000000000..a60f466af --- /dev/null +++ b/test/case/cli/cli-output/show-interface-e2.txt @@ -0,0 +1,22 @@ +name : e2 +index : 4 +mtu : 1500 +operational status : up +auto-negotiation : on +duplex : full +speed : 10000 +physical address : 02:00:00:00:00:02 +ipv4 addresses : +ipv6 addresses : +in-octets : 17582 +out-octets : 1327 + +eth-out-frames : 713 +eth-out-multicast-frames : 605 +eth-out-broadcast-frames : 69 +eth-in-frames : 418 +eth-in-multicast-frames : 336 +eth-in-broadcast-frames : 46 +eth-in-error-fcs-frames : 0 +eth-in-total-frames : 418 +eth-in-error-oversize-frames : 0 diff --git a/test/case/cli/cli-output/show-interface-e3.txt b/test/case/cli/cli-output/show-interface-e3.txt new file mode 100644 index 000000000..b2bc5e243 --- /dev/null +++ b/test/case/cli/cli-output/show-interface-e3.txt @@ -0,0 +1,22 @@ +name : e3 +index : 5 +mtu : 1500 +operational status : up +auto-negotiation : on +duplex : full +speed : 10000 +physical address : 02:00:00:00:00:03 +ipv4 addresses : +ipv6 addresses : +in-octets : 15057 +out-octets : 1327 + +eth-out-frames : 713 +eth-out-multicast-frames : 605 +eth-out-broadcast-frames : 69 +eth-in-frames : 418 +eth-in-multicast-frames : 336 +eth-in-broadcast-frames : 46 +eth-in-error-fcs-frames : 0 +eth-in-total-frames : 418 +eth-in-error-oversize-frames : 0 diff --git a/test/case/cli/cli-output/show-interface-e4.txt b/test/case/cli/cli-output/show-interface-e4.txt new file mode 100644 index 000000000..b018d5363 --- /dev/null +++ b/test/case/cli/cli-output/show-interface-e4.txt @@ -0,0 +1,22 @@ +name : e4 +index : 6 +mtu : 1500 +operational status : up +auto-negotiation : on +duplex : full +speed : 10000 +physical address : 02:00:00:00:00:04 +ipv4 addresses : +ipv6 addresses : +in-octets : 19022 +out-octets : 1327 + +eth-out-frames : 713 +eth-out-multicast-frames : 605 +eth-out-broadcast-frames : 69 +eth-in-frames : 418 +eth-in-multicast-frames : 336 +eth-in-broadcast-frames : 46 +eth-in-error-fcs-frames : 0 +eth-in-total-frames : 418 +eth-in-error-oversize-frames : 0 diff --git a/test/case/cli/cli-output/show-interfaces.txt b/test/case/cli/cli-output/show-interfaces.txt new file mode 100644 index 000000000..aef66ef8a --- /dev/null +++ b/test/case/cli/cli-output/show-interfaces.txt @@ -0,0 +1,7 @@ +INTERFACE PROTOCOL STATE DATA  +br0 ethernet UP 02:00:00:00:00:00 +├ e0 ethernet UP 02:00:00:00:00:00 +└ e1 ethernet UP 02:00:00:00:00:01 +e2 ethernet UP 02:00:00:00:00:02 +e3 ethernet UP 02:00:00:00:00:03 +e4 ethernet UP 02:00:00:00:00:04 diff --git a/test/case/cli/run.sh b/test/case/cli/run.sh new file mode 100755 index 000000000..f14565e4e --- /dev/null +++ b/test/case/cli/run.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +SCRIPT_PATH="$(dirname "$(readlink -f "$0")")" +ROOT_PATH="$SCRIPT_PATH/../../../" +CLI_OUTPUT_PATH="$SCRIPT_PATH/cli-output/" + +CLI_PRETTY_TOOL="$ROOT_PATH/board/netconf/rootfs/lib/infix/cli-pretty" +SR_EMULATOR_TOOL="$SCRIPT_PATH/sysrepo-emulator.sh" + +CLI_OUTPUT_FILE="$(mktemp --suffix=-infix-yanger-cli)" + +TEST=1 + +cleanup() { + rm -f "$CLI_OUTPUT_FILE" +} +trap cleanup EXIT + +ok() { + echo "ok $TEST - $1" + let TEST++ +} + +fail() { + echo "not ok $TEST - $1" + exit 1 +} + +print_update_txt() { + echo + echo "# CLI output has changed. This might not be an error if you intentionally" + echo "# changed something in yanger or cli-pretty. If you did, you need to update" + echo "# the template file." + echo + echo "# Here's how you update the CLI output templates:" + echo "# $SCRIPT_PATH/run.sh update" + echo + echo "# Check the result" + echo "# git diff" + echo + echo "# Then finish up by committing the new template" + echo +} + +if [ ! -e "$CLI_PRETTY_TOOL" ]; then + echo "Error, cli-pretty tool not found" + exit 1 +fi + +if [ $# -eq 1 ] && [ $1 = "update" ]; then + "$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-interfaces" > "$CLI_OUTPUT_PATH/show-interfaces.txt" + for iface in "br0" "e0" "e1" "e2" "e3" "e4"; do + "$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-interfaces" -n "$iface" \ + > "$CLI_OUTPUT_PATH/show-interface-${iface}.txt" + done + echo "All files updated. Check git diff and commit if they look OK" + exit 0 +fi + +echo "1..7" + +# Show interfaces +"$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-interfaces" > "$CLI_OUTPUT_FILE" +if ! diff -u "$CLI_OUTPUT_PATH/show-interfaces.txt" "$CLI_OUTPUT_FILE"; then + print_update_txt + fail "\"show interfaces\" output has changed" +fi +ok "\"show interfaces\" output looks intact" + +# Show detailed interfaces +for iface in "br0" "e0" "e1" "e2" "e3" "e4"; do + "$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-interfaces" -n "$iface" > "$CLI_OUTPUT_FILE" + if ! diff -u "$CLI_OUTPUT_PATH/show-interface-${iface}.txt" "$CLI_OUTPUT_FILE"; then + print_update_txt + fail "\"show interface name $iface\" output has changed" + fi + ok "\"show interface name $iface\" output looks intact" +done diff --git a/test/case/cli/sysrepo-emulator.sh b/test/case/cli/sysrepo-emulator.sh new file mode 100755 index 000000000..3e92ea681 --- /dev/null +++ b/test/case/cli/sysrepo-emulator.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +SCRIPT_PATH="$(dirname "$(readlink -f "$0")")" +ROOT_PATH="$SCRIPT_PATH/../../../" + +YANGER_TOOL="$ROOT_PATH/board/netconf/rootfs/lib/infix/yanger" + +INTERFACES="br0 e0 e1 e2 e3 e4" + +YANGER_OUTPUT_FILE="$(mktemp --suffix=-infix-cli-yanger)" + +cleanup() { + rm -f "$YANGER_OUTPUT_FILE" +} +trap cleanup EXIT + +if [ ! -e "$YANGER_TOOL" ]; then + echo "Error, yanger tool not found" + exit 1 +fi + +for iface in $INTERFACES; do + if ! "$YANGER_TOOL" "ietf-interfaces" \ + -t "$SCRIPT_PATH/system-output/" \ + -p "$iface" >> "$YANGER_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)' \ + "$YANGER_OUTPUT_FILE"; then + echo "Error, merging yanger output data" >&2 + exit 1 +fi diff --git a/test/case/cli/system-output/ethtool-br0.txt b/test/case/cli/system-output/ethtool-br0.txt new file mode 100644 index 000000000..de4a03d7e --- /dev/null +++ b/test/case/cli/system-output/ethtool-br0.txt @@ -0,0 +1,39 @@ +Settings for e0: + Supported ports: [ ] + Supported link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Supported pause frame use: Symmetric + Supports auto-negotiation: Yes + Supported FEC modes: Not reported + Advertised link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Advertised pause frame use: Symmetric + Advertised auto-negotiation: Yes + Advertised FEC modes: Not reported + Link partner advertised link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Link partner advertised pause frame use: Symmetric + Link partner advertised auto-negotiation: Yes + Link partner advertised FEC modes: Not reported + Speed: 10000Mb/s + Duplex: Full + Auto-negotiation: on + Port: Twisted Pair + PHYAD: 4 + Transceiver: external + MDI-X: on (auto) + Supports Wake-on: g + Wake-on: d + Link detected: yes diff --git a/test/case/cli/system-output/ethtool-e0.txt b/test/case/cli/system-output/ethtool-e0.txt new file mode 100644 index 000000000..de4a03d7e --- /dev/null +++ b/test/case/cli/system-output/ethtool-e0.txt @@ -0,0 +1,39 @@ +Settings for e0: + Supported ports: [ ] + Supported link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Supported pause frame use: Symmetric + Supports auto-negotiation: Yes + Supported FEC modes: Not reported + Advertised link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Advertised pause frame use: Symmetric + Advertised auto-negotiation: Yes + Advertised FEC modes: Not reported + Link partner advertised link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Link partner advertised pause frame use: Symmetric + Link partner advertised auto-negotiation: Yes + Link partner advertised FEC modes: Not reported + Speed: 10000Mb/s + Duplex: Full + Auto-negotiation: on + Port: Twisted Pair + PHYAD: 4 + Transceiver: external + MDI-X: on (auto) + Supports Wake-on: g + Wake-on: d + Link detected: yes diff --git a/test/case/cli/system-output/ethtool-e1.txt b/test/case/cli/system-output/ethtool-e1.txt new file mode 100644 index 000000000..2685d5cbf --- /dev/null +++ b/test/case/cli/system-output/ethtool-e1.txt @@ -0,0 +1,39 @@ +Settings for e1: + Supported ports: [ ] + Supported link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Supported pause frame use: Symmetric + Supports auto-negotiation: Yes + Supported FEC modes: Not reported + Advertised link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Advertised pause frame use: Symmetric + Advertised auto-negotiation: Yes + Advertised FEC modes: Not reported + Link partner advertised link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Link partner advertised pause frame use: Symmetric + Link partner advertised auto-negotiation: Yes + Link partner advertised FEC modes: Not reported + Speed: 10000Mb/s + Duplex: Full + Auto-negotiation: on + Port: Twisted Pair + PHYAD: 4 + Transceiver: external + MDI-X: on (auto) + Supports Wake-on: g + Wake-on: d + Link detected: yes diff --git a/test/case/cli/system-output/ethtool-e2.txt b/test/case/cli/system-output/ethtool-e2.txt new file mode 100644 index 000000000..2ebad5626 --- /dev/null +++ b/test/case/cli/system-output/ethtool-e2.txt @@ -0,0 +1,39 @@ +Settings for e2: + Supported ports: [ ] + Supported link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Supported pause frame use: Symmetric + Supports auto-negotiation: Yes + Supported FEC modes: Not reported + Advertised link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Advertised pause frame use: Symmetric + Advertised auto-negotiation: Yes + Advertised FEC modes: Not reported + Link partner advertised link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Link partner advertised pause frame use: Symmetric + Link partner advertised auto-negotiation: Yes + Link partner advertised FEC modes: Not reported + Speed: 10000Mb/s + Duplex: Full + Auto-negotiation: on + Port: Twisted Pair + PHYAD: 4 + Transceiver: external + MDI-X: on (auto) + Supports Wake-on: g + Wake-on: d + Link detected: yes diff --git a/test/case/cli/system-output/ethtool-e3.txt b/test/case/cli/system-output/ethtool-e3.txt new file mode 100644 index 000000000..77966026a --- /dev/null +++ b/test/case/cli/system-output/ethtool-e3.txt @@ -0,0 +1,39 @@ +Settings for e3: + Supported ports: [ ] + Supported link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Supported pause frame use: Symmetric + Supports auto-negotiation: Yes + Supported FEC modes: Not reported + Advertised link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Advertised pause frame use: Symmetric + Advertised auto-negotiation: Yes + Advertised FEC modes: Not reported + Link partner advertised link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Link partner advertised pause frame use: Symmetric + Link partner advertised auto-negotiation: Yes + Link partner advertised FEC modes: Not reported + Speed: 10000Mb/s + Duplex: Full + Auto-negotiation: on + Port: Twisted Pair + PHYAD: 4 + Transceiver: external + MDI-X: on (auto) + Supports Wake-on: g + Wake-on: d + Link detected: yes diff --git a/test/case/cli/system-output/ethtool-e4.txt b/test/case/cli/system-output/ethtool-e4.txt new file mode 100644 index 000000000..feb3df49c --- /dev/null +++ b/test/case/cli/system-output/ethtool-e4.txt @@ -0,0 +1,39 @@ +Settings for e4: + Supported ports: [ ] + Supported link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Supported pause frame use: Symmetric + Supports auto-negotiation: Yes + Supported FEC modes: Not reported + Advertised link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Advertised pause frame use: Symmetric + Advertised auto-negotiation: Yes + Advertised FEC modes: Not reported + Link partner advertised link modes: 10baseT/Half 10baseT/Full + 100baseT/Half 100baseT/Full + 1000baseT/Full + 10000baseT/Full + 2500baseT/Full + 5000baseT/Full + Link partner advertised pause frame use: Symmetric + Link partner advertised auto-negotiation: Yes + Link partner advertised FEC modes: Not reported + Speed: 10000Mb/s + Duplex: Full + Auto-negotiation: on + Port: Twisted Pair + PHYAD: 4 + Transceiver: external + MDI-X: on (auto) + Supports Wake-on: g + Wake-on: d + Link detected: yes diff --git a/test/case/cli/system-output/ethtool-groups-br0.json b/test/case/cli/system-output/ethtool-groups-br0.json new file mode 100644 index 000000000..78d73034e --- /dev/null +++ b/test/case/cli/system-output/ethtool-groups-br0.json @@ -0,0 +1,61 @@ +[ + { + "ifname": "e1", + "eth-phy": {}, + "eth-mac": { + "FramesTransmittedOK": 713, + "SingleCollisionFrames": 0, + "MultipleCollisionFrames": 0, + "FramesReceivedOK": 418, + "FrameCheckSequenceErrors": 0, + "OctetsTransmittedOK": 129130, + "FramesWithDeferredXmissions": 0, + "LateCollisions": 0, + "OctetsReceivedOK": 72571, + "MulticastFramesXmittedOK": 605, + "BroadcastFramesXmittedOK": 69, + "FramesWithExcessiveDeferral": 0, + "MulticastFramesReceivedOK": 336, + "BroadcastFramesReceivedOK": 46 + }, + "eth-ctrl": {}, + "rmon": { + "etherStatsUndersizePkts": 0, + "etherStatsOversizePkts": 0, + "etherStatsFragments": 0, + "etherStatsJabbers": 0, + "rx-pktsNtoM": [ + { + "low": 64, + "high": 64, + "val": 12 + }, + { + "low": 65, + "high": 127, + "val": 603 + }, + { + "low": 128, + "high": 255, + "val": 168 + }, + { + "low": 256, + "high": 511, + "val": 348 + }, + { + "low": 512, + "high": 1023, + "val": 0 + }, + { + "low": 1024, + "high": 65535, + "val": 0 + } + ] + } + } +] diff --git a/test/case/cli/system-output/ethtool-groups-e0.json b/test/case/cli/system-output/ethtool-groups-e0.json new file mode 100644 index 000000000..d218bac3f --- /dev/null +++ b/test/case/cli/system-output/ethtool-groups-e0.json @@ -0,0 +1,61 @@ +[ + { + "ifname": "e0", + "eth-phy": {}, + "eth-mac": { + "FramesTransmittedOK": 713, + "SingleCollisionFrames": 0, + "MultipleCollisionFrames": 0, + "FramesReceivedOK": 418, + "FrameCheckSequenceErrors": 0, + "OctetsTransmittedOK": 129130, + "FramesWithDeferredXmissions": 0, + "LateCollisions": 0, + "OctetsReceivedOK": 72571, + "MulticastFramesXmittedOK": 605, + "BroadcastFramesXmittedOK": 69, + "FramesWithExcessiveDeferral": 0, + "MulticastFramesReceivedOK": 336, + "BroadcastFramesReceivedOK": 46 + }, + "eth-ctrl": {}, + "rmon": { + "etherStatsUndersizePkts": 0, + "etherStatsOversizePkts": 0, + "etherStatsFragments": 0, + "etherStatsJabbers": 0, + "rx-pktsNtoM": [ + { + "low": 64, + "high": 64, + "val": 12 + }, + { + "low": 65, + "high": 127, + "val": 603 + }, + { + "low": 128, + "high": 255, + "val": 168 + }, + { + "low": 256, + "high": 511, + "val": 348 + }, + { + "low": 512, + "high": 1023, + "val": 0 + }, + { + "low": 1024, + "high": 65535, + "val": 0 + } + ] + } + } +] diff --git a/test/case/cli/system-output/ethtool-groups-e1.json b/test/case/cli/system-output/ethtool-groups-e1.json new file mode 100644 index 000000000..78d73034e --- /dev/null +++ b/test/case/cli/system-output/ethtool-groups-e1.json @@ -0,0 +1,61 @@ +[ + { + "ifname": "e1", + "eth-phy": {}, + "eth-mac": { + "FramesTransmittedOK": 713, + "SingleCollisionFrames": 0, + "MultipleCollisionFrames": 0, + "FramesReceivedOK": 418, + "FrameCheckSequenceErrors": 0, + "OctetsTransmittedOK": 129130, + "FramesWithDeferredXmissions": 0, + "LateCollisions": 0, + "OctetsReceivedOK": 72571, + "MulticastFramesXmittedOK": 605, + "BroadcastFramesXmittedOK": 69, + "FramesWithExcessiveDeferral": 0, + "MulticastFramesReceivedOK": 336, + "BroadcastFramesReceivedOK": 46 + }, + "eth-ctrl": {}, + "rmon": { + "etherStatsUndersizePkts": 0, + "etherStatsOversizePkts": 0, + "etherStatsFragments": 0, + "etherStatsJabbers": 0, + "rx-pktsNtoM": [ + { + "low": 64, + "high": 64, + "val": 12 + }, + { + "low": 65, + "high": 127, + "val": 603 + }, + { + "low": 128, + "high": 255, + "val": 168 + }, + { + "low": 256, + "high": 511, + "val": 348 + }, + { + "low": 512, + "high": 1023, + "val": 0 + }, + { + "low": 1024, + "high": 65535, + "val": 0 + } + ] + } + } +] diff --git a/test/case/cli/system-output/ethtool-groups-e2.json b/test/case/cli/system-output/ethtool-groups-e2.json new file mode 100644 index 000000000..6c23fb74a --- /dev/null +++ b/test/case/cli/system-output/ethtool-groups-e2.json @@ -0,0 +1,61 @@ +[ + { + "ifname": "e2", + "eth-phy": {}, + "eth-mac": { + "FramesTransmittedOK": 713, + "SingleCollisionFrames": 0, + "MultipleCollisionFrames": 0, + "FramesReceivedOK": 418, + "FrameCheckSequenceErrors": 0, + "OctetsTransmittedOK": 129130, + "FramesWithDeferredXmissions": 0, + "LateCollisions": 0, + "OctetsReceivedOK": 72571, + "MulticastFramesXmittedOK": 605, + "BroadcastFramesXmittedOK": 69, + "FramesWithExcessiveDeferral": 0, + "MulticastFramesReceivedOK": 336, + "BroadcastFramesReceivedOK": 46 + }, + "eth-ctrl": {}, + "rmon": { + "etherStatsUndersizePkts": 0, + "etherStatsOversizePkts": 0, + "etherStatsFragments": 0, + "etherStatsJabbers": 0, + "rx-pktsNtoM": [ + { + "low": 64, + "high": 64, + "val": 12 + }, + { + "low": 65, + "high": 127, + "val": 603 + }, + { + "low": 128, + "high": 255, + "val": 168 + }, + { + "low": 256, + "high": 511, + "val": 348 + }, + { + "low": 512, + "high": 1023, + "val": 0 + }, + { + "low": 1024, + "high": 65535, + "val": 0 + } + ] + } + } +] diff --git a/test/case/cli/system-output/ethtool-groups-e3.json b/test/case/cli/system-output/ethtool-groups-e3.json new file mode 100644 index 000000000..aba18da15 --- /dev/null +++ b/test/case/cli/system-output/ethtool-groups-e3.json @@ -0,0 +1,61 @@ +[ + { + "ifname": "e3", + "eth-phy": {}, + "eth-mac": { + "FramesTransmittedOK": 713, + "SingleCollisionFrames": 0, + "MultipleCollisionFrames": 0, + "FramesReceivedOK": 418, + "FrameCheckSequenceErrors": 0, + "OctetsTransmittedOK": 129130, + "FramesWithDeferredXmissions": 0, + "LateCollisions": 0, + "OctetsReceivedOK": 72571, + "MulticastFramesXmittedOK": 605, + "BroadcastFramesXmittedOK": 69, + "FramesWithExcessiveDeferral": 0, + "MulticastFramesReceivedOK": 336, + "BroadcastFramesReceivedOK": 46 + }, + "eth-ctrl": {}, + "rmon": { + "etherStatsUndersizePkts": 0, + "etherStatsOversizePkts": 0, + "etherStatsFragments": 0, + "etherStatsJabbers": 0, + "rx-pktsNtoM": [ + { + "low": 64, + "high": 64, + "val": 12 + }, + { + "low": 65, + "high": 127, + "val": 603 + }, + { + "low": 128, + "high": 255, + "val": 168 + }, + { + "low": 256, + "high": 511, + "val": 348 + }, + { + "low": 512, + "high": 1023, + "val": 0 + }, + { + "low": 1024, + "high": 65535, + "val": 0 + } + ] + } + } +] diff --git a/test/case/cli/system-output/ethtool-groups-e4.json b/test/case/cli/system-output/ethtool-groups-e4.json new file mode 100644 index 000000000..9043bf645 --- /dev/null +++ b/test/case/cli/system-output/ethtool-groups-e4.json @@ -0,0 +1,61 @@ +[ + { + "ifname": "e4", + "eth-phy": {}, + "eth-mac": { + "FramesTransmittedOK": 713, + "SingleCollisionFrames": 0, + "MultipleCollisionFrames": 0, + "FramesReceivedOK": 418, + "FrameCheckSequenceErrors": 0, + "OctetsTransmittedOK": 129130, + "FramesWithDeferredXmissions": 0, + "LateCollisions": 0, + "OctetsReceivedOK": 72571, + "MulticastFramesXmittedOK": 605, + "BroadcastFramesXmittedOK": 69, + "FramesWithExcessiveDeferral": 0, + "MulticastFramesReceivedOK": 336, + "BroadcastFramesReceivedOK": 46 + }, + "eth-ctrl": {}, + "rmon": { + "etherStatsUndersizePkts": 0, + "etherStatsOversizePkts": 0, + "etherStatsFragments": 0, + "etherStatsJabbers": 0, + "rx-pktsNtoM": [ + { + "low": 64, + "high": 64, + "val": 12 + }, + { + "low": 65, + "high": 127, + "val": 603 + }, + { + "low": 128, + "high": 255, + "val": 168 + }, + { + "low": 256, + "high": 511, + "val": 348 + }, + { + "low": 512, + "high": 1023, + "val": 0 + }, + { + "low": 1024, + "high": 65535, + "val": 0 + } + ] + } + } +] 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 new file mode 100644 index 000000000..665b50f34 --- /dev/null +++ b/test/case/cli/system-output/ip-addr-show-dev-br0.json @@ -0,0 +1,101 @@ +[ + { + "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-e0.json b/test/case/cli/system-output/ip-addr-show-dev-e0.json new file mode 100644 index 000000000..ce4bda9ce --- /dev/null +++ b/test/case/cli/system-output/ip-addr-show-dev-e0.json @@ -0,0 +1,91 @@ +[ + { + "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 new file mode 100644 index 000000000..a5bc3ab54 --- /dev/null +++ b/test/case/cli/system-output/ip-addr-show-dev-e1.json @@ -0,0 +1,91 @@ +[ + { + "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 new file mode 100644 index 000000000..86a2b632f --- /dev/null +++ b/test/case/cli/system-output/ip-addr-show-dev-e2.json @@ -0,0 +1,53 @@ +[ + { + "ifindex": 4, + "ifname": "e2", + "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:02", + "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": "virtio4", + "stats64": { + "rx": { + "bytes": 1327, + "packets": 10, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 16606, + "packets": 85, + "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 new file mode 100644 index 000000000..4c09aeb04 --- /dev/null +++ b/test/case/cli/system-output/ip-addr-show-dev-e3.json @@ -0,0 +1,53 @@ +[ + { + "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 new file mode 100644 index 000000000..e6110db10 --- /dev/null +++ b/test/case/cli/system-output/ip-addr-show-dev-e4.json @@ -0,0 +1,53 @@ +[ + { + "ifindex": 6, + "ifname": "e4", + "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: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 new file mode 100644 index 000000000..1b04d324a --- /dev/null +++ b/test/case/cli/system-output/ip-link-show-dev-br0.json @@ -0,0 +1,101 @@ +[ + { + "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-e0.json b/test/case/cli/system-output/ip-link-show-dev-e0.json new file mode 100644 index 000000000..860ee90c7 --- /dev/null +++ b/test/case/cli/system-output/ip-link-show-dev-e0.json @@ -0,0 +1,91 @@ +[ + { + "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": 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 new file mode 100644 index 000000000..25f5884f4 --- /dev/null +++ b/test/case/cli/system-output/ip-link-show-dev-e1.json @@ -0,0 +1,91 @@ +[ + { + "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": 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 new file mode 100644 index 000000000..21fd1eccd --- /dev/null +++ b/test/case/cli/system-output/ip-link-show-dev-e2.json @@ -0,0 +1,53 @@ +[ + { + "ifindex": 4, + "ifname": "e2", + "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:02", + "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": "virtio4", + "stats64": { + "rx": { + "bytes": 1327, + "packets": 10, + "errors": 0, + "dropped": 0, + "over_errors": 0, + "multicast": 0 + }, + "tx": { + "bytes": 17582, + "packets": 89, + "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 new file mode 100644 index 000000000..4df9b2d7a --- /dev/null +++ b/test/case/cli/system-output/ip-link-show-dev-e3.json @@ -0,0 +1,53 @@ +[ + { + "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 new file mode 100644 index 000000000..883f1f009 --- /dev/null +++ b/test/case/cli/system-output/ip-link-show-dev-e4.json @@ -0,0 +1,53 @@ +[ + { + "ifindex": 6, + "ifname": "e4", + "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: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 + } + } + } +]