diff --git a/test/README.md b/test/README.md index 201332b..581949a 100644 --- a/test/README.md +++ b/test/README.md @@ -29,7 +29,7 @@ on a system, i.e. common utilities such as a shell are not included here. Example for Debian, and possibly most Debian-based distributions: build-essential git jq strace iperf3 qemu-system-x86 tmux sipcalc bc - clang-tidy cppcheck isc-dhcp-common psmisc linux-cpupower ncat + clang-tidy cppcheck isc-dhcp-common psmisc linux-cpupower socat netcat-openbsd fakeroot lz4 lm-sensors qemu-system-arm qemu-system-ppc qemu-system-misc qemu-system-x86 valgrind diff --git a/test/demo/passt b/test/demo/passt index c6c3bcc..59fe144 100644 --- a/test/demo/passt +++ b/test/demo/passt @@ -129,9 +129,9 @@ nl nl say Let's try to communicate between host and guest. sleep 2 -guestb nc -6 -l -p 5201 +guestb socat TCP6-LISTEN:5201 STDIO sleep 2 -host echo "Hello from the host" | nc -N ::1 5201 +host echo "Hello from the host" | socat -u STDIN TCP6:[::1]:5201 sleep 5 nl @@ -142,9 +142,9 @@ say the address of the default gateway. sleep 2 gout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' sleep 5 -hostb nc -l -p 31337 +hostb socat TCP4-LISTEN:31337 STDIO sleep 2 -guest echo "Hello from the guest" | nc -N __GW__ 31337 +guest echo "Hello from the guest" | socat -u STDIN TCP4:__GW__:31337 sleep 3 nl diff --git a/test/demo/pasta b/test/demo/pasta index 342671f..8337c83 100644 --- a/test/demo/pasta +++ b/test/demo/pasta @@ -98,9 +98,9 @@ nl say pasta detects bound ports and forwards them. sleep 3 -nsb ncat -6 -l ::1 31337 +nsb socat TCP6-LISTEN:31337,bind=[::1] STDOUT sleep 2 -host echo "Hello from the host" | ncat ::1 31337 +host echo "Hello from the host" | socat -u STDIN TCP6:[::1]:31337 sleep 5 nl @@ -109,9 +109,9 @@ say Now the other way around... nl say we can use a loopback address sleep 2 -hostb ncat -l ::1 31337 +hostb socat TCP6-LISTEN:31337,bind=[::1] STDIO sleep 2 -ns echo "Hello from the namespace" | ncat ::1 31337 +ns echo "Hello from the namespace" | socat -u STDIN TCP6:[::1]:31337 sleep 5 nl @@ -119,9 +119,9 @@ say or the address of the default gateway. sleep 2 nsout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' sleep 5 -hostb ncat -l 0.0.0.0 31337 +hostb socat TCP4-LISTEN:31337 STDIO sleep 2 -ns echo "Hello from the namespace" | ncat __GW__ 31337 +ns echo "Hello from the namespace" | socat -u STDIN TCP4:__GW__:31337 sleep 3 nl diff --git a/test/passt.mbuto b/test/passt.mbuto index c515a0c..8b41674 100755 --- a/test/passt.mbuto +++ b/test/passt.mbuto @@ -12,7 +12,7 @@ PROGS="${PROGS:-ash,dash,bash ip mount ls insmod mkdir ln cat chmod lsmod modprobe find grep mknod mv rm umount jq iperf3 dhclient hostname - sed tr chown sipcalc cut md5sum nc dd strace ping tail killall sleep + sed tr chown sipcalc cut md5sum socat dd strace ping tail killall sleep sysctl nproc tcp_rr tcp_crr udp_rr which tee seq bc}" KMODS="${KMODS:- virtio_net virtio_pci}" diff --git a/test/tcp/passt b/test/tcp/passt index 4baa610..6e65137 100644 --- a/test/tcp/passt +++ b/test/tcp/passt @@ -11,75 +11,75 @@ # Copyright (c) 2021 Red Hat GmbH # Author: Stefano Brivio -gtools nc ip jq cat md5sum cut -htools dd nc ip jq cat md5sum cut +gtools socat ip jq md5sum cut +htools dd socat ip jq md5sum cut test TCP/IPv4: host to guest: big transfer temp TEMP_BIG -guestb nc -4 -l 10001 > test_big.bin +guestb socat -u TCP4-LISTEN:10001,reuseaddr OPEN:test_big.bin,create,trunc host dd if=/dev/urandom bs=1M count=10 > __TEMP_BIG__ -host cat __TEMP_BIG__ | nc -N 127.0.0.1 10001 +host socat -u OPEN:__TEMP_BIG__ TCP4:127.0.0.1:10001 guestw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 gout GUEST_MD5_BIG md5sum test_big.bin | cut -d' ' -f1 check [ "__GUEST_MD5_BIG__" = "__HOST_MD5_BIG__" ] test TCP/IPv4: guest to host: big transfer -hostb nc -4 -l 10003 > __TEMP_BIG__ +hostb socat -u TCP4-LISTEN:10003,bind=127.0.0.1,reuseaddr OPEN:__TEMP_BIG__,create,trunc gout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' -guest cat test_big.bin | nc -N __GW__ 10003 +guest socat -u OPEN:test_big.bin TCP4:__GW__:10003 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__GUEST_MD5_BIG__" = "__HOST_MD5_BIG__" ] test TCP/IPv4: host to guest: small transfer temp TEMP_SMALL -guestb nc -4 -l 10001 > test_small.bin +guestb socat -u TCP4-LISTEN:10001,reuseaddr OPEN:test_small.bin,create,trunc host dd if=/dev/urandom bs=2k count=1 > __TEMP_SMALL__ -host cat __TEMP_SMALL__ | nc -N 127.0.0.1 10001 +host socat -u OPEN:__TEMP_SMALL__ TCP4:127.0.0.1:10001 guestw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 gout GUEST_MD5_SMALL md5sum test_small.bin | cut -d' ' -f1 check [ "__GUEST_MD5_SMALL__" = "__HOST_MD5_SMALL__" ] test TCP/IPv4: guest to host: small transfer -hostb nc -4 -l 10003 > __TEMP_SMALL__ +hostb socat -u TCP4-LISTEN:10003,bind=127.0.0.1,reuseaddr OPEN:__TEMP_SMALL__,create,trunc sleep 1 -guest cat test_small.bin | nc -N __GW__ 10003 +guest socat -u OPEN:test_small.bin TCP4:__GW__:10003 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__GUEST_MD5_SMALL__" = "__HOST_MD5_SMALL__" ] test TCP/IPv6: host to guest: big transfer -guestb nc -6 -l 10001 > test_big.bin +guestb socat -u TCP6-LISTEN:10001,reuseaddr OPEN:test_big.bin,create,trunc sleep 1 -host cat __TEMP_BIG__ | nc -N ::1 10001 +host socat -u OPEN:__TEMP_BIG__ TCP6:[::1]:10001 guestw gout GUEST_MD5_BIG md5sum test_big.bin | cut -d' ' -f1 check [ "__GUEST_MD5_BIG__" = "__HOST_MD5_BIG__" ] test TCP/IPv6: guest to host: big transfer -hostb nc -6 -l 10003 > __TEMP_BIG__ +hostb socat -u TCP6-LISTEN:10003,bind=[::1],reuseaddr OPEN:__TEMP_BIG__,create,trunc 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_big.bin | nc -N __GW6__%__IFNAME__ 10003 +guest socat -u OPEN:test_big.bin TCP6:[__GW6__%__IFNAME__]:10003 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__GUEST_MD5_BIG__" = "__HOST_MD5_BIG__" ] test TCP/IPv6: host to guest: small transfer -guestb nc -6 -l 10001 > test_small.bin +guestb socat -u TCP6-LISTEN:10001,reuseaddr OPEN:test_small.bin,create,trunc sleep 1 -host cat __TEMP_SMALL__ | nc -N ::1 10001 +host socat -u OPEN:__TEMP_SMALL__ TCP6:[::1]:10001 guestw gout GUEST_MD5_SMALL md5sum test_small.bin | cut -d' ' -f1 check [ "__GUEST_MD5_SMALL__" = "__HOST_MD5_SMALL__" ] test TCP/IPv6: guest to host: small transfer -hostb nc -6 -l 10003 > __TEMP_SMALL__ +hostb socat -u TCP6-LISTEN:10003,bind=[::1],reuseaddr OPEN:__TEMP_SMALL__,create,trunc sleep 1 -guest cat test_small.bin | nc -N __GW6__%__IFNAME__ 10003 +guest socat -u OPEN:test_small.bin TCP6:[__GW6__%__IFNAME__]:10003 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__GUEST_MD5_SMALL__" = "__HOST_MD5_SMALL__" ] diff --git a/test/tcp/passt_in_ns b/test/tcp/passt_in_ns index 2a11e0b..ab22485 100644 --- a/test/tcp/passt_in_ns +++ b/test/tcp/passt_in_ns @@ -11,15 +11,15 @@ # Copyright (c) 2021 Red Hat GmbH # Author: Stefano Brivio -gtools nc ip jq cat md5sum cut -htools dd nc ip jq cat md5sum cut -nstools nc ip jq cat md5sum cut +gtools socat ip jq md5sum cut +htools dd socat ip jq md5sum cut +nstools socat ip jq md5sum cut test TCP/IPv4: host to guest: big transfer temp TEMP_BIG -guestb nc -4 -l 10001 > test_big.bin -host dd if=/dev/urandom bs=1M count=10 > __TEMP_BIG__ -host cat __TEMP_BIG__ | nc -N 127.0.0.1 10001 +guestb socat -u TCP4-LISTEN:10001 OPEN:test_big.bin,create,trunc +host dd if=/dev/urandom bs=1M count=10 of=__TEMP_BIG__ +host socat -u OPEN:__TEMP_BIG__ TCP4:127.0.0.1:10001 guestw hout MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 gout GUEST_MD5_BIG md5sum test_big.bin | cut -d' ' -f1 @@ -27,63 +27,63 @@ check [ "__GUEST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv4: host to ns: big transfer temp TEMP_NS_BIG -nsb nc -4 -l 10002 > __TEMP_NS_BIG__ -host cat __TEMP_BIG__ | nc -N 127.0.0.1 10002 +nsb socat -u TCP4-LISTEN:10002 OPEN:__TEMP_NS_BIG__,create,trunc +host socat -u OPEN:__TEMP_BIG__ TCP4:127.0.0.1:10002 nsw nsout NS_MD5_BIG md5sum __TEMP_NS_BIG__ | cut -d' ' -f1 check [ "__NS_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv4: guest to host: big transfer -hostb nc -4 -l 10003 > __TEMP_BIG__ +hostb socat -u TCP4-LISTEN:10003 OPEN:__TEMP_BIG__,create,trunc gout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' -guest cat test_big.bin | nc -N __GW__ 10003 +guest socat -u OPEN:test_big.bin TCP4:__GW__:10003 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv4: guest to ns: big transfer -nsb nc -4 -l 10002 > __TEMP_BIG__ -guest cat test_big.bin | nc -N __GW__ 10002 +nsb socat -u TCP4-LISTEN:10002 OPEN:__TEMP_BIG__,create,trunc +guest socat -u OPEN:test_big.bin TCP4:__GW__:10002 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv4: ns to host (spliced): big transfer sleep 1 -hostb nc -4 -l 10003 > __TEMP_BIG__ -ns cat __TEMP_NS_BIG__ | nc -N 127.0.0.1 10003 +hostb socat -u TCP4-LISTEN:10003 OPEN:__TEMP_BIG__,create,trunc +ns socat -u OPEN:__TEMP_NS_BIG__ TCP4:127.0.0.1:10003 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv4: ns to host (via tap): big transfer -hostb nc -4 -l 10003 > __TEMP_BIG__ -ns cat __TEMP_NS_BIG__ | nc -N __GW__ 10003 +hostb socat -u TCP4-LISTEN:10003 OPEN:__TEMP_BIG__,create,trunc +ns socat -u OPEN:__TEMP_NS_BIG__ TCP4:__GW__:10003 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv4: ns to guest (using loopback address): big transfer -guestb nc -4 -l 10001 > test_big.bin -ns cat __TEMP_NS_BIG__ | nc -N 127.0.0.1 10001 +guestb socat -u TCP4-LISTEN:10001 OPEN:test_big.bin,create,trunc +ns socat -u OPEN:__TEMP_NS_BIG__ TCP4:127.0.0.1:10001 guestw gout GUEST_MD5_BIG md5sum test_big.bin | cut -d' ' -f1 check [ "__GUEST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv4: ns to guest (using namespace address): big transfer -guestb nc -4 -l 10001 > test_big.bin +guestb socat -u TCP4-LISTEN:10001 OPEN:test_big.bin,create,trunc 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_BIG__ | nc -N __ADDR__ 10001 +ns socat -u OPEN:__TEMP_NS_BIG__ TCP4:__ADDR__:10001 guestw gout GUEST_MD5_BIG md5sum test_big.bin | cut -d' ' -f1 check [ "__GUEST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv4: host to guest: small transfer temp TEMP_SMALL -guestb nc -4 -l 10001 > test_small.bin -host dd if=/dev/urandom bs=2k count=100 > __TEMP_SMALL__ -host cat __TEMP_SMALL__ | nc -N 127.0.0.1 10001 +guestb socat -u TCP4-LISTEN:10001 OPEN:test_small.bin,create,trunc +host dd if=/dev/urandom bs=2k count=100 of=__TEMP_SMALL__ +host socat -u OPEN:__TEMP_SMALL__ TCP4:127.0.0.1:10001 guestw hout MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 gout GUEST_MD5_SMALL md5sum test_small.bin | cut -d' ' -f1 @@ -91,171 +91,171 @@ check [ "__GUEST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv4: host to ns: small transfer temp TEMP_NS_SMALL -nsb nc -4 -l 10002 > __TEMP_NS_SMALL__ -host cat __TEMP_SMALL__ | nc -N 127.0.0.1 10002 +nsb socat -u TCP4-LISTEN:10002 OPEN:__TEMP_NS_SMALL__,create,trunc +host socat -u OPEN:__TEMP_SMALL__ TCP4:127.0.0.1:10002 nsw nsout NS_MD5_SMALL md5sum __TEMP_NS_SMALL__ | cut -d' ' -f1 check [ "__NS_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv4: guest to host: small transfer -hostb nc -4 -l 10003 > __TEMP_SMALL__ +hostb socat -u TCP4-LISTEN:10003 OPEN:__TEMP_SMALL__,create,trunc gout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' -guest cat test_small.bin | nc -N __GW__ 10003 +guest socat -u OPEN:test_small.bin TCP4:__GW__:10003 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv4: guest to ns: small transfer -nsb nc -4 -l 10002 > __TEMP_SMALL__ -guest cat test_small.bin | nc -N __GW__ 10002 +nsb socat -u TCP4-LISTEN:10002 OPEN:__TEMP_SMALL__,create,trunc +guest socat -u OPEN:test_small.bin TCP4:__GW__:10002 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv4: ns to host (spliced): small transfer sleep 1 -hostb nc -4 -l 10003 > __TEMP_SMALL__ -ns cat __TEMP_NS_SMALL__ | nc -N 127.0.0.1 10003 +hostb socat -u TCP4-LISTEN:10003 OPEN:__TEMP_SMALL__,create,trunc +ns socat -u OPEN:__TEMP_NS_SMALL__ TCP4:127.0.0.1:10003 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv4: ns to host (via tap): small transfer -hostb nc -4 -l 10003 > __TEMP_SMALL__ -ns cat __TEMP_NS_SMALL__ | nc -N __GW__ 10003 +hostb socat -u TCP4-LISTEN:10003 OPEN:__TEMP_SMALL__,create,trunc +ns socat -u OPEN:__TEMP_NS_SMALL__ TCP4:__GW__:10003 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv4: ns to guest (using loopback address): small transfer -guestb nc -4 -l 10001 > test_small.bin -ns cat __TEMP_NS_SMALL__ | nc -N 127.0.0.1 10001 +guestb socat -u TCP4-LISTEN:10001 OPEN:test_small.bin,create,trunc +ns socat -u OPEN:__TEMP_NS_SMALL__ TCP4:127.0.0.1:10001 guestw gout GUEST_MD5_SMALL md5sum test_small.bin | cut -d' ' -f1 check [ "__GUEST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv4: ns to guest (using namespace address): small transfer -guestb nc -4 -l 10001 > test_small.bin -ns cat __TEMP_NS_SMALL__ | nc -N __ADDR__ 10001 +guestb socat -u TCP4-LISTEN:10001 OPEN:test_small.bin,create,trunc +ns socat -u OPEN:__TEMP_NS_SMALL__ TCP4:__ADDR__:10001 guestw gout GUEST_MD5_SMALL md5sum test_small.bin | cut -d' ' -f1 check [ "__GUEST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv6: host to guest: big transfer -guestb nc -6 -l 10001 > test_big.bin -host cat __TEMP_BIG__ | nc -N ::1 10001 +guestb socat -u TCP6-LISTEN:10001 OPEN:test_big.bin,create,trunc +host socat -u OPEN:__TEMP_BIG__ TCP6:[::1]:10001 guestw gout GUEST_MD5_BIG md5sum test_big.bin | cut -d' ' -f1 check [ "__GUEST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv6: host to ns: big transfer -nsb nc -6 -l 10002 > __TEMP_NS_BIG__ -host cat __TEMP_BIG__ | nc -N ::1 10002 +nsb socat -u TCP6-LISTEN:10002 OPEN:__TEMP_NS_BIG__,create,trunc +host socat -u OPEN:__TEMP_BIG__ TCP6:[::1]:10002 nsw nsout NS_MD5_BIG md5sum __TEMP_NS_BIG__ | cut -d' ' -f1 check [ "__NS_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv6: guest to host: big transfer -hostb nc -6 -l 10003 > __TEMP_BIG__ +hostb socat -u TCP6-LISTEN:10003 OPEN:__TEMP_BIG__,create,trunc 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_big.bin | nc -N __GW6__%__IFNAME__ 10003 +guest socat -u OPEN:test_big.bin TCP6:[__GW6__%__IFNAME__]:10003 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv6: guest to ns: big transfer -nsb nc -6 -l 10002 > __TEMP_BIG__ -guest cat test_big.bin | nc -N __GW6__%__IFNAME__ 10002 +nsb socat -u TCP6-LISTEN:10002 OPEN:__TEMP_BIG__,create,trunc +guest socat -u OPEN:test_big.bin TCP6:[__GW6__%__IFNAME__]:10002 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv6: ns to host (spliced): big transfer -hostb nc -6 -l 10003 > __TEMP_BIG__ -ns cat __TEMP_NS_BIG__ | nc -N ::1 10003 +hostb socat -u TCP6-LISTEN:10003 OPEN:__TEMP_BIG__,create,trunc +ns socat -u OPEN:__TEMP_NS_BIG__ TCP6:[::1]:10003 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv6: ns to host (via tap): big transfer -hostb nc -6 -l 10003 > __TEMP_BIG__ +hostb socat -u TCP6-LISTEN:10003 OPEN:__TEMP_BIG__,create,trunc nsout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname' -ns cat __TEMP_NS_BIG__ | nc -N __GW6__%__IFNAME__ 10003 +ns socat -u OPEN:__TEMP_NS_BIG__ TCP6:[__GW6__%__IFNAME__]:10003 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv6: ns to guest (using loopback address): big transfer -guestb nc -6 -l 10001 > test_big.bin -ns cat __TEMP_NS_BIG__ | nc -N ::1 10001 +guestb socat -u TCP6-LISTEN:10001 OPEN:test_big.bin,create,trunc +ns socat -u OPEN:__TEMP_NS_BIG__ TCP6:[::1]:10001 guestw gout GUEST_MD5_BIG md5sum test_big.bin | cut -d' ' -f1 check [ "__GUEST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv6: ns to guest (using namespace address): big transfer -guestb nc -6 -l 10001 > test_big.bin +guestb socat -u TCP6-LISTEN:10001 OPEN:test_big.bin,create,trunc nsout ADDR6 ip -j -6 addr show|jq -rM '.[] | select(.ifname == "__IFNAME__").addr_info[0].local' -ns cat __TEMP_NS_BIG__ | nc -N __ADDR6__ 10001 +ns socat -u OPEN:__TEMP_NS_BIG__ TCP6:[__ADDR6__]:10001 guestw gout GUEST_MD5_BIG md5sum test_big.bin | cut -d' ' -f1 check [ "__GUEST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv6: host to guest: small transfer -guestb nc -6 -l 10001 > test_small.bin -host cat __TEMP_SMALL__ | nc -N ::1 10001 +guestb socat -u TCP6-LISTEN:10001 OPEN:test_small.bin,create,trunc +host socat -u OPEN:__TEMP_SMALL__ TCP6:[::1]:10001 guestw gout GUEST_MD5_SMALL md5sum test_small.bin | cut -d' ' -f1 check [ "__GUEST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv6: host to ns: small transfer -nsb nc -6 -l 10002 > __TEMP_NS_SMALL__ -host cat __TEMP_SMALL__ | nc -N ::1 10002 +nsb socat -u TCP6-LISTEN:10002 OPEN:__TEMP_NS_SMALL__,create,trunc +host socat -u OPEN:__TEMP_SMALL__ TCP6:[::1]:10002 nsw nsout NS_MD5_SMALL md5sum __TEMP_NS_SMALL__ | cut -d' ' -f1 check [ "__NS_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv6: guest to host: small transfer -hostb nc -6 -l 10003 > __TEMP_SMALL__ +hostb socat -u TCP6-LISTEN:10003 OPEN:__TEMP_SMALL__,create,trunc 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_small.bin | nc -N __GW6__%__IFNAME__ 10003 +guest socat -u OPEN:test_small.bin TCP6:[__GW6__%__IFNAME__]:10003 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv6: guest to ns: small transfer -nsb nc -6 -l 10002 > __TEMP_SMALL__ -guest cat test_small.bin | nc -N __GW6__%__IFNAME__ 10002 +nsb socat -u TCP6-LISTEN:10002 OPEN:__TEMP_SMALL__ +guest socat -u OPEN:test_small.bin TCP6:[__GW6__%__IFNAME__]:10002 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv6: ns to host (spliced): small transfer -hostb nc -6 -l 10003 > __TEMP_SMALL__ -ns cat __TEMP_NS_SMALL__ | nc -N ::1 10003 +hostb socat -u TCP6-LISTEN:10003 OPEN:__TEMP_SMALL__,create,trunc +ns socat -u OPEN:__TEMP_NS_SMALL__ TCP6:[::1]:10003 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv6: ns to host (via tap): small transfer -hostb nc -6 -l 10003 > __TEMP_SMALL__ +hostb socat -u TCP6-LISTEN:10003 OPEN:__TEMP_SMALL__,create,trunc nsout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname' -ns cat __TEMP_NS_SMALL__ | nc -N __GW6__%__IFNAME__ 10003 +ns socat -u OPEN:__TEMP_NS_SMALL__ TCP6:[__GW6__%__IFNAME__]:10003 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv6: ns to guest (using loopback address): small transfer -guestb nc -6 -l 10001 > test_small.bin -ns cat __TEMP_NS_SMALL__ | nc -N ::1 10001 +guestb socat -u TCP6-LISTEN:10001 OPEN:test_small.bin,create,trunc +ns socat -u OPEN:__TEMP_NS_SMALL__ TCP6:[::1]:10001 guestw gout GUEST_MD5_SMALL md5sum test_small.bin | cut -d' ' -f1 check [ "__GUEST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv6: ns to guest (using namespace address): small transfer -guestb nc -6 -l 10001 > test_small.bin -ns cat __TEMP_NS_SMALL__ | nc -N __ADDR6__ 10001 +guestb socat -u TCP6-LISTEN:10001 OPEN:test_small.bin,create,trunc +ns socat -u OPEN:__TEMP_NS_SMALL__ TCP6:[__ADDR6__]:10001 guestw gout GUEST_MD5_SMALL md5sum test_small.bin | cut -d' ' -f1 check [ "__GUEST_MD5_SMALL__" = "__MD5_SMALL__" ] diff --git a/test/tcp/pasta b/test/tcp/pasta index 068393a..0d6c729 100644 --- a/test/tcp/pasta +++ b/test/tcp/pasta @@ -11,31 +11,31 @@ # Copyright (c) 2021 Red Hat GmbH # Author: Stefano Brivio -htools dd ncat ip jq cat md5sum cut -nstools ncat ip jq cat md5sum cut +htools dd socat ip jq md5sum cut +nstools socat ip jq md5sum cut test TCP/IPv4: host to ns: big transfer temp TEMP_BIG temp TEMP_NS_BIG -nsb ncat -4 -l 127.0.0.1 10002 > __TEMP_NS_BIG__ -host dd if=/dev/urandom bs=1M count=10 > __TEMP_BIG__ -host cat __TEMP_BIG__ | ncat 127.0.0.1 10002 +nsb socat -u TCP4-LISTEN:10002,bind=127.0.0.1 OPEN:__TEMP_NS_BIG__,create,trunc +host dd if=/dev/urandom bs=1M count=10 of=__TEMP_BIG__ +host socat -u OPEN:__TEMP_BIG__ TCP4:127.0.0.1:10002 nsw hout MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 nsout NS_MD5_BIG md5sum __TEMP_NS_BIG__ | cut -d' ' -f1 check [ "__NS_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv4: ns to host (spliced): big transfer -hostb ncat -4 -l 127.0.0.1 10003 > __TEMP_BIG__ -ns cat __TEMP_NS_BIG__ | ncat 127.0.0.1 10003 +hostb socat -u TCP4-LISTEN:10003,bind=127.0.0.1 OPEN:__TEMP_BIG__,create,trunc +ns socat -u OPEN:__TEMP_NS_BIG__ TCP4:127.0.0.1:10003 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv4: ns to host (via tap): big transfer -hostb ncat -4 -l 0.0.0.0 10003 > __TEMP_BIG__ +hostb socat -u TCP4-LISTEN:10003 OPEN:__TEMP_BIG__,create,trunc nsout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' -ns cat __TEMP_NS_BIG__ | ncat __GW__ 10003 +ns socat -u OPEN:__TEMP_NS_BIG__ TCP4:__GW__:10003 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] @@ -43,50 +43,50 @@ check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv4: host to ns: small transfer temp TEMP_SMALL temp TEMP_NS_SMALL -nsb ncat -4 -l 127.0.0.1 10002 > __TEMP_NS_SMALL__ -host dd if=/dev/urandom bs=2k count=1 > __TEMP_SMALL__ -host cat __TEMP_SMALL__ | ncat 127.0.0.1 10002 +nsb socat -u TCP4-LISTEN:10002,bind=127.0.0.1 OPEN:__TEMP_NS_SMALL__,create,trunc +host dd if=/dev/urandom bs=2k count=1 of=__TEMP_SMALL__ +host socat OPEN:__TEMP_SMALL__ TCP4:127.0.0.1:10002 nsw hout MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 nsout NS_MD5_SMALL md5sum __TEMP_NS_SMALL__ | cut -d' ' -f1 check [ "__NS_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv4: ns to host (spliced): small transfer -hostb ncat -4 -l 127.0.0.1 10003 > __TEMP_SMALL__ -ns cat __TEMP_NS_SMALL__ | ncat 127.0.0.1 10003 +hostb socat -u TCP4-LISTEN:10003,bind=127.0.0.1 OPEN:__TEMP_SMALL__,create,trunc +ns socat OPEN:__TEMP_NS_SMALL__ TCP4:127.0.0.1:10003 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv4: ns to host (via tap): small transfer -hostb ncat -4 -l 0.0.0.0 10003 > __TEMP_SMALL__ +hostb socat -u TCP4-LISTEN:10003 OPEN:__TEMP_SMALL__,create,trunc nsout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' -ns cat __TEMP_NS_SMALL__ | ncat __GW__ 10003 +ns socat -u OPEN:__TEMP_NS_SMALL__ TCP4:__GW__:10003 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv6: host to ns: big transfer -nsb ncat -6 -l ::1 10002 > __TEMP_NS_BIG__ -host cat __TEMP_BIG__ | ncat ::1 10002 +nsb socat -u TCP6-LISTEN:10002,bind=[::1] OPEN:__TEMP_NS_BIG__,create,trunc +host socat -u OPEN:__TEMP_BIG__ TCP6:[::1]:10002 nsw hout MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 nsout NS_MD5_BIG md5sum __TEMP_NS_BIG__ | cut -d' ' -f1 check [ "__NS_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv6: ns to host (spliced): big transfer -hostb ncat -6 -l ::1 10003 > __TEMP_BIG__ -ns cat __TEMP_NS_BIG__ | ncat ::1 10003 +hostb socat -u TCP6-LISTEN:10003,bind=[::1] OPEN:__TEMP_BIG__,create,trunc +ns socat -u OPEN:__TEMP_NS_BIG__ TCP6:[::1]:10003 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] nsw test TCP/IPv6: ns to host (via tap): big transfer -hostb ncat -6 -l :: 10003 > __TEMP_BIG__ +hostb socat -u TCP6-LISTEN:10003 OPEN:__TEMP_BIG__,create,trunc 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_BIG__ | ncat __GW6__%__IFNAME__ 10003 +ns socat -u OPEN:__TEMP_NS_BIG__ TCP6:[__GW6__%__IFNAME__]:10003 hostw hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1 check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] @@ -94,24 +94,24 @@ check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ] test TCP/IPv6: host to ns: small transfer temp TEMP_SMALL temp TEMP_NS_SMALL -nsb ncat -6 -l ::1 10002 > __TEMP_NS_SMALL__ -host dd if=/dev/urandom bs=2k count=1 > __TEMP_SMALL__ -host cat __TEMP_SMALL__ | ncat ::1 10002 +nsb socat -u TCP6-LISTEN:10002,bind=[::1] OPEN:__TEMP_NS_SMALL__,create,trunc +host dd if=/dev/urandom bs=2k count=1 of=__TEMP_SMALL__ +host socat -u OPEN:__TEMP_SMALL__ TCP6:[::1]:10002 nsw hout MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 nsout NS_MD5_SMALL md5sum __TEMP_NS_SMALL__ | cut -d' ' -f1 check [ "__NS_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv6: ns to host (spliced): small transfer -hostb ncat -6 -l ::1 10003 > __TEMP_SMALL__ -ns cat __TEMP_NS_SMALL__ | ncat ::1 10003 +hostb socat -u TCP6-LISTEN:10003,bind=[::1] OPEN:__TEMP_SMALL__,create,trunc +ns socat -u OPEN:__TEMP_NS_SMALL__ TCP6:[::1]:10003 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ] test TCP/IPv6: ns to host (via tap): small transfer -hostb ncat -6 -l :: 10003 > __TEMP_SMALL__ -ns cat __TEMP_NS_SMALL__ | ncat __GW6__%__IFNAME__ 10003 +hostb socat -u TCP6-LISTEN:10003 OPEN:__TEMP_SMALL__,create,trunc +ns socat -u OPEN:__TEMP_NS_SMALL__ TCP6:[__GW6__%__IFNAME__]:10003 hostw hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1 check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ] diff --git a/test/two_guests/basic b/test/two_guests/basic index 850a27b..cf0b975 100644 --- a/test/two_guests/basic +++ b/test/two_guests/basic @@ -11,9 +11,9 @@ # Copyright (c) 2021 Red Hat GmbH # Author: Stefano Brivio -g1tools ip jq dhclient nc cat -g2tools ip jq dhclient nc cat -htools ip jq cat md5sum cut +g1tools ip jq dhclient socat cat +g2tools ip jq dhclient socat cat +htools ip jq md5sum cut test Interface names g1out IFNAME1 ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname' @@ -46,8 +46,8 @@ check [ "__ADDR2_6__" = "__HOST_ADDR6__" ] test TCP/IPv4: guest 1 > guest 2 g1out GW1 ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' -guest2b nc -4 -l 10004 > msg -guest1 echo "Hello_from_guest_1" | nc -N __GW1__ 10004 +guest2b socat -u TCP4-LISTEN:10004 OPEN:msg,create,trunc +guest1 echo "Hello_from_guest_1" | socat -u STDIN TCP4:__GW1__:10004 guest2w sleep 1 g2out MSG2 cat msg @@ -55,24 +55,24 @@ check [ "__MSG2__" = "Hello_from_guest_1" ] test TCP/IPv6: guest 2 > guest 1 g2out GW2_6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway' -guest1b nc -6 -l 10001 > msg -guest2 echo "Hello_from_guest_2" | nc -N __GW2_6__%__IFNAME2__ 10001 +guest1b socat -u TCP6-LISTEN:10001 OPEN:msg,create,trunc +guest2 echo "Hello_from_guest_2" | socat -u STDIN TCP6:[__GW2_6__%__IFNAME2__]:10001 guest1w sleep 1 g1out MSG1 cat msg check [ "__MSG1__" = "Hello_from_guest_2" ] test UDP/IPv4: guest 1 > guest 2 -guest2b nc -u -W1 -4 -l 10004 > msg -guest1 echo "Hello_from_guest_1" | nc -u -q1 __GW1__ 10004 +guest2b socat -u TCP4-LISTEN:10004 OPEN:msg,create,trunc +guest1 echo "Hello_from_guest_1" | socat -u STDIN TCP4:__GW1__:10004 guest2w sleep 1 g2out MSG2 cat msg check [ "__MSG2__" = "Hello_from_guest_1" ] test UDP/IPv6: guest 2 > guest 1 -guest1b nc -u -W1 -6 -l 10001 > msg -guest2 echo "Hello_from_guest_2" | nc -u -q1 -N __GW2_6__%__IFNAME2__ 10001 +guest1b socat -u TCP6-LISTEN:10001 OPEN:msg,create,trunc +guest2 echo "Hello_from_guest_2" | socat -u STDIN TCP6:[__GW2_6__%__IFNAME2__]:10001 guest1w sleep 1 g1out MSG1 cat msg 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__" ]