[dpdk-dev] Fwd: dpdk ixgbe PMD lro limits

Asim Jamshed asim.jamshed at gmail.com
Tue Jun 28 11:23:23 CEST 2016


On Tue, Jun 28, 2016 at 5:42 PM, Lu, Wenzhuo <wenzhuo.lu at intel.com> wrote:
> Hi Asim,
>
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Asim Jamshed
>> Sent: Tuesday, June 28, 2016 2:41 PM
>> To: dev at dpdk.org
>> Subject: [dpdk-dev] Fwd: dpdk ixgbe PMD lro limits
>>
>> Hi,
>>
>> Apologies in advance if this question has been asked in the past.
>>
>> I have been performing mTCP-related tests on dpdk-16.04 with ixgbe PMD. I am
>> using 82599ES 10-Gigabit adapters for my experiments. I have a few queries
>> regarding LRO.
>>
>> 1) What is the theoretical maximum size of the Ethernet frame I can get from
>> the driver once LRO is enabled? In my experiments, I was seeing packet size as
>> high as 16KB. Can it be as high as ~2^16 bytes (iph->tot_len)?
> I'm not sure about if I understand your question correctly. Assume you're talking about the TCP segment after LRO. So, it's said there are no limitations on the maximum packet length.

The issue that I am facing is fixing the size of mbuf.
The default size of mbuf is (2048 + sizeof(struct rte_mbuf) +
RTE_PKTMBUF_HEADROOM) which needs to be augmented
once lro is enabled (am I right?). I tried stretching the limits
of the mempool by increasing mbuf size to (65536 +
sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM),
and I got the following error:

Initializing port 0... EAL: Error - exiting with code: 1
  Cause: rte_eth_rx_queue_setup:err=-22, port=0, queueid: 0

My exact calls for rte_mempool_create() and
rte_eth_rx_queue_setup() were:

pktmbuf_pool = rte_mempool_create(name, 8192,
                                  MBUF_SIZE, 256,
                                  sizeof(struct rte_pktmbuf_pool_private),
                                  rte_pktmbuf_pool_init, NULL,
                                  rte_pktmbuf_init, NULL,
                                  rte_socket_id(), 0);

ret = rte_eth_rx_queue_setup(portid, rxlcore_id, 128,
rte_eth_dev_socket_id(portid), &rx_conf,
                                                pktmbuf_pool);

>
>>
>> 2) Since the NIC is reassembling payloads (of one flow) into a single packet,
>> what does the Ethernet controller do with the tcp checksum field in the TCP
>> header? I am observing that each LRO packet has checksum value as zero? Is
>> that normal? I could not find any relevant documentation on the Web.
> That's expected.
> You can search 82599 datasheet. I think that's what you're looking for.

Thanks!


Regards,
--Asim

>
>>
>> Thanks in advance,
>> --Asim


More information about the dev mailing list