58e6d68599
The tests in pasta/tcp and pasta/udp for inbound transfers have the server listening within the namespace explicitly bound to 127.0.0.1 or ::1. This only works because of the behaviour of inbound splice connections, which always appear with both source and destination addresses as loopback in the namespace. That's not an inherent property for "spliced" connections and arguably an undesirable one. Also update the test names to make it clearer that these tests are expecting to exercise the "splice" path. Interestingly this was already correct for the equivalent passt_in_ns/*, although we also update the test names for clarity there. Note that there are similar issues in some of the podman tests, addressed in https://github.com/containers/podman/pull/24064 Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
96 lines
3.6 KiB
Text
96 lines
3.6 KiB
Text
# SPDX-License-Identifier: GPL-2.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/pasta/tcp - Check TCP functionality for pasta
|
|
#
|
|
# Copyright (c) 2021 Red Hat GmbH
|
|
# Author: Stefano Brivio <sbrivio@redhat.com>
|
|
|
|
htools socat ip jq
|
|
nstools socat ip jq
|
|
|
|
set TEMP_BIG __STATEDIR__/test_big.bin
|
|
set TEMP_NS_BIG __STATEDIR__/test_ns_big.bin
|
|
set TEMP_SMALL __STATEDIR__/test_small.bin
|
|
set TEMP_NS_SMALL __STATEDIR__/test_ns_small.bin
|
|
|
|
test TCP/IPv4: host to ns (spliced): big transfer
|
|
nsb socat -u TCP4-LISTEN:10002 OPEN:__TEMP_NS_BIG__,create,trunc
|
|
host socat -u OPEN:__BASEPATH__/big.bin TCP4:127.0.0.1:10002
|
|
nsw
|
|
check cmp __BASEPATH__/big.bin __TEMP_NS_BIG__
|
|
|
|
test TCP/IPv4: ns to host (spliced): big transfer
|
|
hostb socat -u TCP4-LISTEN:10003,bind=127.0.0.1 OPEN:__TEMP_BIG__,create,trunc
|
|
ns socat -u OPEN:__BASEPATH__/big.bin TCP4:127.0.0.1:10003
|
|
hostw
|
|
check cmp __BASEPATH__/big.bin __TEMP_BIG__
|
|
|
|
test TCP/IPv4: ns to host (via tap): big transfer
|
|
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 socat -u OPEN:__BASEPATH__/big.bin TCP4:__GW__:10003
|
|
hostw
|
|
check cmp __BASEPATH__/big.bin __TEMP_BIG__
|
|
|
|
test TCP/IPv4: host to ns (spliced): small transfer
|
|
nsb socat -u TCP4-LISTEN:10002 OPEN:__TEMP_NS_SMALL__,create,trunc
|
|
host socat OPEN:__BASEPATH__/small.bin TCP4:127.0.0.1:10002
|
|
nsw
|
|
check cmp __BASEPATH__/small.bin __TEMP_NS_SMALL__
|
|
|
|
test TCP/IPv4: ns to host (spliced): small transfer
|
|
hostb socat -u TCP4-LISTEN:10003,bind=127.0.0.1 OPEN:__TEMP_SMALL__,create,trunc
|
|
ns socat OPEN:__BASEPATH__/small.bin TCP4:127.0.0.1:10003
|
|
hostw
|
|
check cmp __BASEPATH__/small.bin __TEMP_SMALL__
|
|
|
|
test TCP/IPv4: ns to host (via tap): small transfer
|
|
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 socat -u OPEN:__BASEPATH__/small.bin TCP4:__GW__:10003
|
|
hostw
|
|
check cmp __BASEPATH__/small.bin __TEMP_SMALL__
|
|
|
|
test TCP/IPv6: host to ns (spliced): big transfer
|
|
nsb socat -u TCP6-LISTEN:10002 OPEN:__TEMP_NS_BIG__,create,trunc
|
|
host socat -u OPEN:__BASEPATH__/big.bin TCP6:[::1]:10002
|
|
nsw
|
|
check cmp __BASEPATH__/big.bin __TEMP_NS_BIG__
|
|
|
|
test TCP/IPv6: ns to host (spliced): big transfer
|
|
hostb socat -u TCP6-LISTEN:10003,bind=[::1] OPEN:__TEMP_BIG__,create,trunc
|
|
ns socat -u OPEN:__BASEPATH__/big.bin TCP6:[::1]:10003
|
|
hostw
|
|
check cmp __BASEPATH__/big.bin __TEMP_BIG__
|
|
|
|
test TCP/IPv6: ns to host (via tap): big transfer
|
|
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 socat -u OPEN:__BASEPATH__/big.bin TCP6:[__GW6__%__IFNAME__]:10003
|
|
hostw
|
|
check cmp __BASEPATH__/big.bin __TEMP_BIG__
|
|
|
|
test TCP/IPv6: host to ns (spliced): small transfer
|
|
nsb socat -u TCP6-LISTEN:10002 OPEN:__TEMP_NS_SMALL__,create,trunc
|
|
host socat -u OPEN:__BASEPATH__/small.bin TCP6:[::1]:10002
|
|
nsw
|
|
check cmp __BASEPATH__/small.bin __TEMP_NS_SMALL__
|
|
|
|
test TCP/IPv6: ns to host (spliced): small transfer
|
|
hostb socat -u TCP6-LISTEN:10003,bind=[::1] OPEN:__TEMP_SMALL__,create,trunc
|
|
ns socat -u OPEN:__BASEPATH__/small.bin TCP6:[::1]:10003
|
|
hostw
|
|
check cmp __BASEPATH__/small.bin __TEMP_SMALL__
|
|
|
|
test TCP/IPv6: ns to host (via tap): small transfer
|
|
hostb socat -u TCP6-LISTEN:10003 OPEN:__TEMP_SMALL__,create,trunc
|
|
ns socat -u OPEN:__BASEPATH__/small.bin TCP6:[__GW6__%__IFNAME__]:10003
|
|
hostw
|
|
check cmp __BASEPATH__/small.bin __TEMP_SMALL__
|