On Tue, 25 Mar 2025 20:32:53 +0700
Lukáš Šišmiš <sis...@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);

Reply via email to