diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/dpdk/device/dpdk.h | 1 | ||||
-rw-r--r-- | src/plugins/dpdk/device/format.c | 4 | ||||
-rw-r--r-- | src/plugins/dpdk/device/init.c | 18 |
3 files changed, 23 insertions, 0 deletions
diff --git a/src/plugins/dpdk/device/dpdk.h b/src/plugins/dpdk/device/dpdk.h index 68d9e712b4e..a0441818899 100644 --- a/src/plugins/dpdk/device/dpdk.h +++ b/src/plugins/dpdk/device/dpdk.h @@ -68,6 +68,7 @@ extern vlib_node_registration_t admin_up_down_process_node; _ ("net_i40e", I40E) \ _ ("net_i40e_vf", I40EVF) \ _ ("net_ice", ICE) \ + _ ("net_iavf", IAVF) \ _ ("net_virtio", VIRTIO) \ _ ("net_enic", ENIC) \ _ ("net_vmxnet3", VMXNET3) \ diff --git a/src/plugins/dpdk/device/format.c b/src/plugins/dpdk/device/format.c index 693f92d4a81..0eb2726110a 100644 --- a/src/plugins/dpdk/device/format.c +++ b/src/plugins/dpdk/device/format.c @@ -282,6 +282,10 @@ format_dpdk_device_type (u8 * s, va_list * args) dev_type = "Intel E810 Family"; break; + case VNET_DPDK_PMD_IAVF: + dev_type = "Intel iAVF"; + break; + case VNET_DPDK_PMD_FM10K: dev_type = "Intel FM10000 Family Ethernet Switch"; break; diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c index ac79ac4b627..c994416ff4d 100644 --- a/src/plugins/dpdk/device/init.c +++ b/src/plugins/dpdk/device/init.c @@ -476,6 +476,24 @@ dpdk_lib_init (dpdk_main_t * dm) } break; + /* iAVF */ + case VNET_DPDK_PMD_IAVF: + xd->port_type = VNET_DPDK_PORT_TYPE_ETH_VF; + xd->supported_flow_actions = VNET_FLOW_ACTION_MARK | + VNET_FLOW_ACTION_REDIRECT_TO_NODE | + VNET_FLOW_ACTION_REDIRECT_TO_QUEUE | + VNET_FLOW_ACTION_BUFFER_ADVANCE | + VNET_FLOW_ACTION_COUNT | VNET_FLOW_ACTION_DROP; + + if (dm->conf->no_tx_checksum_offload == 0) + { + xd->port_conf.txmode.offloads |= DEV_TX_OFFLOAD_TCP_CKSUM; + xd->port_conf.txmode.offloads |= DEV_TX_OFFLOAD_UDP_CKSUM; + xd->flags |= + DPDK_DEVICE_FLAG_TX_OFFLOAD | + DPDK_DEVICE_FLAG_INTEL_PHDR_CKSUM; + } + case VNET_DPDK_PMD_THUNDERX: xd->port_type = VNET_DPDK_PORT_TYPE_ETH_VF; |