[dpdk-dev] Question about jumbo frame support on ixgbe

Zhao1, Wei wei.zhao1 at intel.com
Thu Nov 1 04:10:00 CET 2018


Hi,  Hideyuki Yamashita


> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Hideyuki Yamashita
> Sent: Wednesday, October 31, 2018 4:22 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] Question about jumbo frame support on ixgbe
> 
> Hi,
> 
> I have a very basic question about jumbo frame support for ixgbe.
> 
> I understand that some drivers support jumbo frame and if it receive jumbo
> packet (greater than 1500 byte), it creates mbuf chains and pass it to DPDK
> application through e.g. rte_eth_rx_burst.
> 
> However it looks that ixgbe driver does not support jumbo frame.
> 
> Q1. Is my understanding above correct?
> Q2. If A1 equals YES, then are there any future plan to support jumbo frame
> on ixgbe?

Your understanding above correct, but 82599 and x550 has support jumbo frame receive by now!
In order to use this feature on ixgbe, you need do the following steps:

1. you must set dev_conf.rxmode. max_rx_pkt_len to a big number, eg. 9500, when doing port start, for example when start port in API rte_eth_dev_start().
ixgbe_dev_rx_init() will chose a scatter receive function if the max_rx_pkt_len is larger than the mbuf size, you do not need to set DEV_RX_OFFLOAD_SCATTER bit in 
dev_conf.rxmode.offloads, this is the work of PMD driver when it detect jumbo frame is needed to be supported.

2. set dev_conf.txmode.offloads bit of  DEV_TX_OFFLOAD_MULTI_SEGS to 1 when doing rte_eth_tx_queue_setup() or , this is very important!! 
If you not do this, you may only receive JUMBO frame but not forward out. Because as you say,
the receive packets maybe has a mbuf chains(depending on the size relationship of mbuf size and the max_rx_pkt_len).
But in ixgbe PMD for setting tx function, it is confusing  in ixgbe_set_tx_function(), you need  to take care of it, it is based on queue offloads bit!

3. enable it using CLI "port config mtu <port_id> <value>" if you are using testpmd or using API rte_eth_dev_set_mtu() for your own APP.
The mtu number is just what you need to update for a large number.

And all my discussion is based on pf port, if you are using vf, we can have a further discussion.
Please feel free to contact me if necessary.

> 
> BR,
> Hideyuki Yamashita
> NTT TechnoCross



More information about the dev mailing list