[dpdk-dev] [PATCH v6] net/virtio: add set_mtu in virtio

Dey, Souvik sodey at sonusnet.com
Thu Sep 22 02:08:38 CEST 2016


Answers inline.

--
Regards,
Souvik

-----Original Message-----
From: Stephen Hemminger [mailto:stephen at networkplumber.org] 
Sent: Wednesday, September 21, 2016 7:22 PM
To: Dey, Souvik <sodey at sonusnet.com>
Cc: mark.b.kavanagh at intel.com; yuanhan.liu at linux.intel.com; dev at dpdk.org
Subject: Re: [PATCH v6] net/virtio: add set_mtu in virtio

On Wed, 21 Sep 2016 19:11:47 -0400
Dey <sodey at sonusnet.com> wrote:

>  
> +
> +#define VLAN_TAG_SIZE           4    /* 802.3ac tag (not DMA'd) */
> +
> +static int virtio_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) {
> +       struct rte_eth_dev_info dev_info;
> +       uint32_t ether_hdr_len = ETHER_HDR_LEN + ETHER_CRC_LEN + VLAN_TAG_SIZE;
> +       uint32_t frame_size = mtu + ether_hdr_len;
> +
> +       virtio_dev_info_get(dev, &dev_info);
> +
> +       if (mtu < ETHER_MIN_MTU || frame_size > dev_info.max_rx_pktlen) {
> +               PMD_INIT_LOG(ERR, "MTU should be between %d and %d\n",
> +                               ETHER_MIN_MTU,
> +                               (dev_info.max_rx_pktlen - ether_hdr_len));
> +               return -EINVAL;
> +       }
> +       return 0;
> +}

I am fine with the general idea of this patch but:
  1. Calling virtio_dev_info_get is needlessly wasteful when all you want
     is to access the max packet length. Since max_rx_pktlen is always
     VIRTIO_MAX_RX_PKTLEN, please just use that.
[Dey, Souvik] I am using the virtio_dev_info_get as in future can/may support the max_rx_pktlen as a variable to be set by  the application. This will keep the changes future proof. As we need to support till 65535 instead of 9728 as the linux does.

  2. Defining VLAN_TAG_SIZE is irrelevant if doing vlan offload.
[Dey, Souvik] vlan offload is not mandatory. Se again still have vlan being sent up to the application. In that case we need to consider the vlan length in the Ethernet size.

  3. Virtio doesn't insert CRC, therefore CRC_LEN is irrelevant
[Dey, Souvik] I am not sure of this. Mark commented earlier to consider this length too. Mark what do you suggest ?



More information about the dev mailing list