In ethdev, it will ignore setting maximum packet length to less than 1518. The changes is to fix it and let less than 1518 can be really set for maximum packet length.
Signed-off-by: Helin Zhang <helin.zhang at intel.com> Signed-off-by: Mark Chen <jing.d.chen at intel.com> --- lib/librte_ether/rte_ethdev.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 1e2a16e..daa191b 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -553,9 +553,13 @@ rte_eth_dev_configure(uint8_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q, (unsigned)ETHER_MIN_LEN); return (-EINVAL); } - } else - /* Use default value */ - dev->data->dev_conf.rxmode.max_rx_pkt_len = ETHER_MAX_LEN; + } else { + if (dev_conf->rxmode.max_rx_pkt_len < ETHER_MIN_LEN || + dev_conf->rxmode.max_rx_pkt_len > ETHER_MAX_LEN) + /* Use default value */ + dev->data->dev_conf.rxmode.max_rx_pkt_len = + ETHER_MAX_LEN; + } /* multipe queue mode checking */ diag = rte_eth_dev_check_mq_mode(port_id, nb_rx_q, nb_tx_q, dev_conf); -- 1.8.1.4