On 12/6/22 15:18, Emma Finn wrote:
> This patch add clearing of connection tracking fields to the
> avx512 implementation of the ipv4 action. This patch also extends
> the actions autovalidator to include a compare for packet metadata.
>
> Signed-off-by: Emma Finn <[email protected]>
> ---
> lib/odp-execute-avx512.c | 2 ++
> lib/odp-execute-private.c | 12 ++++++++++++
> 2 files changed, 14 insertions(+)
Thanks! That fixes the issue with the conntrack for me.
The patch is missing the Fixes tag. I added one. With that,
applied and backported to 3.0.
However, there is one more difference I spotted between avx512
and the scalar code. It's the 'l4_size' check before writing
to the L4 header.
In the packet_set_ipv4_addr() we have:
if (nh->ip_proto == IPPROTO_TCP && l4_size >= TCP_HEADER_LEN) {
...
} else if (nh->ip_proto == IPPROTO_UDP && l4_size >= UDP_HEADER_LEN ) {
...
}
But we don't have these 'l4_size' checks in avx512 implementations.
These checks are there to catch any truncated packets that do
not really have a full L4 header in them, so they supposed to
prevent writes outside of the actual packet.
I'm not sure how to trigger the issue in tests, but since we're
trying to keep the implementations functionally identical, we
need to add these checks to action_avx512_ipv4_set_addrs().
Or am I missing something?
Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev