aboutgitcodebugslistschat
diff options
context:
space:
mode:
-rw-r--r--test/README.md2
-rw-r--r--test/demo/passt8
-rw-r--r--test/demo/pasta12
-rwxr-xr-xtest/passt.mbuto2
-rw-r--r--test/tcp/passt36
-rw-r--r--test/tcp/passt_in_ns138
-rw-r--r--test/tcp/pasta58
-rw-r--r--test/two_guests/basic22
-rw-r--r--test/udp/passt22
-rw-r--r--test/udp/passt_in_ns72
-rw-r--r--test/udp/pasta28
11 files changed, 200 insertions, 200 deletions
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 <sbrivio@redhat.com>
-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 <sbrivio@redhat.com>
-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 <sbrivio@redhat.com>
-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 <sbrivio@redhat.com>
-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 <sbrivio@redhat.com>
-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 <sbrivio@redhat.com>
-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 <sbrivio@redhat.com>
-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__" ]