From a6cebea95c63b08a0fdf28cdacc9a721dce5f9d9 Mon Sep 17 00:00:00 2001 From: Yong Wang Date: Mon, 29 Aug 2016 12:18:50 -0700 Subject: [PATCH] net/vmxnet3: enable LRO This change enables device LRO if requested. The current implementation of jumbo frame Rx can be used for LRO directly without changes. Note that since jumbo frame uses both ring0 and ring1, it cannot be enabled in UPT (VMDirectPath) mode. Signed-off-by: Yong Wang Acked-by: Stephen Hemminger --- doc/guides/nics/features/vmxnet3.ini | 1 + drivers/net/vmxnet3/vmxnet3_ethdev.c | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/guides/nics/features/vmxnet3.ini b/doc/guides/nics/features/vmxnet3.ini index c5c75ad927..ef95932ab5 100644 --- a/doc/guides/nics/features/vmxnet3.ini +++ b/doc/guides/nics/features/vmxnet3.ini @@ -9,6 +9,7 @@ Link status event = Y Queue start/stop = Y MTU update = Y Jumbo frame = Y +LRO = Y TSO = Y Promiscuous mode = Y Allmulticast mode = Y diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c index 3a4c777d1e..51e2d4cf80 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c @@ -527,6 +527,11 @@ vmxnet3_setup_driver_shared(struct rte_eth_dev *dev) if (dev->data->dev_conf.rxmode.hw_ip_checksum) devRead->misc.uptFeatures |= VMXNET3_F_RXCSUM; + if (dev->data->dev_conf.rxmode.enable_lro) { + devRead->misc.uptFeatures |= VMXNET3_F_LRO; + devRead->misc.maxNumRxSG = 0; + } + if (port_conf.rxmode.mq_mode == ETH_MQ_RX_RSS) { ret = vmxnet3_rss_configure(dev); if (ret != VMXNET3_SUCCESS) @@ -728,7 +733,8 @@ vmxnet3_dev_info_get(__rte_unused struct rte_eth_dev *dev, dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP | DEV_RX_OFFLOAD_UDP_CKSUM | - DEV_RX_OFFLOAD_TCP_CKSUM; + DEV_RX_OFFLOAD_TCP_CKSUM | + DEV_RX_OFFLOAD_TCP_LRO; dev_info->tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT | -- 2.20.1