]> git.droids-corp.org - dpdk.git/commitdiff
net/ngbe: support jumbo frame
authorJiawen Wu <jiawenwu@trustnetic.com>
Thu, 21 Oct 2021 09:50:04 +0000 (17:50 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 29 Oct 2021 22:53:19 +0000 (00:53 +0200)
Add to support Rx jumbo frames.

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
doc/guides/nics/ngbe.rst
drivers/net/ngbe/ngbe_ethdev.h
drivers/net/ngbe/ngbe_rxtx.c

index 6a6ae3924382c03a0b311bbcbcd786aa42d035d9..702a4550418a402c4ae55cc7b7b75e4389b1ebc0 100644 (file)
@@ -14,6 +14,7 @@ Features
 - Packet type information
 - Checksum offload
 - TSO offload
+- Jumbo frames
 - Link state information
 - Scattered and gather for TX and RX
 
index 286cb893d69e5ba9b948e879960514781fa65b18..b270343a3eed104cced792a6f368c5179724df09 100644 (file)
@@ -17,6 +17,9 @@
 
 #define NGBE_QUEUE_ITR_INTERVAL_DEFAULT        500 /* 500us */
 
+/* The overhead from MTU to max frame size. */
+#define NGBE_ETH_OVERHEAD (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN)
+
 #define NGBE_MISC_VEC_ID               RTE_INTR_VEC_ZERO_OFFSET
 #define NGBE_RX_VEC_START              RTE_INTR_VEC_RXTX_OFFSET
 
index 6687d58e6a36e5cf8a546ae8f48b308f55f614f7..48983fedbdc2345990ef24dc93e53a11d13e483d 100644 (file)
@@ -2364,8 +2364,11 @@ ngbe_dev_rx_init(struct rte_eth_dev *dev)
        hlreg0 &= ~NGBE_SECRXCTL_XDSA;
        wr32(hw, NGBE_SECRXCTL, hlreg0);
 
+       /*
+        * Configure jumbo frame support, if any.
+        */
        wr32m(hw, NGBE_FRMSZ, NGBE_FRMSZ_MAX_MASK,
-                       NGBE_FRMSZ_MAX(NGBE_FRAME_SIZE_DFT));
+               NGBE_FRMSZ_MAX(dev->data->mtu + NGBE_ETH_OVERHEAD));
 
        /* Setup Rx queues */
        for (i = 0; i < dev->data->nb_rx_queues; i++) {