Minxi Hou <[email protected]> writes:

> The ovskey flow-string parser has no OVS_KEY_ATTR_SCTP entry, so a
> flow string containing sctp(src=.../dst=...) parses without error but
> silently drops the L4 key. The resulting flow carries only
> ipv4(proto=132), and the kernel rejects it: match_validate() in
> flow_netlink.c requires OVS_KEY_ATTR_SCTP when the IP protocol is
> IPPROTO_SCTP and returns -EINVAL for the missing key.
>
> Register OVS_KEY_ATTR_SCTP in the parse table and add a matching
> selftest that verifies SCTP flow key matching (sctp src/dst port).
>
> One listener serves the whole test. socat's fork option handles each
> association in a child, so the flow rules are the only thing that
> changes between the three phases and the listener is never restarted
> underneath them. -t 1 bounds how long a forked child lingers after
> its association closes, and the existing kill -TERM of the captured
> pid on teardown removes the listener itself.
>
> Also enable CONFIG_IP_SCTP in the selftest kernel config. The config
> checker strips underscores before comparing keys, so the entry sorts
> before CONFIG_IPV6 rather than after it.
>
> Signed-off-by: Minxi Hou <[email protected]>
> ---

Reviewed-by: Aaron Conole <[email protected]>


Reply via email to