On 3/25/25 21:07, Stephen Hemminger wrote:
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, LukasThe device name contains the PCI id. Use rte_eth_dev_get_name_by_port(uint16_t port_id, char *name);
Not really, it also confused me but PCI ID is not the same as PCI address. PCI address changes as the system desires whereas PCI ID should be device-specific information that is the same across all instances of the same model. lspci -nn is a good example, look at the trailing numbers, the first one is the vendor ID and the second one is model number.
smime.p7s
Description: S/MIME Cryptographic Signature