When enabling hardware outer UDP TX offload checksum, the EIPT judgment is always true because ICE_TX_CTX_EIPT_NONE = 0x0.
This patch fixes it by checking the non-zero EIPT flag. Fixes: 2ed011776334 ("net/ice: fix outer UDP Tx checksum offload") Cc: sta...@dpdk.org Signed-off-by: Shiyang He <shiyangx...@intel.com> --- drivers/net/ice/ice_rxtx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c index 13aabe97a5..3e2264de7d 100644 --- a/drivers/net/ice/ice_rxtx.c +++ b/drivers/net/ice/ice_rxtx.c @@ -2751,7 +2751,7 @@ ice_parse_tunneling_params(uint64_t ol_flags, * Calculate the tunneling UDP checksum. * Shall be set only if L4TUNT = 01b and EIPT is not zero */ - if (!(*cd_tunneling & ICE_TX_CTX_EIPT_NONE) && + if ((*cd_tunneling & ICE_TXD_CTX_QW0_EIPT_M) != ICE_TX_CTX_EIPT_NONE && (*cd_tunneling & ICE_TXD_CTX_UDP_TUNNELING) && (ol_flags & RTE_MBUF_F_TX_OUTER_UDP_CKSUM)) *cd_tunneling |= ICE_TXD_CTX_QW0_L4T_CS_M; -- 2.34.1