@@ -158,18 +158,6 @@ Supports updating port MTU.
* **[related] API**: ``rte_eth_dev_set_mtu()``, ``rte_eth_dev_get_mtu()``.
-.. _nic_features_jumbo_frame:
-
-Jumbo frame
------------
-
-Supports Rx jumbo frames.
-
-* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``dev_conf.rxmode.mtu``.
-* **[related] rte_eth_dev_info**: ``max_rx_pktlen``.
-* **[related] API**: ``rte_eth_dev_set_mtu()``.
-
-
.. _nic_features_scattered_rx:
Scattered Rx
@@ -6,7 +6,6 @@
[Features]
Speed capabilities = Y
Queue start/stop = Y
-Jumbo frame = Y
Scattered Rx = Y
Basic stats = Y
Stats per queue = Y
@@ -9,7 +9,6 @@ Link status = Y
Link status event = Y
Queue start/stop = Y
MTU update = Y
-Jumbo frame = Y
Promiscuous mode = Y
Allmulticast mode = Y
Unicast MAC filter = Y
@@ -5,7 +5,6 @@
;
[Features]
Link status = Y
-Jumbo frame = Y
Scattered Rx = Y
Promiscuous mode = Y
Unicast MAC filter = Y
@@ -6,7 +6,6 @@
[Features]
Speed capabilities = Y
Link status = Y
-Jumbo frame = Y
Scattered Rx = Y
Promiscuous mode = Y
Allmulticast mode = Y
@@ -12,7 +12,6 @@ Fast mbuf free = Y
Queue start/stop = Y
Burst mode info = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
LRO = Y
TSO = Y
@@ -29,7 +29,6 @@ RSS reta update = Y
Inner RSS = Y
Inline protocol = Y
Flow control = Y
-Jumbo frame = Y
Scattered Rx = Y
L3 checksum offload = Y
L4 checksum offload = Y
@@ -28,7 +28,6 @@ RSS reta update = Y
Inner RSS = Y
Inline protocol = Y
Flow control = Y
-Jumbo frame = Y
L3 checksum offload = Y
L4 checksum offload = Y
Inner L3 checksum = Y
@@ -23,7 +23,6 @@ RSS key update = Y
RSS reta update = Y
Inner RSS = Y
Inline protocol = Y
-Jumbo frame = Y
Scattered Rx = Y
L3 checksum offload = Y
L4 checksum offload = Y
@@ -8,7 +8,6 @@ Speed capabilities = Y
Link status = Y
Queue start/stop = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
Promiscuous mode = Y
@@ -8,7 +8,6 @@ Speed capabilities = Y
Link status = Y
Queue start/stop = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
Promiscuous mode = Y
@@ -23,7 +23,6 @@ Shared Rx queue =
Burst mode info =
Power mgmt address monitor =
MTU update =
-Jumbo frame =
Scattered Rx =
LRO =
TSO =
@@ -8,7 +8,6 @@ Speed capabilities = Y
Link status = Y
Link status event = Y
Burst mode info = Y
-Jumbo frame = Y
MTU update = Y
Scattered Rx = Y
Promiscuous mode = Y
@@ -9,7 +9,6 @@ Link status = Y
Link status event = Y
Burst mode info = Y
Queue start/stop = Y
-Jumbo frame = Y
Scattered Rx = Y
MTU update = Y
Promiscuous mode = Y
@@ -10,7 +10,6 @@ Link status event = Y
Rx interrupt = Y
Free Tx mbuf on demand = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
Promiscuous mode = Y
Allmulticast mode = Y
@@ -8,7 +8,6 @@ Link status = Y
Link status event = Y
Rx interrupt = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
RSS hash = Y
@@ -10,7 +10,6 @@ Basic stats = Y
Promiscuous mode = Y
Allmulticast mode = Y
MTU update = Y
-Jumbo frame = Y
Queue start/stop = Y
CRC offload = Y
L3 checksum offload = P
@@ -11,7 +11,6 @@ Rx interrupt = Y
Queue start/stop = Y
Burst mode info = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
Promiscuous mode = Y
@@ -12,7 +12,6 @@ Queue start/stop = Y
Runtime Rx queue setup = Y
Runtime Tx queue setup = Y
MTU update = Y
-Jumbo frame = Y
Promiscuous mode = Y
Allmulticast mode = Y
Unicast MAC filter = Y
@@ -9,7 +9,6 @@ Link status = Y
Link status event = Y
Rx interrupt = Y
Queue start/stop = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
Promiscuous mode = Y
@@ -9,7 +9,6 @@ Link status = Y
Link status event = Y
Rx interrupt = Y
Queue start/stop = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
RSS hash = Y
@@ -9,7 +9,6 @@ Link status = Y
Link status event = Y
Queue start/stop = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
LRO = Y
@@ -14,7 +14,6 @@ Runtime Tx queue setup = Y
Burst mode info = Y
Free Tx mbuf on demand = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
LRO = Y
@@ -13,7 +13,6 @@ Runtime Tx queue setup = Y
Burst mode info = Y
Free Tx mbuf on demand = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
LRO = Y
@@ -14,7 +14,6 @@ Runtime Rx queue setup = Y
Runtime Tx queue setup = Y
Burst mode info = Y
Power mgmt address monitor = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
Promiscuous mode = Y
@@ -10,7 +10,6 @@ Rx interrupt = Y
Queue start/stop = Y
Power mgmt address monitor = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
Promiscuous mode = Y
@@ -13,7 +13,6 @@ Queue start/stop = Y
Burst mode info = Y
Power mgmt address monitor = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
Promiscuous mode = Y
@@ -5,7 +5,6 @@
;
[Features]
Queue start/stop = Y
-Jumbo frame = Y
Scattered Rx = Y
RSS hash = P
CRC offload = Y
@@ -9,7 +9,6 @@ Link status = Y
Link status event = Y
Rx interrupt = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
Promiscuous mode = Y
@@ -12,7 +12,6 @@ Packet type parsing = Y
Rx descriptor status = Y
Tx descriptor status = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
Promiscuous mode = Y
@@ -9,7 +9,6 @@ Link status = Y
Link status event = Y
Queue start/stop = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
LRO = Y
TSO = Y
@@ -11,7 +11,6 @@ Rx interrupt = Y
Queue start/stop = Y
Runtime Rx queue setup = Y
Runtime Tx queue setup = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
Promiscuous mode = Y
@@ -11,7 +11,6 @@ Rx interrupt = Y
Queue start/stop = Y
Power mgmt address monitor = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
LRO = Y
TSO = Y
@@ -8,7 +8,6 @@ Link status = Y
Rx interrupt = Y
Power mgmt address monitor = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
LRO = Y
TSO = Y
@@ -8,7 +8,6 @@ Speed capabilities = Y
Link status = Y
Link status event = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
Promiscuous mode = Y
Allmulticast mode = Y
@@ -6,7 +6,6 @@
[Features]
Link status = Y
Basic stats = Y
-Jumbo frame = Y
ARMv8 = Y
Power8 = Y
x86-32 = Y
@@ -11,7 +11,6 @@ Removal event = Y
Rx interrupt = Y
Queue start/stop = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
Promiscuous mode = Y
@@ -14,7 +14,6 @@ Queue start/stop = Y
Burst mode info = Y
Power mgmt address monitor = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
LRO = Y
TSO = Y
@@ -7,7 +7,6 @@
Speed capabilities = Y
Link status = Y
MTU update = Y
-Jumbo frame = Y
Promiscuous mode = Y
Unicast MAC filter = Y
CRC offload = Y
@@ -7,7 +7,6 @@
Speed capabilities = Y
Link status = Y
MTU update = Y
-Jumbo frame = Y
Promiscuous mode = Y
Allmulticast mode = Y
Unicast MAC filter = Y
@@ -10,7 +10,6 @@ Link status event = Y
Rx interrupt = Y
Queue start/stop = Y
MTU update = Y
-Jumbo frame = Y
Promiscuous mode = Y
TSO = Y
RSS hash = Y
@@ -10,7 +10,6 @@ Link status event = Y
Lock-free Tx queue = Y
Queue start/stop = P
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
Promiscuous mode = Y
Unicast MAC filter = Y
@@ -31,7 +31,6 @@ Inline protocol = Y
VLAN filter = Y
Flow control = Y
Rate limitation = Y
-Jumbo frame = Y
Scattered Rx = Y
VLAN offload = Y
QinQ offload = Y
@@ -28,7 +28,6 @@ Inner RSS = Y
VLAN filter = Y
Flow control = Y
Rate limitation = Y
-Jumbo frame = Y
VLAN offload = Y
QinQ offload = Y
L3 checksum offload = Y
@@ -24,7 +24,6 @@ Inner RSS = Y
Inline protocol = Y
VLAN filter = Y
Rate limitation = Y
-Jumbo frame = Y
Scattered Rx = Y
VLAN offload = Y
QinQ offload = Y
@@ -4,7 +4,6 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
-Jumbo frame = Y
Basic stats = Y
Multiprocess aware = Y
ARMv7 = Y
@@ -7,7 +7,6 @@
Speed capabilities = Y
Link status = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
LRO = Y
TSO = Y
@@ -7,7 +7,6 @@
Speed capabilities = Y
Link status = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
Promiscuous mode = Y
Allmulticast mode = Y
@@ -13,7 +13,6 @@ Queue start/stop = Y
Runtime Rx queue setup = Y
Runtime Tx queue setup = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
TSO = Y
Promiscuous mode = Y
@@ -9,7 +9,6 @@ Link status = Y
Link status event = Y
Queue start/stop = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
Promiscuous mode = Y
Allmulticast mode = Y
@@ -10,7 +10,6 @@ Link status event = Y
Rx interrupt = Y
Queue start/stop = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
LRO = Y
TSO = Y
@@ -9,7 +9,6 @@ Unicast MAC filter = Y
Multicast MAC filter = Y
Rx interrupt = Y
MTU update = Y
-Jumbo frame = Y
Scattered Rx = Y
LRO = Y
TSO = Y
@@ -9,7 +9,6 @@ Link status = Y
Link status event = Y
Queue start/stop = Y
MTU update = Y
-Jumbo frame = Y
LRO = Y
TSO = Y
Promiscuous mode = Y
@@ -2331,7 +2331,7 @@ eth_igb_rx_init(struct rte_eth_dev *dev)
* Configure support of jumbo frames, if any.
*/
max_len = dev->data->mtu + E1000_ETH_OVERHEAD;
- if ((dev->data->mtu & RTE_ETHER_MTU) != 0) {
+ if (dev->data->mtu > RTE_ETHER_MTU) {
rctl |= E1000_RCTL_LPE;
/*
@@ -2901,26 +2901,13 @@ i40e_rx_queue_config(struct i40e_rx_queue *rxq)
rxq->max_pkt_len =
RTE_MIN(hw->func_caps.rx_buf_chain_len * rxq->rx_buf_len,
data->mtu + I40E_ETH_OVERHEAD);
- if (data->mtu > RTE_ETHER_MTU) {
- if (rxq->max_pkt_len <= I40E_ETH_MAX_LEN ||
- rxq->max_pkt_len > I40E_FRAME_SIZE_MAX) {
- PMD_DRV_LOG(ERR, "maximum packet length must "
- "be larger than %u and smaller than %u,"
- "as jumbo frame is enabled",
- (uint32_t)I40E_ETH_MAX_LEN,
- (uint32_t)I40E_FRAME_SIZE_MAX);
- return I40E_ERR_CONFIG;
- }
- } else {
- if (rxq->max_pkt_len < RTE_ETHER_MIN_LEN ||
- rxq->max_pkt_len > I40E_ETH_MAX_LEN) {
- PMD_DRV_LOG(ERR, "maximum packet length must be "
- "larger than %u and smaller than %u, "
- "as jumbo frame is disabled",
- (uint32_t)RTE_ETHER_MIN_LEN,
- (uint32_t)I40E_ETH_MAX_LEN);
- return I40E_ERR_CONFIG;
- }
+ if (rxq->max_pkt_len < RTE_ETHER_MIN_LEN ||
+ rxq->max_pkt_len > I40E_FRAME_SIZE_MAX) {
+ PMD_DRV_LOG(ERR, "maximum packet length must be "
+ "larger than %u and smaller than %u",
+ (uint32_t)RTE_ETHER_MIN_LEN,
+ (uint32_t)I40E_FRAME_SIZE_MAX);
+ return I40E_ERR_CONFIG;
}
return 0;
@@ -585,29 +585,14 @@ iavf_init_rxq(struct rte_eth_dev *dev, struct iavf_rx_queue *rxq)
rxq->rx_buf_len * IAVF_MAX_CHAINED_RX_BUFFERS,
frame_size);
- /* Check if the jumbo frame and maximum packet length are set
- * correctly.
- */
- if (dev->data->mtu & RTE_ETHER_MTU) {
- if (max_pkt_len <= IAVF_ETH_MAX_LEN ||
- max_pkt_len > IAVF_FRAME_SIZE_MAX) {
- PMD_DRV_LOG(ERR, "maximum packet length must be "
- "larger than %u and smaller than %u, "
- "as jumbo frame is enabled",
- (uint32_t)IAVF_ETH_MAX_LEN,
- (uint32_t)IAVF_FRAME_SIZE_MAX);
- return -EINVAL;
- }
- } else {
- if (max_pkt_len < RTE_ETHER_MIN_LEN ||
- max_pkt_len > IAVF_ETH_MAX_LEN) {
- PMD_DRV_LOG(ERR, "maximum packet length must be "
- "larger than %u and smaller than %u, "
- "as jumbo frame is disabled",
- (uint32_t)RTE_ETHER_MIN_LEN,
- (uint32_t)IAVF_ETH_MAX_LEN);
- return -EINVAL;
- }
+ /* Check if maximum packet length is set correctly. */
+ if (max_pkt_len <= RTE_ETHER_MIN_LEN ||
+ max_pkt_len > IAVF_FRAME_SIZE_MAX) {
+ PMD_DRV_LOG(ERR, "maximum packet length must be "
+ "larger than %u and smaller than %u",
+ (uint32_t)IAVF_ETH_MAX_LEN,
+ (uint32_t)IAVF_FRAME_SIZE_MAX);
+ return -EINVAL;
}
rxq->max_pkt_len = max_pkt_len;
@@ -69,29 +69,14 @@ ice_dcf_init_rxq(struct rte_eth_dev *dev, struct ice_rx_queue *rxq)
max_pkt_len = RTE_MIN(ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len,
dev->data->mtu + ICE_ETH_OVERHEAD);
- /* Check if the jumbo frame and maximum packet length are set
- * correctly.
- */
- if (dev_data->mtu > RTE_ETHER_MTU) {
- if (max_pkt_len <= ICE_ETH_MAX_LEN ||
- max_pkt_len > ICE_FRAME_SIZE_MAX) {
- PMD_DRV_LOG(ERR, "maximum packet length must be "
- "larger than %u and smaller than %u, "
- "as jumbo frame is enabled",
- (uint32_t)ICE_ETH_MAX_LEN,
- (uint32_t)ICE_FRAME_SIZE_MAX);
- return -EINVAL;
- }
- } else {
- if (max_pkt_len < RTE_ETHER_MIN_LEN ||
- max_pkt_len > ICE_ETH_MAX_LEN) {
- PMD_DRV_LOG(ERR, "maximum packet length must be "
- "larger than %u and smaller than %u, "
- "as jumbo frame is disabled",
- (uint32_t)RTE_ETHER_MIN_LEN,
- (uint32_t)ICE_ETH_MAX_LEN);
- return -EINVAL;
- }
+ /* Check maximum packet length is set correctly. */
+ if (max_pkt_len <= RTE_ETHER_MIN_LEN ||
+ max_pkt_len > ICE_FRAME_SIZE_MAX) {
+ PMD_DRV_LOG(ERR, "maximum packet length must be "
+ "larger than %u and smaller than %u",
+ (uint32_t)RTE_ETHER_MIN_LEN,
+ (uint32_t)ICE_FRAME_SIZE_MAX);
+ return -EINVAL;
}
rxq->max_pkt_len = max_pkt_len;
@@ -281,26 +281,13 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq)
RTE_MIN((uint32_t)ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len,
frame_size);
- if (dev_data->mtu > RTE_ETHER_MTU) {
- if (rxq->max_pkt_len <= ICE_ETH_MAX_LEN ||
- rxq->max_pkt_len > ICE_FRAME_SIZE_MAX) {
- PMD_DRV_LOG(ERR, "maximum packet length must "
- "be larger than %u and smaller than %u,"
- "as jumbo frame is enabled",
- (uint32_t)ICE_ETH_MAX_LEN,
- (uint32_t)ICE_FRAME_SIZE_MAX);
- return -EINVAL;
- }
- } else {
- if (rxq->max_pkt_len < RTE_ETHER_MIN_LEN ||
- rxq->max_pkt_len > ICE_ETH_MAX_LEN) {
- PMD_DRV_LOG(ERR, "maximum packet length must be "
- "larger than %u and smaller than %u, "
- "as jumbo frame is disabled",
- (uint32_t)RTE_ETHER_MIN_LEN,
- (uint32_t)ICE_ETH_MAX_LEN);
- return -EINVAL;
- }
+ if (rxq->max_pkt_len <= RTE_ETHER_MIN_LEN ||
+ rxq->max_pkt_len > ICE_FRAME_SIZE_MAX) {
+ PMD_DRV_LOG(ERR, "maximum packet length must "
+ "be larger than %u and smaller than %u",
+ (uint32_t)RTE_ETHER_MIN_LEN,
+ (uint32_t)ICE_FRAME_SIZE_MAX);
+ return -EINVAL;
}
if (rxq->offloads & DEV_RX_OFFLOAD_TIMESTAMP) {
@@ -1080,7 +1080,7 @@ igc_rx_init(struct rte_eth_dev *dev)
IGC_WRITE_REG(hw, IGC_RCTL, rctl & ~IGC_RCTL_EN);
/* Configure support of jumbo frames, if any. */
- if (dev->data->mtu & RTE_ETHER_MTU)
+ if (dev->data->mtu > RTE_ETHER_MTU)
rctl |= IGC_RCTL_LPE;
else
rctl &= ~IGC_RCTL_LPE;
@@ -5078,7 +5078,7 @@ ixgbe_dev_rx_init(struct rte_eth_dev *dev)
/*
* Configure jumbo frame support, if any.
*/
- if ((dev->data->mtu & RTE_ETHER_MTU) != 0) {
+ if (dev->data->mtu > RTE_ETHER_MTU) {
hlreg0 |= IXGBE_HLREG0_JUMBOEN;
maxfrs = IXGBE_READ_REG(hw, IXGBE_MAXFRS);
maxfrs &= 0x0000FFFF;