[PATCH v3] net/mlx5: remove use of sizeof(rte_v128u32_t)
Dariusz Sosnowski
dsosnowski at nvidia.com
Wed Jul 9 09:26:09 CEST 2025
Thank you for addressing the comments.
On Tue, Jul 08, 2025 at 08:11:56AM -0700, Andre Muezerie wrote:
> When compiling with MSVC the error below is hit:
>
> drivers\net\mlx5\mlx5_tx.h(1148): error C2065: 'rte_v128u32_t':
> undeclared identifier
>
> The reference to rte_v128u32_t (in code and in names) can be removed,
> because the code which relies on MLX5_ESEG_MIN_INLINE_SIZE does not
> really use rte_v128u32_t type. The relevant code e.g.,
> in mlx5_tx_eseg_dmin(), always copies first 2 bytes of the packet
> (through uint16_t pointer, these would be first 2 bytes of destination
> MAC address) and then does one of the two:
>
> 1. Copies following 16 bytes using rte_mov16().
> (Corresponds to first static_assert for MLX5_ESEG_MIN_INLINE_SIZE).
> 2. If there is a VLAN defined in mbuf, then:
> - the rest of destination MAC address is copied,
> - source MAC address is copied,
> - VLAN is inserted,
> - 2 bytes appearing after VLAN header are copied.
> (Corresponds to 2nd static_assert for MLX5_ESEG_MIN_INLINE_SIZE).
>
> The amount of data copied is inferred from HW arch and packet descriptor
> layout, not rte_v128u32_t.
>
> Since rte_mov16() is used in real code and rte_v128u32_t is only used to
> carry over the length of the copy, this patch replaces instances of
> sizeof(rte_v128u32_t) with a macro named MLX5_SIZE_MOV16 to better
> reflect the real usage in mlx5 PMD.
>
> Signed-off-by: Andre Muezerie <andremue at linux.microsoft.com>
Acked-by: Dariusz Sosnowski <dsosnowski at nvidia.com>
Best regards,
Dariusz Sosnowski
More information about the dev
mailing list