Files
ipng.ch/static/assets/r86s/vpp-cx3.patch
2024-08-04 17:41:39 +02:00

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,