From: Thomas Monjalon <thomas@monjalon.net>
To: olivier.matz@6wind.com
Cc: dev@dpdk.org, xuemingl@mellanox.com, tomaszx.kulasek@intel.com
Subject: [dpdk-dev] [PATCH 1/2] mbuf: fix Tx checksum offload API doc
Date: Fri, 20 Apr 2018 02:13:23 +0200 [thread overview]
Message-ID: <20180420001324.11813-2-thomas@monjalon.net> (raw)
In-Reply-To: <20180420001324.11813-1-thomas@monjalon.net>
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 <thomas@monjalon.net>
---
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)
--
2.16.2
next prev parent reply other threads:[~2018-04-20 0:13 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-20 0:13 [dpdk-dev] [PATCH 0/2] mbuf: improve Tx " Thomas Monjalon
2018-04-20 0:13 ` Thomas Monjalon [this message]
2018-04-23 8:14 ` [dpdk-dev] [PATCH 1/2] mbuf: fix Tx checksum " Olivier Matz
2018-04-20 0:13 ` [dpdk-dev] [PATCH 2/2] mbuf: improve API doc for tunnel Tx offloads Thomas Monjalon
2018-04-23 8:14 ` Olivier Matz
2018-04-23 8:53 ` Thomas Monjalon
2018-04-23 9:03 ` Olivier Matz
2018-04-23 10:48 ` [dpdk-dev] [PATCH v2 0/2] mbuf: improve Tx offload API doc Thomas Monjalon
2018-04-23 10:48 ` [dpdk-dev] [PATCH v2 1/2] mbuf: fix Tx checksum " Thomas Monjalon
2018-04-23 10:48 ` [dpdk-dev] [PATCH v2 2/2] mbuf: improve API doc for tunnel Tx offloads Thomas Monjalon
2018-04-23 11:06 ` Olivier Matz
2018-04-23 14:10 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180420001324.11813-2-thomas@monjalon.net \
--to=thomas@monjalon.net \
--cc=dev@dpdk.org \
--cc=olivier.matz@6wind.com \
--cc=tomaszx.kulasek@intel.com \
--cc=xuemingl@mellanox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).