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);