| .. | .. |
|---|
| 1 | 1 | #!/bin/bash |
|---|
| 2 | 2 | # SPDX-License-Identifier: GPL-2.0 |
|---|
| 3 | 3 | |
|---|
| 4 | +. "$(dirname "${0}")/mptcp_lib.sh" |
|---|
| 5 | + |
|---|
| 4 | 6 | ret=0 |
|---|
| 5 | 7 | sin="" |
|---|
| 6 | 8 | sout="" |
|---|
| .. | .. |
|---|
| 88 | 90 | fi |
|---|
| 89 | 91 | done |
|---|
| 90 | 92 | |
|---|
| 93 | +mptcp_lib_check_mptcp |
|---|
| 94 | + |
|---|
| 91 | 95 | ip -Version > /dev/null 2>&1 |
|---|
| 92 | 96 | if [ $? -ne 0 ];then |
|---|
| 93 | 97 | echo "SKIP: Could not run test without ip tool" |
|---|
| .. | .. |
|---|
| 124 | 128 | echo "$listener_ns -> $connect_addr connectivity [ FAIL ]" 1>&2 |
|---|
| 125 | 129 | ret=1 |
|---|
| 126 | 130 | fi |
|---|
| 131 | +} |
|---|
| 132 | + |
|---|
| 133 | +# $1: ns ; $2: counter |
|---|
| 134 | +get_counter() |
|---|
| 135 | +{ |
|---|
| 136 | + local ns="${1}" |
|---|
| 137 | + local counter="${2}" |
|---|
| 138 | + local count |
|---|
| 139 | + |
|---|
| 140 | + count=$(ip netns exec ${ns} nstat -asz "${counter}" | awk 'NR==1 {next} {print $2}') |
|---|
| 141 | + if [ -z "${count}" ]; then |
|---|
| 142 | + mptcp_lib_fail_if_expected_feature "${counter} counter" |
|---|
| 143 | + return 1 |
|---|
| 144 | + fi |
|---|
| 145 | + |
|---|
| 146 | + echo "${count}" |
|---|
| 127 | 147 | } |
|---|
| 128 | 148 | |
|---|
| 129 | 149 | do_transfer() |
|---|
| .. | .. |
|---|
| 287 | 307 | local dump_stats |
|---|
| 288 | 308 | |
|---|
| 289 | 309 | printf "%02u %-36s %s" "$TEST_COUNT" "$msg" "syn" |
|---|
| 290 | | - count=`ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinSynRx | awk '{print $2}'` |
|---|
| 291 | | - [ -z "$count" ] && count=0 |
|---|
| 292 | | - if [ "$count" != "$syn_nr" ]; then |
|---|
| 310 | + count=$(get_counter ${ns1} "MPTcpExtMPJoinSynRx") |
|---|
| 311 | + if [ -z "$count" ]; then |
|---|
| 312 | + echo -n "[skip]" |
|---|
| 313 | + elif [ "$count" != "$syn_nr" ]; then |
|---|
| 293 | 314 | echo "[fail] got $count JOIN[s] syn expected $syn_nr" |
|---|
| 294 | 315 | ret=1 |
|---|
| 295 | 316 | dump_stats=1 |
|---|
| .. | .. |
|---|
| 298 | 319 | fi |
|---|
| 299 | 320 | |
|---|
| 300 | 321 | echo -n " - synack" |
|---|
| 301 | | - count=`ip netns exec $ns2 nstat -as | grep MPTcpExtMPJoinSynAckRx | awk '{print $2}'` |
|---|
| 302 | | - [ -z "$count" ] && count=0 |
|---|
| 303 | | - if [ "$count" != "$syn_ack_nr" ]; then |
|---|
| 322 | + count=$(get_counter ${ns2} "MPTcpExtMPJoinSynAckRx") |
|---|
| 323 | + if [ -z "$count" ]; then |
|---|
| 324 | + echo -n "[skip]" |
|---|
| 325 | + elif [ "$count" != "$syn_ack_nr" ]; then |
|---|
| 304 | 326 | echo "[fail] got $count JOIN[s] synack expected $syn_ack_nr" |
|---|
| 305 | 327 | ret=1 |
|---|
| 306 | 328 | dump_stats=1 |
|---|
| .. | .. |
|---|
| 309 | 331 | fi |
|---|
| 310 | 332 | |
|---|
| 311 | 333 | echo -n " - ack" |
|---|
| 312 | | - count=`ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinAckRx | awk '{print $2}'` |
|---|
| 313 | | - [ -z "$count" ] && count=0 |
|---|
| 314 | | - if [ "$count" != "$ack_nr" ]; then |
|---|
| 334 | + count=$(get_counter ${ns1} "MPTcpExtMPJoinAckRx") |
|---|
| 335 | + if [ -z "$count" ]; then |
|---|
| 336 | + echo "[skip]" |
|---|
| 337 | + elif [ "$count" != "$ack_nr" ]; then |
|---|
| 315 | 338 | echo "[fail] got $count JOIN[s] ack expected $ack_nr" |
|---|
| 316 | 339 | ret=1 |
|---|
| 317 | 340 | dump_stats=1 |
|---|
| .. | .. |
|---|
| 334 | 357 | local dump_stats |
|---|
| 335 | 358 | |
|---|
| 336 | 359 | printf "%-39s %s" " " "add" |
|---|
| 337 | | - count=`ip netns exec $ns2 nstat -as | grep MPTcpExtAddAddr | awk '{print $2}'` |
|---|
| 338 | | - [ -z "$count" ] && count=0 |
|---|
| 339 | | - if [ "$count" != "$add_nr" ]; then |
|---|
| 360 | + count=$(get_counter ${ns2} "MPTcpExtAddAddr") |
|---|
| 361 | + if [ -z "$count" ]; then |
|---|
| 362 | + echo -n "[skip]" |
|---|
| 363 | + elif [ "$count" != "$add_nr" ]; then |
|---|
| 340 | 364 | echo "[fail] got $count ADD_ADDR[s] expected $add_nr" |
|---|
| 341 | 365 | ret=1 |
|---|
| 342 | 366 | dump_stats=1 |
|---|
| .. | .. |
|---|
| 345 | 369 | fi |
|---|
| 346 | 370 | |
|---|
| 347 | 371 | echo -n " - echo " |
|---|
| 348 | | - count=`ip netns exec $ns1 nstat -as | grep MPTcpExtEchoAdd | awk '{print $2}'` |
|---|
| 349 | | - [ -z "$count" ] && count=0 |
|---|
| 350 | | - if [ "$count" != "$echo_nr" ]; then |
|---|
| 372 | + count=$(get_counter ${ns1} "MPTcpExtEchoAdd") |
|---|
| 373 | + if [ -z "$count" ]; then |
|---|
| 374 | + echo "[skip]" |
|---|
| 375 | + elif [ "$count" != "$echo_nr" ]; then |
|---|
| 351 | 376 | echo "[fail] got $count ADD_ADDR echo[s] expected $echo_nr" |
|---|
| 352 | 377 | ret=1 |
|---|
| 353 | 378 | dump_stats=1 |
|---|
| .. | .. |
|---|
| 371 | 396 | local dump_stats |
|---|
| 372 | 397 | |
|---|
| 373 | 398 | printf "%-39s %s" " " "rm " |
|---|
| 374 | | - count=`ip netns exec $ns1 nstat -as | grep MPTcpExtRmAddr | awk '{print $2}'` |
|---|
| 375 | | - [ -z "$count" ] && count=0 |
|---|
| 376 | | - if [ "$count" != "$rm_addr_nr" ]; then |
|---|
| 399 | + count=$(get_counter ${ns1} "MPTcpExtRmAddr") |
|---|
| 400 | + if [ -z "$count" ]; then |
|---|
| 401 | + echo -n "[skip]" |
|---|
| 402 | + elif [ "$count" != "$rm_addr_nr" ]; then |
|---|
| 377 | 403 | echo "[fail] got $count RM_ADDR[s] expected $rm_addr_nr" |
|---|
| 378 | 404 | ret=1 |
|---|
| 379 | 405 | dump_stats=1 |
|---|
| .. | .. |
|---|
| 382 | 408 | fi |
|---|
| 383 | 409 | |
|---|
| 384 | 410 | echo -n " - sf " |
|---|
| 385 | | - count=`ip netns exec $ns2 nstat -as | grep MPTcpExtRmSubflow | awk '{print $2}'` |
|---|
| 386 | | - [ -z "$count" ] && count=0 |
|---|
| 387 | | - if [ "$count" != "$rm_subflow_nr" ]; then |
|---|
| 411 | + count=$(get_counter ${ns2} "MPTcpExtRmSubflow") |
|---|
| 412 | + if [ -z "$count" ]; then |
|---|
| 413 | + echo "[skip]" |
|---|
| 414 | + elif [ "$count" != "$rm_subflow_nr" ]; then |
|---|
| 388 | 415 | echo "[fail] got $count RM_SUBFLOW[s] expected $rm_subflow_nr" |
|---|
| 389 | 416 | ret=1 |
|---|
| 390 | 417 | dump_stats=1 |
|---|