struct rte_gro_param gro_param;
uint32_t gso_types;
uint16_t data_size;
+ uint16_t eth_overhead;
bool warning = 0;
int k;
int ret;
rte_exit(EXIT_FAILURE,
"rte_eth_dev_info_get() failed\n");
+ /* Update the max_rx_pkt_len to have MTU as RTE_ETHER_MTU */
+ if (port->dev_info.max_mtu != UINT16_MAX &&
+ port->dev_info.max_rx_pktlen > port->dev_info.max_mtu)
+ eth_overhead = port->dev_info.max_rx_pktlen -
+ port->dev_info.max_mtu;
+ else
+ eth_overhead =
+ RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;
+
+ if (port->dev_conf.rxmode.max_rx_pkt_len <=
+ (uint32_t)(RTE_ETHER_MTU + eth_overhead))
+ port->dev_conf.rxmode.max_rx_pkt_len =
+ RTE_ETHER_MTU + eth_overhead;
+ else
+ port->dev_conf.rxmode.offloads |=
+ DEV_RX_OFFLOAD_JUMBO_FRAME;
+
if (!(port->dev_info.tx_offload_capa &
DEV_TX_OFFLOAD_MBUF_FAST_FREE))
port->dev_conf.txmode.offloads &=
}
}
+ if (port->flow_list)
+ port_flow_flush(pi);
+
if (rte_eth_dev_stop(pi) != 0)
RTE_LOG(ERR, EAL, "rte_eth_dev_stop failed for port %u\n",
pi);