ShellCheck - shell script analysis tool version: 0.11.0 license: GNU General Public License, version 3 website: https://www.shellcheck.net Redirect to /tmp/tmp.dzOGxwOLgP and /tmp/tmp.zNAKUQ8qof Tree base: 77b9c4a438fc ("Merge branch 'netkit-support-for-io_uring-zero-copy-and-af_xdp'") Now at: 526aa130bc44 ("selftests: net: forwarding: cleanup veth peers created via NUM_NETIFS") ====== 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 ^----------------^ 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 624: 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 632: __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 635: 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 645: __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 650: 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 664: 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 674: 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 675: 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 677: __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 685: __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 687: 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 688: 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 701: 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 702: 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 703: __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 716: __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 717: 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 733: 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 734: 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 735: 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 742: 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 753: 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 755: 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 757: 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 758: __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 767: 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 775: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 776: $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 778: 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 779: 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 780: 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 782: 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 789: $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 796: 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 805: 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 806: | 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 811: 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 816: 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 824: 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 834: 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 835: jq '.[]."'"$grp"'"."'$name'"' ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: jq '.[]."'"$grp"'"."'"$name"'"' In lib.sh line 863: 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 873: 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 883: 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 974: 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 985: 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 995: 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 1004: 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 1011: 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 1038: 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 1039: 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 1046: 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 1054: 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 1056: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 1074: 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 1076: || 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 1085: 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 1096: 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 1097: 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 1098: 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 1141: 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 1142: 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 1143: flower $filter \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower "$filter" \ In lib.sh line 1172: __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 1182: __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 1190: __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 1200: 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 1209: 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 1210: 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 1256: 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 1269: 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 1286: 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 1287: 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 1288: $PING $args -c $PING_COUNT -i 0.1 \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$PING" "$args" -c "$PING_COUNT" -i 0.1 \ In lib.sh line 1289: -w $PING_TIMEOUT $dip &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" "$dip" &> /dev/null In lib.sh line 1296: 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 1305: 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 1317: 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 1318: 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 1319: $PING6 $args -c $PING_COUNT -i 0.1 \ ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$PING6" "$args" -c "$PING_COUNT" -i 0.1 \ In lib.sh line 1320: -w $PING_TIMEOUT $dip &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" "$dip" &> /dev/null In lib.sh line 1327: 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 1336: 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 1352: 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 1359: 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 1361: 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 1362: 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 1363: 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 1366: $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 1369: 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 1374: $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 1377: 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 1381: $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 1384: 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 1391: 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 1394: 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 1398: 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 1400: $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 1403: 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 1407: 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 1409: 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 1410: 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 1411: 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 1413: 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 1429: 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 1430: 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 1431: 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 1432: 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 1434: $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 1437: 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 1445: 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 1446: 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 1447: 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 1462: 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 1464: 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 1467: 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 1469: 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 1485: 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 1487: 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 1490: 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 1492: 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 1505: 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 1506: 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 1519: $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 1520: -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 1533: __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 1546: __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 1593: 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 1599: 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 1605: $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 1606: -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 1626: 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 1633: 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 1656: 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 1657: 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 1658: 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 1660: $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 1663: 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 1666: if [[ $? -eq 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In lib.sh line 1670: 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 1671: 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 1706: 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 1708: 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 1722: 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 1747: 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: 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 1768: 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 1770: 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 1771: 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 1825: 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 1826: 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 1839: kill $mpid ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: kill "$mpid" In lib.sh line 1840: 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 1841: 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 1843: rm -rf $tmpfile ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm -rf "$tmpfile" In lib.sh line 1857: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1858: $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 1859: 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 1862: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1864: 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 1867: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1869: 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 1872: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1873: $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 1874: 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 1883: printf '%02x:' ${IP//./ } | ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: printf '%02x:' "${IP//./ }" | In lib.sh line 1902: 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 1920: 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 1959: 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 1961: echo "$payload" | sed "s/CHECKSUM/$ckbytes/g" ^-- SC2001 (style): See if you can use ${variable//search/replace} instead. In lib.sh line 1978: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1982: )"22:"$( : Type - Membership Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1983: )"00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1984: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1985: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1986: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1987: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1988: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1989: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1990: )"$(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 1992: 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 1996: local checksum=$(payload_template_calc_checksum "$igmpv3") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1998: 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 2005: local payload=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2006: )"17:"$( : Type - Leave Group ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2007: )"00:"$( : Max Resp Time - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2008: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2009: )"$(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 2011: local checksum=$(payload_template_calc_checksum "$payload") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2013: 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 2024: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2027: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2028: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2033: )"8f:"$( : Type - MLDv2 Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2034: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2035: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2036: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2037: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2038: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2039: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2040: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2041: )"$(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 2043: 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 2048: 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 2049: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2050: )"$(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 2051: )"$(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 2052: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2055: 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 2057: 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 2069: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2070: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2075: )"84:"$( : Type - MLDv1 Done ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2076: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2077: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2078: )"00:00:"$( : Max Resp Delay - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2079: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2080: )"$(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 2083: 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 2084: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2085: )"$(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 2086: )"$(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 2087: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2090: 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 2092: 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 2121: 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 2122: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 2139: 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 2140: 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 2143: 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 2144: 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 2145: ip link set macvlan-tmp address $(u64_to_ether_addr $((tmp + 1))) ^-- SC2046 (warning): Quote this to prevent word splitting. In lib.sh line 2148: 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 the tree with 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 ^----------------^ 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 601: for ((i = 1; i <= NUM_NETIFS; i=$i+2)); do ^-- SC2004 (style): $/${} is unnecessary on arithmetic variables. In lib.sh line 602: ip link delete dev ${NETIFS[p$i]} 2>/dev/null || true ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link delete dev "${NETIFS[p$i]}" 2>/dev/null || true In lib.sh line 628: 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 636: __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 639: 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 649: __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 654: 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 668: 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 678: 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 679: 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 681: __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 689: __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 691: 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 692: 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 705: 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 706: 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 707: __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 720: __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 721: 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 737: 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 738: 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 739: 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: 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 757: 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 759: 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 761: 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 762: __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 771: 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 779: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 780: $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 782: 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 783: 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 784: 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 786: 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 793: $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 800: 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 809: 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 810: | 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 815: 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 820: 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 828: 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 838: 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 839: jq '.[]."'"$grp"'"."'$name'"' ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: jq '.[]."'"$grp"'"."'"$name"'"' In lib.sh line 867: 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 877: 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 887: 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 978: 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 989: 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 999: 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 1008: 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 1015: 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 1042: 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 1043: 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 1050: 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 1058: 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 1060: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 1078: 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 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 1089: 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 1100: 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 1101: 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 1102: 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 1145: 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 1146: 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 1147: flower $filter \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower "$filter" \ In lib.sh line 1176: __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 1186: __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 1194: __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 1204: 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 1213: 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 1214: 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 1260: 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 1273: 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 1290: 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 1291: 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 1292: $PING $args -c $PING_COUNT -i 0.1 \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$PING" "$args" -c "$PING_COUNT" -i 0.1 \ In lib.sh line 1293: -w $PING_TIMEOUT $dip &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" "$dip" &> /dev/null In lib.sh line 1300: 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 1309: 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 1321: 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 1322: 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 1323: $PING6 $args -c $PING_COUNT -i 0.1 \ ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$PING6" "$args" -c "$PING_COUNT" -i 0.1 \ In lib.sh line 1324: -w $PING_TIMEOUT $dip &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" "$dip" &> /dev/null In lib.sh line 1331: 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 1340: 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 1356: 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: 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 1365: 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 1366: 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 1367: 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 1370: $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 1373: 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 1378: $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 1381: 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 1385: $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 1388: 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 1395: 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 1398: 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 1402: 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 1404: $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 1407: 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 1411: 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 1413: 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 1414: 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 1415: 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 1417: 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 1433: 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 1434: 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 1435: 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 1436: 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 1438: $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 1441: 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 1449: 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 1450: 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 1451: 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 1466: 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 1468: 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 1471: 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 1473: 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 1489: 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 1491: 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 1494: 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 1496: 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 1509: 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 1510: 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 1523: $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 1524: -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 1537: __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 1550: __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 1597: 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 1603: 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 1609: $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 1610: -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 1630: 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 1637: 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 1660: 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 1661: 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 1662: 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 1664: $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 1667: 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 1670: if [[ $? -eq 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In lib.sh line 1674: 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 1675: 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 1710: 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 1712: 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 1726: 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 1751: 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 1756: 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 1757: 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 1772: 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 1774: 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 1775: 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 1829: 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 1830: 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 1843: kill $mpid ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: kill "$mpid" In lib.sh line 1844: 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 1845: 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 1847: rm -rf $tmpfile ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm -rf "$tmpfile" In lib.sh line 1861: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1862: $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 1863: 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 1866: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1868: 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 1871: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1873: 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 1876: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1877: $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 1878: 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 1887: printf '%02x:' ${IP//./ } | ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: printf '%02x:' "${IP//./ }" | In lib.sh line 1906: 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 1924: 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 1963: 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 1965: echo "$payload" | sed "s/CHECKSUM/$ckbytes/g" ^-- SC2001 (style): See if you can use ${variable//search/replace} instead. In lib.sh line 1982: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1986: )"22:"$( : Type - Membership Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1987: )"00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1988: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1989: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1990: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1991: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1992: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1993: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1994: )"$(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 1996: 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 2000: local checksum=$(payload_template_calc_checksum "$igmpv3") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2002: 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 2009: local payload=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2010: )"17:"$( : Type - Leave Group ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2011: )"00:"$( : Max Resp Time - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2012: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2013: )"$(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 2015: local checksum=$(payload_template_calc_checksum "$payload") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2017: 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 2028: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2031: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2032: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2037: )"8f:"$( : Type - MLDv2 Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2038: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2039: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2040: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2041: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2042: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2043: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2044: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2045: )"$(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 2047: 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 2052: 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 2053: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2054: )"$(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 2055: )"$(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 2056: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2059: 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 2061: 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 2073: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2074: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2079: )"84:"$( : Type - MLDv1 Done ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2080: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2081: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2082: )"00:00:"$( : Max Resp Delay - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2083: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2084: )"$(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 2087: 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 2088: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2089: )"$(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 2090: )"$(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 2091: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2094: 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 2096: 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 2125: 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 2126: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 2143: 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 2144: 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 2147: 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 2148: 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 2149: ip link set macvlan-tmp address $(u64_to_ether_addr $((tmp + 1))) ^-- SC2046 (warning): Quote this to prevent word splitting. In lib.sh line 2152: 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...