[PATCH 5/7] net/nfb: support setting Rx MTU
Stephen Hemminger
stephen at networkplumber.org
Wed Feb 18 19:20:58 CET 2026
On Fri, 6 Feb 2026 18:04:33 +0100
spinler at cesnet.cz wrote:
> +static int
> +nfb_eth_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
> +{
> + unsigned int i;
> + struct nc_rxmac_status status;
> + struct pmd_internals *intl = dev->process_private;
> + uint16_t frame_length_max_capable;
> +
> + mtu += RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;
> +
Since mtu is 16 bit value, you need to use uint32_t to avoid
overflow.
Something like:
+ uint32_t frame_len = (uint32_t)mtu + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;
+ if (frame_len > priv->frame_len_max_cap)
+ return -EINVAL;
+ for (i = 0; i < intl->max_rxmac; ++i)
+ nc_rxmac_set_frame_length(intl->rxmac[i], frame_len, RXMAC_FRAME_LENGTH_MAX);
More information about the dev
mailing list