ada08d4735
All the UDP tests use :> to truncate some temporary data files. This appears to be so that they're empty before writing data to them with tee. However tee, by default, truncates its output file anyway (you need tee -a to append). So drop the unnecessary truncations. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
70 lines
2.7 KiB
Text
70 lines
2.7 KiB
Text
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
#
|
|
# PASST - Plug A Simple Socket Transport
|
|
# for qemu/UNIX domain socket mode
|
|
#
|
|
# PASTA - Pack A Subtle Tap Abstraction
|
|
# for network namespace/tap device mode
|
|
#
|
|
# test/udp/pasta - Check UDP functionality for pasta
|
|
#
|
|
# Copyright (c) 2021 Red Hat GmbH
|
|
# Author: Stefano Brivio <sbrivio@redhat.com>
|
|
|
|
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
|
|
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 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
|
|
check [ "__NS_MD5__" = "__MD5__" ]
|
|
|
|
test UDP/IPv4: ns to host (recvmmsg/sendmmsg)
|
|
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 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)
|
|
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 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
|
|
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
|
|
check [ "__NS_MD5__" = "__MD5__" ]
|
|
|
|
test UDP/IPv6: ns to host (recvmmsg/sendmmsg)
|
|
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 socat -u OPEN:__TEMP_NS__ UDP6:[::1]:10003
|
|
hostw
|
|
hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1
|
|
check [ "__HOST_MD5__" = "__MD5__" ]
|
|
nsw
|
|
|
|
test UDP/IPv6: ns to host (via tap)
|
|
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 socat -u OPEN:__TEMP_NS__ UDP6:[__GW6__%__IFNAME__]:10003
|
|
hostw
|
|
hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1
|
|
check [ "__HOST_MD5__" = "__MD5__" ]
|