1
0
mirror of https://passt.top/passt synced 2024-07-01 23:42:41 +00:00

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 <david@gibson.dropbear.id.au>
[sbrivio: Fix a typo in port specification, 31337 instead of x31337]
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
David Gibson 2022-07-15 15:21:34 +10:00 committed by Stefano Brivio
parent 05dc1c65c1
commit 1aaa2bd189
11 changed files with 200 additions and 200 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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}"

View File

@ -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__" ]

View File

@ -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__" ]

View File

@ -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__" ]

View File

@ -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

View File

@ -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__" ]

View File

@ -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__" ]

View File

@ -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__" ]