[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