[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