[dpdk-dev] [PATCH v6] net/virtio: add set_mtu in virtio
Stephen Hemminger
stephen at networkplumber.org
Thu Sep 22 01:22:13 CEST 2016
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.
2. Defining VLAN_TAG_SIZE is irrelevant if doing vlan offload.
3. Virtio doesn't insert CRC, therefore CRC_LEN is irrelevant
More information about the dev
mailing list