[dpdk-dev,1/3] pmd: add new flag to indicate TX TSO operation on the packet

Message ID 20141013143834.19211.44077.stgit@gklab-18-011.igk.intel.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

miroslaw.walukiewicz@intel.com Oct. 13, 2014, 2:38 p.m. UTC
  From: Miroslaw Walukiewicz <miroslaw.walukiewicz@intel.com>

Transmission of TCP packets could be accelerated by
HW Transmit Segmentation Offload. With TSO packets up to
64K could be transmismitted.

When this flag is set the PMD drived will enable TCP segmentation.

The new field tso_segsz is added to indicate how long is TCP TSO segment.

Signed-off-by: Mirek Walukiewicz <miroslaw.walukiewicz@intel.com>
---
 lib/librte_mbuf/rte_mbuf.h |    5 +++++
 1 file changed, 5 insertions(+)
  

Comments

Jijiang Liu Oct. 14, 2014, 7:47 a.m. UTC | #1
> -----Original Message-----

> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of

> miroslaw.walukiewicz@intel.com

> Sent: Monday, October 13, 2014 10:39 PM

> To: dev@dpdk.org

> Subject: [dpdk-dev] [PATCH 1/3] pmd: add new flag to indicate TX TSO operation

> on the packet

> 

> From: Miroslaw Walukiewicz <miroslaw.walukiewicz@intel.com>

> 

> Transmission of TCP packets could be accelerated by HW Transmit Segmentation

> Offload. With TSO packets up to 64K could be transmismitted.

> 

> When this flag is set the PMD drived will enable TCP segmentation.

> 

> The new field tso_segsz is added to indicate how long is TCP TSO segment.

> 

> Signed-off-by: Mirek Walukiewicz <miroslaw.walukiewicz@intel.com>

> ---

>  lib/librte_mbuf/rte_mbuf.h |    5 +++++

>  1 file changed, 5 insertions(+)

> 

> diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h index

> ddadc21..63cbc36 100644

> --- a/lib/librte_mbuf/rte_mbuf.h

> +++ b/lib/librte_mbuf/rte_mbuf.h

> @@ -117,6 +117,9 @@ extern "C" {

>  /* Use final bit of flags to indicate a control mbuf */

>  #define CTRL_MBUF_FLAG       (1ULL << 63) /**< Mbuf contains control data */

> 

> +/* Bit 50 - TSO (TCP Transmit Segmenation Offload) */

> +#define PKT_TX_TCP_TSO       (1ULL << 50) /**< Mbuf needs TSO enabling */



In VxLAN patch set  [PATCH v5 7/8]i40e:support VxLAN Tx checksum offload, the  bit (1ULL << 50)   in offload flag have already been used.
+#define PKT_TX_VXLAN_CKSUM   (1ULL << 50) /**< TX checksum of VxLAN computed by NIC */

>  /**

>   * Bit Mask to indicate what bits required for building TX context

>   */

> @@ -196,6 +199,8 @@ struct rte_mbuf {

>  			uint16_t l2_len:7;      /**< L2 (MAC) Header Length. */

>  		};

>  	};

> +	/* field to support TSO segment size */

> +	uint32_t tso_segsz;

>  } __rte_cache_aligned;

> 

>  /**
  

Patch

diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index ddadc21..63cbc36 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -117,6 +117,9 @@  extern "C" {
 /* Use final bit of flags to indicate a control mbuf */
 #define CTRL_MBUF_FLAG       (1ULL << 63) /**< Mbuf contains control data */
 
+/* Bit 50 - TSO (TCP Transmit Segmenation Offload) */
+#define PKT_TX_TCP_TSO       (1ULL << 50) /**< Mbuf needs TSO enabling */
+
 /**
  * Bit Mask to indicate what bits required for building TX context
  */
@@ -196,6 +199,8 @@  struct rte_mbuf {
 			uint16_t l2_len:7;      /**< L2 (MAC) Header Length. */
 		};
 	};
+	/* field to support TSO segment size */
+	uint32_t tso_segsz;
 } __rte_cache_aligned;
 
 /**