On Wed, Sep 16, 2026 at 05:12:35PM +0300, Omar Munchaev wrote:
> rte_validate_tx_offload() returns 0 on success.
> The i40e, iavf and ice drivers treat any non-zero
s/any non-zero/a zero/
> return as an error and drop the packet, causing valid packets to be
> dropped when Tx offload checking is enabled via EAL, e.g.:
>
> -a 81:00.0,mbuf_check=offload
>
> Only reject the packet when the return value is not 0.
>
Fixes: 82b03af55a1b ("net/i40e: support mbuf checks in Tx path")
Fixes: 21dad1fc78cb ("net/iavf: support mbuf checks in Tx path")
Fixes: 2a0244d611b4 ("net/ice: support mbuf checks in Tx path")
Cc: [email protected]
> Signed-off-by: Omar Munchaev <[email protected]>
Fixes look correct to me.
Acked-by: Bruce Richardson <[email protected]>
> ---
> drivers/net/intel/i40e/i40e_rxtx.c | 2 +-
> drivers/net/intel/iavf/iavf_rxtx.c | 2 +-
> drivers/net/intel/ice/ice_rxtx.c | 2 +-
> 3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/intel/i40e/i40e_rxtx.c
> b/drivers/net/intel/i40e/i40e_rxtx.c
> index e29fcff661..ee70f7ce4f 100644
> --- a/drivers/net/intel/i40e/i40e_rxtx.c
> +++ b/drivers/net/intel/i40e/i40e_rxtx.c
> @@ -1194,7 +1194,7 @@ i40e_xmit_pkts_check(void *tx_queue, struct rte_mbuf
> **tx_pkts, uint16_t nb_pkts
> break;
> }
>
> - if (!rte_validate_tx_offload(mb)) {
> + if (rte_validate_tx_offload(mb) != 0) {
> PMD_TX_LOG(ERR, "INVALID mbuf: TX offload setup
> error");
> pkt_error = true;
> break;
> diff --git a/drivers/net/intel/iavf/iavf_rxtx.c
> b/drivers/net/intel/iavf/iavf_rxtx.c
> index 4f2ffe6188..10d33660d9 100644
> --- a/drivers/net/intel/iavf/iavf_rxtx.c
> +++ b/drivers/net/intel/iavf/iavf_rxtx.c
> @@ -3813,7 +3813,7 @@ iavf_xmit_pkts_check(void *tx_queue, struct rte_mbuf
> **tx_pkts,
> break;
> }
>
> - if (!rte_validate_tx_offload(mb)) {
> + if (rte_validate_tx_offload(mb) != 0) {
> PMD_TX_LOG(ERR, "INVALID mbuf: TX offload setup
> error");
> pkt_error = true;
> break;
> diff --git a/drivers/net/intel/ice/ice_rxtx.c
> b/drivers/net/intel/ice/ice_rxtx.c
> index c4b5454c53..3d98d821b2 100644
> --- a/drivers/net/intel/ice/ice_rxtx.c
> +++ b/drivers/net/intel/ice/ice_rxtx.c
> @@ -3669,7 +3669,7 @@ ice_xmit_pkts_check(void *tx_queue, struct rte_mbuf
> **tx_pkts, uint16_t nb_pkts)
> break;
> }
>
> - if (!rte_validate_tx_offload(mb)) {
> + if (rte_validate_tx_offload(mb) != 0) {
> PMD_TX_LOG(ERR, "INVALID mbuf: TX offload setup
> error");
> pkt_error = true;
> break;
> --
> 2.54.0
>