Determining vendor and model from the port ID
Stephen Hemminger
stephen at networkplumber.org
Tue Mar 25 15:07:49 CET 2025
On Tue, 25 Mar 2025 20:32:53 +0700
Lukáš Šišmiš <sismis at cesnet.cz> wrote:
> Hello all,
>
> I am trying to determine what is the vendor and model of the port ID
> that I am interacting with but all references lead me to an obsolete API.
>
> The goal is to execute specific code only when I am dealing with
> Mellanox ConnectX-4-family cards. Longer explanation below.
>
> I would like to access "struct rte_pci_id" but it always seems hidden
> only on the driver level.
>
> Is there any way how to approach this?
>
>
> Longer explanation of the problem:
>
> In https://github.com/OISF/suricata/pull/12654 I am using dev_info to
> get the maximum number of allowed TX descriptors for the port that is
> advertised by the PMD. But when I set the actual number of TX
> descriptors then the driver complains "minimal data inline requirements
> (18) are not satisfied (12) on port 0, try the smaller Tx queue size
> (32768)". However, this problem occurs only on ConnectX-4 family and not
> on CX5/6/7 (that's why I cannot limit this to just mlx5 PMD).
>
> Alternatively, can this be fixed/addressed directly in the MLX5 PMD?
> MLX5 PMD needs to advertise 16384 TX descriptors as the maximum only for
> ConnectX-4 family.
> (Putting Darius, Viacheslav in the loop, please reassign if needed)
>
> Thank you.
>
> Best,
>
> Lukas
>
The device name contains the PCI id.
Use rte_eth_dev_get_name_by_port(uint16_t port_id, char *name);
More information about the users
mailing list