net/dpaa2: configure jumbo frames

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
This commit is contained in:
Hemant Agrawal 2017-05-26 12:21:22 +05:30 committed by Ferruh Yigit
parent 977d0006ad
commit e164084994
2 changed files with 21 additions and 0 deletions

View File

@ -6,6 +6,7 @@
[Features]
Link status = Y
Queue start/stop = Y
Jumbo frame = Y
MTU update = Y
Promiscuous mode = Y
Allmulticast mode = Y

View File

@ -57,6 +57,7 @@ static struct rte_dpaa2_driver rte_dpaa2_pmd;
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
@ -278,6 +279,20 @@ dpaa2_eth_dev_configure(struct rte_eth_dev *dev)
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) {
@ -778,6 +793,11 @@ dpaa2_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
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
*/