net/dpaa2: configure jumbo frames
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
This commit is contained in:
parent
977d0006ad
commit
e164084994
@ -6,6 +6,7 @@
|
||||
[Features]
|
||||
Link status = Y
|
||||
Queue start/stop = Y
|
||||
Jumbo frame = Y
|
||||
MTU update = Y
|
||||
Promiscuous mode = Y
|
||||
Allmulticast mode = Y
|
||||
|
@ -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
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user