ShellCheck - shell script analysis tool version: 0.10.0 license: GNU General Public License, version 3 website: https://www.shellcheck.net Redirect to /tmp/tmp.PBAcDAMEMn and /tmp/tmp.NGfwD4maNG Tree base: 2804fbb501db ("bonding: support aggregator selection based on port priority") Now at: b7b121fe11e6 ("selftests: bonding: add test for LACP actor port priority") ====== Checking before the patch ====== Checking tools/testing/selftests/net/forwarding/lib.sh - e1a847ed4d4592e29820ec7d4d0de16c1b815b225d7508d588b8b4f99ffa9610 In lib.sh line 97: 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 103: 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 108: 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 109: if [[ ! -z $driver_name && $driver_name == $NETIF_FIND_DRIVER ]]; then ^-- SC2236 (style): Use -n instead of ! -z. ^----------------^ SC2053 (warning): Quote the right-hand side of == in [[ ]] to prevent glob matching. In lib.sh line 128: 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 139: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 149: 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 151: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 155: 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 164: 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 166: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 170: 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 180: 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 184: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 189: 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 191: 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 203: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 212: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 221: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 230: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 239: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 248: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 257: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 268: [ 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 297: 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 299: if [[ $driver_name != $expected ]]; then ^-------^ SC2053 (warning): Quote the right-hand side of != in [[ ]] to prevent glob matching. In lib.sh line 312: local version="$(msend -v)" ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 316: 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 318: 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 328: require_command $MZ ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$MZ" In lib.sh line 331: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 364: 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 382: 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 387: 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 388: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 389: 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 390: 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 391: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 405: *) echo "Can not create interfaces of type \'$NETIF_TYPE\'" ^-- SC2028 (info): echo may not expand escape sequences. Use printf. In lib.sh line 421: 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 424: 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 434: 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 447: 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 448: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 460: [[ $? != 0 ]] ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 468: for cur in ${arr[@]}; do ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements. In lib.sh line 474: echo $max ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$max" In lib.sh line 490: $@ | 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 513: 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 515: if (($?)); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 529: for ((i = 1; i <= $max_iterations; ++i)); do ^-------------^ SC2004 (style): $/${} is unnecessary on arithmetic variables. In lib.sh line 530: 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 532: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 535: sleep $wait_time ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sleep "$wait_time" In lib.sh line 549: 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 553: sleep $WAIT_TIME ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sleep "$WAIT_TIME" In lib.sh line 566: 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 567: if (( $? )); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 570: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 588: 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 593: echo $output ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$output" In lib.sh line 595: [ ! -z "$output" ] ^-- SC2236 (style): Use -n instead of ! -z. In lib.sh line 602: read ^--^ SC2162 (info): read without -r will mangle backslashes. In lib.sh line 642: 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 650: __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 653: 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 663: __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 668: 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 682: 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 692: 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 693: 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 695: __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 703: __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 705: 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 706: 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 719: 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 720: 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 721: __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 734: __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 735: 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 745: 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 746: 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 747: 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 754: 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 765: 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 767: 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 769: 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 770: __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 779: 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 787: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 788: $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 790: 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 791: 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 792: 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 794: 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 801: $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 808: 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 817: 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 818: | 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 823: 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 828: 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 836: 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 846: ethtool --json -S $dev --groups $grp -- --src $src | \ ^--^ 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: ethtool --json -S "$dev" --groups "$grp" -- --src "$src" | \ In lib.sh line 847: jq '.[]."'"$grp"'"."'$name'"' ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: jq '.[]."'"$grp"'"."'"$name"'"' In lib.sh line 875: 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 885: 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 895: 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 986: 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 997: 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 1007: 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 1016: 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 1023: 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 1044: 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 1045: 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 1052: 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 1060: 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 1062: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 1080: 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 1082: || 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 1091: 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 1102: 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 1103: 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 1104: 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 1147: 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 1148: 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 1149: flower $filter \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower "$filter" \ In lib.sh line 1178: __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 1188: __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 1196: __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 1206: 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 1215: 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 1216: 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 1262: 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 1275: 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 1292: 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 1293: 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 1294: $PING $args $dip -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. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$PING" "$args" "$dip" -c "$PING_COUNT" -i 0.1 \ In lib.sh line 1295: -w $PING_TIMEOUT &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" &> /dev/null In lib.sh line 1302: 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 1311: 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 1323: 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 1324: 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 1325: $PING6 $args $dip -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. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$PING6" "$args" "$dip" -c "$PING_COUNT" -i 0.1 \ In lib.sh line 1326: -w $PING_TIMEOUT &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" &> /dev/null In lib.sh line 1333: 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 1342: 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 1358: 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 1365: 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 1367: 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 1368: 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 1369: 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 1372: $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 1375: 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 1380: $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 1383: 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 1387: $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 1390: 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 1397: 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 1400: 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 1404: 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 1406: $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 1409: 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 1413: 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 1415: 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 1416: 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 1417: 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 1419: 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 1435: 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 1436: 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 1437: 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 1438: 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 1440: $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 1443: 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 1451: 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 1452: 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 1453: 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 1468: 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 1470: 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 1473: 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 1475: 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 1491: 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 1493: 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 1496: 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 1498: 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 1511: 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 1512: 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 1525: $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 1526: -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 1539: __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 1552: __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 1599: 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 1605: 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 1611: $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 1612: -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 1632: 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 1639: 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 1662: 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 1663: 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 1664: 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 1666: $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 1669: 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 1672: if [[ $? -eq 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In lib.sh line 1676: 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 1677: 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 1712: 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 1714: 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 1728: 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 1753: 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 1758: 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 1759: 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 1774: 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 1776: 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 1777: 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 1831: 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 1832: 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 1845: kill $mpid ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: kill "$mpid" In lib.sh line 1846: 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 1847: 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 1849: rm -rf $tmpfile ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm -rf "$tmpfile" In lib.sh line 1863: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1864: $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 1865: 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 1868: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1870: 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 1873: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1875: 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 1878: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1879: $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 1880: 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 1889: printf '%02x:' ${IP//./ } | ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: printf '%02x:' "${IP//./ }" | In lib.sh line 1908: 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 1926: 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 1965: 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 1967: echo "$payload" | sed "s/CHECKSUM/$ckbytes/g" ^-- SC2001 (style): See if you can use ${variable//search/replace} instead. In lib.sh line 1984: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1988: )"22:"$( : Type - Membership Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1989: )"00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1990: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1991: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1992: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1993: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1994: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1995: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1996: )"$(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 1998: 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 2002: local checksum=$(payload_template_calc_checksum "$igmpv3") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2004: 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 2011: local payload=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2012: )"17:"$( : Type - Leave Group ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2013: )"00:"$( : Max Resp Time - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2014: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2015: )"$(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 2017: local checksum=$(payload_template_calc_checksum "$payload") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2019: 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 2030: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2033: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2034: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2039: )"8f:"$( : Type - MLDv2 Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2040: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2041: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2042: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2043: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2044: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2045: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2046: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2047: )"$(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 2049: 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 2054: 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 2055: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2056: )"$(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 2057: )"$(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 2058: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2061: 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 2063: 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 2075: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2076: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2081: )"84:"$( : Type - MLDv1 Done ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2082: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2083: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2084: )"00:00:"$( : Max Resp Delay - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2085: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2086: )"$(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 2089: 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 2090: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2091: )"$(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 2092: )"$(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 2093: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2096: 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 2098: 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 2127: 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 2128: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 2145: 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 2146: 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 2149: 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 2150: 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 2151: ip link set macvlan-tmp address $(u64_to_ether_addr $((tmp + 1))) ^-- SC2046 (warning): Quote this to prevent word splitting. In lib.sh line 2154: 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 293: 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 305: 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 308: 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 309: 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 311: 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 312: 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 319: 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 327: 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 328: if (( $? )); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 350: read a ^--^ SC2162 (info): read without -r will mangle backslashes. In lib.sh line 408: 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 409: return $RET ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "$RET" In lib.sh line 414: 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 419: 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 435: $current_test ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$current_test" In lib.sh line 471: 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 473: 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 503: 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 516: 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 524: { 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 533: return $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "$EXIT_STATUS" In lib.sh line 542: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 568: local old_addr=$(mac_get "$name") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 578: local state=$(ip -j link show "$name" | ^---^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 639: [ ${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 641: if ip netns exec "${listener_ns}" awk '{print $2" "$4}' \ ^---------------^ SC2016 (info): Expressions don't expand in single quotes, use double quotes for that. 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/drivers/net/bonding/bond_lacp_prio.sh - 1178a5bdc125ecc9819815789cf0c34988944a2feaaa696b50033cb97955e8b9 Checking tools/testing/selftests/net/forwarding/lib.sh - e1a847ed4d4592e29820ec7d4d0de16c1b815b225d7508d588b8b4f99ffa9610 In lib.sh line 97: 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 103: 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 108: 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 109: if [[ ! -z $driver_name && $driver_name == $NETIF_FIND_DRIVER ]]; then ^-- SC2236 (style): Use -n instead of ! -z. ^----------------^ SC2053 (warning): Quote the right-hand side of == in [[ ]] to prevent glob matching. In lib.sh line 128: 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 139: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 149: 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 151: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 155: 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 164: 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 166: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 170: 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 180: 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 184: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 189: 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 191: 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 203: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 212: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 221: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 230: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 239: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 248: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 257: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 268: [ 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 297: 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 299: if [[ $driver_name != $expected ]]; then ^-------^ SC2053 (warning): Quote the right-hand side of != in [[ ]] to prevent glob matching. In lib.sh line 312: local version="$(msend -v)" ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 316: 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 318: 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 328: require_command $MZ ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$MZ" In lib.sh line 331: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 364: 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 382: 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 387: 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 388: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 389: 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 390: 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 391: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 405: *) echo "Can not create interfaces of type \'$NETIF_TYPE\'" ^-- SC2028 (info): echo may not expand escape sequences. Use printf. In lib.sh line 421: 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 424: 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 434: 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 447: 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 448: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 460: [[ $? != 0 ]] ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 468: for cur in ${arr[@]}; do ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements. In lib.sh line 474: echo $max ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$max" In lib.sh line 490: $@ | 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 513: 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 515: if (($?)); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 529: for ((i = 1; i <= $max_iterations; ++i)); do ^-------------^ SC2004 (style): $/${} is unnecessary on arithmetic variables. In lib.sh line 530: 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 532: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 535: sleep $wait_time ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sleep "$wait_time" In lib.sh line 549: 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 553: sleep $WAIT_TIME ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sleep "$WAIT_TIME" In lib.sh line 566: 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 567: if (( $? )); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 570: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 578: read ^--^ SC2162 (info): read without -r will mangle backslashes. In lib.sh line 618: 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 626: __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 629: 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 639: __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 644: 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 658: 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 668: 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 669: 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 671: __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 679: __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 681: 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 682: 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 695: 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 696: 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 697: __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 710: __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 711: 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 721: 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 722: 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 723: 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 730: 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 741: 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 743: 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 745: 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 746: __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 755: 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 763: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 764: $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 766: 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 767: 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 768: 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 770: 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 777: $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 784: 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 793: 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 794: | 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 799: 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 804: 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 812: 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 822: ethtool --json -S $dev --groups $grp -- --src $src | \ ^--^ 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: ethtool --json -S "$dev" --groups "$grp" -- --src "$src" | \ In lib.sh line 823: jq '.[]."'"$grp"'"."'$name'"' ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: jq '.[]."'"$grp"'"."'"$name"'"' In lib.sh line 851: 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 861: 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 871: 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 962: 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 973: 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 983: 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 992: 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 999: 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 1020: 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 1021: 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 1028: 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 1036: 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 1038: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 1056: 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 1058: || 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 1067: 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 1078: 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 1079: 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 1080: 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 1123: 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 1124: 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 1125: flower $filter \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower "$filter" \ In lib.sh line 1154: __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 1164: __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 1172: __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 1182: 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 1191: 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 1192: 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 1238: 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 1251: 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 1268: 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 1269: 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 1270: $PING $args $dip -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. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$PING" "$args" "$dip" -c "$PING_COUNT" -i 0.1 \ In lib.sh line 1271: -w $PING_TIMEOUT &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" &> /dev/null In lib.sh line 1278: 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 1287: 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 1299: 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 1300: 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 1301: $PING6 $args $dip -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. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$PING6" "$args" "$dip" -c "$PING_COUNT" -i 0.1 \ In lib.sh line 1302: -w $PING_TIMEOUT &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" &> /dev/null In lib.sh line 1309: 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 1318: 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 1334: 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 1341: 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 1343: 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 1344: 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 1345: 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 1348: $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 1351: 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 1356: $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 1359: 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 1363: $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 1366: 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 1373: 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 1376: 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 1380: 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 1382: $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 1385: 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 1389: 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 1391: 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 1392: 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 1393: 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 1395: 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 1411: 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 1412: 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 1413: 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 1414: 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 1416: $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 1419: 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 1427: 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 1428: 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 1429: 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 1444: 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 1446: 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 1449: 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 1451: 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 1467: 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 1469: 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 1472: 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 1474: 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 1487: 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 1488: 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 1501: $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 1502: -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 1515: __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 1528: __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 1575: 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 1581: 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 1587: $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 1588: -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 1608: 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 1615: 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 1638: 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 1639: 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 1640: 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 1642: $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 1645: 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 1648: if [[ $? -eq 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In lib.sh line 1652: 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 1653: 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 1688: 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 1690: 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 1704: 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 1729: 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 1734: 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 1735: 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 1750: 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 1752: 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 1753: 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 1807: 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 1808: 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 1821: kill $mpid ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: kill "$mpid" In lib.sh line 1822: 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 1823: 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 1825: rm -rf $tmpfile ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm -rf "$tmpfile" In lib.sh line 1839: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1840: $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 1841: 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 1844: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1846: 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 1849: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1851: 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 1854: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1855: $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 1856: 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 1865: printf '%02x:' ${IP//./ } | ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: printf '%02x:' "${IP//./ }" | In lib.sh line 1884: 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 1902: 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 1941: 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 1943: echo "$payload" | sed "s/CHECKSUM/$ckbytes/g" ^-- SC2001 (style): See if you can use ${variable//search/replace} instead. In lib.sh line 1960: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1964: )"22:"$( : Type - Membership Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1965: )"00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1966: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1967: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1968: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1969: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1970: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1971: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1972: )"$(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 1974: 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 1978: local checksum=$(payload_template_calc_checksum "$igmpv3") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1980: 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 1987: local payload=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1988: )"17:"$( : Type - Leave Group ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1989: )"00:"$( : Max Resp Time - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1990: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1991: )"$(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 1993: local checksum=$(payload_template_calc_checksum "$payload") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1995: 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 2006: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2009: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2010: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2015: )"8f:"$( : Type - MLDv2 Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2016: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2017: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2018: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2019: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2020: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2021: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2022: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2023: )"$(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 2025: 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 2030: 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 2031: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2032: )"$(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 2033: )"$(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 2034: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2037: 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 2039: 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 2051: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2052: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2057: )"84:"$( : Type - MLDv1 Done ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2058: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2059: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2060: )"00:00:"$( : Max Resp Delay - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2061: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2062: )"$(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 2065: 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 2066: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2067: )"$(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 2068: )"$(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 2069: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2072: 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 2074: 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 2103: 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 2104: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 2121: 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 2122: 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 2125: 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 2126: 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 2127: ip link set macvlan-tmp address $(u64_to_ether_addr $((tmp + 1))) ^-- SC2046 (warning): Quote this to prevent word splitting. In lib.sh line 2130: 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 293: 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 305: 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 308: 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 309: 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 311: 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 312: 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 319: 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 327: 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 328: if (( $? )); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 350: read a ^--^ SC2162 (info): read without -r will mangle backslashes. In lib.sh line 408: 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 409: return $RET ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "$RET" In lib.sh line 414: 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 419: 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 435: $current_test ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$current_test" In lib.sh line 471: 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 473: 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 503: 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 516: 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 524: { 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 533: return $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "$EXIT_STATUS" In lib.sh line 542: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 568: local old_addr=$(mac_get "$name") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 578: local state=$(ip -j link show "$name" | ^---^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 639: [ ${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 641: 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 663: 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 668: echo $output ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$output" In lib.sh line 670: [ ! -z "$output" ] ^-- SC2236 (style): Use -n instead of ! -z. 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 ... tools/testing/selftests/drivers/net/bonding/bond_lacp_prio.sh is shellcheck compliant