From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wi0-f169.google.com (mail-wi0-f169.google.com [209.85.212.169]) by dpdk.org (Postfix) with ESMTP id A4BE0ADFE for ; Fri, 13 Feb 2015 10:23:04 +0100 (CET) Received: by mail-wi0-f169.google.com with SMTP id em10so10665060wid.0 for ; Fri, 13 Feb 2015 01:23:04 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=4Q8G6qWK+zqfKg/G5DbcaFR74Kd8HLfYx/qIMOKvY20=; b=j8oQPWkZ+ARAQUhykbNR/VJkfEtytKJ+1f5mMvldM45VgztXzywU5He9i4I8LjlKcP M6Kla1FcMZyvgMKUi6IvsJQ+++hwEe820qhm+61UZ34xR3CFKoZiDGXSmiXXdkObfaP/ LVL0H8GPktO2EdNLT5egQ7TgHkHbwuhLVxfIDeabu86SSAJE1lNJ3GgX9fpdouFeOfes NHjIGfEDAbpeZFi/Mt6B7wLpN3QWeYnBPBkOEapo2zAoJu3+UIZKxToikWeCJgqsTDe7 U4SWG/pZh9K/1hfNxeN1ZFSAcXRdrbJ/ZfUDZzUONb809QQu3a1O0aEiY5+LboKWYCVA IJBA== X-Gm-Message-State: ALoCoQlkqzPtalNBsIMSE4DM+lmdml7eCAZn3NiQnLSv0oNnSp4tBOezU41DPxF/yzgRCBw9YeO2 X-Received: by 10.180.198.44 with SMTP id iz12mr14018713wic.36.1423819384520; Fri, 13 Feb 2015 01:23:04 -0800 (PST) Received: from glumotte.dev.6wind.com (6wind.net2.nerim.net. [213.41.180.237]) by mx.google.com with ESMTPSA id a5sm2100153wib.20.2015.02.13.01.23.03 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 13 Feb 2015 01:23:04 -0800 (PST) From: Olivier Matz To: dev@dpdk.org Date: Fri, 13 Feb 2015 10:22:35 +0100 Message-Id: <1423819371-24222-5-git-send-email-olivier.matz@6wind.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1423819371-24222-1-git-send-email-olivier.matz@6wind.com> References: <1423041925-26956-1-git-send-email-olivier.matz@6wind.com> <1423819371-24222-1-git-send-email-olivier.matz@6wind.com> Subject: [dpdk-dev] [PATCH v3 04/20] i40e: remove the use of PKT_TX_UDP_TUNNEL_PKT flag X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Feb 2015 09:23:04 -0000 The definition of the flag in rte_mbuf.h was: TX packet is an UDP tunneled packet. It must be specified when using outer checksum offload (PKT_TX_OUTER_IP_CKSUM) This flag was used to tell the NIC that the offload type is UDP (I40E_TXD_CTX_UDP_TUNNELING flag). In the datasheet, it says it's required to specify the tunnel type in the register. However, some tests (see [1]) showed that it also works without this flag. Moreover, it is not explained how the hardware use this information. From a network perspective, this information is useless for calculating the outer IP checksum as it does not depend on the payload. Having this flag in the API would force the application to specify the tunnel type for something that looks only useful for this PMD. It will limit the number of possible tunnel types (we would need a flag for each tunnel type) and therefore prevent to support outer IP checksum for proprietary tunnels. Finally, if a hardware advertises "I support outer IP checksum", it must be supported for any payload types. This has been validated by [2], knowing that the ipip test case was fixed after this test report [3]. [1] http://dpdk.org/ml/archives/dev/2015-January/011380.html [2] http://dpdk.org/ml/archives/dev/2015-January/011475.html [3] http://dpdk.org/ml/archives/dev/2015-January/011610.html Signed-off-by: Olivier Matz --- lib/librte_pmd_i40e/i40e_rxtx.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/librte_pmd_i40e/i40e_rxtx.c b/lib/librte_pmd_i40e/i40e_rxtx.c index b467461..d7b55d8 100644 --- a/lib/librte_pmd_i40e/i40e_rxtx.c +++ b/lib/librte_pmd_i40e/i40e_rxtx.c @@ -482,7 +482,7 @@ i40e_txd_enable_checksum(uint64_t ol_flags, } /* UDP tunneling packet TX checksum offload */ - if (unlikely(ol_flags & PKT_TX_UDP_TUNNEL_PKT)) { + if (unlikely(ol_flags & PKT_TX_OUTER_IP_CKSUM)) { *td_offset |= (outer_l2_len >> 1) << I40E_TX_DESC_LENGTH_MACLEN_SHIFT; @@ -497,7 +497,6 @@ i40e_txd_enable_checksum(uint64_t ol_flags, /* Now set the ctx descriptor fields */ *cd_tunneling |= (outer_l3_len >> 2) << I40E_TXD_CTX_QW0_EXT_IPLEN_SHIFT | - I40E_TXD_CTX_UDP_TUNNELING | (l2_len >> 1) << I40E_TXD_CTX_QW0_NATLEN_SHIFT; @@ -1165,8 +1164,7 @@ i40e_calc_context_desc(uint64_t flags) { uint64_t mask = 0ULL; - if (flags | PKT_TX_UDP_TUNNEL_PKT) - mask |= PKT_TX_UDP_TUNNEL_PKT; + mask |= PKT_TX_OUTER_IP_CKSUM; #ifdef RTE_LIBRTE_IEEE1588 mask |= PKT_TX_IEEE1588_TMST; -- 2.1.4