Re: [PATCH net-next v2] selftests/net/openvswitch: add SCTP flow key test

From: Ilya Maximets

Date: Mon Jul 13 2026 - 10:48:18 EST


On 7/7/26 5:47 AM, Minxi Hou wrote:
> Register OVS_KEY_ATTR_SCTP in the flow key parser so that sctp()
> can be used in flow specifications. The ovs_key_sctp class already
> exists (with src/dst fields matching the TCP/UDP siblings) but was
> not wired into the parser, so the token was silently dropped and the
> kernel rejected the flow.
>
> Add test_sctp_connect_v4 exercising the SCTP flow key with
> port-specific matching: sctp(dst=4443) for client-to-server and
> sctp(src=4443) for server-to-client.
>
> Wait for ncat readiness with ovs_wait instead of a fixed sleep so
> the test does not race against ncat startup. Use grep -c on the
> listening message to distinguish between successive ncat instances
> that share the same stderr log. Kill the previous server before
> respawning to avoid EADDRINUSE on the SCTP port.
>
> Signed-off-by: Minxi Hou <houminxi@xxxxxxxxx>
> ---
> v1 -> v2: replace sleep with ovs_wait on ncat listening output,
> kill previous ncat server before respawning to avoid
> port conflict (Aaron review feedback)
>
> .../selftests/net/openvswitch/openvswitch.sh | 102 ++++++++++++++++++
> .../selftests/net/openvswitch/ovs-dpctl.py | 5 +
> 2 files changed, 107 insertions(+)
>
> diff --git a/tools/testing/selftests/net/openvswitch/openvswitch.sh b/tools/testing/selftests/net/openvswitch/openvswitch.sh
> index 2954245129a2..9c364eeb2ec2 100755
> --- a/tools/testing/selftests/net/openvswitch/openvswitch.sh
> +++ b/tools/testing/selftests/net/openvswitch/openvswitch.sh
> @@ -32,6 +32,7 @@ tests="
> dec_ttl ttl: dec_ttl decrements IP TTL
> flow_set flow-set: Flow modify
> action_set set: SET action rewrites fields
> + sctp_connect_v4 sctp: SCTP flow key matching
> psample psample: Sampling packets with psample"
>
> info() {
> @@ -443,6 +444,107 @@ test_action_set() {
> return 0
> }
>
> +# sctp_connect_v4 test
> +# - sctp(dst=4443) matches client-to-server INIT
> +# - sctp(src=4443) matches server-to-client INIT-ACK
> +# - remove flows and verify connection fails, reinstall and recover
> +test_sctp_connect_v4() {
> + local t="test_sctp_connect_v4"
> +
> + which ncat >/dev/null 2>&1 || return $ksft_skip

Not a full review, but can we avoid ncat? We already use nc in other
tests, using different implementations of the same thing in different
tests doesn't sound like a good idea. On mnay systems nc and ncat
will be different implementations with different options and behavior.

Best regards, Ilya Maximets.