DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] Issue with TX of Jumbo frames on 10G interfaces ONLY
@ 2017-07-14  5:38 Yeddula, Avinash
  2017-07-24 13:14 ` Bruce Richardson
  0 siblings, 1 reply; 3+ messages in thread
From: Yeddula, Avinash @ 2017-07-14  5:38 UTC (permalink / raw)
  To: dev

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;


Thanks
-Avinash

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] Issue with TX of Jumbo frames on 10G interfaces ONLY
  2017-07-14  5:38 [dpdk-dev] Issue with TX of Jumbo frames on 10G interfaces ONLY Yeddula, Avinash
@ 2017-07-24 13:14 ` Bruce Richardson
  2017-07-24 16:16   ` Yeddula, Avinash
  0 siblings, 1 reply; 3+ messages in thread
From: Bruce Richardson @ 2017-07-24 13:14 UTC (permalink / raw)
  To: Yeddula, Avinash; +Cc: dev

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] Issue with TX of Jumbo frames on 10G interfaces ONLY
  2017-07-24 13:14 ` Bruce Richardson
@ 2017-07-24 16:16   ` Yeddula, Avinash
  0 siblings, 0 replies; 3+ messages in thread
From: Yeddula, Avinash @ 2017-07-24 16:16 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

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@intel.com] 
Sent: Monday, July 24, 2017 6:14 AM
To: Yeddula, Avinash <ayeddula@ciena.com>
Cc: dev@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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-07-24 16:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-14  5:38 [dpdk-dev] Issue with TX of Jumbo frames on 10G interfaces ONLY Yeddula, Avinash
2017-07-24 13:14 ` Bruce Richardson
2017-07-24 16:16   ` Yeddula, Avinash

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).