From patchwork Fri Apr 20 00:13:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Monjalon X-Patchwork-Id: 38590 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5EC38BD2E; Fri, 20 Apr 2018 02:13:38 +0200 (CEST) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id AF50FA568 for ; Fri, 20 Apr 2018 02:13:34 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 537AC21B77; Thu, 19 Apr 2018 20:13:34 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Thu, 19 Apr 2018 20:13:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= cc:date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=mesmtp; bh=JHoDWSAHHJ4nwr 6+CUmVzEryj7SLrPSpZvkvR98rndQ=; b=olnvniKU7nZreY059lfZ/l9RPpRvMn WAfjdWVWWMYEfNTq9MBSgOF4A0pMzZwv6xMpWPPBNQM5006r1s94d6Y1VSqjiS7m HCUq/9A/cShk0IcvYfT4JoI9b6M54N6g6xWQuwipDgdDPJmtoH2Y1sSG+EQWHskO SottWPEvFY2wA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=JHoDWSAHHJ4nwr6+CUmVzEryj7SLrPSpZvkvR98rndQ=; b=FROm4oCE 1UEaUFz9yEDc2Mj2FK2rOfCWzCmDUKJ4NDwD6/GTkpClAGEyZOAQktDbbcq3oUeM RkifTYj3Gjn7Xreup7AYw7afi9G6SG6vbfG/GFkkBLyblsAavMy9mlGggujVpx79 pVisqdWvMc/IUxi9eOZ+Y3wpSVHzjpKoBhoCud6AlT1knuMsyxKwxs5gBtP2M7HE PJ47HBmj1JBLsYEMYn9K66Qi+ttcJjUlE5IiGkCv/x4eXJ6JjLPO02Zp2YWlgLcM K0gCnLmjFbtsCTLU5j+AhZSzkxxsw2Ga0SEq13uRbMe7Y53S++pIP2VRw/j+KgLb Plfac0heRByUqQ== X-ME-Sender: Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 8C207E4661; Thu, 19 Apr 2018 20:13:33 -0400 (EDT) From: Thomas Monjalon To: olivier.matz@6wind.com Cc: dev@dpdk.org, xuemingl@mellanox.com, tomaszx.kulasek@intel.com Date: Fri, 20 Apr 2018 02:13:23 +0200 Message-Id: <20180420001324.11813-2-thomas@monjalon.net> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180420001324.11813-1-thomas@monjalon.net> References: <20180420001324.11813-1-thomas@monjalon.net> Subject: [dpdk-dev] [PATCH 1/2] mbuf: fix Tx checksum offload API doc X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" When introducing rte_eth_tx_prepare(), the constraints on checksum pre-filling for Tx offloads were relaxed because implemented in the PMDs with rte_net_intel_cksum_flags_prepare() helper. As a consequence, these old requirements are removed for: - PKT_TX_OUTER_IP_CKSUM - PKT_TX_IP_CKSUM - PKT_TX_[L4]_CKSUM - PKT_TX_TCP_SEG Not sure SCTP offload is properly implemented though. A reference to rte_eth_tx_prepare() is added in rte_eth_tx_burst() doc. Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation") Cc: tomaszx.kulasek@intel.com Signed-off-by: Thomas Monjalon Acked-by: Olivier Matz --- lib/librte_ether/rte_ethdev.h | 3 +++ lib/librte_mbuf/rte_mbuf.h | 16 +++------------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index 7e4e57b3c..eb090df9a 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -3911,6 +3911,9 @@ static inline int rte_eth_tx_descriptor_status(uint16_t port_id, * invoke this function concurrently on the same tx queue without SW lock. * @see rte_eth_dev_info_get, struct rte_eth_txconf::txq_flags * + * @see rte_eth_tx_prepare to perform some prior checks or adjustments + * for offloads. + * * @param port_id * The port identifier of the Ethernet device. * @param queue_id diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h index 06eceba37..7ae3bab14 100644 --- a/lib/librte_mbuf/rte_mbuf.h +++ b/lib/librte_mbuf/rte_mbuf.h @@ -226,12 +226,8 @@ extern "C" { * - set the PKT_TX_TCP_SEG flag in mbuf->ol_flags (this flag implies * PKT_TX_TCP_CKSUM) * - set the flag PKT_TX_IPV4 or PKT_TX_IPV6 - * - if it's IPv4, set the PKT_TX_IP_CKSUM flag and write the IP checksum - * to 0 in the packet + * - if it's IPv4, set the PKT_TX_IP_CKSUM flag * - fill the mbuf offload information: l2_len, l3_len, l4_len, tso_segsz - * - calculate the pseudo header checksum without taking ip_len in account, - * and set it in the TCP header. Refer to rte_ipv4_phdr_cksum() and - * rte_ipv6_phdr_cksum() that can be used as helpers. */ #define PKT_TX_TCP_SEG (1ULL << 50) @@ -244,9 +240,6 @@ extern "C" { * - fill l2_len and l3_len in mbuf * - set the flags PKT_TX_TCP_CKSUM, PKT_TX_SCTP_CKSUM or PKT_TX_UDP_CKSUM * - set the flag PKT_TX_IPV4 or PKT_TX_IPV6 - * - calculate the pseudo header checksum and set it in the L4 header (only - * for TCP or UDP). See rte_ipv4_phdr_cksum() and rte_ipv6_phdr_cksum(). - * For SCTP, set the crc field to 0. */ #define PKT_TX_L4_NO_CKSUM (0ULL << 52) /**< Disable L4 cksum of TX pkt. */ #define PKT_TX_TCP_CKSUM (1ULL << 52) /**< TCP cksum of TX pkt. computed by NIC. */ @@ -258,7 +251,6 @@ extern "C" { * Offload the IP checksum in the hardware. The flag PKT_TX_IPV4 should * also be set by the application, although a PMD will only check * PKT_TX_IP_CKSUM. - * - set the IP checksum field in the packet to 0 * - fill the mbuf offload information: l2_len, l3_len */ #define PKT_TX_IP_CKSUM (1ULL << 54) @@ -288,10 +280,8 @@ extern "C" { /** * Offload the IP checksum of an external header in the hardware. The - * flag PKT_TX_OUTER_IPV4 should also be set by the application, alto ugh - * a PMD will only check PKT_TX_IP_CKSUM. The IP checksum field in the - * packet must be set to 0. - * - set the outer IP checksum field in the packet to 0 + * flag PKT_TX_OUTER_IPV4 should also be set by the application, altough + * a PMD will only check PKT_TX_OUTER_IP_CKSUM. * - fill the mbuf offload information: outer_l2_len, outer_l3_len */ #define PKT_TX_OUTER_IP_CKSUM (1ULL << 58)