* [dpdk-dev] [PATCH v3 0/3] support TSO on i40e
@ 2015-02-26 3:37 Jijiang Liu
2015-02-26 3:37 ` [dpdk-dev] [PATCH v3 1/3] i40e:move Tx offloads parameters of i40e to separate structure Jijiang Liu
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Jijiang Liu @ 2015-02-26 3:37 UTC (permalink / raw)
To: dev
This patch set enables i40e TSO feature for both non-tunneling packet and tunneling packet.
Change logs:
v2 change: rework based on Olivier's patch set [PATCH v2 00/20] enhance Tx checksum offload API
http://dpdk.org/ml/archives/dev/2015-February/012375.html
v3 change:
1. split 'enable i40e TSO' patch in v2 into two patches.
One patch is for moving tx offloads parameters of i40e to separate structure.
And other patch is for enabling i40e TSO feature for both non-tunneling packet and tunneling packet
2. patch order change
Jijiang Liu (3):
Move Tx offloads parameters of i40e to separate structure
Enable i40e TSO feature for both non-tunneling packet and tunneling packet
Advertise the DEV_TX_OFFLOAD_TCP_TSO flag in the PMD features
lib/librte_pmd_i40e/i40e_ethdev.c | 3 +-
lib/librte_pmd_i40e/i40e_rxtx.c | 99 +++++++++++++++++++++++++++----------
lib/librte_pmd_i40e/i40e_rxtx.h | 13 +++++
3 files changed, 87 insertions(+), 28 deletions(-)
--
1.7.7.6
^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH v3 1/3] i40e:move Tx offloads parameters of i40e to separate structure
2015-02-26 3:37 [dpdk-dev] [PATCH v3 0/3] support TSO on i40e Jijiang Liu
@ 2015-02-26 3:37 ` Jijiang Liu
2015-02-26 3:37 ` [dpdk-dev] [PATCH v3 2/3] i40e:enable TSO support Jijiang Liu
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Jijiang Liu @ 2015-02-26 3:37 UTC (permalink / raw)
To: dev
The structure size is u64 so it could be used with single cpu operation.
Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Signed-off-by: Miroslaw Walukiewicz <miroslaw.walukiewicz@intel.com>
Signed-off-by: Grzegorz Galkowski <grzegorz.galkowski@intel.com>
---
lib/librte_pmd_i40e/i40e_rxtx.c | 39 +++++++++++++++++----------------------
lib/librte_pmd_i40e/i40e_rxtx.h | 11 +++++++++++
2 files changed, 28 insertions(+), 22 deletions(-)
diff --git a/lib/librte_pmd_i40e/i40e_rxtx.c b/lib/librte_pmd_i40e/i40e_rxtx.c
index 12c0831..d0f84c8 100644
--- a/lib/librte_pmd_i40e/i40e_rxtx.c
+++ b/lib/librte_pmd_i40e/i40e_rxtx.c
@@ -465,16 +465,13 @@ static inline void
i40e_txd_enable_checksum(uint64_t ol_flags,
uint32_t *td_cmd,
uint32_t *td_offset,
- uint8_t l2_len,
- uint16_t l3_len,
- uint8_t outer_l2_len,
- uint16_t outer_l3_len,
+ union i40e_tx_offload tx_offload,
uint32_t *cd_tunneling)
{
/* UDP tunneling packet TX checksum offload */
if (ol_flags & PKT_TX_OUTER_IP_CKSUM) {
- *td_offset |= (outer_l2_len >> 1)
+ *td_offset |= (tx_offload.outer_l2_len >> 1)
<< I40E_TX_DESC_LENGTH_MACLEN_SHIFT;
if (ol_flags & PKT_TX_OUTER_IP_CKSUM)
@@ -485,25 +482,28 @@ i40e_txd_enable_checksum(uint64_t ol_flags,
*cd_tunneling |= I40E_TX_CTX_EXT_IP_IPV6;
/* Now set the ctx descriptor fields */
- *cd_tunneling |= (outer_l3_len >> 2) <<
+ *cd_tunneling |= (tx_offload.outer_l3_len >> 2) <<
I40E_TXD_CTX_QW0_EXT_IPLEN_SHIFT |
- (l2_len >> 1) <<
+ (tx_offload.l2_len >> 1) <<
I40E_TXD_CTX_QW0_NATLEN_SHIFT;
} else
- *td_offset |= (l2_len >> 1)
+ *td_offset |= (tx_offload.l2_len >> 1)
<< I40E_TX_DESC_LENGTH_MACLEN_SHIFT;
/* Enable L3 checksum offloads */
if (ol_flags & PKT_TX_IP_CKSUM) {
*td_cmd |= I40E_TX_DESC_CMD_IIPT_IPV4_CSUM;
- *td_offset |= (l3_len >> 2) << I40E_TX_DESC_LENGTH_IPLEN_SHIFT;
+ *td_offset |= (tx_offload.l3_len >> 2)
+ << I40E_TX_DESC_LENGTH_IPLEN_SHIFT;
} else if (ol_flags & PKT_TX_IPV4) {
*td_cmd |= I40E_TX_DESC_CMD_IIPT_IPV4;
- *td_offset |= (l3_len >> 2) << I40E_TX_DESC_LENGTH_IPLEN_SHIFT;
+ *td_offset |= (tx_offload.l3_len >> 2)
+ << I40E_TX_DESC_LENGTH_IPLEN_SHIFT;
} else if (ol_flags & PKT_TX_IPV6) {
*td_cmd |= I40E_TX_DESC_CMD_IIPT_IPV6;
- *td_offset |= (l3_len >> 2) << I40E_TX_DESC_LENGTH_IPLEN_SHIFT;
+ *td_offset |= (tx_offload.l3_len >> 2)
+ << I40E_TX_DESC_LENGTH_IPLEN_SHIFT;
}
/* Enable L4 checksum offloads */
@@ -1183,15 +1183,12 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
uint32_t tx_flags;
uint32_t td_tag;
uint64_t ol_flags;
- uint8_t l2_len;
- uint16_t l3_len;
- uint8_t outer_l2_len;
- uint16_t outer_l3_len;
uint16_t nb_used;
uint16_t nb_ctx;
uint16_t tx_last;
uint16_t slen;
uint64_t buf_dma_addr;
+ union i40e_tx_offload tx_offload = { .data = 0 };
txq = tx_queue;
sw_ring = txq->sw_ring;
@@ -1213,10 +1210,10 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
RTE_MBUF_PREFETCH_TO_FREE(txe->mbuf);
ol_flags = tx_pkt->ol_flags;
- l2_len = tx_pkt->l2_len;
- l3_len = tx_pkt->l3_len;
- outer_l2_len = tx_pkt->outer_l2_len;
- outer_l3_len = tx_pkt->outer_l3_len;
+ tx_offload.l2_len = tx_pkt->l2_len;
+ tx_offload.l3_len = tx_pkt->l3_len;
+ tx_offload.outer_l2_len = tx_pkt->outer_l2_len;
+ tx_offload.outer_l3_len = tx_pkt->outer_l3_len;
/* Calculate the number of context descriptors needed. */
nb_ctx = i40e_calc_context_desc(ol_flags);
@@ -1267,9 +1264,7 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
cd_tunneling_params = 0;
if (unlikely(ol_flags & I40E_TX_CKSUM_OFFLOAD_MASK)) {
i40e_txd_enable_checksum(ol_flags, &td_cmd, &td_offset,
- l2_len, l3_len, outer_l2_len,
- outer_l3_len,
- &cd_tunneling_params);
+ tx_offload, &cd_tunneling_params);
}
if (unlikely(nb_ctx)) {
diff --git a/lib/librte_pmd_i40e/i40e_rxtx.h b/lib/librte_pmd_i40e/i40e_rxtx.h
index af932e3..abd8fa2 100644
--- a/lib/librte_pmd_i40e/i40e_rxtx.h
+++ b/lib/librte_pmd_i40e/i40e_rxtx.h
@@ -154,6 +154,17 @@ struct i40e_tx_queue {
bool tx_deferred_start; /**< don't start this queue in dev start */
};
+/** Offload features */
+union i40e_tx_offload {
+ uint64_t data;
+ struct {
+ uint64_t l2_len:7; /**< L2 (MAC) Header Length. */
+ uint64_t l3_len:9; /**< L3 (IP) Header Length. */
+ uint64_t outer_l2_len:8; /**< outer L2 Header Length */
+ uint64_t outer_l3_len:16; /**< outer L3 Header Length */
+ };
+};
+
int i40e_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id);
int i40e_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id);
int i40e_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id);
--
1.7.7.6
^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH v3 2/3] i40e:enable TSO support
2015-02-26 3:37 [dpdk-dev] [PATCH v3 0/3] support TSO on i40e Jijiang Liu
2015-02-26 3:37 ` [dpdk-dev] [PATCH v3 1/3] i40e:move Tx offloads parameters of i40e to separate structure Jijiang Liu
@ 2015-02-26 3:37 ` Jijiang Liu
2015-02-26 3:37 ` [dpdk-dev] [PATCH v3 3/3] i40e:advertise TSO capability Jijiang Liu
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Jijiang Liu @ 2015-02-26 3:37 UTC (permalink / raw)
To: dev
This patch enables i40e TSO feature for both non-tunneling packet and tunneling packet
Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Signed-off-by: Miroslaw Walukiewicz <miroslaw.walukiewicz@intel.com>
Signed-off-by: Grzegorz Galkowski <grzegorz.galkowski@intel.com>
---
lib/librte_pmd_i40e/i40e_rxtx.c | 60 +++++++++++++++++++++++++++++++++++---
lib/librte_pmd_i40e/i40e_rxtx.h | 2 +
2 files changed, 57 insertions(+), 5 deletions(-)
diff --git a/lib/librte_pmd_i40e/i40e_rxtx.c b/lib/librte_pmd_i40e/i40e_rxtx.c
index d0f84c8..9c7be6f 100644
--- a/lib/librte_pmd_i40e/i40e_rxtx.c
+++ b/lib/librte_pmd_i40e/i40e_rxtx.c
@@ -506,6 +506,13 @@ i40e_txd_enable_checksum(uint64_t ol_flags,
<< I40E_TX_DESC_LENGTH_IPLEN_SHIFT;
}
+ if (ol_flags & PKT_TX_TCP_SEG) {
+ *td_cmd |= I40E_TX_DESC_CMD_L4T_EOFT_TCP;
+ *td_offset |= (tx_offload.l4_len >> 2)
+ << I40E_TX_DESC_LENGTH_L4_FC_LEN_SHIFT;
+ return;
+ }
+
/* Enable L4 checksum offloads */
switch (ol_flags & PKT_TX_L4_MASK) {
case PKT_TX_TCP_CKSUM:
@@ -1154,7 +1161,7 @@ i40e_calc_context_desc(uint64_t flags)
{
uint64_t mask = 0ULL;
- mask |= PKT_TX_OUTER_IP_CKSUM;
+ mask |= (PKT_TX_OUTER_IP_CKSUM | PKT_TX_TCP_SEG);
#ifdef RTE_LIBRTE_IEEE1588
mask |= PKT_TX_IEEE1588_TMST;
@@ -1165,6 +1172,39 @@ i40e_calc_context_desc(uint64_t flags)
return 0;
}
+/* set i40e TSO context descriptor */
+static inline uint64_t
+i40e_set_tso_ctx(struct rte_mbuf *mbuf, union i40e_tx_offload tx_offload)
+{
+ uint64_t ctx_desc = 0;
+ uint32_t cd_cmd, hdr_len, cd_tso_len;
+
+ if (!tx_offload.l4_len) {
+ PMD_DRV_LOG(DEBUG, "L4 length set to 0");
+ return ctx_desc;
+ }
+
+ /**
+ * in case of tunneling packet, the outer_l2_len and
+ * outer_l3_len must be 0.
+ */
+ hdr_len = tx_offload.outer_l2_len +
+ tx_offload.outer_l3_len +
+ tx_offload.l2_len +
+ tx_offload.l3_len +
+ tx_offload.l4_len;
+
+ cd_cmd = I40E_TX_CTX_DESC_TSO;
+ cd_tso_len = mbuf->pkt_len - hdr_len;
+ ctx_desc |= ((uint64_t)cd_cmd << I40E_TXD_CTX_QW1_CMD_SHIFT) |
+ ((uint64_t)cd_tso_len <<
+ I40E_TXD_CTX_QW1_TSO_LEN_SHIFT) |
+ ((uint64_t)mbuf->tso_segsz <<
+ I40E_TXD_CTX_QW1_MSS_SHIFT);
+
+ return ctx_desc;
+}
+
uint16_t
i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
{
@@ -1214,6 +1254,8 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
tx_offload.l3_len = tx_pkt->l3_len;
tx_offload.outer_l2_len = tx_pkt->outer_l2_len;
tx_offload.outer_l3_len = tx_pkt->outer_l3_len;
+ tx_offload.l4_len = tx_pkt->l4_len;
+ tx_offload.tso_segsz = tx_pkt->tso_segsz;
/* Calculate the number of context descriptors needed. */
nb_ctx = i40e_calc_context_desc(ol_flags);
@@ -1282,12 +1324,20 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
rte_pktmbuf_free_seg(txe->mbuf);
txe->mbuf = NULL;
}
-#ifdef RTE_LIBRTE_IEEE1588
- if (ol_flags & PKT_TX_IEEE1588_TMST)
+
+ /* TSO enabled means no timestamp */
+ if (ol_flags & PKT_TX_TCP_SEG)
cd_type_cmd_tso_mss |=
- ((uint64_t)I40E_TX_CTX_DESC_TSYN <<
- I40E_TXD_CTX_QW1_CMD_SHIFT);
+ i40e_set_tso_ctx(tx_pkt, tx_offload);
+ else {
+#ifdef RTE_LIBRTE_IEEE1588
+ if (ol_flags & PKT_TX_IEEE1588_TMST)
+ cd_type_cmd_tso_mss |=
+ ((uint64_t)I40E_TX_CTX_DESC_TSYN <<
+ I40E_TXD_CTX_QW1_CMD_SHIFT);
#endif
+ }
+
ctx_txd->tunneling_params =
rte_cpu_to_le_32(cd_tunneling_params);
ctx_txd->l2tag2 = rte_cpu_to_le_16(cd_l2tag2);
diff --git a/lib/librte_pmd_i40e/i40e_rxtx.h b/lib/librte_pmd_i40e/i40e_rxtx.h
index abd8fa2..5b2984a 100644
--- a/lib/librte_pmd_i40e/i40e_rxtx.h
+++ b/lib/librte_pmd_i40e/i40e_rxtx.h
@@ -160,6 +160,8 @@ union i40e_tx_offload {
struct {
uint64_t l2_len:7; /**< L2 (MAC) Header Length. */
uint64_t l3_len:9; /**< L3 (IP) Header Length. */
+ uint64_t l4_len:8; /**< L4 Header Length. */
+ uint64_t tso_segsz:16; /**< TCP TSO segment size */
uint64_t outer_l2_len:8; /**< outer L2 Header Length */
uint64_t outer_l3_len:16; /**< outer L3 Header Length */
};
--
1.7.7.6
^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH v3 3/3] i40e:advertise TSO capability
2015-02-26 3:37 [dpdk-dev] [PATCH v3 0/3] support TSO on i40e Jijiang Liu
2015-02-26 3:37 ` [dpdk-dev] [PATCH v3 1/3] i40e:move Tx offloads parameters of i40e to separate structure Jijiang Liu
2015-02-26 3:37 ` [dpdk-dev] [PATCH v3 2/3] i40e:enable TSO support Jijiang Liu
@ 2015-02-26 3:37 ` Jijiang Liu
2015-02-26 15:56 ` [dpdk-dev] [PATCH v3 0/3] support TSO on i40e Ananyev, Konstantin
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Jijiang Liu @ 2015-02-26 3:37 UTC (permalink / raw)
To: dev
Advertise the DEV_TX_OFFLOAD_TCP_TSO flag in the PMD features. It means that the i40e PMD supports the offload of TSO.
Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Signed-off-by: Miroslaw Walukiewicz <miroslaw.walukiewicz@intel.com>
---
lib/librte_pmd_i40e/i40e_ethdev.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c b/lib/librte_pmd_i40e/i40e_ethdev.c
index 85e8315..5e502b6 100644
--- a/lib/librte_pmd_i40e/i40e_ethdev.c
+++ b/lib/librte_pmd_i40e/i40e_ethdev.c
@@ -1531,7 +1531,8 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
DEV_TX_OFFLOAD_UDP_CKSUM |
DEV_TX_OFFLOAD_TCP_CKSUM |
DEV_TX_OFFLOAD_SCTP_CKSUM |
- DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM;
+ DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM |
+ DEV_TX_OFFLOAD_TCP_TSO;
dev_info->reta_size = pf->hash_lut_size;
dev_info->flow_type_rss_offloads = I40E_RSS_OFFLOAD_ALL;
--
1.7.7.6
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH v3 0/3] support TSO on i40e
2015-02-26 3:37 [dpdk-dev] [PATCH v3 0/3] support TSO on i40e Jijiang Liu
` (2 preceding siblings ...)
2015-02-26 3:37 ` [dpdk-dev] [PATCH v3 3/3] i40e:advertise TSO capability Jijiang Liu
@ 2015-02-26 15:56 ` Ananyev, Konstantin
2015-02-28 1:53 ` Zhang, Helin
2015-03-02 5:48 ` Cao, Min
5 siblings, 0 replies; 8+ messages in thread
From: Ananyev, Konstantin @ 2015-02-26 15:56 UTC (permalink / raw)
To: Liu, Jijiang, dev
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jijiang Liu
> Sent: Thursday, February 26, 2015 3:37 AM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH v3 0/3] support TSO on i40e
>
> This patch set enables i40e TSO feature for both non-tunneling packet and tunneling packet.
>
> Change logs:
> v2 change: rework based on Olivier's patch set [PATCH v2 00/20] enhance Tx checksum offload API
> http://dpdk.org/ml/archives/dev/2015-February/012375.html
> v3 change:
> 1. split 'enable i40e TSO' patch in v2 into two patches.
> One patch is for moving tx offloads parameters of i40e to separate structure.
> And other patch is for enabling i40e TSO feature for both non-tunneling packet and tunneling packet
> 2. patch order change
>
> Jijiang Liu (3):
> Move Tx offloads parameters of i40e to separate structure
> Enable i40e TSO feature for both non-tunneling packet and tunneling packet
> Advertise the DEV_TX_OFFLOAD_TCP_TSO flag in the PMD features
>
> lib/librte_pmd_i40e/i40e_ethdev.c | 3 +-
> lib/librte_pmd_i40e/i40e_rxtx.c | 99 +++++++++++++++++++++++++++----------
> lib/librte_pmd_i40e/i40e_rxtx.h | 13 +++++
> 3 files changed, 87 insertions(+), 28 deletions(-)
>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> --
> 1.7.7.6
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH v3 0/3] support TSO on i40e
2015-02-26 3:37 [dpdk-dev] [PATCH v3 0/3] support TSO on i40e Jijiang Liu
` (3 preceding siblings ...)
2015-02-26 15:56 ` [dpdk-dev] [PATCH v3 0/3] support TSO on i40e Ananyev, Konstantin
@ 2015-02-28 1:53 ` Zhang, Helin
2015-03-02 18:22 ` Thomas Monjalon
2015-03-02 5:48 ` Cao, Min
5 siblings, 1 reply; 8+ messages in thread
From: Zhang, Helin @ 2015-02-28 1:53 UTC (permalink / raw)
To: Liu, Jijiang, dev
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jijiang Liu
> Sent: Thursday, February 26, 2015 11:37 AM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH v3 0/3] support TSO on i40e
>
> This patch set enables i40e TSO feature for both non-tunneling packet and
> tunneling packet.
>
> Change logs:
> v2 change: rework based on Olivier's patch set [PATCH v2 00/20] enhance
> Tx checksum offload API
> http://dpdk.org/ml/archives/dev/2015-February/012375.html
> v3 change:
> 1. split 'enable i40e TSO' patch in v2 into two patches.
> One patch is for moving tx offloads parameters of i40e to separate
> structure.
> And other patch is for enabling i40e TSO feature for both
> non-tunneling packet and tunneling packet
> 2. patch order change
>
> Jijiang Liu (3):
> Move Tx offloads parameters of i40e to separate structure
> Enable i40e TSO feature for both non-tunneling packet and tunneling packet
> Advertise the DEV_TX_OFFLOAD_TCP_TSO flag in the PMD features
>
> lib/librte_pmd_i40e/i40e_ethdev.c | 3 +-
> lib/librte_pmd_i40e/i40e_rxtx.c | 99
> +++++++++++++++++++++++++++----------
> lib/librte_pmd_i40e/i40e_rxtx.h | 13 +++++
> 3 files changed, 87 insertions(+), 28 deletions(-)
Acked-by: Helin Zhang <helin.zhang@intel.com>
>
> --
> 1.7.7.6
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH v3 0/3] support TSO on i40e
2015-02-26 3:37 [dpdk-dev] [PATCH v3 0/3] support TSO on i40e Jijiang Liu
` (4 preceding siblings ...)
2015-02-28 1:53 ` Zhang, Helin
@ 2015-03-02 5:48 ` Cao, Min
5 siblings, 0 replies; 8+ messages in thread
From: Cao, Min @ 2015-03-02 5:48 UTC (permalink / raw)
To: Liu, Jijiang, dev
Tested-by: min.cao <min.cao@intel.com>
Patch name: [dpdk-dev] [PATCH v3 0/3] support TSO on i40e
Test Flag: Tested-by
Tester name: min.cao@intel.com
Result summary: total 3 cases, 3 passed, 0 failed
Test Case 1:
Name: ipv4
Environment: OS: Fedora20 3.11.10-301.fc20.x86_64
gcc (GCC) 4.8.2
CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz
NIC: Fortville eagle
Test result: PASSED
Detail: TSO enable in ipv4
Test Case 2:
Name: ipv6
Environment: OS: Fedora20 3.11.10-301.fc20.x86_64
gcc (GCC) 4.8.2
CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz
NIC: Fortville eagle
Test result: PASSED
Detail: TSO enable in ipv6
Test Case 3:
Name: nvgre
Environment: OS: Fedora20 3.11.10-301.fc20.x86_64
gcc (GCC) 4.8.2
CPU: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz
NIC: Fortville eagle
Test result: PASSED
Detail: TSO enable in nvgre
-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jijiang Liu
Sent: Thursday, February 26, 2015 11:37 AM
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH v3 0/3] support TSO on i40e
This patch set enables i40e TSO feature for both non-tunneling packet and tunneling packet.
Change logs:
v2 change: rework based on Olivier's patch set [PATCH v2 00/20] enhance Tx checksum offload API
http://dpdk.org/ml/archives/dev/2015-February/012375.html
v3 change:
1. split 'enable i40e TSO' patch in v2 into two patches.
One patch is for moving tx offloads parameters of i40e to separate structure.
And other patch is for enabling i40e TSO feature for both non-tunneling packet and tunneling packet
2. patch order change
Jijiang Liu (3):
Move Tx offloads parameters of i40e to separate structure
Enable i40e TSO feature for both non-tunneling packet and tunneling packet
Advertise the DEV_TX_OFFLOAD_TCP_TSO flag in the PMD features
lib/librte_pmd_i40e/i40e_ethdev.c | 3 +-
lib/librte_pmd_i40e/i40e_rxtx.c | 99 +++++++++++++++++++++++++++----------
lib/librte_pmd_i40e/i40e_rxtx.h | 13 +++++
3 files changed, 87 insertions(+), 28 deletions(-)
--
1.7.7.6
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH v3 0/3] support TSO on i40e
2015-02-28 1:53 ` Zhang, Helin
@ 2015-03-02 18:22 ` Thomas Monjalon
0 siblings, 0 replies; 8+ messages in thread
From: Thomas Monjalon @ 2015-03-02 18:22 UTC (permalink / raw)
To: Liu, Jijiang; +Cc: dev
> > This patch set enables i40e TSO feature for both non-tunneling packet and
> > tunneling packet.
> >
> > Change logs:
> > v2 change: rework based on Olivier's patch set [PATCH v2 00/20] enhance
> > Tx checksum offload API
> > http://dpdk.org/ml/archives/dev/2015-February/012375.html
> > v3 change:
> > 1. split 'enable i40e TSO' patch in v2 into two patches.
> > One patch is for moving tx offloads parameters of i40e to separate
> > structure.
> > And other patch is for enabling i40e TSO feature for both
> > non-tunneling packet and tunneling packet
> > 2. patch order change
> >
> > Jijiang Liu (3):
> > Move Tx offloads parameters of i40e to separate structure
> > Enable i40e TSO feature for both non-tunneling packet and tunneling packet
> > Advertise the DEV_TX_OFFLOAD_TCP_TSO flag in the PMD features
>
> Acked-by: Helin Zhang <helin.zhang@intel.com>
Applied (actually pulled), thanks
This patchset is accepted in RC2 because it was almost ready for RC1 and
its impact is limited to i40e.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-03-02 18:23 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-26 3:37 [dpdk-dev] [PATCH v3 0/3] support TSO on i40e Jijiang Liu
2015-02-26 3:37 ` [dpdk-dev] [PATCH v3 1/3] i40e:move Tx offloads parameters of i40e to separate structure Jijiang Liu
2015-02-26 3:37 ` [dpdk-dev] [PATCH v3 2/3] i40e:enable TSO support Jijiang Liu
2015-02-26 3:37 ` [dpdk-dev] [PATCH v3 3/3] i40e:advertise TSO capability Jijiang Liu
2015-02-26 15:56 ` [dpdk-dev] [PATCH v3 0/3] support TSO on i40e Ananyev, Konstantin
2015-02-28 1:53 ` Zhang, Helin
2015-03-02 18:22 ` Thomas Monjalon
2015-03-02 5:48 ` Cao, Min
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).