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