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.suUKIkgQDd and /tmp/tmp.np7q8HxzAb Tree base: 8b3e37a32308 ("selftests: forwarding: extend ethtool_std_stats_get with pause statistics") Now at: 100228a8e748 ("selftests: net: extend lib.sh to parse drivers/net/net.config") ====== 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 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... ====== Checking the tree with the patch ====== Checking tools/testing/selftests/net/forwarding/lib.sh - e1a847ed4d4592e29820ec7d4d0de16c1b815b225d7508d588b8b4f99ffa9610 In lib.sh line 106: 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 112: 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 117: 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 118: 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 137: 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 148: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 158: 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 160: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 164: 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 173: 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 175: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 179: 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 189: 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 193: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 198: 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 200: 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 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 266: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 277: [ 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 306: 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 308: if [[ $driver_name != $expected ]]; then ^-------^ SC2053 (warning): Quote the right-hand side of != in [[ ]] to prevent glob matching. In lib.sh line 321: local version="$(msend -v)" ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 325: 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 327: 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 337: require_command $MZ ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$MZ" In lib.sh line 340: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 405: source "$net_forwarding_dir/../../drivers/net/net.config" ^-- SC1091 (info): Not following: ./../../drivers/net/net.config: openBinaryFile: does not exist (No such file or directory) In lib.sh line 449: TARGETS[$1]="local:" ^---------^ SC2034 (warning): TARGETS appears unused. Verify use (or export if used externally). In lib.sh line 463: 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 481: 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 486: 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 487: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 488: 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 489: 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 490: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 504: *) echo "Can not create interfaces of type \'$NETIF_TYPE\'" ^-- SC2028 (info): echo may not expand escape sequences. Use printf. In lib.sh line 520: 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 523: 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 533: 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 546: 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 547: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 559: [[ $? != 0 ]] ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 567: for cur in ${arr[@]}; do ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements. In lib.sh line 573: echo $max ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$max" In lib.sh line 589: $@ | 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 612: 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 614: if (($?)); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 628: for ((i = 1; i <= $max_iterations; ++i)); do ^-------------^ SC2004 (style): $/${} is unnecessary on arithmetic variables. In lib.sh line 629: 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 631: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 634: sleep $wait_time ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sleep "$wait_time" In lib.sh line 648: 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 652: sleep $WAIT_TIME ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sleep "$WAIT_TIME" In lib.sh line 665: 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 666: if (( $? )); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 669: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 677: read ^--^ SC2162 (info): read without -r will mangle backslashes. In lib.sh line 723: 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 731: __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 734: 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 744: __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 749: 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 763: 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 773: 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 774: 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 776: __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 784: __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 786: 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 787: 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 800: 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 801: 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 802: __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 815: __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 816: 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 832: 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 833: 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 834: 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 841: 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 852: 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 854: 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 856: 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 857: __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 866: 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 874: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 875: $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 877: 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 878: 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 879: 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 881: 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 888: $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 895: 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 904: 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 905: | 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 910: 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 915: 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 923: 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 966: 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 976: 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 986: 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 1077: 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 1088: 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 1098: 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 1107: 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 1114: 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 1141: 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 1142: 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 1149: 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 1157: 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 1159: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 1177: 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 1179: || 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 1188: 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 1199: 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 1200: 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 1201: 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 1244: 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 1245: 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 1246: flower $filter \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower "$filter" \ In lib.sh line 1275: __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 1285: __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 1293: __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 1303: 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 1312: 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 1313: 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 1359: 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 1372: 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 1389: 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 1390: 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 1391: $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 1392: -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 1399: 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 1408: 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 1420: vrf_name=$(master_name_get $if_name) ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: vrf_name=$(master_name_get "$if_name") In lib.sh line 1421: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1422: $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 1423: -w $PING_TIMEOUT $dip &> /dev/null ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -w "$PING_TIMEOUT" "$dip" &> /dev/null In lib.sh line 1430: 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 1439: 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 1455: 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 1462: 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 1464: 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 1465: 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 1466: 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 1469: $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 1472: 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 1477: $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 1480: 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 1484: $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 1487: 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 1494: 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 1497: 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 1501: 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 1503: $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 1506: 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 1510: 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 1512: 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 1513: 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 1514: 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 1516: 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 1532: 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 1533: 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 1534: 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 1535: 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 1537: $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 1540: 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 1548: 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 1549: 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 1550: 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 1565: 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 1567: 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 1570: 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 1572: 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 1588: 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 1590: 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 1593: 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 1595: 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 1608: 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 1609: 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 1622: $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 1623: -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 1636: __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 1649: __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 1696: 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 1702: 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 1708: $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 1709: -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 1729: 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 1736: 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 1759: 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 1760: 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 1761: 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 1763: $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 1766: 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 1769: if [[ $? -eq 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In lib.sh line 1773: 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 1774: 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 1809: 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 1811: 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 1825: 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 1850: 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 1855: 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 1856: 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 1871: 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 1873: 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 1874: 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 1928: 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 1929: 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 1942: kill $mpid ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: kill "$mpid" In lib.sh line 1943: 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 1944: 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 1946: rm -rf $tmpfile ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm -rf "$tmpfile" In lib.sh line 1960: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1961: $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 1962: 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 1965: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1967: 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 1970: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1972: 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 1975: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1976: $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 1977: 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 1986: printf '%02x:' ${IP//./ } | ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: printf '%02x:' "${IP//./ }" | In lib.sh line 2005: 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 2023: 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 2062: 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 2064: echo "$payload" | sed "s/CHECKSUM/$ckbytes/g" ^-- SC2001 (style): See if you can use ${variable//search/replace} instead. In lib.sh line 2081: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2085: )"22:"$( : Type - Membership Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2086: )"00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2087: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2088: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2089: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2090: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2091: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2092: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2093: )"$(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 2095: 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 2099: local checksum=$(payload_template_calc_checksum "$igmpv3") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2101: 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 2108: local payload=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2109: )"17:"$( : Type - Leave Group ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2110: )"00:"$( : Max Resp Time - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2111: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2112: )"$(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 2114: local checksum=$(payload_template_calc_checksum "$payload") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2116: 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 2127: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2130: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2131: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2136: )"8f:"$( : Type - MLDv2 Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2137: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2138: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2139: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2140: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2141: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2142: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2143: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2144: )"$(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 2146: 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 2151: 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 2152: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2153: )"$(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 2154: )"$(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 2155: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2158: 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 2160: 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 2172: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2173: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2178: )"84:"$( : Type - MLDv1 Done ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2179: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2180: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2181: )"00:00:"$( : Max Resp Delay - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2182: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2183: )"$(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 2186: 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 2187: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2188: )"$(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 2189: )"$(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 2190: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2193: 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 2195: 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 2224: 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 2225: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 2242: 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 2243: 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 2246: 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 2247: 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 2248: ip link set macvlan-tmp address $(u64_to_ether_addr $((tmp + 1))) ^-- SC2046 (warning): Quote this to prevent word splitting. In lib.sh line 2251: 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...