56 lines
2.1 KiB
Diff
56 lines
2.1 KiB
Diff
diff --git a/build/external/packages/dpdk.mk b/build/external/packages/dpdk.mk
|
|
index 8ee65faac..44cbdfc13 100644
|
|
--- a/build/external/packages/dpdk.mk
|
|
+++ b/build/external/packages/dpdk.mk
|
|
@@ -38,7 +38,7 @@ dpdk_depends := $(if $(ARCH_X86_64), ipsec-mb)
|
|
else
|
|
dpdk_depends := rdma-core $(if $(ARCH_X86_64), ipsec-mb)
|
|
endif
|
|
-DPDK_MLX_DEFAULT := $(shell if grep -q "rdma=$(rdma-core_version) dpdk=$(dpdk_version)" mlx_rdma_dpdk_matrix.txt; then echo 'y'; else echo 'n'; fi)
|
|
+DPDK_MLX_DEFAULT := y
|
|
DPDK_MLX4_PMD ?= $(DPDK_MLX_DEFAULT)
|
|
DPDK_MLX5_PMD ?= $(DPDK_MLX_DEFAULT)
|
|
DPDK_MLX5_COMMON_PMD ?= $(DPDK_MLX_DEFAULT)
|
|
diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c
|
|
index 453d9cff7..c93870cdc 100644
|
|
--- a/src/plugins/dpdk/device/init.c
|
|
+++ b/src/plugins/dpdk/device/init.c
|
|
@@ -306,6 +306,8 @@ dpdk_lib_init (dpdk_main_t * dm)
|
|
vnet_hw_interface_t *hi;
|
|
dpdk_device_t *xd;
|
|
char *if_num_fmt;
|
|
+ u8 mlx4_devlist[64];
|
|
+ int mlx4_devlist_idx = 0;
|
|
|
|
/* vlib_buffer_t template */
|
|
vec_validate_aligned (dm->per_thread_data, tm->n_vlib_mains - 1,
|
|
@@ -426,7 +428,27 @@ dpdk_lib_init (dpdk_main_t * dm)
|
|
xd->name = format (xd->name, "Ethernet");
|
|
}
|
|
|
|
- if (dr && dr->interface_number_from_port_id)
|
|
+ int mlx4_port_num = 0;
|
|
+
|
|
+ if (strstr (di.driver_name, "net_mlx4") &&
|
|
+ (pci_dev = dpdk_get_pci_device (&di)))
|
|
+ {
|
|
+ for (int i = 0; i < sizeof (mlx4_devlist); i++)
|
|
+ {
|
|
+ if (mlx4_devlist[i] == pci_dev->addr.bus)
|
|
+ {
|
|
+ dpdk_log_warn ("Dev ID %u with driver %s already "
|
|
+ "existing, giving next port",
|
|
+ pci_dev->addr.bus, di.driver_name);
|
|
+ mlx4_port_num++;
|
|
+ }
|
|
+ }
|
|
+ mlx4_devlist[mlx4_devlist_idx] = pci_dev->addr.bus;
|
|
+ mlx4_devlist_idx++;
|
|
+ xd->name = format (xd->name, "%u/%u/%u", pci_dev->addr.bus,
|
|
+ pci_dev->addr.devid, mlx4_port_num);
|
|
+ }
|
|
+ else if (dr && dr->interface_number_from_port_id)
|
|
xd->name = format (xd->name, "%u", port_id);
|
|
else if ((pci_dev = dpdk_get_pci_device (&di)))
|
|
xd->name = format (xd->name, if_num_fmt, pci_dev->addr.bus,
|