[dpdk-dev] Fwd: dpdk ixgbe PMD lro limits
Lu, Wenzhuo
wenzhuo.lu at intel.com
Wed Jun 29 02:29:15 CEST 2016
Hi Asim,
> -----Original Message-----
> From: Asim Jamshed [mailto:asim.jamshed at gmail.com]
> Sent: Tuesday, June 28, 2016 5:23 PM
> To: Lu, Wenzhuo
> Cc: dev at dpdk.org
> Subject: Re: [dpdk-dev] Fwd: dpdk ixgbe PMD lro limits
>
> 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:
I don't think you need to change the size of mbuf. Please check this field of mbuf,
"struct rte_mbuf *next; /**< Next segment of scattered packet. */"
>
> 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