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.Z2mpLFOrOq and /tmp/tmp.Ub4A7ZksV1 Tree base: 0d7c11d18b22 ("selftests: net: add helpers for running a command on other targets") Now at: 32ffbc423387 ("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 869: 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 879: 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 889: 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 980: 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 991: 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 1001: 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 1010: 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 1017: sysctl -qw $key="${SYSCTL_ORIG[$key]}" ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sysctl -qw "$key"="${SYSCTL_ORIG[$key]}" In lib.sh line 1044: MTU_ORIG["$dev"]=$(ip -j link show dev $dev | jq -e '.[].mtu') ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: MTU_ORIG["$dev"]=$(ip -j link show dev "$dev" | jq -e '.[].mtu') In lib.sh line 1045: ip link set dev $dev mtu $mtu ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$dev" mtu "$mtu" In lib.sh line 1052: ip link set dev $dev mtu ${MTU_ORIG["$dev"]} ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set dev "$dev" mtu "${MTU_ORIG["$dev"]}" In lib.sh line 1060: ethtool -k ${NETIFS[p$i]} \ ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ethtool -k "${NETIFS[p$i]}" \ In lib.sh line 1062: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 1080: tc filter add dev $dev $direction pref 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$dev" "$direction" pref 1 \ In lib.sh line 1082: || tc filter add dev $dev $direction pref 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: || tc filter add dev "$dev" "$direction" pref 1 \ In lib.sh line 1091: tc filter del dev $dev $direction pref 1 flower ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$dev" "$direction" pref 1 flower In lib.sh line 1102: tc filter $add_del dev "$tundev" ingress \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter "$add_del" dev "$tundev" ingress \ In lib.sh line 1103: proto ip$vsuf pref $pref \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: proto ip"$vsuf" pref "$pref" \ In lib.sh line 1104: flower ip_proto icmp$vsuf $filter \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower ip_proto icmp"$vsuf" "$filter" \ In lib.sh line 1147: tc filter $add_del dev "$dev" ingress \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter "$add_del" dev "$dev" ingress \ In lib.sh line 1148: proto 802.1q pref $pref \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: proto 802.1q pref "$pref" \ In lib.sh line 1149: flower $filter \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower "$filter" \ In lib.sh line 1178: __icmp_capture_add_del $add_del $((dscp + 100)) "" $dev \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __icmp_capture_add_del "$add_del" $((dscp + 100)) "" "$dev" \ In lib.sh line 1188: __dscp_capture_add_del add $dev $base ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __dscp_capture_add_del add "$dev" "$base" In lib.sh line 1196: __dscp_capture_add_del del $dev $base ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __dscp_capture_add_del del "$dev" "$base" In lib.sh line 1206: local t=$(tc_rule_stats_get $dev $((dscp + 100))) ^-- SC2155 (warning): Declare and assign separately to avoid masking return values. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local t=$(tc_rule_stats_get "$dev" $((dscp + 100))) In lib.sh line 1215: tc qdisc add dev $dev clsact ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc add dev "$dev" clsact In lib.sh line 1216: tc filter add dev $dev ingress \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$dev" ingress \ In lib.sh line 1262: diff=$(echo $weights_ratio - $packets_ratio | bc -l) ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: diff=$(echo "$weights_ratio" - "$packets_ratio" | bc -l) In lib.sh line 1275: ip netns exec $name bash <<-EOF ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip netns exec "$name" bash <<-EOF In lib.sh line 1292: vrf_name=$(master_name_get $if_name) ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: vrf_name=$(master_name_get "$if_name") In lib.sh line 1293: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1294: $PING $args -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 1295: -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 1302: ping_do $1 $2 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ping_do "$1" "$2" In lib.sh line 1311: ping_do $1 $2 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ping_do "$1" "$2" In lib.sh line 1323: vrf_name=$(master_name_get $if_name) ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: vrf_name=$(master_name_get "$if_name") In lib.sh line 1324: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1325: $PING6 $args -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 1326: -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 1333: ping6_do $1 $2 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ping6_do "$1" "$2" In lib.sh line 1342: ping6_do $1 $2 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ping6_do "$1" "$2" In lib.sh line 1358: bridge -j fdb show br $bridge brport $br_port1 \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge -j fdb show br "$bridge" brport "$br_port1" \ In lib.sh line 1365: bridge link set dev $br_port1 flood off ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port1" flood off In lib.sh line 1367: ip link set $host1_if promisc on ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$host1_if" promisc on In lib.sh line 1368: tc qdisc add dev $host1_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc add dev "$host1_if" ingress In lib.sh line 1369: tc filter add dev $host1_if ingress protocol ip pref 1 handle 101 \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$host1_if" ingress protocol ip pref 1 handle 101 \ In lib.sh line 1372: $MZ $host2_if -c 1 -p 64 -b $mac -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host2_if" -c 1 -p 64 -b $mac -t ip -q In lib.sh line 1375: tc -j -s filter show dev $host1_if ingress \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$host1_if" ingress \ In lib.sh line 1380: $MZ $host1_if -c 1 -p 64 -a $mac -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host1_if" -c 1 -p 64 -a $mac -t ip -q In lib.sh line 1383: bridge -j fdb show br $bridge brport $br_port1 \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge -j fdb show br "$bridge" brport "$br_port1" \ In lib.sh line 1387: $MZ $host2_if -c 1 -p 64 -b $mac -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host2_if" -c 1 -p 64 -b $mac -t ip -q In lib.sh line 1390: tc -j -s filter show dev $host1_if ingress \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$host1_if" ingress \ In lib.sh line 1397: ageing_time=$(bridge_ageing_time_get $bridge) ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ageing_time=$(bridge_ageing_time_get "$bridge") In lib.sh line 1400: bridge -j fdb show br $bridge brport $br_port1 \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge -j fdb show br "$bridge" brport "$br_port1" \ In lib.sh line 1404: bridge link set dev $br_port1 learning off ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port1" learning off In lib.sh line 1406: $MZ $host1_if -c 1 -p 64 -a $mac -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host1_if" -c 1 -p 64 -a $mac -t ip -q In lib.sh line 1409: bridge -j fdb show br $bridge brport $br_port1 \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge -j fdb show br "$bridge" brport "$br_port1" \ In lib.sh line 1413: bridge link set dev $br_port1 learning on ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port1" learning on In lib.sh line 1415: tc filter del dev $host1_if ingress protocol ip pref 1 handle 101 flower ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$host1_if" ingress protocol ip pref 1 handle 101 flower In lib.sh line 1416: tc qdisc del dev $host1_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc del dev "$host1_if" ingress In lib.sh line 1417: ip link set $host1_if promisc off ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$host1_if" promisc off In lib.sh line 1419: bridge link set dev $br_port1 flood on ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port1" flood on In lib.sh line 1435: ip link set $host2_if promisc on ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$host2_if" promisc on In lib.sh line 1436: tc qdisc add dev $host2_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc add dev "$host2_if" ingress In lib.sh line 1437: tc filter add dev $host2_if ingress protocol ip pref 1 handle 101 \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$host2_if" ingress protocol ip pref 1 handle 101 \ In lib.sh line 1438: flower dst_mac $mac action drop ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower dst_mac "$mac" action drop In lib.sh line 1440: $MZ $host1_if -c 1 -p 64 -b $mac -B $ip -t ip -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host1_if" -c 1 -p 64 -b "$mac" -B "$ip" -t ip -q In lib.sh line 1443: tc -j -s filter show dev $host2_if ingress \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$host2_if" ingress \ In lib.sh line 1451: tc filter del dev $host2_if ingress protocol ip pref 1 handle 101 flower ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$host2_if" ingress protocol ip pref 1 handle 101 flower In lib.sh line 1452: tc qdisc del dev $host2_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc del dev "$host2_if" ingress In lib.sh line 1453: ip link set $host2_if promisc off ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$host2_if" promisc off In lib.sh line 1468: bridge link set dev $br_port flood off ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port" flood off In lib.sh line 1470: flood_test_do false $mac $ip $host1_if $host2_if ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_test_do false $mac $ip "$host1_if" "$host2_if" In lib.sh line 1473: bridge link set dev $br_port flood on ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port" flood on In lib.sh line 1475: flood_test_do true $mac $ip $host1_if $host2_if ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_test_do true $mac $ip "$host1_if" "$host2_if" In lib.sh line 1491: bridge link set dev $br_port mcast_flood off ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port" mcast_flood off In lib.sh line 1493: flood_test_do false $mac $ip $host1_if $host2_if ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_test_do false $mac $ip "$host1_if" "$host2_if" In lib.sh line 1496: bridge link set dev $br_port mcast_flood on ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: bridge link set dev "$br_port" mcast_flood on In lib.sh line 1498: flood_test_do true $mac $ip $host1_if $host2_if ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_test_do true $mac $ip "$host1_if" "$host2_if" In lib.sh line 1511: flood_unicast_test $br_port $host1_if $host2_if ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_unicast_test "$br_port" "$host1_if" "$host2_if" In lib.sh line 1512: flood_multicast_test $br_port $host1_if $host2_if ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flood_multicast_test "$br_port" "$host1_if" "$host2_if" In lib.sh line 1525: $MZ $h_in -p $pktsize -A $sip -B $dip -c 0 \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$h_in" -p "$pktsize" -A "$sip" -B "$dip" -c 0 \ In lib.sh line 1526: -a own -b $dmac -t "$proto" -q "${mz_args[@]}" & ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -a own -b "$dmac" -t "$proto" -q "${mz_args[@]}" & In lib.sh line 1539: __start_traffic $pktsize udp "$h_in" "$sip" "$dip" "$dmac" \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __start_traffic "$pktsize" udp "$h_in" "$sip" "$dip" "$dmac" \ In lib.sh line 1552: __start_traffic $pktsize tcp "$h_in" "$sip" "$dip" "$dmac" \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: __start_traffic "$pktsize" tcp "$h_in" "$sip" "$dip" "$dmac" \ In lib.sh line 1599: if [ -z $ns ]; then ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ -z "$ns" ]; then In lib.sh line 1605: if [ -z $SUDO_USER ] ; then ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ -z "$SUDO_USER" ] ; then In lib.sh line 1611: $ns_cmd tcpdump $TCPDUMP_EXTRA_FLAGS -e -n -Q in -i $if_name \ ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $ns_cmd tcpdump "$TCPDUMP_EXTRA_FLAGS" -e -n -Q in -i "$if_name" \ In lib.sh line 1612: -s 65535 -B 32768 $capuser -w ${capfile[$if_name]} \ ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -s 65535 -B 32768 "$capuser" -w "${capfile[$if_name]}" \ In lib.sh line 1632: rm ${capfile[$if_name]} ${capout[$if_name]} ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm "${capfile[$if_name]}" "${capout[$if_name]}" In lib.sh line 1639: tcpdump -e -n -r ${capfile[$if_name]} 2>&1 ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tcpdump -e -n -r "${capfile[$if_name]}" 2>&1 In lib.sh line 1662: tc qdisc add dev $host2_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc add dev "$host2_if" ingress In lib.sh line 1663: tc filter add dev $host2_if ingress protocol $tc_proto pref 1 handle 101 \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter add dev "$host2_if" ingress protocol $tc_proto pref 1 handle 101 \ In lib.sh line 1664: flower ip_proto udp dst_mac $mac action drop ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower ip_proto udp dst_mac "$mac" action drop In lib.sh line 1666: $MZ $host1_if $mz_v6arg -c 1 -p 64 -b $mac -A $src_ip -B $ip -t udp "dp=4096,sp=2048" -q ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $MZ "$host1_if" $mz_v6arg -c 1 -p 64 -b "$mac" -A "$src_ip" -B "$ip" -t udp "dp=4096,sp=2048" -q In lib.sh line 1669: tc -j -s filter show dev $host2_if ingress \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc -j -s filter show dev "$host2_if" ingress \ In lib.sh line 1672: if [[ $? -eq 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In lib.sh line 1676: tc filter del dev $host2_if ingress protocol $tc_proto pref 1 handle 101 flower ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc filter del dev "$host2_if" ingress protocol $tc_proto pref 1 handle 101 flower In lib.sh line 1677: tc qdisc del dev $host2_if ingress ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: tc qdisc del dev "$host2_if" ingress In lib.sh line 1712: mcast_packet_test $TEST_GROUP_MAC $src $TEST_GROUP $h2 $h1 ^-------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2154 (warning): h2 is referenced but not assigned. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2154 (warning): h1 is referenced but not assigned. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: mcast_packet_test "$TEST_GROUP_MAC" "$src" "$TEST_GROUP" "$h2" "$h1" In lib.sh line 1714: if [ $should_fwd -eq 1 ]; then ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ "$should_fwd" -eq 1 ]; then In lib.sh line 1728: if [ $is_blocked -eq 1 ]; then ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ "$is_blocked" -eq 1 ]; then In lib.sh line 1753: local vrf_name=$(master_name_get $if_name) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local vrf_name=$(master_name_get "$if_name") In lib.sh line 1758: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1759: mreceive -g $group -I $if_name > /dev/null 2>&1 & ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: mreceive -g "$group" -I "$if_name" > /dev/null 2>&1 & In lib.sh line 1774: local vrf_name=$(master_name_get $if_name) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local vrf_name=$(master_name_get "$if_name") In lib.sh line 1776: ip vrf exec $vrf_name \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip vrf exec "$vrf_name" \ In lib.sh line 1777: msend -g $groups -I $if_name -c 1 > /dev/null 2>&1 ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: msend -g "$groups" -I "$if_name" -c 1 > /dev/null 2>&1 In lib.sh line 1831: tmpfile=`mktemp /var/run/nexthoptestXXX` ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. Did you mean: tmpfile=$(mktemp /var/run/nexthoptestXXX) In lib.sh line 1832: mpid=`($ip monitor $mtype > $tmpfile & echo $!) 2>/dev/null` ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: mpid=$(($ip monitor "$mtype" > "$tmpfile" & echo $!) 2>/dev/null) In lib.sh line 1845: kill $mpid ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: kill "$mpid" In lib.sh line 1846: local lines=`grep '^\w' $tmpfile | wc -l` ^---^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^---------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^-----------------^ SC2126 (style): Consider using 'grep -c' instead of 'grep|wc -l'. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local lines=$(grep '^\w' "$tmpfile" | wc -l) In lib.sh line 1847: test $lines -eq $el ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: test "$lines" -eq "$el" In lib.sh line 1849: rm -rf $tmpfile ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm -rf "$tmpfile" In lib.sh line 1863: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1864: $ip stats set dev $dev ${type}_stats on ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $ip stats set dev "$dev" "${type}"_stats on In lib.sh line 1865: stop_ip_monitor $ipmout 1 "${type}_stats enablement" ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: stop_ip_monitor "$ipmout" 1 "${type}_stats enablement" In lib.sh line 1868: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1870: stop_ip_monitor $ipmout 1 "${type}_stats installation" ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: stop_ip_monitor "$ipmout" 1 "${type}_stats installation" In lib.sh line 1873: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1875: stop_ip_monitor $ipmout 1 "${type}_stats deinstallation" ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: stop_ip_monitor "$ipmout" 1 "${type}_stats deinstallation" In lib.sh line 1878: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1879: $ip stats set dev $dev ${type}_stats off ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $ip stats set dev "$dev" "${type}"_stats off In lib.sh line 1880: stop_ip_monitor $ipmout 1 "${type}_stats disablement" ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: stop_ip_monitor "$ipmout" 1 "${type}_stats disablement" In lib.sh line 1889: printf '%02x:' ${IP//./ } | ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: printf '%02x:' "${IP//./ }" | In lib.sh line 1908: echo $allcol_ip | tr : '\n' | ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$allcol_ip" | tr : '\n' | In lib.sh line 1926: printf "%04x" $u16 | sed 's/^/000/;s/^.*\(..\)\(..\)$/\1:\2/' ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: printf "%04x" "$u16" | sed 's/^/000/;s/^.*\(..\)\(..\)$/\1:\2/' In lib.sh line 1965: local ckbytes=$(u16_to_bytes $checksum) ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local ckbytes=$(u16_to_bytes "$checksum") In lib.sh line 1967: echo "$payload" | sed "s/CHECKSUM/$ckbytes/g" ^-- SC2001 (style): See if you can use ${variable//search/replace} instead. In lib.sh line 1984: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1988: )"22:"$( : Type - Membership Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1989: )"00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1990: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1991: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1992: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1993: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1994: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1995: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 1996: )"$(ipv4_to_bytes $GRP):"$( : Multicast Address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv4_to_bytes "$GRP"):"$( : Multicast Address In lib.sh line 1998: ipv4_to_bytes $src ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ipv4_to_bytes "$src" In lib.sh line 2002: local checksum=$(payload_template_calc_checksum "$igmpv3") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2004: payload_template_expand_checksum "$igmpv3" $checksum ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: payload_template_expand_checksum "$igmpv3" "$checksum" In lib.sh line 2011: local payload=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2012: )"17:"$( : Type - Leave Group ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2013: )"00:"$( : Max Resp Time - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2014: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2015: )"$(ipv4_to_bytes $GRP)"$( : Group Address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: )"$(ipv4_to_bytes "$GRP")"$( : Group Address In lib.sh line 2017: local checksum=$(payload_template_calc_checksum "$payload") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2019: payload_template_expand_checksum "$payload" $checksum ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: payload_template_expand_checksum "$payload" "$checksum" In lib.sh line 2030: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2033: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2034: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2039: )"8f:"$( : Type - MLDv2 Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2040: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2041: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2042: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2043: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2044: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2045: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2046: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2047: )"$(ipv6_to_bytes $GRP):"$( : Multicast address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$GRP"):"$( : Multicast address In lib.sh line 2049: ipv6_to_bytes $src ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ipv6_to_bytes "$src" In lib.sh line 2054: local len=$(u16_to_bytes $(payload_template_nbytes $icmpv6)) ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-- SC2046 (warning): Quote this to prevent word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local len=$(u16_to_bytes $(payload_template_nbytes "$icmpv6")) In lib.sh line 2055: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2056: )"$(ipv6_to_bytes $SIP):"$( : SIP ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$SIP"):"$( : SIP In lib.sh line 2057: )"$(ipv6_to_bytes $GRP):"$( : DIP is multicast address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$GRP"):"$( : DIP is multicast address In lib.sh line 2058: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2061: local checksum=$(payload_template_calc_checksum ${sudohdr}${icmpv6}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local checksum=$(payload_template_calc_checksum "${sudohdr}""${icmpv6}") In lib.sh line 2063: payload_template_expand_checksum "$hbh$icmpv6" $checksum ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: payload_template_expand_checksum "$hbh$icmpv6" "$checksum" In lib.sh line 2075: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2076: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2081: )"84:"$( : Type - MLDv1 Done ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2082: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2083: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2084: )"00:00:"$( : Max Resp Delay - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2085: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2086: )"$(ipv6_to_bytes $GRP):"$( : Multicast address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: )"$(ipv6_to_bytes "$GRP"):"$( : Multicast address In lib.sh line 2089: local len=$(u16_to_bytes $(payload_template_nbytes $icmpv6)) ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-- SC2046 (warning): Quote this to prevent word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local len=$(u16_to_bytes $(payload_template_nbytes "$icmpv6")) In lib.sh line 2090: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2091: )"$(ipv6_to_bytes $SIP):"$( : SIP ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$SIP"):"$( : SIP In lib.sh line 2092: )"$(ipv6_to_bytes $GRP):"$( : DIP is multicast address ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. Did you mean: )"$(ipv6_to_bytes "$GRP"):"$( : DIP is multicast address In lib.sh line 2093: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2096: local checksum=$(payload_template_calc_checksum ${sudohdr}${icmpv6}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local checksum=$(payload_template_calc_checksum "${sudohdr}""${icmpv6}") In lib.sh line 2098: payload_template_expand_checksum "$hbh$icmpv6" $checksum ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: payload_template_expand_checksum "$hbh$icmpv6" "$checksum" In lib.sh line 2127: log_test_skip $src:$caller ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: log_test_skip "$src":"$caller" In lib.sh line 2128: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 2145: local mac_addr=$(mac_get $dev) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local mac_addr=$(mac_get "$dev") In lib.sh line 2146: local tmp=$(ether_addr_to_u64 $mac_addr) ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local tmp=$(ether_addr_to_u64 "$mac_addr") In lib.sh line 2149: ip link set $dev up ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link set "$dev" up In lib.sh line 2150: ip link add link $dev name macvlan-tmp type macvlan mode private ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ip link add link "$dev" name macvlan-tmp type macvlan mode private In lib.sh line 2151: ip link set macvlan-tmp address $(u64_to_ether_addr $((tmp + 1))) ^-- SC2046 (warning): Quote this to prevent word splitting. In lib.sh line 2154: promisc=$(ip -j -d link show dev $dev | jq -r '.[].promiscuity') ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: promisc=$(ip -j -d link show dev "$dev" | jq -r '.[].promiscuity') For more information: https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ... https://www.shellcheck.net/wiki/SC2145 -- Argument mixes string and array. ... https://www.shellcheck.net/wiki/SC2027 -- The surrounding quotes actually u... ====== Checking the tree with the patch ====== Checking tools/testing/selftests/net/forwarding/lib.sh - e1a847ed4d4592e29820ec7d4d0de16c1b815b225d7508d588b8b4f99ffa9610 In lib.sh line 101: 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 107: 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 112: 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 113: 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 132: 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 143: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 153: 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 155: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 159: 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 168: 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 170: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 174: 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 184: 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 188: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 193: 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 195: 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 207: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 216: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 225: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 234: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 243: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 252: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 261: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 272: [ 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 301: 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 303: if [[ $driver_name != $expected ]]; then ^-------^ SC2053 (warning): Quote the right-hand side of != in [[ ]] to prevent glob matching. In lib.sh line 316: local version="$(msend -v)" ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 320: 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 322: 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 332: require_command $MZ ^-^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$MZ" In lib.sh line 335: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 380: 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 406: NETIFS[p1]="$NETIF" ^----^ SC2153 (info): Possible misspelling: NETIF may not be assigned. Did you mean NETIFS? In lib.sh line 452: 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 470: 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 475: 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 476: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 477: 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 478: 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 479: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 493: *) echo "Can not create interfaces of type \'$NETIF_TYPE\'" ^-- SC2028 (info): echo may not expand escape sequences. Use printf. In lib.sh line 509: 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 512: 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 522: 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 535: 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 536: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 548: [[ $? != 0 ]] ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 556: for cur in ${arr[@]}; do ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements. In lib.sh line 562: echo $max ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$max" In lib.sh line 578: $@ | 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 601: 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 603: if (($?)); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 617: for ((i = 1; i <= $max_iterations; ++i)); do ^-------------^ SC2004 (style): $/${} is unnecessary on arithmetic variables. In lib.sh line 618: 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 620: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 623: sleep $wait_time ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sleep "$wait_time" In lib.sh line 637: 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 641: sleep $WAIT_TIME ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: sleep "$WAIT_TIME" In lib.sh line 654: 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 655: if (( $? )); then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 658: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 666: read ^--^ SC2162 (info): read without -r will mangle backslashes. In lib.sh line 712: 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 720: __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 723: 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 733: __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 738: 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 752: 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 762: 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 763: 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 765: __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 773: __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 775: 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 776: 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 789: 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 790: 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 791: __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 804: __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 805: 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 821: 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 822: 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 823: 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 830: 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 841: 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 843: 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 845: 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 846: __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 855: 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 863: require_command $TEAMD ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: require_command "$TEAMD" In lib.sh line 864: $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 866: 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 867: 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 868: 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 870: 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 877: $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 884: 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 893: 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 894: | 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 899: 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 904: 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 912: 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 957: 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 967: 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 977: 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 1068: 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 1079: 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 1089: 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 1098: 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 1105: 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 1132: 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 1133: 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 1140: 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 1148: 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 1150: if [[ $? -ne 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In lib.sh line 1168: 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 1170: || 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 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 1190: 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 1191: 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 1192: 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 1235: 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 1236: 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 1237: flower $filter \ ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: flower "$filter" \ In lib.sh line 1266: __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 1276: __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 1284: __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 1294: 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 1303: 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 1304: 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 1350: 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 1363: 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 1380: 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 1381: 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 1382: $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 1383: -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 1390: 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 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 1411: 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 1412: 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 1413: $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 1414: -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 1421: 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 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 1446: 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 1453: 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 1455: 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 1456: 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 1457: 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 1460: $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 1463: 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 1468: $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 1471: 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 1475: $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 1478: 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 1485: 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 1488: 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 1492: 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 1494: $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 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 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 1503: 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 1504: 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 1505: 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 1507: 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 1523: 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 1524: 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 1525: 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 1526: 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 1528: $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 1531: 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 1539: 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 1540: 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 1541: 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 1556: 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 1558: 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 1561: 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 1563: 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 1579: 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 1581: 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 1584: 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 1586: 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 1599: 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 1600: 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 1613: $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 1614: -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 1627: __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 1640: __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 1687: 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 1693: 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 1699: $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 1700: -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 1720: 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 1727: 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 1750: 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 1751: 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 1752: 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 1754: $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 1757: 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 1760: if [[ $? -eq 0 ]]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In lib.sh line 1764: 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 1765: 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 1800: 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 1802: 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 1816: 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 1841: 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 1846: 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 1847: 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 1862: 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 1864: 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 1865: 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 1919: 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 1920: 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 1933: kill $mpid ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: kill "$mpid" In lib.sh line 1934: 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 1935: 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 1937: rm -rf $tmpfile ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm -rf "$tmpfile" In lib.sh line 1951: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1952: $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 1953: 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 1956: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1958: 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 1961: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1963: 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 1966: local ipmout=$(start_ip_monitor stats "$ip") ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 1967: $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 1968: 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 1977: printf '%02x:' ${IP//./ } | ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: printf '%02x:' "${IP//./ }" | In lib.sh line 1996: 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 2014: 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 2053: 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 2055: echo "$payload" | sed "s/CHECKSUM/$ckbytes/g" ^-- SC2001 (style): See if you can use ${variable//search/replace} instead. In lib.sh line 2072: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2076: )"22:"$( : Type - Membership Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2077: )"00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2078: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2079: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2080: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2081: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2082: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2083: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2084: )"$(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 2086: 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 2090: local checksum=$(payload_template_calc_checksum "$igmpv3") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2092: 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 2099: local payload=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2100: )"17:"$( : Type - Leave Group ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2101: )"00:"$( : Max Resp Time - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2102: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2103: )"$(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 2105: local checksum=$(payload_template_calc_checksum "$payload") ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2107: 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 2118: local nsources=$(u16_to_bytes ${#sources[@]}) ^------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2121: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2122: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2127: )"8f:"$( : Type - MLDv2 Report ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2128: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2129: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2130: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2131: )"00:01:"$( : Number of Group Records ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2132: )"01:"$( : Record Type - IS_IN ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2133: )"00:"$( : Aux Data Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2134: )"${nsources}:"$( : Number of Sources ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2135: )"$(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 2137: 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 2142: 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 2143: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2144: )"$(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 2145: )"$(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 2146: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2149: 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 2151: 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 2163: )"3a:"$( : Next Header - ICMPv6 ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2164: )"00:"$( : Hdr Ext Len ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2169: )"84:"$( : Type - MLDv1 Done ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2170: )"00:"$( : Code ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2171: )"CHECKSUM:"$( : Checksum ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2172: )"00:00:"$( : Max Resp Delay - not meaningful ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2173: )"00:00:"$( : Reserved ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2174: )"$(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 2177: 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 2178: local sudohdr=$(: ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values. In lib.sh line 2179: )"$(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 2180: )"$(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 2181: )"${len}:"$( : Upper-layer length ^-- SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them. In lib.sh line 2184: 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 2186: 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 2215: 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 2216: exit $EXIT_STATUS ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: exit "$EXIT_STATUS" In lib.sh line 2233: 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 2234: 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 2237: 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 2238: 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 2239: ip link set macvlan-tmp address $(u64_to_ether_addr $((tmp + 1))) ^-- SC2046 (warning): Quote this to prevent word splitting. In lib.sh line 2242: 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...