[PATCH v3] net/mlx5: remove use of sizeof(rte_v128u32_t)
Thomas Monjalon
thomas at monjalon.net
Sun Jul 20 23:43:25 CEST 2025
09/07/2025 09:26, Dariusz Sosnowski:
> 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>
Applied, thanks.
Looks like the generic vector types rte_v*_t are useless,
and not compatible with MSVC.
We may think whether we really want to keep them.
More information about the dev
mailing list