dpdk: Enable bnxt PMD

This adds support to compile the bnxt PMD that supports Broadcom's
10/25/40/50/100/200 Gbps NICs.  Tested with modified DPDK driver on
x86_64 and aarch64 targets that is pending upstream acceptance, but
should compile just fine today.

Type: feature

Signed-off-by: Andy Gospodarek <gospo@broadcom.com>
Change-Id: I735a991c4cae4fa77e5605094facea54b781a1db
This commit is contained in:
Andy Gospodarek
2019-11-12 17:55:01 -05:00
committed by Damjan Marion
parent f41244f423
commit c3731ac89d
4 changed files with 21 additions and 1 deletions

View File

@ -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))

View File

@ -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
{

View File

@ -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 ###";

View File

@ -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 "