diff options
-rw-r--r-- | build/external/packages/dpdk.mk | 1 | ||||
-rw-r--r-- | src/plugins/dpdk/device/dpdk.h | 3 | ||||
-rw-r--r-- | src/plugins/dpdk/device/format.c | 4 | ||||
-rw-r--r-- | src/plugins/dpdk/device/init.c | 14 |
4 files changed, 21 insertions, 1 deletions
diff --git a/build/external/packages/dpdk.mk b/build/external/packages/dpdk.mk index 5b64703ed22..a068210a5bb 100644 --- a/build/external/packages/dpdk.mk +++ b/build/external/packages/dpdk.mk @@ -194,6 +194,7 @@ $(B)/custom-config: $(B)/.dpdk-patch.ok Makefile $(call set,RTE_LIBRTE_PMD_AESNI_GCM,$(AESNI)) $(call set,RTE_LIBRTE_MLX4_PMD,$(DPDK_MLX4_PMD)) $(call set,RTE_LIBRTE_MLX5_PMD,$(DPDK_MLX5_PMD)) + $(call set,RTE_LIBRTE_BNXT_PMD,y) $(call set,RTE_LIBRTE_PMD_SOFTNIC,n) $(call set,RTE_IBVERBS_LINK_DLOPEN,y) $(call set,RTE_LIBRTE_PMD_TAP,$(DPDK_TAP_PMD)) diff --git a/src/plugins/dpdk/device/dpdk.h b/src/plugins/dpdk/device/dpdk.h index 07c333d4781..d58d2daa768 100644 --- a/src/plugins/dpdk/device/dpdk.h +++ b/src/plugins/dpdk/device/dpdk.h @@ -83,7 +83,8 @@ extern vlib_node_registration_t admin_up_down_process_node; _ ("net_failsafe", FAILSAFE) \ _ ("net_liovf", LIOVF_ETHER) \ _ ("net_qede", QEDE) \ - _ ("net_netvsc", NETVSC) + _ ("net_netvsc", NETVSC) \ + _ ("net_bnxt", BNXT) typedef enum { diff --git a/src/plugins/dpdk/device/format.c b/src/plugins/dpdk/device/format.c index 942def63b0a..292c083fca5 100644 --- a/src/plugins/dpdk/device/format.c +++ b/src/plugins/dpdk/device/format.c @@ -362,6 +362,10 @@ format_dpdk_device_type (u8 * s, va_list * args) dev_type = "Microsoft Hyper-V Netvsc"; break; + case VNET_DPDK_PMD_BNXT: + dev_type = "Broadcom NetXtreme E/S-Series"; + break; + default: case VNET_DPDK_PMD_UNKNOWN: dev_type = "### UNKNOWN ###"; diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c index 4cf827c7949..25f9e952824 100644 --- a/src/plugins/dpdk/device/init.c +++ b/src/plugins/dpdk/device/init.c @@ -455,6 +455,7 @@ dpdk_lib_init (dpdk_main_t * dm) case VNET_DPDK_PMD_MLX4: case VNET_DPDK_PMD_MLX5: case VNET_DPDK_PMD_QEDE: + case VNET_DPDK_PMD_BNXT: xd->port_type = port_type_from_speed_capa (&dev_info); break; @@ -969,6 +970,19 @@ dpdk_bind_devices_to_uio (dpdk_config_main_t * conf) { continue; } + /* Broadcom NetXtreme S, and E series only */ + else if (d->vendor_id == 0x14e4 && + ((d->device_id >= 0x16c0 && + d->device_id != 0x16c6 && d->device_id != 0x16c7 && + d->device_id != 0x16dd && d->device_id != 0x16f7 && + d->device_id != 0x16fd && d->device_id != 0x16fe && + d->device_id != 0x170d && d->device_id != 0x170c && + d->device_id != 0x170e && d->device_id != 0x1712 && + d->device_id != 0x1713) || + (d->device_id == 0x1604 || d->device_id == 0x1605 || + d->device_id == 0x1614 || d->device_id == 0x1606 || + d->device_id == 0x1609 || d->device_id == 0x1614))) + ; else { dpdk_log_warn ("Unsupported PCI device 0x%04x:0x%04x found " |