[dpdk-dev] net/nfp: fix jumbo settings
Checks
Commit Message
When jumbo frames is configured, the hardware mtu needs to be updated to
the specified max_rx_pkt_len. Also, changing mtu should be avoided once
the PMD port started.
Fixes: defb9a5dd156 ("nfp: introduce driver initialization")
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
---
drivers/net/nfp/nfp_net.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
Comments
On 11/24/2017 6:24 AM, Alejandro Lucero wrote:
> When jumbo frames is configured, the hardware mtu needs to be updated to
> the specified max_rx_pkt_len. Also, changing mtu should be avoided once
> the PMD port started.
>
> Fixes: defb9a5dd156 ("nfp: introduce driver initialization")
Cc: stable@dpdk.org
>
> Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Applied to dpdk-next-net/master, thanks.
@@ -489,7 +489,7 @@ enum nfp_qcp_ptr {
}
if (rxmode->jumbo_frame)
- /* this is handled in rte_eth_dev_configure */
+ hw->mtu = rxmode->max_rx_pkt_len;
if (rxmode->hw_strip_crc) {
PMD_INIT_LOG(INFO, "strip CRC not supported");
@@ -1469,6 +1469,13 @@ enum nfp_qcp_ptr {
if ((mtu < ETHER_MIN_MTU) || ((uint32_t)mtu > hw->max_mtu))
return -EINVAL;
+ /* mtu setting is forbidden if port is started */
+ if (dev->data->dev_started) {
+ PMD_DRV_LOG(ERR, "port %d must be stopped before configuration",
+ dev_data->port_id);
+ return -EBUSY;
+ }
+
/* switch to jumbo mode if needed */
if ((uint32_t)mtu > ETHER_MAX_LEN)
dev->data->dev_conf.rxmode.jumbo_frame = 1;