Lines Matching +full:client +full:- +full:id

2 # SPDX-License-Identifier: GPL-2.0
21 if ! ip -Version &> /dev/null; then
58 rndh=$(printf %x "$sec")-$(mktemp -u XXXXXX)
59 ns1="ns1-$rndh"
60 ns2="ns2-$rndh"
65 stdbuf -o0 -e0 printf "${@}"
78 _printf "%-63s" "${test_name}"
104 if [ -n "${1}" ]; then
113 [ $1 -eq 0 ] && return 0
115 kill -SIGUSR1 $1 > /dev/null 2>&1
139 rm -rf $file $client_evts $server_evts
149 ip -net "$i" link set lo up
150 ip netns exec "$i" sysctl -q net.mptcp.enabled=1
151 ip netns exec "$i" sysctl -q net.mptcp.pm_type=1
160 ip -net "$ns1" addr add 10.0.1.1/24 dev ns1eth2
161 ip -net "$ns1" addr add 10.0.2.1/24 dev ns1eth2
162 ip -net "$ns1" addr add dead:beef:1::1/64 dev ns1eth2 nodad
163 ip -net "$ns1" addr add dead:beef:2::1/64 dev ns1eth2 nodad
164 ip -net "$ns1" link set ns1eth2 up
166 ip -net "$ns2" addr add 10.0.1.2/24 dev ns2eth1
167 ip -net "$ns2" addr add 10.0.2.2/24 dev ns2eth1
168 ip -net "$ns2" addr add dead:beef:1::2/64 dev ns2eth1 nodad
169 ip -net "$ns2" addr add dead:beef:2::2/64 dev ns2eth1 nodad
170 ip -net "$ns2" link set ns2eth1 up
183 echo -e "\nMPTCP_TEST_FILE_END_MARKER" >> "$name"
188 if [ -z "$file" ]; then
191 make_file "$file" "client"
207 # the MPTCP client and server
208 if [ -z "$client_evts" ]; then
212 if [ $client_evts_pid -ne 0 ]; then
217 if [ -z "$server_evts" ]; then
221 if [ $server_evts_pid -ne 0 ]; then
230 ./mptcp_connect -s MPTCP -w 300 -p $app_port -l $listen_addr > /dev/null 2>&1 &
234 # Run the client, transfer $file and stay connected to the server
237 ./mptcp_connect -s MPTCP -w 300 -m sendfile -p $app_port $connect_addr\
242 # Capture client/server attributes from MPTCP connection netlink events
250 client_token=$(sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$client_evts")
251 client_port=$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' "$client_evts")
252 client_serverside=$(sed --unbuffered -n 's/.*\(server_side:\)\([[:digit:]]*\).*$/\2/p;q'\
255 sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q')
257 sed --unbuffered -n 's/.*\(server_side:\)\([[:digit:]]*\).*$/\2/p;q')
265 …test_fail "Expected tokens (c:${client_token} - s:${server_token}) and server (c:${client_serversi…
319 if [ ${rc} -eq 0 ]
341 local id
343 type=$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
344 token=$(sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
347 addr=$(sed --unbuffered -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q' "$evt")
349 addr=$(sed --unbuffered -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evt")
351 dport=$(sed --unbuffered -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
352 id=$(sed --unbuffered -n 's/.*\(rem_id:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
354 check_expected "type" "token" "addr" "dport" "id"
365 local invalid_token=$(( client4_token - 1))
366 ip netns exec "$ns2" ./pm_nl_ctl ann 10.0.2.2 token $invalid_token id\
370 type=$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$server_evts")
379 # ADD_ADDR from the client to server machine reusing the subflow port
382 ./pm_nl_ctl ann 10.0.2.2 token "$client4_token" id $client_addr_id dev\
384 print_test "ADD_ADDR id:${client_addr_id} 10.0.2.2 (ns2) => ns1, reuse port"
389 # ADD_ADDR6 from the client to server machine reusing the subflow port
392 dead:beef:2::2 token "$client6_token" id $client_addr_id dev ns2eth1
393 print_test "ADD_ADDR6 id:${client_addr_id} dead:beef:2::2 (ns2) => ns1, reuse port"
398 # ADD_ADDR from the client to server machine using a new port
401 ip netns exec "$ns2" ./pm_nl_ctl ann 10.0.2.2 token "$client4_token" id\
403 print_test "ADD_ADDR id:${client_addr_id} 10.0.2.2 (ns2) => ns1, new port"
408 # Capture events on the network namespace running the client
411 # ADD_ADDR from the server to client machine reusing the subflow port
412 ip netns exec "$ns1" ./pm_nl_ctl ann 10.0.2.1 token "$server4_token" id\
414 print_test "ADD_ADDR id:${server_addr_id} 10.0.2.1 (ns1) => ns2, reuse port"
419 # ADD_ADDR6 from the server to client machine reusing the subflow port
421 ip netns exec "$ns1" ./pm_nl_ctl ann dead:beef:2::1 token "$server6_token" id\
423 print_test "ADD_ADDR6 id:${server_addr_id} dead:beef:2::1 (ns1) => ns2, reuse port"
428 # ADD_ADDR from the server to client machine using a new port
431 ip netns exec "$ns1" ./pm_nl_ctl ann 10.0.2.1 token "$server4_token" id\
433 print_test "ADD_ADDR id:${server_addr_id} 10.0.2.1 (ns1) => ns2, new port"
447 local id
449 type=$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
450 token=$(sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
451 id=$(sed --unbuffered -n 's/.*\(rem_id:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
453 check_expected "type" "token" "id"
464 local invalid_token=$(( client4_token - 1 ))
465 ip netns exec "$ns2" ./pm_nl_ctl rem token $invalid_token id\
467 print_test "RM_ADDR id:${client_addr_id} ns2 => ns1, invalid token"
469 type=$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$server_evts")
477 # RM_ADDR using an invalid addr id should result in no action
479 ip netns exec "$ns2" ./pm_nl_ctl rem token "$client4_token" id\
481 print_test "RM_ADDR id:${invalid_id} ns2 => ns1, invalid id"
482 type=$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$server_evts")
490 # RM_ADDR from the client to server machine
492 ip netns exec "$ns2" ./pm_nl_ctl rem token "$client4_token" id\
494 print_test "RM_ADDR id:${client_addr_id} ns2 => ns1"
498 # RM_ADDR from the client to server machine
500 client_addr_id=$(( client_addr_id - 1 ))
501 ip netns exec "$ns2" ./pm_nl_ctl rem token "$client4_token" id\
503 print_test "RM_ADDR id:${client_addr_id} ns2 => ns1"
507 # RM_ADDR6 from the client to server machine
509 ip netns exec "$ns2" ./pm_nl_ctl rem token "$client6_token" id\
511 print_test "RM_ADDR6 id:${client_addr_id} ns2 => ns1"
515 # Capture events on the network namespace running the client
518 # RM_ADDR from the server to client machine
519 ip netns exec "$ns1" ./pm_nl_ctl rem token "$server4_token" id\
521 print_test "RM_ADDR id:${server_addr_id} ns1 => ns2"
525 # RM_ADDR from the server to client machine
527 server_addr_id=$(( server_addr_id - 1 ))
528 ip netns exec "$ns1" ./pm_nl_ctl rem token "$server4_token" id\
530 print_test "RM_ADDR id:${server_addr_id} ns1 => ns2"
534 # RM_ADDR6 from the server to client machine
536 ip netns exec "$ns1" ./pm_nl_ctl rem token "$server6_token" id\
538 print_test "RM_ADDR6 id:${server_addr_id} ns1 => ns2"
586 type=$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
587 token=$(sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
588 family=$(sed --unbuffered -n 's/.*\(family:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
589 dport=$(sed --unbuffered -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
590 locid=$(sed --unbuffered -n 's/.*\(loc_id:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
591 remid=$(sed --unbuffered -n 's/.*\(rem_id:\)\([[:digit:]]*\).*$/\2/p;q' "$evt")
594 saddr=$(sed --unbuffered -n 's/.*\(saddr6:\)\([0-9a-f:.]*\).*$/\2/p;q' "$evt")
595 daddr=$(sed --unbuffered -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q' "$evt")
597 saddr=$(sed --unbuffered -n 's/.*\(saddr4:\)\([0-9.]*\).*$/\2/p;q' "$evt")
598 daddr=$(sed --unbuffered -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evt")
611 # Attempt to add a listener at 10.0.2.2:<subflow-port>
616 # ADD_ADDR from client to server machine reusing the subflow port
617 ip netns exec "$ns2" ./pm_nl_ctl ann 10.0.2.2 token "$client4_token" id\
621 # CREATE_SUBFLOW from server to client machine
629 # Delete the listener from the client ns, if one was created
633 sport=$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' "$server_evts")
635 # DESTROY_SUBFLOW from server to client machine
643 # RM_ADDR from client to server machine
644 ip netns exec "$ns2" ./pm_nl_ctl rem id $client_addr_id token\
648 # Attempt to add a listener at dead:beef:2::2:<subflow-port>
653 # ADD_ADDR6 from client to server machine reusing the subflow port
655 ip netns exec "$ns2" ./pm_nl_ctl ann dead:beef:2::2 token "$client6_token" id\
659 # CREATE_SUBFLOW6 from server to client machine
668 # Delete the listener from the client ns, if one was created
671 sport=$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' "$server_evts")
673 # DESTROY_SUBFLOW6 from server to client machine
682 # RM_ADDR from client to server machine
683 ip netns exec "$ns2" ./pm_nl_ctl rem id $client_addr_id token\
687 # Attempt to add a listener at 10.0.2.2:<new-port>
692 # ADD_ADDR from client to server machine using a new port
694 ip netns exec "$ns2" ./pm_nl_ctl ann 10.0.2.2 token "$client4_token" id\
698 # CREATE_SUBFLOW from server to client machine
707 # Delete the listener from the client ns, if one was created
710 sport=$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' "$server_evts")
712 # DESTROY_SUBFLOW from server to client machine
720 # RM_ADDR from client to server machine
721 ip netns exec "$ns2" ./pm_nl_ctl rem id $client_addr_id token\
724 # Capture events on the network namespace running the client
727 # Attempt to add a listener at 10.0.2.1:<subflow-port>
732 # ADD_ADDR from server to client machine reusing the subflow port
733 ip netns exec "$ns1" ./pm_nl_ctl ann 10.0.2.1 token "$server4_token" id\
737 # CREATE_SUBFLOW from client to server machine
748 sport=$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' "$client_evts")
750 # DESTROY_SUBFLOW from client to server machine
758 # RM_ADDR from server to client machine
759 ip netns exec "$ns1" ./pm_nl_ctl rem id $server_addr_id token\
763 # Attempt to add a listener at dead:beef:2::1:<subflow-port>
768 # ADD_ADDR6 from server to client machine reusing the subflow port
770 ip netns exec "$ns1" ./pm_nl_ctl ann dead:beef:2::1 token "$server6_token" id\
774 # CREATE_SUBFLOW6 from client to server machine
787 sport=$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' "$client_evts")
789 # DESTROY_SUBFLOW6 from client to server machine
797 # RM_ADDR6 from server to client machine
798 ip netns exec "$ns1" ./pm_nl_ctl rem id $server_addr_id token\
802 # Attempt to add a listener at 10.0.2.1:<new-port>
807 # ADD_ADDR from server to client machine using a new port
809 ip netns exec "$ns1" ./pm_nl_ctl ann 10.0.2.1 token "$server4_token" id\
813 # CREATE_SUBFLOW from client to server machine
824 sport=$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' "$client_evts")
826 # DESTROY_SUBFLOW from client to server machine
834 # RM_ADDR from server to client machine
835 ip netns exec "$ns1" ./pm_nl_ctl rem id $server_addr_id token\
843 # Attempt to add a listener at 10.0.2.1:<subflow-port>
848 # ADD_ADDR4 from server to client machine reusing the subflow port on
851 ip netns exec "$ns1" ./pm_nl_ctl ann 10.0.2.1 token "$server6_token" id\
853 print_test "ADD_ADDR4 id:${server_addr_id} 10.0.2.1 (ns1) => ns2, reuse port"
858 # CREATE_SUBFLOW from client to server machine
870 sport=$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' "$client_evts")
872 # DESTROY_SUBFLOW from client to server machine
881 # RM_ADDR from server to client machine
882 ip netns exec "$ns1" ./pm_nl_ctl rem id $server_addr_id token\
893 # Send MP_PRIO signal from client to server machine
899 count=$(ip netns exec "$ns2" nstat -as | grep MPTcpExtMPPrioTx | awk '{print $2}')
900 [ -z "$count" ] && count=0
909 count=$(ip netns exec "$ns1" nstat -as | grep MPTcpExtMPPrioRx | awk '{print $2}')
910 [ -z "$count" ] && count=0
937 sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q')
939 sed --unbuffered -n 's/.*\(family:\)\([[:digit:]]*\).*$/\2/p;q')
941 sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q')
944 sed --unbuffered -n 's/.*\(saddr6:\)\([0-9a-f:.]*\).*$/\2/p;q')
947 sed --unbuffered -n 's/.*\(saddr4:\)\([0-9.]*\).*$/\2/p;q')
963 # Capture events on the network namespace running the client
966 # Attempt to add a listener at 10.0.2.2:<subflow-port>
974 # ADD_ADDR from client to server machine reusing the subflow port
975 ip netns exec $ns2 ./pm_nl_ctl ann 10.0.2.2 token $client4_token id\
979 # CREATE_SUBFLOW from server to client machine
984 # Delete the listener from the client ns, if one was created