[dpdk-users] Fails to receive data more than 1500 bytes.

Dharmesh Mehta mehtadharmesh at yahoo.com
Fri Aug 25 02:01:48 CEST 2017






/* empty vmdq configuration structure. Filled in programatically */static struct rte_eth_conf vmdq_conf_default = { .rxmode = { .mq_mode        = ETH_MQ_RX_VMDQ_ONLY, .split_hdr_size = 0, .header_split   = 0, /**< Header Split disabled */ .hw_ip_checksum = 0, /**< IP checksum offload disabled */ .hw_vlan_filter = 0, /**< VLAN filtering disabled */ /*  * It is necessary for 1G NIC such as I350,  * this fixes bug of ipv4 forwarding in guest can't  * forward pakets from one virtio dev to another virtio dev.  */ .hw_vlan_strip  = 1, /**< VLAN strip enabled. */ .jumbo_frame    = 0, /**< Jumbo Frame Support disabled */ .hw_strip_crc   = 1, /**< CRC stripped by hardware */ .enable_scatter = 1, //required for jumbofram + 1500. .jumbo_frame = 1, //required for jumbofram + 1500. },
 .txmode = { .mq_mode = ETH_MQ_TX_NONE, }, .rx_adv_conf = { /*  * should be overridden separately in code with  * appropriate values  */ .vmdq_rx_conf = { .nb_queue_pools = ETH_8_POOLS, .enable_default_pool = 0, .default_pool = 0, .nb_pool_maps = 0, .pool_map = {{0, 0},}, }, },};
This is my config. am i missing something?

      From: Stephen Hemminger <stephen at networkplumber.org>
 To: Dharmesh Mehta <mehtadharmesh at yahoo.com> 
Cc: Users <users at dpdk.org>
 Sent: Thursday, August 24, 2017 4:18 PM
 Subject: Re: [dpdk-users] Fails to receive data more than 1500 bytes.
   
On Thu, 24 Aug 2017 22:19:27 +0000 (UTC)
Dharmesh Mehta <mehtadharmesh at yahoo.com> wrote:

> Hello,
> I am using Intel i350 NIC card, and I am not able to receive data more than 1500 bytes in a packet. I tried igb_uio as well as uio_pci_generic driver, but both fails.
> If I reduce data <= 1500 bytes than it works, but any thing more than 1500 is not able to receive.
> Do I have to tune any config parameter in order to support more than 1500?
> I tried to set MTU from code using API - rte_eth_dev_set_mtu(port_id, mtu) , but no success.
> 0000:03:00.0 'I350 Gigabit Network Connection 1521' drv=igb_uio unused=vfio-pci,uio_pci_generic0000:03:00.1 'I350 Gigabit Network Connection 1521' drv=uio_pci_generic unused=igb_uio,vfio-pci0000:03:00.2 'I350 Gigabit Network Connection 1521' drv=uio_pci_generic unused=igb_uio,vfio-pci0000:03:00.3 'I350 Gigabit Network Connection 1521' drv=uio_pci_generic unused=igb_uio,vfio-pci
> Thanks in advance.DM.

In order to support >1500 bytes, you need to at least:
    1. set jumbo_frame when setting rxmode
    2. set enable_scatter in rxmode (unless mtu + overhead < pool size)
    3. make sure pool mbuf size > eth->min_rx_buf_size


   


More information about the users mailing list