On 7 May 2024, at 17:24, Emma Finn wrote:

> The AVX implementation for calcualting checksum was not
> handling carry-over addition correctly in some cases.
> This patch adds an additional shuffle to add 16-bit padding
> to the final part of the calculation to handle such cases.
>
> Fixes: 92eb03f7b03a ("odp-execute: Add ISA implementation of set_masked IPv4 
> action")
> Signed-off-by: Emma Finn <emma.f...@intel.com>
> Reported-by: Eelco Chaudron <echau...@redhat.com>

Hi Emma,

Thanks for fixing this, however, it looks like the same issue also exists in 
IPv6.

In addition, can you also add a test case for both IPv4 and IPv6?

Thanks,

Eelco

> ---
>  lib/odp-execute-avx512.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/lib/odp-execute-avx512.c b/lib/odp-execute-avx512.c
> index 50c48bfd4..911fdd3ea 100644
> --- a/lib/odp-execute-avx512.c
> +++ b/lib/odp-execute-avx512.c
> @@ -366,6 +366,8 @@ avx512_get_delta(__m256i old_header, __m256i new_header)
>                                            0xF, 0xF, 0xF, 0xF);
>      v_delta = _mm256_permutexvar_epi32(v_swap32a, v_delta);
>
> +    v_delta = _mm256_hadd_epi32(v_delta, v_zeros);
> +    v_delta = _mm256_shuffle_epi8(v_delta, v_swap16a);
>      v_delta = _mm256_hadd_epi32(v_delta, v_zeros);
>      v_delta = _mm256_hadd_epi16(v_delta, v_zeros);
>
> -- 
> 2.25.1

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to