[dpdk-stable] patch 'net/virtio: do not claim to support LRO' has been queued to stable release 17.05.2
Yuanhan Liu
yliu at fridaylinux.org
Tue Aug 29 11:27:57 CEST 2017
On Mon, Aug 21, 2017 at 05:30:15PM +0800, Yuanhan Liu wrote:
> Hi,
>
> FYI, your patch has been queued to stable release 17.05.2
>
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 08/24/17. So please
> shout if anyone has objections.
According to following discussions, I'd like to drop this one and another
one ("net/virtio: do not falsely claim to do IP checksum").
http://dpdk.org/ml/archives/dev/2017-August/073341.html
--yliu
>
> ---
> >From 6de4d8eee1aafaf8eb8316501aa87d9874cf83bc Mon Sep 17 00:00:00 2001
> From: Stephen Hemminger <stephen at networkplumber.org>
> Date: Fri, 7 Jul 2017 12:52:50 -0700
> Subject: [PATCH] net/virtio: do not claim to support LRO
>
> [ upstream commit 701a64622c2653c0736042d2f790081db79afdc7 ]
>
> The current virtio supports Transmit Segmentation Offload, but
> does not really support Large Receive Offload. The driver was confusing
> the two offloads.
>
> Fixes: 86d59b21468a ("net/virtio: support LRO")
>
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> Acked-by: Yuanhan Liu <yuanhan.liu at linux.intel.com>
> ---
> drivers/net/virtio/virtio_ethdev.c | 22 ++--------------------
> 1 file changed, 2 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
> index 1651c59..d65667c 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -1659,11 +1659,8 @@ virtio_dev_configure(struct rte_eth_dev *dev)
> {
> const struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode;
> struct virtio_hw *hw = dev->data->dev_private;
> - uint64_t req_features;
> - int ret;
>
> PMD_INIT_LOG(DEBUG, "configure");
> - req_features = VIRTIO_PMD_DEFAULT_GUEST_FEATURES;
>
> /* Virtio does L4 checksum but not L3! */
> if (rxmode->hw_ip_checksum) {
> @@ -1671,23 +1668,10 @@ virtio_dev_configure(struct rte_eth_dev *dev)
> "virtio does not support IP checksum");
> return -ENOTSUP;
> }
> - if (rxmode->enable_lro)
> - req_features |=
> - (1ULL << VIRTIO_NET_F_GUEST_TSO4) |
> - (1ULL << VIRTIO_NET_F_GUEST_TSO6);
> -
> - /* if request features changed, reinit the device */
> - if (req_features != hw->req_guest_features) {
> - ret = virtio_init_device(dev, req_features);
> - if (ret < 0)
> - return ret;
> - }
>
> - if (rxmode->enable_lro &&
> - (!vtpci_with_feature(hw, VIRTIO_NET_F_GUEST_TSO4) ||
> - !vtpci_with_feature(hw, VIRTIO_NET_F_GUEST_TSO4))) {
> + if (rxmode->enable_lro) {
> PMD_DRV_LOG(NOTICE,
> - "lro not available on this host");
> + "virtio does not support Large Receive Offload");
> return -ENOTSUP;
> }
>
> @@ -1913,8 +1897,6 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
> }
> tso_mask = (1ULL << VIRTIO_NET_F_GUEST_TSO4) |
> (1ULL << VIRTIO_NET_F_GUEST_TSO6);
> - if ((host_features & tso_mask) == tso_mask)
> - dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_TCP_LRO;
>
> dev_info->tx_offload_capa = 0;
> if (hw->guest_features & (1ULL << VIRTIO_NET_F_CSUM)) {
> --
> 2.7.4
More information about the stable
mailing list