From 1aaa2bd189cb42a26ee411fd1652e7479d82f005 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Fri, 15 Jul 2022 15:21:34 +1000 Subject: tests: Use socat instead of netcat Commit 41c02e10 ("tests: Use nmap-ncat instead of openbsd netcat for pasta tests") updated the pasta tests to use the nmap version of ncat instead of the openbsd version, for greater portability. For some upcoming changes, however, we'll be wanting to use socat. "socat" can do everything "ncat" can and more, so let's move all the tests using host tools (either directly on the host or via mbuto generated images) to using socat instead. Signed-off-by: David Gibson [sbrivio: Fix a typo in port specification, 31337 instead of x31337] Signed-off-by: Stefano Brivio --- test/udp/passt | 22 ++++++++-------- test/udp/passt_in_ns | 72 ++++++++++++++++++++++++++-------------------------- test/udp/pasta | 28 ++++++++++---------- 3 files changed, 61 insertions(+), 61 deletions(-) (limited to 'test/udp') diff --git a/test/udp/passt b/test/udp/passt index 9598d0e..ee575e0 100644 --- a/test/udp/passt +++ b/test/udp/passt @@ -11,15 +11,15 @@ # Copyright (c) 2021 Red Hat GmbH # Author: Stefano Brivio -gtools nc tee grep cat ip jq md5sum cut -htools printf dd nc tee grep cat ip jq md5sum cut +gtools socat tee grep cat ip jq md5sum cut +htools printf dd socat tee grep cat ip jq md5sum cut test UDP/IPv4: host to guest temp TEMP -temp NC_PID -guestb (nc -u -q1 -4 -l 10001 & echo $! > __NC_PID__) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) +temp SC_PID +guestb (socat -u UDP4-LISTEN:10001 STDOUT & echo $! > __SC_PID__) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) host dd if=/dev/urandom bs=1k count=5 > __TEMP__ && printf "\nEND_OF_TEST\n" >> __TEMP__ -host cat __TEMP__ | nc -u -q1 -N 127.0.0.1 10001 +host socat -u OPEN:__TEMP__ UDP4:127.0.0.1:10001 guestw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 gout GUEST_MD5 md5sum test.bin | cut -d' ' -f1 @@ -27,27 +27,27 @@ check [ "__GUEST_MD5__" = "__HOST_MD5__" ] test UDP/IPv4: guest to host host :> __TEMP__ -hostb (nc -u -q1 -4 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) +hostb (socat -u UDP4-LISTEN:10003,bind=127.0.0.1 STDOUT & echo $! > __SC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) gout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' -guest cat test.bin | nc -u -q1 -N __GW__ 10003 +guest socat -u OPEN:test.bin UDP4:__GW__:10003 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__GUEST_MD5__" = "__HOST_MD5__" ] test UDP/IPv6: host to guest -guestb (nc -u -q1 -6 -l 10001 & echo $! > nc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat nc.pid)) +guestb (socat -u UDP6-LISTEN:10001 STDOUT & echo $! > sc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat sc.pid)) sleep 1 -host cat __TEMP__ | nc -u -q1 -N ::1 10001 +host socat -u OPEN:__TEMP__ UDP6:[::1]:10001 guestw gout GUEST_MD5 md5sum test.bin | cut -d' ' -f1 check [ "__GUEST_MD5__" = "__HOST_MD5__" ] test UDP/IPv6: guest to host host :> __TEMP__ -hostb (nc -u -q1 -6 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) +hostb (socat -u UDP6-LISTEN:10003,bind=[::1] STDOUT & echo $! > __SC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) gout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway' gout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname' -guest cat test.bin | nc -u -q1 -N __GW6__%__IFNAME__ 10003 +guest socat -u OPEN:test.bin UDP6:[__GW6__%__IFNAME__]:10003 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__GUEST_MD5__" = "__HOST_MD5__" ] diff --git a/test/udp/passt_in_ns b/test/udp/passt_in_ns index 3607251..3536298 100644 --- a/test/udp/passt_in_ns +++ b/test/udp/passt_in_ns @@ -11,16 +11,16 @@ # Copyright (c) 2021 Red Hat GmbH # Author: Stefano Brivio -gtools nc tee grep cat ip jq md5sum cut -nstools nc tee grep cat ip jq md5sum cut -htools printf dd nc tee grep cat ip jq md5sum cut +gtools socat tee grep cat ip jq md5sum cut +nstools socat tee grep cat ip jq md5sum cut +htools printf dd socat tee grep cat ip jq md5sum cut test UDP/IPv4: host to guest temp TEMP -temp NC_PID -guestb (nc -u -q1 -4 -l 10001 & echo $! > nc.pic) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat nc.pic)) +temp SC_PID +guestb (socat -u UDP4-LISTEN:10001 STDOUT & echo $! > sc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat sc.pid)) host dd if=/dev/urandom bs=1k count=5 > __TEMP__ && printf "\nEND_OF_TEST\n" >> __TEMP__ -host cat __TEMP__ | nc -u -q1 -N 127.0.0.1 10001 +host socat -u OPEN:__TEMP__ UDP4:127.0.0.1:10001 guestw hout MD5 md5sum __TEMP__ | cut -d' ' -f1 gout GUEST_MD5 md5sum test.bin | cut -d' ' -f1 @@ -29,25 +29,25 @@ check [ "__GUEST_MD5__" = "__MD5__" ] test UDP/IPv4: host to ns temp TEMP_NS ns :> __TEMP_NS__ -nsb (nc -u -q1 -4 -l 10002 & echo $! > __NC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) -host cat __TEMP__ | nc -u -q1 -N 127.0.0.1 10002 +nsb (socat -u UDP4-LISTEN:10002 STDOUT & echo $! > __SC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) +host socat -u OPEN:__TEMP__ UDP4:127.0.0.1:10002 nsw nsout NS_MD5 md5sum __TEMP_NS__ | cut -d' ' -f1 check [ "__NS_MD5__" = "__MD5__" ] test UDP/IPv4: guest to host host :> __TEMP__ -hostb (nc -u -q1 -4 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) +hostb (socat -u UDP4-LISTEN:10003 STDOUT & echo $! > __SC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) gout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' -guest cat test.bin | nc -u -q1 -N __GW__ 10003 +guest socat -u OPEN:test.bin UDP4:__GW__:10003 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__HOST_MD5__" = "__MD5__" ] test UDP/IPv4: guest to ns ns :> __TEMP_NS__ -nsb (nc -u -q1 -4 -l 10002 & echo $! > __NC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) -guest cat test.bin | nc -u -q1 -N __GW__ 10002 +nsb (socat -u UDP4-LISTEN:10002 STDOUT & echo $! > __SC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) +guest socat -u OPEN:test.bin UDP4:__GW__:10002 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__HOST_MD5__" = "__MD5__" ] @@ -55,97 +55,97 @@ check [ "__HOST_MD5__" = "__MD5__" ] test UDP/IPv4: ns to host (recvmmsg/sendmmsg) sleep 1 host :> __TEMP__ -hostb (nc -u -q1 -4 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) -ns cat __TEMP_NS__ | nc -u -q1 -N 127.0.0.1 10003 +hostb (socat -u UDP4-LISTEN:10003 STDOUT & echo $! > __SC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) +ns socat -u OPEN:__TEMP_NS__ UDP4:127.0.0.1:10003 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__HOST_MD5__" = "__MD5__" ] test UDP/IPv4: ns to host (via tap) host :> __TEMP__ -hostb (nc -u -q1 -4 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) -ns cat __TEMP_NS__ | nc -u -q1 -N __GW__ 10003 +hostb (socat -u UDP4-LISTEN:10003 STDOUT & echo $! > __SC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) +ns socat -u OPEN:__TEMP_NS__ UDP4:__GW__:10003 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__HOST_MD5__" = "__MD5__" ] test UDP/IPv4: ns to guest (using loopback address) -guestb (nc -u -q1 -4 -l 10001 & echo $! > nc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat nc.pid)) -ns cat __TEMP_NS__ | nc -u -q1 -N 127.0.0.1 10001 +guestb (socat -u UDP4-LISTEN:10001 STDOUT & echo $! > sc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat sc.pid)) +ns socat -u OPEN:__TEMP_NS__ UDP4:127.0.0.1:10001 guestw gout GUEST_MD5 md5sum test.bin | cut -d' ' -f1 check [ "__GUEST_MD5__" = "__MD5__" ] test UDP/IPv4: ns to guest (using namespace address) -guestb (nc -u -q1 -4 -l 10001 & echo $! > nc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat nc.pid)) +guestb (socat -u UDP4-LISTEN:10001 STDOUT & echo $! > sc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat sc.pid)) nsout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname' nsout ADDR ip -j -4 addr show|jq -rM '.[] | select(.ifname == "__IFNAME__").addr_info[0].local' -ns cat __TEMP_NS__ | nc -u -q1 -N __ADDR__ 10001 +ns socat -u OPEN:__TEMP_NS__ UDP4:__ADDR__:10001 guestw gout GUEST_MD5 md5sum test.bin | cut -d' ' -f1 check [ "__GUEST_MD5__" = "__MD5__" ] test UDP/IPv6: host to guest -guestb (nc -u -q1 -6 -l 10001 & echo $! > nc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat nc.pid)) -host cat __TEMP__ | nc -u -q1 -N ::1 10001 +guestb (socat -u UDP6-LISTEN:10001 STDOUT & echo $! > sc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat sc.pid)) +host socat -u OPEN:__TEMP__ UDP6:[::1]:10001 guestw gout GUEST_MD5 md5sum test.bin | cut -d' ' -f1 check [ "__GUEST_MD5__" = "__MD5__" ] test UDP/IPv6: host to ns ns :> __TEMP_NS__ -nsb (nc -u -q1 -6 -l 10002 & echo $! > __NC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) -host cat __TEMP__ | nc -u -q1 -N ::1 10002 +nsb (socat -u UDP6-LISTEN:10002 STDOUT & echo $! > __SC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) +host socat -u OPEN:__TEMP__ UDP6:[::1]:10002 nsw nsout NS_MD5 md5sum __TEMP_NS__ | cut -d' ' -f1 check [ "__NS_MD5__" = "__MD5__" ] test UDP/IPv6: guest to host host :> __TEMP__ -hostb (nc -u -q1 -6 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) +hostb (socat -u UDP6-LISTEN:10003 STDOUT & echo $! > __SC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) gout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway' gout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname' -guest cat test.bin | nc -u -q1 -N __GW6__%__IFNAME__ 10003 +guest socat -u OPEN:test.bin UDP6:[__GW6__%__IFNAME__]:10003 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__HOST_MD5__" = "__MD5__" ] test UDP/IPv6: guest to ns ns :> __TEMP_NS__ -nsb (nc -u -q1 -6 -l 10002 & echo $! > __NC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) -guest cat test.bin | nc -u -q1 -N __GW6__%__IFNAME__ 10002 +nsb (socat -u UDP6-LISTEN:10002 STDOUT & echo $! > __SC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) +guest socat -u OPEN:test.bin UDP6:[__GW6__%__IFNAME__]:10002 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__HOST_MD5__" = "__MD5__" ] test UDP/IPv6: ns to host (recvmmsg/sendmmsg) host :> __TEMP__ -hostb (nc -u -q1 -6 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) -ns cat __TEMP_NS__ | nc -u -q1 -N ::1 10003 +hostb (socat -u UDP6-LISTEN:10003 STDOUT & echo $! > __SC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) +ns socat -u OPEN:__TEMP_NS__ UDP6:[::1]:10003 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__HOST_MD5__" = "__MD5__" ] test UDP/IPv6: ns to host (via tap) host :> __TEMP__ -hostb (nc -u -q1 -6 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) +hostb (socat -u UDP6-LISTEN:10003 STDOUT & echo $! > __SC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__)) nsout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname' -ns cat __TEMP_NS__ | nc -u -q1 -N __GW6__%__IFNAME__ 10003 +ns socat -u OPEN:__TEMP_NS__ UDP6:[__GW6__%__IFNAME__]:10003 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__HOST_MD5__" = "__MD5__" ] test UDP/IPv6: ns to guest (using loopback address) -guestb (nc -u -q1 -6 -l 10001 & echo $! > nc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat nc.pid)) -ns cat __TEMP_NS__ | nc -u -q1 -N ::1 10001 +guestb (socat -u UDP6-LISTEN:10001 STDOUT & echo $! > sc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat sc.pid)) +ns socat -u OPEN:__TEMP_NS__ UDP6:[::1]:10001 guestw gout GUEST_MD5 md5sum test.bin | cut -d' ' -f1 check [ "__GUEST_MD5__" = "__MD5__" ] test UDP/IPv6: ns to guest (using namespace address) -guestb (nc -u -q1 -6 -l 10001 & echo $! > nc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat nc.pid)) +guestb (socat -u UDP6-LISTEN:10001 STDOUT & echo $! > sc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat sc.pid)) nsout ADDR6 ip -j -6 addr show|jq -rM '.[] | select(.ifname == "__IFNAME__").addr_info[0].local' -ns cat __TEMP_NS__ | nc -u -q1 -N __ADDR6__ 10001 +ns socat -u OPEN:__TEMP_NS__ UDP6:[__ADDR6__]:10001 guestw gout GUEST_MD5 md5sum test.bin | cut -d' ' -f1 check [ "__GUEST_MD5__" = "__MD5__" ] diff --git a/test/udp/pasta b/test/udp/pasta index a7e5015..43e0513 100644 --- a/test/udp/pasta +++ b/test/udp/pasta @@ -11,18 +11,18 @@ # Copyright (c) 2021 Red Hat GmbH # Author: Stefano Brivio -nstools ncat tee grep cat ip jq md5sum cut -htools printf dd ncat tee grep cat ip jq md5sum cut +nstools socat tee grep cat ip jq md5sum cut +htools printf dd socat tee grep cat ip jq md5sum cut test UDP/IPv4: host to ns temp TEMP temp TEMP_NS temp NC_PID ns :> __TEMP_NS__ -nsb (ncat -u -4 -l 127.0.0.1 10002 & echo $! > __NC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) +nsb (socat -u UDP4-LISTEN:10002,bind=127.0.0.1 STDOUT & echo $! > __NC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) host dd if=/dev/urandom bs=1k count=5 > __TEMP__ && printf "\nEND_OF_TEST\n" >> __TEMP__ -host cat __TEMP__ | ncat -u 127.0.0.1 10002 +host socat OPEN:__TEMP__ UDP4:127.0.0.1:10002 nsw hout MD5 md5sum __TEMP__ | cut -d' ' -f1 nsout NS_MD5 md5sum __TEMP_NS__ | cut -d' ' -f1 @@ -30,26 +30,26 @@ check [ "__NS_MD5__" = "__MD5__" ] test UDP/IPv4: ns to host (recvmmsg/sendmmsg) host :> __TEMP__ -hostb (ncat -u -4 -l 127.0.0.1 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) +hostb (socat -u UDP4-LISTEN:10003,bind=127.0.0.1 STDOUT & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) sleep 1 -ns cat __TEMP_NS__ | ncat -u 127.0.0.1 10003 +ns socat OPEN:__TEMP_NS__ UDP4:127.0.0.1:10003 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__HOST_MD5__" = "__MD5__" ] test UDP/IPv4: ns to host (via tap) host :> __TEMP__ -hostb (ncat -u -4 -l 0.0.0.0 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) +hostb (socat -u UDP4-LISTEN:10003 STDOUT & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) nsout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' -ns cat __TEMP_NS__ | ncat -u __GW__ 10003 +ns socat -u OPEN:__TEMP_NS__ UDP4:__GW__:10003 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__HOST_MD5__" = "__MD5__" ] test UDP/IPv6: host to ns ns :> __TEMP_NS__ -nsb (ncat -u -6 -l ::1 10002 & echo $! > __NC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) -host cat __TEMP__ | ncat -u ::1 10002 +nsb (socat -u UDP6-LISTEN:10002,bind=[::1] STDOUT & echo $! > __NC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) +host socat -u OPEN:__TEMP__ UDP6:[::1]:10002 nsw hout MD5 md5sum __TEMP__ | cut -d' ' -f1 nsout NS_MD5 md5sum __TEMP_NS__ | cut -d' ' -f1 @@ -57,9 +57,9 @@ check [ "__NS_MD5__" = "__MD5__" ] test UDP/IPv6: ns to host (recvmmsg/sendmmsg) host :> __TEMP__ -hostb (ncat -u -6 -l ::1 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) +hostb (socat -u UDP6-LISTEN:10003,bind=[::1] STDOUT & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) sleep 1 -ns cat __TEMP_NS__ | ncat -u ::1 10003 +ns socat -u OPEN:__TEMP_NS__ UDP6:[::1]:10003 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__HOST_MD5__" = "__MD5__" ] @@ -67,10 +67,10 @@ nsw test UDP/IPv6: ns to host (via tap) host :> __TEMP__ -hostb (ncat -u -6 -l :: 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) +hostb (socat -u UDP6-LISTEN:10003 STDOUT & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__)) nsout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway' nsout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname' -ns cat __TEMP_NS__ | ncat -u __GW6__%__IFNAME__ 10003 +ns socat -u OPEN:__TEMP_NS__ UDP6:[__GW6__%__IFNAME__]:10003 hostw hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1 check [ "__HOST_MD5__" = "__MD5__" ] -- cgit v1.2.3