static int dpaa2_dev_uninit(struct rte_eth_dev *eth_dev);
static int dpaa2_dev_set_link_up(struct rte_eth_dev *dev);
static int dpaa2_dev_set_link_down(struct rte_eth_dev *dev);
+static int dpaa2_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu);
/**
* Atomically reads the link status information from global
PMD_INIT_FUNC_TRACE();
+ if (eth_conf->rxmode.jumbo_frame == 1) {
+ if (eth_conf->rxmode.max_rx_pkt_len <= DPAA2_MAX_RX_PKT_LEN) {
+ ret = dpaa2_dev_mtu_set(dev,
+ eth_conf->rxmode.max_rx_pkt_len);
+ if (ret) {
+ PMD_INIT_LOG(ERR,
+ "unable to set mtu. check config\n");
+ return ret;
+ }
+ } else {
+ return -1;
+ }
+ }
+
/* Check for correct configuration */
if (eth_conf->rxmode.mq_mode != ETH_MQ_RX_RSS &&
data->nb_rx_queues > 1) {
if ((mtu < ETHER_MIN_MTU) || (frame_size > DPAA2_MAX_RX_PKT_LEN))
return -EINVAL;
+ if (frame_size > ETHER_MAX_LEN)
+ dev->data->dev_conf.rxmode.jumbo_frame = 1;
+ else
+ dev->data->dev_conf.rxmode.jumbo_frame = 0;
+
/* Set the Max Rx frame length as 'mtu' +
* Maximum Ethernet header length
*/