[dpdk-dev] Issue with TX of Jumbo frames on 10G interfaces ONLY

Yeddula, Avinash ayeddula at ciena.com
Mon Jul 24 18:16:31 CEST 2017


Thanks Bruce for replying, I kind of figured it out. Like you mentioned I do see some performance dip with linked-mbufs, I believe this expected, is there a way to minimize the  impact, all I need is to enable 
linked-mbuf".

Thanks
-Avinash

-----Original Message-----
From: Bruce Richardson [mailto:bruce.richardson at intel.com] 
Sent: Monday, July 24, 2017 6:14 AM
To: Yeddula, Avinash <ayeddula at ciena.com>
Cc: dev at dpdk.org
Subject: Re: [dpdk-dev] Issue with TX of Jumbo frames on 10G interfaces ONLY

On Fri, Jul 14, 2017 at 05:38:45AM +0000, Yeddula, Avinash wrote:
> Hi All,
> 
> In order to support Jumbo frames for our application, I made the below 
> changes. The intention, here is to use "linked-mbufs instead of using
> 1 single 9k MBUF".
> 
> With the below changes, I'm able to send/receive  9k size frames on 1G 
> interfaces successfully.  No issues what so ever with  1G interfaces.
> But, when it comes to 10G interfaces, I confirmed my app writes a 
> jumbo frame on to the port  "rte_eth_tx_burst", but that frame "never"
> showed up on the  other end, it got lost somewhere inside  this API 
> "rte_eth_tx_burst" .
> 
> I do not see any type of "tx" stats ticked. Thought will check with 
> the you folks, before I dig inside "rte_eth_tx_burst" API.  Is there 
> any configs I'm missing for TX port, please comment ?
> 
> This is the driver I use for "net_ixgbe" for my 10G interface.
> 
>       // local port config structure for initialization, code below
>       may modify struct rte_eth_conf port_conf = { .rxmode = {
>       .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 */ .jumbo_frame    = 1,           /**<
>       Jumbo Frame Support always enabled */ .max_rx_pkt_len = 9216,
>       /**< If jumbo_frame is enabled then max_rx_pkt_len must be set
>       */ .hw_strip_crc   = 0,           /**< CRC stripped by hardware
>       */ }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, }, .intr_conf.lsc =
>       0, };
> 
> 
>       port_conf.rxmode.enable_scatter = 1;
>       port_conf.rxmode.hw_ip_checksum = 0;
> 
> 
When creating the TX queue itself via "rte_eth_tx_queue_setup()", ensure the txq_flags field in the conf structure is set to zero. By default in many drivers, the transmission of jumbo frames via multiple buffers is disabled for performance reasons.

/Bruce



More information about the dev mailing list