On Wed, 6 Nov 2024 12:44:14 +1100 David Gibson <david(a)gibson.dropbear.id.au> wrote:When determining the namespace's IPv6 address in the perf test setup, we explicitly filter for addresses with a 64-bit prefix length. There's no real reason we need that - as long as it's a global address we can use it. I suspect this was copied without thinking from a similar example in the NDP tests, where the 64-bit prefix length _is_ meaningful (though it's not entirely clear if the handling is correct there either).So, I'm not sure why we had those filters, I also suspect a copy and past, but:Signed-off-by: David Gibson <david(a)gibson.dropbear.id.au> --- test/perf/pasta_tcp | 2 +- test/perf/pasta_udp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/perf/pasta_tcp b/test/perf/pasta_tcp index d1ccf7d..88284b2 100644 --- a/test/perf/pasta_tcp +++ b/test/perf/pasta_tcp @@ -211,7 +211,7 @@ tr TCP throughput over IPv6: host to ns iperf3s ns 10002 nsout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname' -nsout ADDR6 ip -j -6 addr show|jq -rM '.[] | select(.ifname == "__IFNAME__").addr_info[] | select(.scope == "global" and .prefixlen == 64).local' +nsout ADDR6 ip -j -6 addr show|jq -rM '.[] | select(.ifname == "__IFNAME__").addr_info[] | select(.scope == "global").local' bw - bw - bw - diff --git a/test/perf/pasta_udp b/test/perf/pasta_udp index 544bf17..3d07091 100644 --- a/test/perf/pasta_udp +++ b/test/perf/pasta_udp @@ -196,7 +196,7 @@ tr UDP throughput over IPv6: host to ns iperf3s ns 10002 nsout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname' -nsout ADDR6 ip -j -6 addr show|jq -rM '.[] | select(.ifname == "__IFNAME__").addr_info[] | select(.scope == "global" and .prefixlen == 64).local' +nsout ADDR6 ip -j -6 addr show|jq -rM '.[] | select(.ifname == "__IFNAME__").addr_info[] | select(.scope == "global").local'...these cause failures on a "typical" pasta-in-passt-in-passt setup, because in the guest we typically have two addresses, one assigned via SLAAC, and one assigned via DHCPv6, say: inet6 2a01:4f8:222:904::2/128 scope global noprefixroute valid_lft forever preferred_lft forever inet6 2a01:4f8:222:904:5054:ff:fe7c:cea1/64 scope global mngtmpaddr noprefixroute valid_lft forever preferred_lft forever and, whoops: ns$ ip -j -6 addr show|jq -rM '.[] | select(.ifname == "ens3").addr_info[] | select(.scope == "global").local' 2a01:4f8:222:904:5054:ff:fe7c:cea1 2a01:4f8:222:904::2 I guess we should come up with a jq expression selecting the longest prefix. Any address will do, but it's probably better to keep this consistent. On the subject, see also: https://github.com/siderolabs/talos/issues/9725#issuecomment-2478509622 ...or should we just pick the first one as we do elsewhere? -- Stefano