ShellCheck - shell script analysis tool version: 0.11.0 license: GNU General Public License, version 3 website: https://www.shellcheck.net Redirect to /tmp/tmp.2ZbpNVvLHg and /tmp/tmp.qWgUrVGXZK Tree base: 9abd2f7b7814 ("selftests: net: extend lib.sh to parse drivers/net/net.config") Now at: 6ae732e0dfc9 ("selftests: net: update some helpers to use run_on") ====== Checking before the patch ====== Checking tools/testing/selftests/net/forwarding/lib.sh - e1a847ed4d4592e29820ec7d4d0de16c1b815b225d7508d588b8b4f99ffa9610 In lib.sh line 98: basename `realpath $driver_path` ^---------------------^ SC2046 (warning): Quote this to prevent word splitting. ^---------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: basename $(realpath "$driver_path") In lib.sh line 104: local ifnames=`ip -j link show | jq -r ".[].ifname"` ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. Did you mean: local ifnames=$(ip -j link show | jq -r ".[].ifname") In lib.sh line 109: local driver_name=`driver_name_get $ifname` ^---------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-----------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local driver_name=$(driver_name_get "$ifname") In lib.sh line 110: if [[ ! -z $driver_name && $driver_name == $NETIF_FIND_DRIVER ]]; then ^----------------^ SC2053 (warning): Quote the right-hand side of == in [[ ]] to prevent glob matching. In lib.sh line 129: source "$net_forwarding_dir/forwarding.config" ^-- SC1091 (info): Not following: ./forwarding.config: openBinaryFile: does not exist (No such file or directory) In lib.sh line 140: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 150: tc filter add dev $dev ingress pref 1 handle 1 flower \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$dev" ingress pref 1 handle 1 flower \ In lib.sh line 152: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 156: tc filter del dev $dev ingress pref 1 handle 1 flower \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$dev" ingress pref 1 handle 1 flower \ In lib.sh line 165: tc filter add dev $dev ingress protocol mpls_uc pref 1 handle 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$dev" ingress protocol mpls_uc pref 1 handle 1 \ In lib.sh line 167: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 171: tc filter del dev $dev ingress protocol mpls_uc pref 1 handle 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$dev" ingress protocol mpls_uc pref 1 handle 1 \ In lib.sh line 181: tc filter add dev $dev ingress protocol mpls_uc pref 1 handle 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$dev" ingress protocol mpls_uc pref 1 handle 1 \ In lib.sh line 185: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 190: tc -j filter show dev $dev ingress protocol mpls_uc | jq . &> /dev/null ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j filter show dev "$dev" ingress protocol mpls_uc | jq . &> /dev/null In lib.sh line 192: tc filter del dev $dev ingress protocol mpls_uc pref 1 handle 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$dev" ingress protocol mpls_uc pref 1 handle 1 \ In lib.sh line 204: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 213: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 222: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 231: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 240: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 249: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 258: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 269: [ 0 -ne $(ethtool --json -S $dev --all-groups --src pmac 2>/dev/null \ ^-- SC2046 (warning): Quote this to prevent word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: [ 0 -ne $(ethtool --json -S "$dev" --all-groups --src pmac 2>/dev/null \ In lib.sh line 298: local driver_name=`driver_name_get $dev` ^---------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^--------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local driver_name=$(driver_name_get "$dev") In lib.sh line 300: if [[ $driver_name != $expected ]]; then ^-------^ SC2053 (warning): Quote the right-hand side of != in [[ ]] to prevent glob matching. In lib.sh line 313: local version="$(msend -v)" ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 317: major=$(echo $version | cut -d. -f1) ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: major=$(echo "$version" | cut -d. -f1) In lib.sh line 319: if [ $major -lt 3 ]; then ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ "$major" -lt 3 ]; then In lib.sh line 329: require_command $MZ ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$MZ" In lib.sh line 332: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 421: source "$net_forwarding_dir/../../drivers/net/net.config" ^-- SC1091 (info): Not following: ./../../drivers/net/net.config: openBinaryFile: does not exist (No such file or directory) In lib.sh line 446: NETIFS[p1]="$NETIF" ^----^ SC2153 (info): Possible misspelling: NETIF may not be assigned. Did you mean NETIFS? In lib.sh line 492: echo "SKIP: Importer requires $NUM_NETIFS NETIFS, but only ${#NETIFS[@]} are defined (${NETIFS[@]})" ^----------^ SC2145 (error): Argument mixes string and array. Use * or separate argument. In lib.sh line 510: if [ -z ${NETIFS[p$i]} ]; then ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ -z "${NETIFS[p$i]}" ]; then In lib.sh line 515: ip link show dev ${NETIFS[p$i]} &> /dev/null ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link show dev "${NETIFS[p$i]}" &> /dev/null In lib.sh line 516: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 517: ip link add ${NETIFS[p$i]} type veth \ ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link add "${NETIFS[p$i]}" type veth \ In lib.sh line 518: peer name ${NETIFS[p$j]} ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: peer name "${NETIFS[p$j]}" In lib.sh line 519: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 533: *) echo "Can not create interfaces of type \'$NETIF_TYPE\'" ^-- SC2028 (info): echo may not expand escape sequences. Use printf. In lib.sh line 549: MAC_ADDR_ORIG["$dev"]=$(ip -j link show dev $dev | jq -e '.[].address') ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: MAC_ADDR_ORIG["$dev"]=$(ip -j link show dev "$dev" | jq -e '.[].address') In lib.sh line 552: ip link set dev $dev address $new_addr ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$dev" address "$new_addr" In lib.sh line 562: ip link set dev $dev address ${MAC_ADDR_ORIG["$dev"]} ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^----------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$dev" address "${MAC_ADDR_ORIG["$dev"]}" In lib.sh line 575: ip link show dev ${NETIFS[p$i]} &> /dev/null ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link show dev "${NETIFS[p$i]}" &> /dev/null In lib.sh line 576: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 588: [[ $? != 0 ]] ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 596: for cur in ${arr[@]}; do ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements. In lib.sh line 602: echo $max ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$max" In lib.sh line 618: $@ | grep $addr | grep $flag "$word" ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $@ | grep "$addr" | grep "$flag" "$word" In lib.sh line 641: setup_wait_dev_with_timeout "$dev" $INTERFACE_TIMEOUT $wait_time ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: setup_wait_dev_with_timeout "$dev" "$INTERFACE_TIMEOUT" "$wait_time" In lib.sh line 643: if (($?)); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 657: for ((i = 1; i <= $max_iterations; ++i)); do ^-------------^ SC2004 (style): $/${} is unnecessary on arithmetic variables. In lib.sh line 658: ip link show dev $dev up \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link show dev "$dev" up \ In lib.sh line 660: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 663: sleep $wait_time ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sleep "$wait_time" In lib.sh line 677: setup_wait_dev ${NETIFS[p$i]} 0 ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: setup_wait_dev "${NETIFS[p$i]}" 0 In lib.sh line 681: sleep $WAIT_TIME ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sleep "$WAIT_TIME" In lib.sh line 694: slowwait $timeout ip link show dev $dev &> /dev/null ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: slowwait "$timeout" ip link show dev "$dev" &> /dev/null In lib.sh line 695: if (( $? )); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 698: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 706: read ^--^ SC2162 (info): read without -r will mangle backslashes. In lib.sh line 752: return ${__TB_IDS[$vrf_name]} ^--------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "${__TB_IDS[$vrf_name]}" In lib.sh line 760: __vrf_td_id_assign $vrf_name ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __vrf_td_id_assign "$vrf_name" In lib.sh line 763: ip link add dev $vrf_name type vrf table $tb_id ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link add dev "$vrf_name" type vrf table $tb_id In lib.sh line 773: __vrf_td_id_lookup $vrf_name ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __vrf_td_id_lookup "$vrf_name" In lib.sh line 778: ip link del dev $vrf_name ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link del dev "$vrf_name" In lib.sh line 792: ip address $add_del $addrstr dev $if_name ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip address "$add_del" "$addrstr" dev "$if_name" In lib.sh line 802: ip link set dev $if_name master $vrf_name ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$if_name" master "$vrf_name" In lib.sh line 803: ip link set dev $if_name up ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$if_name" up In lib.sh line 805: __addr_add_del $if_name add "${addrs[@]}" ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __addr_add_del "$if_name" add "${addrs[@]}" In lib.sh line 813: __addr_add_del $if_name del "${addrs[@]}" ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __addr_add_del "$if_name" del "${addrs[@]}" In lib.sh line 815: ip link set dev $if_name down ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$if_name" down In lib.sh line 816: ip link set dev $if_name nomaster ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$if_name" nomaster In lib.sh line 829: vrf_create $vrf_name ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: vrf_create "$vrf_name" In lib.sh line 830: ip link set dev $vrf_name up ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$vrf_name" up In lib.sh line 831: __simple_if_init $if_name $vrf_name "${array[@]}" ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __simple_if_init "$if_name" "$vrf_name" "${array[@]}" In lib.sh line 844: __simple_if_fini $if_name "${array[@]}" ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __simple_if_fini "$if_name" "${array[@]}" In lib.sh line 845: vrf_destroy $vrf_name ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: vrf_destroy "$vrf_name" In lib.sh line 861: ip link add name $name type $type \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link add name "$name" type "$type" \ In lib.sh line 862: local $local remote $remote "$@" ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local "$local" remote "$remote" "$@" In lib.sh line 863: ip link set dev $name up ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$name" up In lib.sh line 870: ip link del dev $name ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link del dev "$name" In lib.sh line 881: ip link add name $name link $if_name type vlan id $vid ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link add name "$name" link "$if_name" type vlan id "$vid" In lib.sh line 883: ip link set dev $name master $vrf ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$name" master "$vrf" In lib.sh line 885: ip link set dev $name up ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$name" up In lib.sh line 886: __addr_add_del $name add "${ips[@]}" ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __addr_add_del "$name" add "${ips[@]}" In lib.sh line 895: ip link del dev $name ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link del dev "$name" In lib.sh line 903: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 904: $TEAMD -t $if_name -d -c '{"runner": {"name": "'$mode'"}}' ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $TEAMD -t "$if_name" -d -c '{"runner": {"name": "'"$mode"'"}}' In lib.sh line 906: ip link set dev $slave down ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$slave" down In lib.sh line 907: ip link set dev $slave master $if_name ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$slave" master "$if_name" In lib.sh line 908: ip link set dev $slave up ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$slave" up In lib.sh line 910: ip link set dev $if_name up ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$if_name" up In lib.sh line 917: $TEAMD -t $if_name -k ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $TEAMD -t "$if_name" -k In lib.sh line 924: ip -j link show dev $if_name | jq -r '.[]["master"]' ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -j link show dev "$if_name" | jq -r '.[]["master"]' In lib.sh line 933: ip -j -s link show dev $if_name \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -j -s link show dev "$if_name" \ In lib.sh line 934: | jq '.[]["stats64"]["'$dir'"]["'$stat'"]' ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: | jq '.[]["stats64"]["'"$dir"'"]["'"$stat"'"]' In lib.sh line 939: link_stats_get $1 tx packets ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: link_stats_get "$1" tx packets In lib.sh line 944: link_stats_get $1 rx errors ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: link_stats_get "$1" rx errors In lib.sh line 952: ethtool -S $dev | grep "^ *$stat:" | head -n 1 | cut -d: -f2 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ethtool -S "$dev" | grep "^ *$stat:" | head -n 1 | cut -d: -f2 In lib.sh line 997: cat /proc/net/dev_snmp6/$dev | grep "^$stat" | cut -f2 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: cat /proc/net/dev_snmp6/"$dev" | grep "^$stat" | cut -f2 In lib.sh line 1007: ip -j stats show dev $if_name group offload subgroup $suite | ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -j stats show dev "$if_name" group offload subgroup "$suite" | In lib.sh line 1017: ip -j -s -s nexthop show id $group_id | ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -j -s -s nexthop show id "$group_id" | In lib.sh line 1108: ip -j addr show dev $if_name | \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -j addr show dev "$if_name" | \ In lib.sh line 1119: ageing_time=$(ip -j -d link show dev $bridge \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ageing_time=$(ip -j -d link show dev "$bridge" \ In lib.sh line 1129: SYSCTL_ORIG[$key]=$(sysctl -n $key) ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: SYSCTL_ORIG[$key]=$(sysctl -n "$key") In lib.sh line 1138: sysctl -qw $key="$value" ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sysctl -qw "$key"="$value" In lib.sh line 1145: sysctl -qw $key="${SYSCTL_ORIG[$key]}" ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sysctl -qw "$key"="${SYSCTL_ORIG[$key]}" In lib.sh line 1172: MTU_ORIG["$dev"]=$(ip -j link show dev $dev | jq -e '.[].mtu') ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: MTU_ORIG["$dev"]=$(ip -j link show dev "$dev" | jq -e '.[].mtu') In lib.sh line 1173: ip link set dev $dev mtu $mtu ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$dev" mtu "$mtu" In lib.sh line 1180: ip link set dev $dev mtu ${MTU_ORIG["$dev"]} ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$dev" mtu "${MTU_ORIG["$dev"]}" In lib.sh line 1188: ethtool -k ${NETIFS[p$i]} \ ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ethtool -k "${NETIFS[p$i]}" \ In lib.sh line 1190: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 1208: tc filter add dev $dev $direction pref 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$dev" "$direction" pref 1 \ In lib.sh line 1210: || tc filter add dev $dev $direction pref 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: || tc filter add dev "$dev" "$direction" pref 1 \ In lib.sh line 1219: tc filter del dev $dev $direction pref 1 flower ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$dev" "$direction" pref 1 flower In lib.sh line 1230: tc filter $add_del dev "$tundev" ingress \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter "$add_del" dev "$tundev" ingress \ In lib.sh line 1231: proto ip$vsuf pref $pref \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: proto ip"$vsuf" pref "$pref" \ In lib.sh line 1232: flower ip_proto icmp$vsuf $filter \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower ip_proto icmp"$vsuf" "$filter" \ In lib.sh line 1275: tc filter $add_del dev "$dev" ingress \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter "$add_del" dev "$dev" ingress \ In lib.sh line 1276: proto 802.1q pref $pref \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: proto 802.1q pref "$pref" \ In lib.sh line 1277: flower $filter \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower "$filter" \ In lib.sh line 1306: __icmp_capture_add_del $add_del $((dscp + 100)) "" $dev \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __icmp_capture_add_del "$add_del" $((dscp + 100)) "" "$dev" \ In lib.sh line 1316: __dscp_capture_add_del add $dev $base ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __dscp_capture_add_del add "$dev" "$base" In lib.sh line 1324: __dscp_capture_add_del del $dev $base ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __dscp_capture_add_del del "$dev" "$base" In lib.sh line 1334: local t=$(tc_rule_stats_get $dev $((dscp + 100))) ^-- SC2155 (warning): Declare and assign separately to avoid masking return values. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local t=$(tc_rule_stats_get "$dev" $((dscp + 100))) In lib.sh line 1343: tc qdisc add dev $dev clsact ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc add dev "$dev" clsact In lib.sh line 1344: tc filter add dev $dev ingress \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$dev" ingress \ In lib.sh line 1390: diff=$(echo $weights_ratio - $packets_ratio | bc -l) ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: diff=$(echo "$weights_ratio" - "$packets_ratio" | bc -l) In lib.sh line 1403: ip netns exec $name bash <<-EOF ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip netns exec "$name" bash <<-EOF In lib.sh line 1420: vrf_name=$(master_name_get $if_name) ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: vrf_name=$(master_name_get "$if_name") In lib.sh line 1421: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1422: $PING $args -c $PING_COUNT -i 0.1 \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$PING" "$args" -c "$PING_COUNT" -i 0.1 \ In lib.sh line 1423: -w $PING_TIMEOUT $dip &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" "$dip" &> /dev/null In lib.sh line 1430: ping_do $1 $2 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ping_do "$1" "$2" In lib.sh line 1439: ping_do $1 $2 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ping_do "$1" "$2" In lib.sh line 1451: vrf_name=$(master_name_get $if_name) ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: vrf_name=$(master_name_get "$if_name") In lib.sh line 1452: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1453: $PING6 $args -c $PING_COUNT -i 0.1 \ ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$PING6" "$args" -c "$PING_COUNT" -i 0.1 \ In lib.sh line 1454: -w $PING_TIMEOUT $dip &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" "$dip" &> /dev/null In lib.sh line 1461: ping6_do $1 $2 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ping6_do "$1" "$2" In lib.sh line 1470: ping6_do $1 $2 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ping6_do "$1" "$2" In lib.sh line 1486: bridge -j fdb show br $bridge brport $br_port1 \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge -j fdb show br "$bridge" brport "$br_port1" \ In lib.sh line 1493: bridge link set dev $br_port1 flood off ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port1" flood off In lib.sh line 1495: ip link set $host1_if promisc on ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$host1_if" promisc on In lib.sh line 1496: tc qdisc add dev $host1_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc add dev "$host1_if" ingress In lib.sh line 1497: tc filter add dev $host1_if ingress protocol ip pref 1 handle 101 \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$host1_if" ingress protocol ip pref 1 handle 101 \ In lib.sh line 1500: $MZ $host2_if -c 1 -p 64 -b $mac -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host2_if" -c 1 -p 64 -b $mac -t ip -q In lib.sh line 1503: tc -j -s filter show dev $host1_if ingress \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$host1_if" ingress \ In lib.sh line 1508: $MZ $host1_if -c 1 -p 64 -a $mac -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host1_if" -c 1 -p 64 -a $mac -t ip -q In lib.sh line 1511: bridge -j fdb show br $bridge brport $br_port1 \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge -j fdb show br "$bridge" brport "$br_port1" \ In lib.sh line 1515: $MZ $host2_if -c 1 -p 64 -b $mac -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host2_if" -c 1 -p 64 -b $mac -t ip -q In lib.sh line 1518: tc -j -s filter show dev $host1_if ingress \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$host1_if" ingress \ In lib.sh line 1525: ageing_time=$(bridge_ageing_time_get $bridge) ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ageing_time=$(bridge_ageing_time_get "$bridge") In lib.sh line 1528: bridge -j fdb show br $bridge brport $br_port1 \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge -j fdb show br "$bridge" brport "$br_port1" \ In lib.sh line 1532: bridge link set dev $br_port1 learning off ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port1" learning off In lib.sh line 1534: $MZ $host1_if -c 1 -p 64 -a $mac -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host1_if" -c 1 -p 64 -a $mac -t ip -q In lib.sh line 1537: bridge -j fdb show br $bridge brport $br_port1 \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge -j fdb show br "$bridge" brport "$br_port1" \ In lib.sh line 1541: bridge link set dev $br_port1 learning on ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port1" learning on In lib.sh line 1543: tc filter del dev $host1_if ingress protocol ip pref 1 handle 101 flower ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$host1_if" ingress protocol ip pref 1 handle 101 flower In lib.sh line 1544: tc qdisc del dev $host1_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc del dev "$host1_if" ingress In lib.sh line 1545: ip link set $host1_if promisc off ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$host1_if" promisc off In lib.sh line 1547: bridge link set dev $br_port1 flood on ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port1" flood on In lib.sh line 1563: ip link set $host2_if promisc on ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$host2_if" promisc on In lib.sh line 1564: tc qdisc add dev $host2_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc add dev "$host2_if" ingress In lib.sh line 1565: tc filter add dev $host2_if ingress protocol ip pref 1 handle 101 \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$host2_if" ingress protocol ip pref 1 handle 101 \ In lib.sh line 1566: flower dst_mac $mac action drop ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower dst_mac "$mac" action drop In lib.sh line 1568: $MZ $host1_if -c 1 -p 64 -b $mac -B $ip -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host1_if" -c 1 -p 64 -b "$mac" -B "$ip" -t ip -q In lib.sh line 1571: tc -j -s filter show dev $host2_if ingress \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$host2_if" ingress \ In lib.sh line 1579: tc filter del dev $host2_if ingress protocol ip pref 1 handle 101 flower ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$host2_if" ingress protocol ip pref 1 handle 101 flower In lib.sh line 1580: tc qdisc del dev $host2_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc del dev "$host2_if" ingress In lib.sh line 1581: ip link set $host2_if promisc off ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$host2_if" promisc off In lib.sh line 1596: bridge link set dev $br_port flood off ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port" flood off In lib.sh line 1598: flood_test_do false $mac $ip $host1_if $host2_if ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_test_do false $mac $ip "$host1_if" "$host2_if" In lib.sh line 1601: bridge link set dev $br_port flood on ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port" flood on In lib.sh line 1603: flood_test_do true $mac $ip $host1_if $host2_if ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_test_do true $mac $ip "$host1_if" "$host2_if" In lib.sh line 1619: bridge link set dev $br_port mcast_flood off ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port" mcast_flood off In lib.sh line 1621: flood_test_do false $mac $ip $host1_if $host2_if ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_test_do false $mac $ip "$host1_if" "$host2_if" In lib.sh line 1624: bridge link set dev $br_port mcast_flood on ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port" mcast_flood on In lib.sh line 1626: flood_test_do true $mac $ip $host1_if $host2_if ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_test_do true $mac $ip "$host1_if" "$host2_if" In lib.sh line 1639: flood_unicast_test $br_port $host1_if $host2_if ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_unicast_test "$br_port" "$host1_if" "$host2_if" In lib.sh line 1640: flood_multicast_test $br_port $host1_if $host2_if ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_multicast_test "$br_port" "$host1_if" "$host2_if" In lib.sh line 1653: $MZ $h_in -p $pktsize -A $sip -B $dip -c 0 \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$h_in" -p "$pktsize" -A "$sip" -B "$dip" -c 0 \ In lib.sh line 1654: -a own -b $dmac -t "$proto" -q "${mz_args[@]}" & ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -a own -b "$dmac" -t "$proto" -q "${mz_args[@]}" & In lib.sh line 1667: __start_traffic $pktsize udp "$h_in" "$sip" "$dip" "$dmac" \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __start_traffic "$pktsize" udp "$h_in" "$sip" "$dip" "$dmac" \ In lib.sh line 1680: __start_traffic $pktsize tcp "$h_in" "$sip" "$dip" "$dmac" \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __start_traffic "$pktsize" tcp "$h_in" "$sip" "$dip" "$dmac" \ In lib.sh line 1727: if [ -z $ns ]; then ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ -z "$ns" ]; then In lib.sh line 1733: if [ -z $SUDO_USER ] ; then ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ -z "$SUDO_USER" ] ; then In lib.sh line 1739: $ns_cmd tcpdump $TCPDUMP_EXTRA_FLAGS -e -n -Q in -i $if_name \ ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $ns_cmd tcpdump "$TCPDUMP_EXTRA_FLAGS" -e -n -Q in -i "$if_name" \ In lib.sh line 1740: -s 65535 -B 32768 $capuser -w ${capfile[$if_name]} \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -s 65535 -B 32768 "$capuser" -w "${capfile[$if_name]}" \ In lib.sh line 1760: rm ${capfile[$if_name]} ${capout[$if_name]} ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm "${capfile[$if_name]}" "${capout[$if_name]}" In lib.sh line 1767: tcpdump -e -n -r ${capfile[$if_name]} 2>&1 ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tcpdump -e -n -r "${capfile[$if_name]}" 2>&1 In lib.sh line 1790: tc qdisc add dev $host2_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc add dev "$host2_if" ingress In lib.sh line 1791: tc filter add dev $host2_if ingress protocol $tc_proto pref 1 handle 101 \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$host2_if" ingress protocol $tc_proto pref 1 handle 101 \ In lib.sh line 1792: flower ip_proto udp dst_mac $mac action drop ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower ip_proto udp dst_mac "$mac" action drop In lib.sh line 1794: $MZ $host1_if $mz_v6arg -c 1 -p 64 -b $mac -A $src_ip -B $ip -t udp "dp=4096,sp=2048" -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host1_if" $mz_v6arg -c 1 -p 64 -b "$mac" -A "$src_ip" -B "$ip" -t udp "dp=4096,sp=2048" -q In lib.sh line 1797: tc -j -s filter show dev $host2_if ingress \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$host2_if" ingress \ In lib.sh line 1800: if [[ $? -eq 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In lib.sh line 1804: tc filter del dev $host2_if ingress protocol $tc_proto pref 1 handle 101 flower ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$host2_if" ingress protocol $tc_proto pref 1 handle 101 flower In lib.sh line 1805: tc qdisc del dev $host2_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc del dev "$host2_if" ingress In lib.sh line 1840: mcast_packet_test $TEST_GROUP_MAC $src $TEST_GROUP $h2 $h1 ^-------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2154 (warning): h2 is referenced but not assigned. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2154 (warning): h1 is referenced but not assigned. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: mcast_packet_test "$TEST_GROUP_MAC" "$src" "$TEST_GROUP" "$h2" "$h1" In lib.sh line 1842: if [ $should_fwd -eq 1 ]; then ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ "$should_fwd" -eq 1 ]; then In lib.sh line 1856: if [ $is_blocked -eq 1 ]; then ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ "$is_blocked" -eq 1 ]; then In lib.sh line 1881: local vrf_name=$(master_name_get $if_name) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local vrf_name=$(master_name_get "$if_name") In lib.sh line 1886: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1887: mreceive -g $group -I $if_name > /dev/null 2>&1 & ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: mreceive -g "$group" -I "$if_name" > /dev/null 2>&1 & In lib.sh line 1902: local vrf_name=$(master_name_get $if_name) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local vrf_name=$(master_name_get "$if_name") In lib.sh line 1904: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1905: msend -g $groups -I $if_name -c 1 > /dev/null 2>&1 ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: msend -g "$groups" -I "$if_name" -c 1 > /dev/null 2>&1 In lib.sh line 1959: tmpfile=`mktemp /var/run/nexthoptestXXX` ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. Did you mean: tmpfile=$(mktemp /var/run/nexthoptestXXX) In lib.sh line 1960: mpid=`($ip monitor $mtype > $tmpfile & echo $!) 2>/dev/null` ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: mpid=$(($ip monitor "$mtype" > "$tmpfile" & echo $!) 2>/dev/null) In lib.sh line 1973: kill $mpid ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: kill "$mpid" In lib.sh line 1974: local lines=`grep '^\w' $tmpfile | wc -l` ^---^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^---------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^-----------------^ SC2126 (style): Consider using 'grep -c' instead of 'grep|wc -l'. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local lines=$(grep '^\w' "$tmpfile" | wc -l) In lib.sh line 1975: test $lines -eq $el ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: test "$lines" -eq "$el" In lib.sh line 1977: rm -rf $tmpfile ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm -rf "$tmpfile" In lib.sh line 1991: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1992: $ip stats set dev $dev ${type}_stats on ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $ip stats set dev "$dev" "${type}"_stats on In lib.sh line 1993: stop_ip_monitor $ipmout 1 "${type}_stats enablement" ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: stop_ip_monitor "$ipmout" 1 "${type}_stats enablement" In lib.sh line 1996: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1998: stop_ip_monitor $ipmout 1 "${type}_stats installation" ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: stop_ip_monitor "$ipmout" 1 "${type}_stats installation" In lib.sh line 2001: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2003: stop_ip_monitor $ipmout 1 "${type}_stats deinstallation" ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: stop_ip_monitor "$ipmout" 1 "${type}_stats deinstallation" In lib.sh line 2006: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2007: $ip stats set dev $dev ${type}_stats off ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $ip stats set dev "$dev" "${type}"_stats off In lib.sh line 2008: stop_ip_monitor $ipmout 1 "${type}_stats disablement" ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: stop_ip_monitor "$ipmout" 1 "${type}_stats disablement" In lib.sh line 2017: printf '%02x:' ${IP//./ } | ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: printf '%02x:' "${IP//./ }" | In lib.sh line 2036: echo $allcol_ip | tr : '\n' | ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$allcol_ip" | tr : '\n' | In lib.sh line 2054: printf "%04x" $u16 | sed 's/^/000/;s/^.*\(..\)\(..\)$/\1:\2/' ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: printf "%04x" "$u16" | sed 's/^/000/;s/^.*\(..\)\(..\)$/\1:\2/' In lib.sh line 2093: local ckbytes=$(u16_to_bytes $checksum) ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local ckbytes=$(u16_to_bytes "$checksum") In lib.sh line 2095: echo "$payload" | sed "s/CHECKSUM/$ckbytes/g" ^-- SC2001 (style): See if you can use ${variable//search/replace} instead. In lib.sh line 2112: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2116: )"22:"$( : Type - Membership Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2117: )"00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2118: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2119: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2120: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2121: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2122: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2123: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2124: )"$(ipv4_to_bytes $GRP):"$( : Multicast Address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv4_to_bytes "$GRP"):"$( : Multicast Address In lib.sh line 2126: ipv4_to_bytes $src ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ipv4_to_bytes "$src" In lib.sh line 2130: local checksum=$(payload_template_calc_checksum "$igmpv3") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2132: payload_template_expand_checksum "$igmpv3" $checksum ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: payload_template_expand_checksum "$igmpv3" "$checksum" In lib.sh line 2139: local payload=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2140: )"17:"$( : Type - Leave Group ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2141: )"00:"$( : Max Resp Time - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2142: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2143: )"$(ipv4_to_bytes $GRP)"$( : Group Address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: )"$(ipv4_to_bytes "$GRP")"$( : Group Address In lib.sh line 2145: local checksum=$(payload_template_calc_checksum "$payload") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2147: payload_template_expand_checksum "$payload" $checksum ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: payload_template_expand_checksum "$payload" "$checksum" In lib.sh line 2158: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2161: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2162: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2167: )"8f:"$( : Type - MLDv2 Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2168: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2169: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2170: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2171: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2172: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2173: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2174: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2175: )"$(ipv6_to_bytes $GRP):"$( : Multicast address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$GRP"):"$( : Multicast address In lib.sh line 2177: ipv6_to_bytes $src ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ipv6_to_bytes "$src" In lib.sh line 2182: local len=$(u16_to_bytes $(payload_template_nbytes $icmpv6)) ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-- SC2046 (warning): Quote this to prevent word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local len=$(u16_to_bytes $(payload_template_nbytes "$icmpv6")) In lib.sh line 2183: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2184: )"$(ipv6_to_bytes $SIP):"$( : SIP ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$SIP"):"$( : SIP In lib.sh line 2185: )"$(ipv6_to_bytes $GRP):"$( : DIP is multicast address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$GRP"):"$( : DIP is multicast address In lib.sh line 2186: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2189: local checksum=$(payload_template_calc_checksum ${sudohdr}${icmpv6}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local checksum=$(payload_template_calc_checksum "${sudohdr}""${icmpv6}") In lib.sh line 2191: payload_template_expand_checksum "$hbh$icmpv6" $checksum ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: payload_template_expand_checksum "$hbh$icmpv6" "$checksum" In lib.sh line 2203: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2204: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2209: )"84:"$( : Type - MLDv1 Done ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2210: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2211: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2212: )"00:00:"$( : Max Resp Delay - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2213: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2214: )"$(ipv6_to_bytes $GRP):"$( : Multicast address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: )"$(ipv6_to_bytes "$GRP"):"$( : Multicast address In lib.sh line 2217: local len=$(u16_to_bytes $(payload_template_nbytes $icmpv6)) ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-- SC2046 (warning): Quote this to prevent word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local len=$(u16_to_bytes $(payload_template_nbytes "$icmpv6")) In lib.sh line 2218: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2219: )"$(ipv6_to_bytes $SIP):"$( : SIP ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$SIP"):"$( : SIP In lib.sh line 2220: )"$(ipv6_to_bytes $GRP):"$( : DIP is multicast address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$GRP"):"$( : DIP is multicast address In lib.sh line 2221: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2224: local checksum=$(payload_template_calc_checksum ${sudohdr}${icmpv6}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local checksum=$(payload_template_calc_checksum "${sudohdr}""${icmpv6}") In lib.sh line 2226: payload_template_expand_checksum "$hbh$icmpv6" $checksum ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: payload_template_expand_checksum "$hbh$icmpv6" "$checksum" In lib.sh line 2255: log_test_skip $src:$caller ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: log_test_skip "$src":"$caller" In lib.sh line 2256: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 2273: local mac_addr=$(mac_get $dev) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local mac_addr=$(mac_get "$dev") In lib.sh line 2274: local tmp=$(ether_addr_to_u64 $mac_addr) ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local tmp=$(ether_addr_to_u64 "$mac_addr") In lib.sh line 2277: ip link set $dev up ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$dev" up In lib.sh line 2278: ip link add link $dev name macvlan-tmp type macvlan mode private ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link add link "$dev" name macvlan-tmp type macvlan mode private In lib.sh line 2279: ip link set macvlan-tmp address $(u64_to_ether_addr $((tmp + 1))) ^-- SC2046 (warning): Quote this to prevent word splitting. In lib.sh line 2282: promisc=$(ip -j -d link show dev $dev | jq -r '.[].promiscuity') ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: promisc=$(ip -j -d link show dev "$dev" | jq -r '.[].promiscuity') For more information: https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ... https://www.shellcheck.net/wiki/SC2145 -- Argument mixes string and array. ... https://www.shellcheck.net/wiki/SC2027 -- The surrounding quotes actually u... Checking tools/testing/selftests/net/lib.sh - c03467c29b10bc5091e0c288a3bb791664845bf18d1bc2e796311e58cd726204 In lib.sh line 78: local start_time="$(date -u +%s%3N)" ^--------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 87: local current_time="$(date -u +%s%3N)" ^----------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 115: local current=$("$@") ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 118: ((current $expr)) ^-- SC1105 (error): Shells disambiguate (( differently or not at all. For subshell, add spaces around ( . For ((, fix parsing errors. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ((current "$expr")) In lib.sh line 126: local base=$("$@") ^--^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 135: local base=$("$@") ^--^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 145: if ! which $prog_name >/dev/null 2>/dev/null; then ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if ! which "$prog_name" >/dev/null 2>/dev/null; then In lib.sh line 147: if ! which $prog_name >/dev/null; then ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if ! which "$prog_name" >/dev/null; then In lib.sh line 235: echo "$id 1" | ip netns exec $ns tee /sys/bus/netdevsim/new_device >/dev/null ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$id 1" | ip netns exec "$ns" tee /sys/bus/netdevsim/new_device >/dev/null In lib.sh line 236: local dev=$(ip netns exec $ns ls /sys/bus/netdevsim/devices/netdevsim$id/net) ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local dev=$(ip netns exec "$ns" ls /sys/bus/netdevsim/devices/netdevsim"$id"/net) In lib.sh line 237: ip -netns $ns link set dev $dev name nsim$id ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -netns "$ns" link set dev "$dev" name nsim"$id" In lib.sh line 238: ip -netns $ns link set dev nsim$id up ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -netns "$ns" link set dev nsim"$id" up In lib.sh line 240: echo nsim$id ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo nsim"$id" In lib.sh line 282: tc -j -s filter show dev $dev $dir pref $pref \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$dev" "$dir" pref "$pref" \ In lib.sh line 294: tc $netns -j -s filter show $id \ ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc "$netns" -j -s filter show "$id" \ In lib.sh line 306: tc -n $ns qdisc add dev $dev root handle 1: prio bands 2 \ ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -n "$ns" qdisc add dev "$dev" root handle 1: prio bands 2 \ In lib.sh line 309: tc -n $ns qdisc add dev $dev parent 1:1 handle 11: pfifo ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -n "$ns" qdisc add dev "$dev" parent 1:1 handle 11: pfifo In lib.sh line 310: tc -n $ns qdisc add dev $dev parent 1:2 handle 12: pfifo ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -n "$ns" qdisc add dev "$dev" parent 1:2 handle 12: pfifo In lib.sh line 312: tc -n $ns filter add dev $dev parent 1: protocol ipv$ipver \ ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -n "$ns" filter add dev "$dev" parent 1: protocol ipv"$ipver" \ In lib.sh line 313: flower $flower_expr classid 1:2 ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower "$flower_expr" classid 1:2 In lib.sh line 320: tc -n $ns -j -s qdisc show dev $dev handle 12: | jq .[0].packets ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -n "$ns" -j -s qdisc show dev "$dev" handle 12: | jq .[0].packets In lib.sh line 328: RET=$(ksft_status_merge $RET $ksft_status) ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: RET=$(ksft_status_merge $RET "$ksft_status") In lib.sh line 329: if (( $? )); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 351: read a ^--^ SC2162 (info): read without -r will mangle backslashes. In lib.sh line 409: EXIT_STATUS=$(ksft_exit_status_merge $EXIT_STATUS $RET) ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: EXIT_STATUS=$(ksft_exit_status_merge $EXIT_STATUS "$RET") In lib.sh line 410: return $RET ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "$RET" In lib.sh line 415: RET=$ksft_skip retmsg= log_test "$@" ^-- SC1007 (warning): Remove space after = if trying to assign a value (for empty string, use var='' ... ). In lib.sh line 420: RET=$ksft_xfail retmsg= log_test "$@" ^-- SC1007 (warning): Remove space after = if trying to assign a value (for empty string, use var='' ... ). In lib.sh line 436: $current_test ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$current_test" In lib.sh line 472: check_fail $err "$what succeeded, but should have failed" ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: check_fail "$err" "$what succeeded, but should have failed" In lib.sh line 474: check_err $err "$what failed" ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: check_err "$err" "$what failed" In lib.sh line 504: kind=$(ip -j -d link show dev $dev | ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: kind=$(ip -j -d link show dev "$dev" | In lib.sh line 517: ip -j link show dev $if_name | jq -r '.[]["address"]' ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -j link show dev "$if_name" | jq -r '.[]["address"]' In lib.sh line 525: { kill $pid && wait $pid; } 2>/dev/null ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: { kill "$pid" && wait "$pid"; } 2>/dev/null In lib.sh line 534: return $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "$EXIT_STATUS" In lib.sh line 543: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 569: local old_addr=$(mac_get "$name") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 579: local state=$(ip -j link show "$name" | ^---^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 640: [ ${protocol} = "tcp" ] && pattern="${pattern}0A" ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: [ "${protocol}" = "tcp" ] && pattern="${pattern}0A" In lib.sh line 642: if ip netns exec "${listener_ns}" awk '{print $2" "$4}' \ ^---------------^ SC2016 (info): Expressions don't expand in single quotes, use double quotes for that. In lib.sh line 664: output=$(echo $output | jq -r $jq_opts "$jq_exp") ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: output=$(echo "$output" | jq -r "$jq_opts" "$jq_exp") In lib.sh line 669: echo $output ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$output" For more information: https://www.shellcheck.net/wiki/SC1105 -- Shells disambiguate (( differentl... https://www.shellcheck.net/wiki/SC1007 -- Remove space after = if trying to... https://www.shellcheck.net/wiki/SC2155 -- Declare and assign separately to ... ====== Checking the tree with the patch ====== Checking tools/testing/selftests/net/forwarding/lib.sh - e1a847ed4d4592e29820ec7d4d0de16c1b815b225d7508d588b8b4f99ffa9610 In lib.sh line 98: basename `realpath $driver_path` ^---------------------^ SC2046 (warning): Quote this to prevent word splitting. ^---------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: basename $(realpath "$driver_path") In lib.sh line 104: local ifnames=`ip -j link show | jq -r ".[].ifname"` ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. Did you mean: local ifnames=$(ip -j link show | jq -r ".[].ifname") In lib.sh line 109: local driver_name=`driver_name_get $ifname` ^---------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-----------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local driver_name=$(driver_name_get "$ifname") In lib.sh line 110: if [[ ! -z $driver_name && $driver_name == $NETIF_FIND_DRIVER ]]; then ^----------------^ SC2053 (warning): Quote the right-hand side of == in [[ ]] to prevent glob matching. In lib.sh line 129: source "$net_forwarding_dir/forwarding.config" ^-- SC1091 (info): Not following: ./forwarding.config: openBinaryFile: does not exist (No such file or directory) In lib.sh line 140: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 150: tc filter add dev $dev ingress pref 1 handle 1 flower \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$dev" ingress pref 1 handle 1 flower \ In lib.sh line 152: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 156: tc filter del dev $dev ingress pref 1 handle 1 flower \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$dev" ingress pref 1 handle 1 flower \ In lib.sh line 165: tc filter add dev $dev ingress protocol mpls_uc pref 1 handle 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$dev" ingress protocol mpls_uc pref 1 handle 1 \ In lib.sh line 167: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 171: tc filter del dev $dev ingress protocol mpls_uc pref 1 handle 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$dev" ingress protocol mpls_uc pref 1 handle 1 \ In lib.sh line 181: tc filter add dev $dev ingress protocol mpls_uc pref 1 handle 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$dev" ingress protocol mpls_uc pref 1 handle 1 \ In lib.sh line 185: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 190: tc -j filter show dev $dev ingress protocol mpls_uc | jq . &> /dev/null ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j filter show dev "$dev" ingress protocol mpls_uc | jq . &> /dev/null In lib.sh line 192: tc filter del dev $dev ingress protocol mpls_uc pref 1 handle 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$dev" ingress protocol mpls_uc pref 1 handle 1 \ In lib.sh line 204: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 213: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 222: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 231: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 240: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 249: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 258: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 269: [ 0 -ne $(ethtool --json -S $dev --all-groups --src pmac 2>/dev/null \ ^-- SC2046 (warning): Quote this to prevent word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: [ 0 -ne $(ethtool --json -S "$dev" --all-groups --src pmac 2>/dev/null \ In lib.sh line 298: local driver_name=`driver_name_get $dev` ^---------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^--------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local driver_name=$(driver_name_get "$dev") In lib.sh line 300: if [[ $driver_name != $expected ]]; then ^-------^ SC2053 (warning): Quote the right-hand side of != in [[ ]] to prevent glob matching. In lib.sh line 313: local version="$(msend -v)" ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 317: major=$(echo $version | cut -d. -f1) ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: major=$(echo "$version" | cut -d. -f1) In lib.sh line 319: if [ $major -lt 3 ]; then ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ "$major" -lt 3 ]; then In lib.sh line 329: require_command $MZ ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$MZ" In lib.sh line 332: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 421: source "$net_forwarding_dir/../../drivers/net/net.config" ^-- SC1091 (info): Not following: ./../../drivers/net/net.config: openBinaryFile: does not exist (No such file or directory) In lib.sh line 446: NETIFS[p1]="$NETIF" ^----^ SC2153 (info): Possible misspelling: NETIF may not be assigned. Did you mean NETIFS? In lib.sh line 492: echo "SKIP: Importer requires $NUM_NETIFS NETIFS, but only ${#NETIFS[@]} are defined (${NETIFS[@]})" ^----------^ SC2145 (error): Argument mixes string and array. Use * or separate argument. In lib.sh line 510: if [ -z ${NETIFS[p$i]} ]; then ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ -z "${NETIFS[p$i]}" ]; then In lib.sh line 515: ip link show dev ${NETIFS[p$i]} &> /dev/null ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link show dev "${NETIFS[p$i]}" &> /dev/null In lib.sh line 516: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 517: ip link add ${NETIFS[p$i]} type veth \ ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link add "${NETIFS[p$i]}" type veth \ In lib.sh line 518: peer name ${NETIFS[p$j]} ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: peer name "${NETIFS[p$j]}" In lib.sh line 519: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 533: *) echo "Can not create interfaces of type \'$NETIF_TYPE\'" ^-- SC2028 (info): echo may not expand escape sequences. Use printf. In lib.sh line 553: run_on "$dev" ip link set dev "$dev" address $new_addr ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: run_on "$dev" ip link set dev "$dev" address "$new_addr" In lib.sh line 564: ip link set dev "$dev" address ${MAC_ADDR_ORIG["$dev"]} ^----------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$dev" address "${MAC_ADDR_ORIG["$dev"]}" In lib.sh line 580: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 592: [[ $? != 0 ]] ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 600: for cur in ${arr[@]}; do ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements. In lib.sh line 606: echo $max ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$max" In lib.sh line 622: $@ | grep $addr | grep $flag "$word" ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $@ | grep "$addr" | grep "$flag" "$word" In lib.sh line 645: setup_wait_dev_with_timeout "$dev" $INTERFACE_TIMEOUT $wait_time ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: setup_wait_dev_with_timeout "$dev" "$INTERFACE_TIMEOUT" "$wait_time" In lib.sh line 647: if (($?)); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 661: for ((i = 1; i <= $max_iterations; ++i)); do ^-------------^ SC2004 (style): $/${} is unnecessary on arithmetic variables. In lib.sh line 664: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 667: sleep $wait_time ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sleep "$wait_time" In lib.sh line 681: setup_wait_dev ${NETIFS[p$i]} 0 ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: setup_wait_dev "${NETIFS[p$i]}" 0 In lib.sh line 685: sleep $WAIT_TIME ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sleep "$WAIT_TIME" In lib.sh line 698: slowwait $timeout ip link show dev $dev &> /dev/null ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: slowwait "$timeout" ip link show dev "$dev" &> /dev/null In lib.sh line 699: if (( $? )); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 702: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 710: read ^--^ SC2162 (info): read without -r will mangle backslashes. In lib.sh line 756: return ${__TB_IDS[$vrf_name]} ^--------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "${__TB_IDS[$vrf_name]}" In lib.sh line 764: __vrf_td_id_assign $vrf_name ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __vrf_td_id_assign "$vrf_name" In lib.sh line 767: ip link add dev $vrf_name type vrf table $tb_id ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link add dev "$vrf_name" type vrf table $tb_id In lib.sh line 777: __vrf_td_id_lookup $vrf_name ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __vrf_td_id_lookup "$vrf_name" In lib.sh line 782: ip link del dev $vrf_name ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link del dev "$vrf_name" In lib.sh line 796: ip address $add_del $addrstr dev $if_name ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip address "$add_del" "$addrstr" dev "$if_name" In lib.sh line 806: ip link set dev $if_name master $vrf_name ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$if_name" master "$vrf_name" In lib.sh line 807: ip link set dev $if_name up ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$if_name" up In lib.sh line 809: __addr_add_del $if_name add "${addrs[@]}" ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __addr_add_del "$if_name" add "${addrs[@]}" In lib.sh line 817: __addr_add_del $if_name del "${addrs[@]}" ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __addr_add_del "$if_name" del "${addrs[@]}" In lib.sh line 819: ip link set dev $if_name down ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$if_name" down In lib.sh line 820: ip link set dev $if_name nomaster ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$if_name" nomaster In lib.sh line 833: vrf_create $vrf_name ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: vrf_create "$vrf_name" In lib.sh line 834: ip link set dev $vrf_name up ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$vrf_name" up In lib.sh line 835: __simple_if_init $if_name $vrf_name "${array[@]}" ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __simple_if_init "$if_name" "$vrf_name" "${array[@]}" In lib.sh line 848: __simple_if_fini $if_name "${array[@]}" ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __simple_if_fini "$if_name" "${array[@]}" In lib.sh line 849: vrf_destroy $vrf_name ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: vrf_destroy "$vrf_name" In lib.sh line 865: ip link add name $name type $type \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link add name "$name" type "$type" \ In lib.sh line 866: local $local remote $remote "$@" ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local "$local" remote "$remote" "$@" In lib.sh line 867: ip link set dev $name up ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$name" up In lib.sh line 874: ip link del dev $name ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link del dev "$name" In lib.sh line 885: ip link add name $name link $if_name type vlan id $vid ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link add name "$name" link "$if_name" type vlan id "$vid" In lib.sh line 887: ip link set dev $name master $vrf ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$name" master "$vrf" In lib.sh line 889: ip link set dev $name up ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$name" up In lib.sh line 890: __addr_add_del $name add "${ips[@]}" ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __addr_add_del "$name" add "${ips[@]}" In lib.sh line 899: ip link del dev $name ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link del dev "$name" In lib.sh line 907: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 908: $TEAMD -t $if_name -d -c '{"runner": {"name": "'$mode'"}}' ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $TEAMD -t "$if_name" -d -c '{"runner": {"name": "'"$mode"'"}}' In lib.sh line 910: ip link set dev $slave down ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$slave" down In lib.sh line 911: ip link set dev $slave master $if_name ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$slave" master "$if_name" In lib.sh line 912: ip link set dev $slave up ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$slave" up In lib.sh line 914: ip link set dev $if_name up ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$if_name" up In lib.sh line 921: $TEAMD -t $if_name -k ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $TEAMD -t "$if_name" -k In lib.sh line 928: ip -j link show dev $if_name | jq -r '.[]["master"]' ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -j link show dev "$if_name" | jq -r '.[]["master"]' In lib.sh line 937: ip -j -s link show dev $if_name \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -j -s link show dev "$if_name" \ In lib.sh line 938: | jq '.[]["stats64"]["'$dir'"]["'$stat'"]' ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: | jq '.[]["stats64"]["'"$dir"'"]["'"$stat"'"]' In lib.sh line 943: link_stats_get $1 tx packets ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: link_stats_get "$1" tx packets In lib.sh line 948: link_stats_get $1 rx errors ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: link_stats_get "$1" rx errors In lib.sh line 956: ethtool -S $dev | grep "^ *$stat:" | head -n 1 | cut -d: -f2 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ethtool -S "$dev" | grep "^ *$stat:" | head -n 1 | cut -d: -f2 In lib.sh line 1002: cat /proc/net/dev_snmp6/$dev | grep "^$stat" | cut -f2 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: cat /proc/net/dev_snmp6/"$dev" | grep "^$stat" | cut -f2 In lib.sh line 1012: ip -j stats show dev $if_name group offload subgroup $suite | ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -j stats show dev "$if_name" group offload subgroup "$suite" | In lib.sh line 1022: ip -j -s -s nexthop show id $group_id | ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -j -s -s nexthop show id "$group_id" | In lib.sh line 1113: ip -j addr show dev $if_name | \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -j addr show dev "$if_name" | \ In lib.sh line 1124: ageing_time=$(ip -j -d link show dev $bridge \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ageing_time=$(ip -j -d link show dev "$bridge" \ In lib.sh line 1134: SYSCTL_ORIG[$key]=$(sysctl -n $key) ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: SYSCTL_ORIG[$key]=$(sysctl -n "$key") In lib.sh line 1143: sysctl -qw $key="$value" ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sysctl -qw "$key"="$value" In lib.sh line 1150: sysctl -qw $key="${SYSCTL_ORIG[$key]}" ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sysctl -qw "$key"="${SYSCTL_ORIG[$key]}" In lib.sh line 1177: MTU_ORIG["$dev"]=$(ip -j link show dev $dev | jq -e '.[].mtu') ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: MTU_ORIG["$dev"]=$(ip -j link show dev "$dev" | jq -e '.[].mtu') In lib.sh line 1178: ip link set dev $dev mtu $mtu ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$dev" mtu "$mtu" In lib.sh line 1185: ip link set dev $dev mtu ${MTU_ORIG["$dev"]} ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$dev" mtu "${MTU_ORIG["$dev"]}" In lib.sh line 1193: ethtool -k ${NETIFS[p$i]} \ ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ethtool -k "${NETIFS[p$i]}" \ In lib.sh line 1195: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 1213: tc filter add dev $dev $direction pref 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$dev" "$direction" pref 1 \ In lib.sh line 1215: || tc filter add dev $dev $direction pref 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: || tc filter add dev "$dev" "$direction" pref 1 \ In lib.sh line 1224: tc filter del dev $dev $direction pref 1 flower ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$dev" "$direction" pref 1 flower In lib.sh line 1235: tc filter $add_del dev "$tundev" ingress \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter "$add_del" dev "$tundev" ingress \ In lib.sh line 1236: proto ip$vsuf pref $pref \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: proto ip"$vsuf" pref "$pref" \ In lib.sh line 1237: flower ip_proto icmp$vsuf $filter \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower ip_proto icmp"$vsuf" "$filter" \ In lib.sh line 1280: tc filter $add_del dev "$dev" ingress \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter "$add_del" dev "$dev" ingress \ In lib.sh line 1281: proto 802.1q pref $pref \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: proto 802.1q pref "$pref" \ In lib.sh line 1282: flower $filter \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower "$filter" \ In lib.sh line 1311: __icmp_capture_add_del $add_del $((dscp + 100)) "" $dev \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __icmp_capture_add_del "$add_del" $((dscp + 100)) "" "$dev" \ In lib.sh line 1321: __dscp_capture_add_del add $dev $base ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __dscp_capture_add_del add "$dev" "$base" In lib.sh line 1329: __dscp_capture_add_del del $dev $base ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __dscp_capture_add_del del "$dev" "$base" In lib.sh line 1339: local t=$(tc_rule_stats_get $dev $((dscp + 100))) ^-- SC2155 (warning): Declare and assign separately to avoid masking return values. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local t=$(tc_rule_stats_get "$dev" $((dscp + 100))) In lib.sh line 1348: tc qdisc add dev $dev clsact ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc add dev "$dev" clsact In lib.sh line 1349: tc filter add dev $dev ingress \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$dev" ingress \ In lib.sh line 1395: diff=$(echo $weights_ratio - $packets_ratio | bc -l) ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: diff=$(echo "$weights_ratio" - "$packets_ratio" | bc -l) In lib.sh line 1408: ip netns exec $name bash <<-EOF ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip netns exec "$name" bash <<-EOF In lib.sh line 1425: vrf_name=$(master_name_get $if_name) ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: vrf_name=$(master_name_get "$if_name") In lib.sh line 1426: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1427: $PING $args -c $PING_COUNT -i 0.1 \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$PING" "$args" -c "$PING_COUNT" -i 0.1 \ In lib.sh line 1428: -w $PING_TIMEOUT $dip &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" "$dip" &> /dev/null In lib.sh line 1435: ping_do $1 $2 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ping_do "$1" "$2" In lib.sh line 1444: ping_do $1 $2 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ping_do "$1" "$2" In lib.sh line 1456: vrf_name=$(master_name_get $if_name) ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: vrf_name=$(master_name_get "$if_name") In lib.sh line 1457: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1458: $PING6 $args -c $PING_COUNT -i 0.1 \ ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$PING6" "$args" -c "$PING_COUNT" -i 0.1 \ In lib.sh line 1459: -w $PING_TIMEOUT $dip &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" "$dip" &> /dev/null In lib.sh line 1466: ping6_do $1 $2 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ping6_do "$1" "$2" In lib.sh line 1475: ping6_do $1 $2 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ping6_do "$1" "$2" In lib.sh line 1491: bridge -j fdb show br $bridge brport $br_port1 \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge -j fdb show br "$bridge" brport "$br_port1" \ In lib.sh line 1498: bridge link set dev $br_port1 flood off ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port1" flood off In lib.sh line 1500: ip link set $host1_if promisc on ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$host1_if" promisc on In lib.sh line 1501: tc qdisc add dev $host1_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc add dev "$host1_if" ingress In lib.sh line 1502: tc filter add dev $host1_if ingress protocol ip pref 1 handle 101 \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$host1_if" ingress protocol ip pref 1 handle 101 \ In lib.sh line 1505: $MZ $host2_if -c 1 -p 64 -b $mac -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host2_if" -c 1 -p 64 -b $mac -t ip -q In lib.sh line 1508: tc -j -s filter show dev $host1_if ingress \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$host1_if" ingress \ In lib.sh line 1513: $MZ $host1_if -c 1 -p 64 -a $mac -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host1_if" -c 1 -p 64 -a $mac -t ip -q In lib.sh line 1516: bridge -j fdb show br $bridge brport $br_port1 \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge -j fdb show br "$bridge" brport "$br_port1" \ In lib.sh line 1520: $MZ $host2_if -c 1 -p 64 -b $mac -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host2_if" -c 1 -p 64 -b $mac -t ip -q In lib.sh line 1523: tc -j -s filter show dev $host1_if ingress \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$host1_if" ingress \ In lib.sh line 1530: ageing_time=$(bridge_ageing_time_get $bridge) ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ageing_time=$(bridge_ageing_time_get "$bridge") In lib.sh line 1533: bridge -j fdb show br $bridge brport $br_port1 \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge -j fdb show br "$bridge" brport "$br_port1" \ In lib.sh line 1537: bridge link set dev $br_port1 learning off ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port1" learning off In lib.sh line 1539: $MZ $host1_if -c 1 -p 64 -a $mac -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host1_if" -c 1 -p 64 -a $mac -t ip -q In lib.sh line 1542: bridge -j fdb show br $bridge brport $br_port1 \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge -j fdb show br "$bridge" brport "$br_port1" \ In lib.sh line 1546: bridge link set dev $br_port1 learning on ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port1" learning on In lib.sh line 1548: tc filter del dev $host1_if ingress protocol ip pref 1 handle 101 flower ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$host1_if" ingress protocol ip pref 1 handle 101 flower In lib.sh line 1549: tc qdisc del dev $host1_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc del dev "$host1_if" ingress In lib.sh line 1550: ip link set $host1_if promisc off ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$host1_if" promisc off In lib.sh line 1552: bridge link set dev $br_port1 flood on ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port1" flood on In lib.sh line 1568: ip link set $host2_if promisc on ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$host2_if" promisc on In lib.sh line 1569: tc qdisc add dev $host2_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc add dev "$host2_if" ingress In lib.sh line 1570: tc filter add dev $host2_if ingress protocol ip pref 1 handle 101 \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$host2_if" ingress protocol ip pref 1 handle 101 \ In lib.sh line 1571: flower dst_mac $mac action drop ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower dst_mac "$mac" action drop In lib.sh line 1573: $MZ $host1_if -c 1 -p 64 -b $mac -B $ip -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host1_if" -c 1 -p 64 -b "$mac" -B "$ip" -t ip -q In lib.sh line 1576: tc -j -s filter show dev $host2_if ingress \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$host2_if" ingress \ In lib.sh line 1584: tc filter del dev $host2_if ingress protocol ip pref 1 handle 101 flower ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$host2_if" ingress protocol ip pref 1 handle 101 flower In lib.sh line 1585: tc qdisc del dev $host2_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc del dev "$host2_if" ingress In lib.sh line 1586: ip link set $host2_if promisc off ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$host2_if" promisc off In lib.sh line 1601: bridge link set dev $br_port flood off ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port" flood off In lib.sh line 1603: flood_test_do false $mac $ip $host1_if $host2_if ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_test_do false $mac $ip "$host1_if" "$host2_if" In lib.sh line 1606: bridge link set dev $br_port flood on ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port" flood on In lib.sh line 1608: flood_test_do true $mac $ip $host1_if $host2_if ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_test_do true $mac $ip "$host1_if" "$host2_if" In lib.sh line 1624: bridge link set dev $br_port mcast_flood off ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port" mcast_flood off In lib.sh line 1626: flood_test_do false $mac $ip $host1_if $host2_if ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_test_do false $mac $ip "$host1_if" "$host2_if" In lib.sh line 1629: bridge link set dev $br_port mcast_flood on ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port" mcast_flood on In lib.sh line 1631: flood_test_do true $mac $ip $host1_if $host2_if ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_test_do true $mac $ip "$host1_if" "$host2_if" In lib.sh line 1644: flood_unicast_test $br_port $host1_if $host2_if ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_unicast_test "$br_port" "$host1_if" "$host2_if" In lib.sh line 1645: flood_multicast_test $br_port $host1_if $host2_if ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_multicast_test "$br_port" "$host1_if" "$host2_if" In lib.sh line 1658: $MZ $h_in -p $pktsize -A $sip -B $dip -c 0 \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$h_in" -p "$pktsize" -A "$sip" -B "$dip" -c 0 \ In lib.sh line 1659: -a own -b $dmac -t "$proto" -q "${mz_args[@]}" & ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -a own -b "$dmac" -t "$proto" -q "${mz_args[@]}" & In lib.sh line 1672: __start_traffic $pktsize udp "$h_in" "$sip" "$dip" "$dmac" \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __start_traffic "$pktsize" udp "$h_in" "$sip" "$dip" "$dmac" \ In lib.sh line 1685: __start_traffic $pktsize tcp "$h_in" "$sip" "$dip" "$dmac" \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __start_traffic "$pktsize" tcp "$h_in" "$sip" "$dip" "$dmac" \ In lib.sh line 1732: if [ -z $ns ]; then ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ -z "$ns" ]; then In lib.sh line 1738: if [ -z $SUDO_USER ] ; then ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ -z "$SUDO_USER" ] ; then In lib.sh line 1744: $ns_cmd tcpdump $TCPDUMP_EXTRA_FLAGS -e -n -Q in -i $if_name \ ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $ns_cmd tcpdump "$TCPDUMP_EXTRA_FLAGS" -e -n -Q in -i "$if_name" \ In lib.sh line 1745: -s 65535 -B 32768 $capuser -w ${capfile[$if_name]} \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -s 65535 -B 32768 "$capuser" -w "${capfile[$if_name]}" \ In lib.sh line 1765: rm ${capfile[$if_name]} ${capout[$if_name]} ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm "${capfile[$if_name]}" "${capout[$if_name]}" In lib.sh line 1772: tcpdump -e -n -r ${capfile[$if_name]} 2>&1 ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tcpdump -e -n -r "${capfile[$if_name]}" 2>&1 In lib.sh line 1795: tc qdisc add dev $host2_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc add dev "$host2_if" ingress In lib.sh line 1796: tc filter add dev $host2_if ingress protocol $tc_proto pref 1 handle 101 \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$host2_if" ingress protocol $tc_proto pref 1 handle 101 \ In lib.sh line 1797: flower ip_proto udp dst_mac $mac action drop ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower ip_proto udp dst_mac "$mac" action drop In lib.sh line 1799: $MZ $host1_if $mz_v6arg -c 1 -p 64 -b $mac -A $src_ip -B $ip -t udp "dp=4096,sp=2048" -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host1_if" $mz_v6arg -c 1 -p 64 -b "$mac" -A "$src_ip" -B "$ip" -t udp "dp=4096,sp=2048" -q In lib.sh line 1802: tc -j -s filter show dev $host2_if ingress \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$host2_if" ingress \ In lib.sh line 1805: if [[ $? -eq 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In lib.sh line 1809: tc filter del dev $host2_if ingress protocol $tc_proto pref 1 handle 101 flower ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$host2_if" ingress protocol $tc_proto pref 1 handle 101 flower In lib.sh line 1810: tc qdisc del dev $host2_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc del dev "$host2_if" ingress In lib.sh line 1845: mcast_packet_test $TEST_GROUP_MAC $src $TEST_GROUP $h2 $h1 ^-------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2154 (warning): h2 is referenced but not assigned. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2154 (warning): h1 is referenced but not assigned. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: mcast_packet_test "$TEST_GROUP_MAC" "$src" "$TEST_GROUP" "$h2" "$h1" In lib.sh line 1847: if [ $should_fwd -eq 1 ]; then ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ "$should_fwd" -eq 1 ]; then In lib.sh line 1861: if [ $is_blocked -eq 1 ]; then ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ "$is_blocked" -eq 1 ]; then In lib.sh line 1886: local vrf_name=$(master_name_get $if_name) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local vrf_name=$(master_name_get "$if_name") In lib.sh line 1891: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1892: mreceive -g $group -I $if_name > /dev/null 2>&1 & ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: mreceive -g "$group" -I "$if_name" > /dev/null 2>&1 & In lib.sh line 1907: local vrf_name=$(master_name_get $if_name) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local vrf_name=$(master_name_get "$if_name") In lib.sh line 1909: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1910: msend -g $groups -I $if_name -c 1 > /dev/null 2>&1 ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: msend -g "$groups" -I "$if_name" -c 1 > /dev/null 2>&1 In lib.sh line 1964: tmpfile=`mktemp /var/run/nexthoptestXXX` ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. Did you mean: tmpfile=$(mktemp /var/run/nexthoptestXXX) In lib.sh line 1965: mpid=`($ip monitor $mtype > $tmpfile & echo $!) 2>/dev/null` ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: mpid=$(($ip monitor "$mtype" > "$tmpfile" & echo $!) 2>/dev/null) In lib.sh line 1978: kill $mpid ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: kill "$mpid" In lib.sh line 1979: local lines=`grep '^\w' $tmpfile | wc -l` ^---^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^---------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^-----------------^ SC2126 (style): Consider using 'grep -c' instead of 'grep|wc -l'. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local lines=$(grep '^\w' "$tmpfile" | wc -l) In lib.sh line 1980: test $lines -eq $el ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: test "$lines" -eq "$el" In lib.sh line 1982: rm -rf $tmpfile ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm -rf "$tmpfile" In lib.sh line 1996: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1997: $ip stats set dev $dev ${type}_stats on ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $ip stats set dev "$dev" "${type}"_stats on In lib.sh line 1998: stop_ip_monitor $ipmout 1 "${type}_stats enablement" ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: stop_ip_monitor "$ipmout" 1 "${type}_stats enablement" In lib.sh line 2001: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2003: stop_ip_monitor $ipmout 1 "${type}_stats installation" ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: stop_ip_monitor "$ipmout" 1 "${type}_stats installation" In lib.sh line 2006: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2008: stop_ip_monitor $ipmout 1 "${type}_stats deinstallation" ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: stop_ip_monitor "$ipmout" 1 "${type}_stats deinstallation" In lib.sh line 2011: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2012: $ip stats set dev $dev ${type}_stats off ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $ip stats set dev "$dev" "${type}"_stats off In lib.sh line 2013: stop_ip_monitor $ipmout 1 "${type}_stats disablement" ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: stop_ip_monitor "$ipmout" 1 "${type}_stats disablement" In lib.sh line 2022: printf '%02x:' ${IP//./ } | ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: printf '%02x:' "${IP//./ }" | In lib.sh line 2041: echo $allcol_ip | tr : '\n' | ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$allcol_ip" | tr : '\n' | In lib.sh line 2059: printf "%04x" $u16 | sed 's/^/000/;s/^.*\(..\)\(..\)$/\1:\2/' ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: printf "%04x" "$u16" | sed 's/^/000/;s/^.*\(..\)\(..\)$/\1:\2/' In lib.sh line 2098: local ckbytes=$(u16_to_bytes $checksum) ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local ckbytes=$(u16_to_bytes "$checksum") In lib.sh line 2100: echo "$payload" | sed "s/CHECKSUM/$ckbytes/g" ^-- SC2001 (style): See if you can use ${variable//search/replace} instead. In lib.sh line 2117: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2121: )"22:"$( : Type - Membership Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2122: )"00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2123: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2124: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2125: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2126: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2127: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2128: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2129: )"$(ipv4_to_bytes $GRP):"$( : Multicast Address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv4_to_bytes "$GRP"):"$( : Multicast Address In lib.sh line 2131: ipv4_to_bytes $src ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ipv4_to_bytes "$src" In lib.sh line 2135: local checksum=$(payload_template_calc_checksum "$igmpv3") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2137: payload_template_expand_checksum "$igmpv3" $checksum ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: payload_template_expand_checksum "$igmpv3" "$checksum" In lib.sh line 2144: local payload=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2145: )"17:"$( : Type - Leave Group ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2146: )"00:"$( : Max Resp Time - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2147: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2148: )"$(ipv4_to_bytes $GRP)"$( : Group Address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: )"$(ipv4_to_bytes "$GRP")"$( : Group Address In lib.sh line 2150: local checksum=$(payload_template_calc_checksum "$payload") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2152: payload_template_expand_checksum "$payload" $checksum ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: payload_template_expand_checksum "$payload" "$checksum" In lib.sh line 2163: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2166: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2167: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2172: )"8f:"$( : Type - MLDv2 Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2173: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2174: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2175: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2176: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2177: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2178: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2179: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2180: )"$(ipv6_to_bytes $GRP):"$( : Multicast address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$GRP"):"$( : Multicast address In lib.sh line 2182: ipv6_to_bytes $src ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ipv6_to_bytes "$src" In lib.sh line 2187: local len=$(u16_to_bytes $(payload_template_nbytes $icmpv6)) ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-- SC2046 (warning): Quote this to prevent word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local len=$(u16_to_bytes $(payload_template_nbytes "$icmpv6")) In lib.sh line 2188: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2189: )"$(ipv6_to_bytes $SIP):"$( : SIP ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$SIP"):"$( : SIP In lib.sh line 2190: )"$(ipv6_to_bytes $GRP):"$( : DIP is multicast address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$GRP"):"$( : DIP is multicast address In lib.sh line 2191: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2194: local checksum=$(payload_template_calc_checksum ${sudohdr}${icmpv6}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local checksum=$(payload_template_calc_checksum "${sudohdr}""${icmpv6}") In lib.sh line 2196: payload_template_expand_checksum "$hbh$icmpv6" $checksum ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: payload_template_expand_checksum "$hbh$icmpv6" "$checksum" In lib.sh line 2208: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2209: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2214: )"84:"$( : Type - MLDv1 Done ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2215: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2216: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2217: )"00:00:"$( : Max Resp Delay - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2218: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2219: )"$(ipv6_to_bytes $GRP):"$( : Multicast address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: )"$(ipv6_to_bytes "$GRP"):"$( : Multicast address In lib.sh line 2222: local len=$(u16_to_bytes $(payload_template_nbytes $icmpv6)) ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-- SC2046 (warning): Quote this to prevent word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local len=$(u16_to_bytes $(payload_template_nbytes "$icmpv6")) In lib.sh line 2223: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2224: )"$(ipv6_to_bytes $SIP):"$( : SIP ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$SIP"):"$( : SIP In lib.sh line 2225: )"$(ipv6_to_bytes $GRP):"$( : DIP is multicast address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$GRP"):"$( : DIP is multicast address In lib.sh line 2226: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2229: local checksum=$(payload_template_calc_checksum ${sudohdr}${icmpv6}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local checksum=$(payload_template_calc_checksum "${sudohdr}""${icmpv6}") In lib.sh line 2231: payload_template_expand_checksum "$hbh$icmpv6" $checksum ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: payload_template_expand_checksum "$hbh$icmpv6" "$checksum" In lib.sh line 2260: log_test_skip $src:$caller ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: log_test_skip "$src":"$caller" In lib.sh line 2261: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 2278: local mac_addr=$(mac_get $dev) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local mac_addr=$(mac_get "$dev") In lib.sh line 2279: local tmp=$(ether_addr_to_u64 $mac_addr) ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local tmp=$(ether_addr_to_u64 "$mac_addr") In lib.sh line 2282: ip link set $dev up ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$dev" up In lib.sh line 2283: ip link add link $dev name macvlan-tmp type macvlan mode private ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link add link "$dev" name macvlan-tmp type macvlan mode private In lib.sh line 2284: ip link set macvlan-tmp address $(u64_to_ether_addr $((tmp + 1))) ^-- SC2046 (warning): Quote this to prevent word splitting. In lib.sh line 2287: promisc=$(ip -j -d link show dev $dev | jq -r '.[].promiscuity') ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: promisc=$(ip -j -d link show dev "$dev" | jq -r '.[].promiscuity') For more information: https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ... https://www.shellcheck.net/wiki/SC2145 -- Argument mixes string and array. ... https://www.shellcheck.net/wiki/SC2027 -- The surrounding quotes actually u... Checking tools/testing/selftests/net/lib.sh - c03467c29b10bc5091e0c288a3bb791664845bf18d1bc2e796311e58cd726204 In lib.sh line 78: local start_time="$(date -u +%s%3N)" ^--------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 87: local current_time="$(date -u +%s%3N)" ^----------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 115: local current=$("$@") ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 118: ((current $expr)) ^-- SC1105 (error): Shells disambiguate (( differently or not at all. For subshell, add spaces around ( . For ((, fix parsing errors. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ((current "$expr")) In lib.sh line 126: local base=$("$@") ^--^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 135: local base=$("$@") ^--^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 145: if ! which $prog_name >/dev/null 2>/dev/null; then ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if ! which "$prog_name" >/dev/null 2>/dev/null; then In lib.sh line 147: if ! which $prog_name >/dev/null; then ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if ! which "$prog_name" >/dev/null; then In lib.sh line 235: echo "$id 1" | ip netns exec $ns tee /sys/bus/netdevsim/new_device >/dev/null ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$id 1" | ip netns exec "$ns" tee /sys/bus/netdevsim/new_device >/dev/null In lib.sh line 236: local dev=$(ip netns exec $ns ls /sys/bus/netdevsim/devices/netdevsim$id/net) ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local dev=$(ip netns exec "$ns" ls /sys/bus/netdevsim/devices/netdevsim"$id"/net) In lib.sh line 237: ip -netns $ns link set dev $dev name nsim$id ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -netns "$ns" link set dev "$dev" name nsim"$id" In lib.sh line 238: ip -netns $ns link set dev nsim$id up ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip -netns "$ns" link set dev nsim"$id" up In lib.sh line 240: echo nsim$id ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo nsim"$id" In lib.sh line 282: tc -j -s filter show dev $dev $dir pref $pref \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$dev" "$dir" pref "$pref" \ In lib.sh line 294: tc $netns -j -s filter show $id \ ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc "$netns" -j -s filter show "$id" \ In lib.sh line 306: tc -n $ns qdisc add dev $dev root handle 1: prio bands 2 \ ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -n "$ns" qdisc add dev "$dev" root handle 1: prio bands 2 \ In lib.sh line 309: tc -n $ns qdisc add dev $dev parent 1:1 handle 11: pfifo ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -n "$ns" qdisc add dev "$dev" parent 1:1 handle 11: pfifo In lib.sh line 310: tc -n $ns qdisc add dev $dev parent 1:2 handle 12: pfifo ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -n "$ns" qdisc add dev "$dev" parent 1:2 handle 12: pfifo In lib.sh line 312: tc -n $ns filter add dev $dev parent 1: protocol ipv$ipver \ ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -n "$ns" filter add dev "$dev" parent 1: protocol ipv"$ipver" \ In lib.sh line 313: flower $flower_expr classid 1:2 ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower "$flower_expr" classid 1:2 In lib.sh line 320: tc -n $ns -j -s qdisc show dev $dev handle 12: | jq .[0].packets ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -n "$ns" -j -s qdisc show dev "$dev" handle 12: | jq .[0].packets In lib.sh line 328: RET=$(ksft_status_merge $RET $ksft_status) ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: RET=$(ksft_status_merge $RET "$ksft_status") In lib.sh line 329: if (( $? )); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 351: read a ^--^ SC2162 (info): read without -r will mangle backslashes. In lib.sh line 409: EXIT_STATUS=$(ksft_exit_status_merge $EXIT_STATUS $RET) ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: EXIT_STATUS=$(ksft_exit_status_merge $EXIT_STATUS "$RET") In lib.sh line 410: return $RET ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "$RET" In lib.sh line 415: RET=$ksft_skip retmsg= log_test "$@" ^-- SC1007 (warning): Remove space after = if trying to assign a value (for empty string, use var='' ... ). In lib.sh line 420: RET=$ksft_xfail retmsg= log_test "$@" ^-- SC1007 (warning): Remove space after = if trying to assign a value (for empty string, use var='' ... ). In lib.sh line 436: $current_test ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$current_test" In lib.sh line 472: check_fail $err "$what succeeded, but should have failed" ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: check_fail "$err" "$what succeeded, but should have failed" In lib.sh line 474: check_err $err "$what failed" ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: check_err "$err" "$what failed" In lib.sh line 504: kind=$(ip -j -d link show dev $dev | ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: kind=$(ip -j -d link show dev "$dev" | In lib.sh line 526: { kill $pid && wait $pid; } 2>/dev/null ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: { kill "$pid" && wait "$pid"; } 2>/dev/null In lib.sh line 535: return $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "$EXIT_STATUS" In lib.sh line 544: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 570: local old_addr=$(mac_get "$name") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 580: local state=$(ip -j link show "$name" | ^---^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 641: [ ${protocol} = "tcp" ] && pattern="${pattern}0A" ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: [ "${protocol}" = "tcp" ] && pattern="${pattern}0A" In lib.sh line 643: if ip netns exec "${listener_ns}" awk '{print $2" "$4}' \ ^---------------^ SC2016 (info): Expressions don't expand in single quotes, use double quotes for that. In lib.sh line 665: output=$(echo $output | jq -r $jq_opts "$jq_exp") ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: output=$(echo "$output" | jq -r "$jq_opts" "$jq_exp") In lib.sh line 670: echo $output ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$output" For more information: https://www.shellcheck.net/wiki/SC1105 -- Shells disambiguate (( differentl... https://www.shellcheck.net/wiki/SC1007 -- Remove space after = if trying to... https://www.shellcheck.net/wiki/SC2155 -- Declare and assign separately to ...