net/mana: check for vendor_part_id when probing RDMA device
PATCH 1/1 net/mana: check for vendor_part_id when probing RDMA device
From: Long Li <[email protected]>
The RDMA kernel driver may expose two MANA RDMA devices, for RC and RAW QP types. The purpose is to support fast service mode at SOC. Depending on kernel version, the probe may fail if DPDK picks up the wrong device.
Add check for vendor_part_id and RAW QP capability when probing the MANA device. This check is compatible with all kernel versions.
Fixes 517ed6e2d590 ("net/mana: add basic driver with build environment")
Signed-off-by Long Li <[email protected]>
--- drivers/net/mana/mana.c | 14 ++++++++++++++ drivers/net/mana/mana.h | 4 ++++ 2 files changed, 18 insertions(+)
drivers/net/mana/mana.c +14 -0
@@ -1490,6 +1490,20 @@ mana_pci_probe_mac(struct rte_pci_device *pci_dev,continue ; } +if (dev_attr.orig_attr.vendor_part_id) { +if (dev_attr.orig_attr.vendor_part_id != +GDMA_DEVICE_MANA ) { +DRV_LOG (INFO ,"Skip device vendor part id %x" , + dev_attr.orig_attr.vendor_part_id); +continue ; + } +if (!dev_attr.raw_packet_caps) { +DRV_LOG (INFO , +"Skip device without RAW support" ); +continue ; + } + } +for (port =1 ; port <= dev_attr.orig_attr.phys_port_cnt; port++) {struct rte_ether_addr addr;
drivers/net/mana/mana.h +4 -0
@@ -12,6 +12,10 @@ struct mana_shared_data {RTE_ATOMIC (uint32_t ) secondary_cnt; }; +/* vendor_part_id returned from ibv_query_device */ +#define GDMA_DEVICE_MANA 2 +#define GDMA_DEVICE_MANA_IB 3 +#define MANA_MAX_MTU 9000#define MIN_RX_BUF_SIZE 1024#define MANA_MAX_MAC_ADDR 1
Signature · 1 line
2.34.1