DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jiayu Hu <jiayu.hu@intel.com>
To: dev@dpdk.org
Cc: mark.b.kavanagh@intel.com, konstantin.ananyev@intel.com,
	jianfeng.tan@intel.com, Jiayu Hu <jiayu.hu@intel.com>
Subject: [dpdk-dev] [PATCH 4/5] lib/gso: add GRE GSO support
Date: Thu, 24 Aug 2017 22:15:43 +0800	[thread overview]
Message-ID: <1503584144-63181-5-git-send-email-jiayu.hu@intel.com> (raw)
In-Reply-To: <1503584144-63181-1-git-send-email-jiayu.hu@intel.com>

From: Mark Kavanagh <mark.b.kavanagh@intel.com>

This patch adds GSO support for GRE-tunneled packets. Supported GRE
packets must contain an outer IPv4 header, and inner TCP/IPv4 headers.
They may also contain a single VLAN tag. GRE GSO assumes that all input
packets have correct checksums and doesn't update checksums for output
packets. Additionally, it doesn't process IP fragmented packets.

As with VxLAN GSO, GRE GSO uses a two-segment MBUF to organize each
output packet, which requires multi-segment mbuf support in the TX
functions of the NIC driver. Also, if a packet is GSOed, GRE GSO reduces
its MBUF refcnt by 1. As a result, when all of its GSOed segments are
freed, the packet is freed automatically.

Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
---
 lib/librte_gso/gso_common.c | 66 +++++++++++++++++++++++++++++++++++++++++++--
 lib/librte_gso/gso_common.h | 21 +++++++++++++++
 lib/librte_gso/rte_gso.c    |  5 +++-
 lib/librte_gso/rte_gso.h    |  4 +++
 4 files changed, 93 insertions(+), 3 deletions(-)

diff --git a/lib/librte_gso/gso_common.c b/lib/librte_gso/gso_common.c
index 65cec44..b3e7f9d 100644
--- a/lib/librte_gso/gso_common.c
+++ b/lib/librte_gso/gso_common.c
@@ -37,6 +37,7 @@
 #include <rte_malloc.h>
 
 #include <rte_ether.h>
+#include <rte_gre.h>
 #include <rte_ip.h>
 #include <rte_tcp.h>
 #include <rte_udp.h>
@@ -159,6 +160,8 @@ gso_do_segment(struct rte_mbuf *pkt,
 
 static inline void parse_ethernet(struct ether_hdr *eth_hdr,
 		struct rte_mbuf *pkt);
+static inline void parse_ipv4(struct ipv4_hdr *ipv4_hdr,
+		struct rte_mbuf *pkt);
 
 static inline void
 parse_vxlan(struct udp_hdr *udp_hdr, struct rte_mbuf *pkt)
@@ -190,15 +193,29 @@ parse_udp(struct udp_hdr *udp_hdr, struct rte_mbuf *pkt)
 }
 
 static inline void
+parse_gre(struct gre_hdr *gre_hdr, struct rte_mbuf *pkt)
+{
+	struct ipv4_hdr *ipv4_hdr;
+
+	if (gre_hdr->proto == rte_cpu_to_be_16(ETHER_TYPE_IPv4)) {
+		ipv4_hdr = (struct ipv4_hdr *)(gre_hdr + 1);
+		pkt->packet_type |= RTE_PTYPE_INNER_L3_IPV4;
+		parse_ipv4(ipv4_hdr, pkt);
+	}
+}
+
+static inline void
 parse_ipv4(struct ipv4_hdr *ipv4_hdr, struct rte_mbuf *pkt)
 {
+	struct gre_hdr *gre_hdr;
 	struct tcp_hdr *tcp_hdr;
 	struct udp_hdr *udp_hdr;
 
 	switch (ipv4_hdr->next_proto_id) {
 	case IPPROTO_TCP:
-		if (IS_VXLAN_PKT(pkt)) {
-			pkt->outer_l3_len = pkt->l3_len;
+		if (IS_TUNNEL_PKT(pkt)) {
+			if (IS_VXLAN_PKT(pkt))
+				pkt->outer_l3_len = pkt->l3_len;
 			pkt->packet_type |= RTE_PTYPE_INNER_L4_TCP;
 		} else
 			pkt->packet_type |= RTE_PTYPE_L4_TCP;
@@ -211,6 +228,14 @@ parse_ipv4(struct ipv4_hdr *ipv4_hdr, struct rte_mbuf *pkt)
 		udp_hdr = (struct udp_hdr *)((char *)ipv4_hdr + pkt->l3_len);
 		parse_udp(udp_hdr, pkt);
 		break;
+	case IPPROTO_GRE:
+		gre_hdr = (struct gre_hdr *)(ipv4_hdr + 1);
+		pkt->outer_l2_len = pkt->l2_len;
+		pkt->outer_l3_len = IPv4_HDR_LEN(ipv4_hdr);
+		pkt->l2_len = sizeof(*gre_hdr);
+		pkt->packet_type |= RTE_PTYPE_TUNNEL_GRE;
+		parse_gre(gre_hdr, pkt);
+		break;
 	}
 }
 
@@ -343,6 +368,43 @@ gso_update_pkt_headers(struct rte_mbuf *pkt, uint16_t nb_segments,
 			sent_seq += seg->next->data_len;
 		}
 		break;
+	case ETHER_VLAN_IPv4_GRE_IPv4_TCP_PKT:
+	case ETHER_IPv4_GRE_IPv4_TCP_PKT:
+		outer_ipv4_hdr =
+			(struct ipv4_hdr *)(rte_pktmbuf_mtod(pkt, char *) +
+				pkt->outer_l2_len);
+		ipv4_hdr = (struct ipv4_hdr *)((char *)outer_ipv4_hdr +
+				pkt->outer_l3_len + pkt->l2_len);
+		tcp_hdr = (struct tcp_hdr *)(ipv4_hdr + 1);
+
+		/* Retrieve values from original packet */
+		id = rte_be_to_cpu_16(ipv4_hdr->packet_id);
+		outer_id = rte_be_to_cpu_16(outer_ipv4_hdr->packet_id);
+		sent_seq = rte_be_to_cpu_32(tcp_hdr->sent_seq);
+
+		for (i = 0; i < nb_segments; i++) {
+			seg = out_segments[i];
+
+			/* Update outer IPv4 header */
+			offset = seg->outer_l2_len;
+			update_ipv4_header(rte_pktmbuf_mtod(seg, char *),
+					offset, seg->pkt_len, outer_id);
+			outer_id++;
+
+			/* Update inner IPv4 header */
+			offset += seg->outer_l3_len + seg->l2_len;
+			update_ipv4_header(rte_pktmbuf_mtod(seg, char *),
+					offset, seg->pkt_len, id);
+			id++;
+
+			/* Update inner TCP header */
+			offset += seg->l3_len;
+			update_tcp_header(rte_pktmbuf_mtod(seg, char *),
+					offset, sent_seq, i < tail_seg_idx);
+
+			sent_seq += seg->next->data_len;
+		}
+		break;
 	case ETHER_VLAN_IPv4_TCP_PKT:
 	case ETHER_IPv4_TCP_PKT:
 		ipv4_hdr = (struct ipv4_hdr *)(rte_pktmbuf_mtod(pkt, char *) +
diff --git a/lib/librte_gso/gso_common.h b/lib/librte_gso/gso_common.h
index 0ad95d3..2ed264a 100644
--- a/lib/librte_gso/gso_common.h
+++ b/lib/librte_gso/gso_common.h
@@ -87,6 +87,21 @@
 		RTE_PTYPE_INNER_L3_IPV4 | \
 		RTE_PTYPE_INNER_L4_TCP)
 
+/* GRE packet. */
+#define ETHER_IPv4_GRE_IPv4_TCP_PKT (\
+		ETHER_IPv4_PKT          | \
+		RTE_PTYPE_TUNNEL_GRE    | \
+		RTE_PTYPE_INNER_L3_IPV4 | \
+		RTE_PTYPE_INNER_L4_TCP)
+
+/* GRE packet with VLAN tag. */
+#define ETHER_VLAN_IPv4_GRE_IPv4_TCP_PKT (\
+		RTE_PTYPE_L2_ETHER_VLAN | \
+		RTE_PTYPE_L3_IPV4       | \
+		RTE_PTYPE_TUNNEL_GRE    | \
+		RTE_PTYPE_INNER_L3_IPV4 | \
+		RTE_PTYPE_INNER_L4_TCP)
+
 #define IS_VLAN_PKT(pkt) ((pkt->packet_type & RTE_PTYPE_L2_ETHER_VLAN) == \
 		RTE_PTYPE_L2_ETHER_VLAN)
 #define IS_INNER_VLAN_PKT(pkt) (\
@@ -96,6 +111,12 @@
 #define VXLAN_DEFAULT_PORT 4789
 #define IS_VXLAN_PKT(pkt) ((pkt->packet_type & RTE_PTYPE_TUNNEL_VXLAN) == \
 		RTE_PTYPE_TUNNEL_VXLAN)
+
+#define IS_GRE_PKT(pkt) ((pkt->packet_type & RTE_PTYPE_TUNNEL_GRE) == \
+		RTE_PTYPE_TUNNEL_GRE)
+
+#define IS_TUNNEL_PKT(pkt) ((pkt->packet_type & RTE_PTYPE_TUNNEL_VXLAN) | \
+		(pkt->packet_type & RTE_PTYPE_TUNNEL_GRE))
 /**
  * Internal function which parses a packet, setting outer_l2/l3_len and
  * l2/l3/l4_len and packet_type.
diff --git a/lib/librte_gso/rte_gso.c b/lib/librte_gso/rte_gso.c
index f110f18..244bbf6 100644
--- a/lib/librte_gso/rte_gso.c
+++ b/lib/librte_gso/rte_gso.c
@@ -53,7 +53,8 @@ rte_gso_segment(struct rte_mbuf *pkt,
 		return -EINVAL;
 
 	if ((gso_ctx.gso_types & (RTE_GSO_TCP_IPV4 |
-					RTE_GSO_IPV4_VXLAN_TCP_IPV4)) == 0 ||
+					RTE_GSO_IPV4_VXLAN_TCP_IPV4 |
+					RTE_GSO_IPV4_GRE_TCP_IPV4)) == 0 ||
 			gso_ctx.gso_size >= pkt->pkt_len ||
 			gso_ctx.gso_size == 0)
 		return 1;
@@ -77,6 +78,8 @@ rte_gso_segment(struct rte_mbuf *pkt,
 	case ETHER_VLAN_IPv4_UDP_VXLAN_IPv4_TCP_PKT:
 	case ETHER_IPv4_UDP_VXLAN_VLAN_IPv4_TCP_PKT:
 	case ETHER_IPv4_UDP_VXLAN_IPv4_TCP_PKT:
+	case ETHER_VLAN_IPv4_GRE_IPv4_TCP_PKT:
+	case ETHER_IPv4_GRE_IPv4_TCP_PKT:
 		nb_segments = gso_tunnel_segment(pkt, gso_size,
 				direct_pool, indirect_pool,
 				pkts_out, nb_pkts_out);
diff --git a/lib/librte_gso/rte_gso.h b/lib/librte_gso/rte_gso.h
index e1b2c23..86ca790 100644
--- a/lib/librte_gso/rte_gso.h
+++ b/lib/librte_gso/rte_gso.h
@@ -52,6 +52,10 @@ extern "C" {
 /**< GSO flag for VxLAN packets that contain outer IPv4, and inner
  * TCP/IPv4 headers (plus optional inner and/or outer VLAN tags).
  */
+#define RTE_GSO_IPV4_GRE_TCP_IPV4 (1ULL << 2)
+/**< GSO flag for GRE packets that contain outer IPv4, and inner
+ * TCP/IPv4 headers (with optional outer VLAN tag).
+ */
 
 /**
  * GSO context structure.
-- 
2.7.4

  parent reply	other threads:[~2017-08-24 14:13 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-24 14:15 [dpdk-dev] [PATCH 0/5] Support TCP/IPv4, VxLAN and GRE GSO in DPDK Jiayu Hu
2017-08-24 14:15 ` [dpdk-dev] [PATCH 1/5] lib: add Generic Segmentation Offload API framework Jiayu Hu
2017-08-30  1:38   ` Ananyev, Konstantin
2017-08-30  7:57     ` Jiayu Hu
2017-08-24 14:15 ` [dpdk-dev] [PATCH 2/5] gso/lib: add TCP/IPv4 GSO support Jiayu Hu
2017-08-30  1:38   ` Ananyev, Konstantin
2017-08-30  2:55     ` Jiayu Hu
2017-08-30  9:25       ` Kavanagh, Mark B
2017-08-30  9:39         ` Ananyev, Konstantin
2017-08-30  9:59           ` Ananyev, Konstantin
2017-08-30 13:27             ` Kavanagh, Mark B
2017-08-30  9:03     ` Jiayu Hu
2017-09-04  3:31     ` Jiayu Hu
2017-09-04  9:54       ` Ananyev, Konstantin
2017-09-05  1:09         ` Hu, Jiayu
2017-09-11 13:04           ` Ananyev, Konstantin
2017-08-24 14:15 ` [dpdk-dev] [PATCH 3/5] lib/gso: add VxLAN " Jiayu Hu
2017-08-24 14:15 ` Jiayu Hu [this message]
2017-08-24 14:15 ` [dpdk-dev] [PATCH 5/5] app/testpmd: enable TCP/IPv4, VxLAN and GRE GSO Jiayu Hu
2017-08-30  1:37 ` [dpdk-dev] [PATCH 0/5] Support TCP/IPv4, VxLAN and GRE GSO in DPDK Ananyev, Konstantin
2017-08-30  7:36   ` Jiayu Hu
2017-08-30 10:49     ` Ananyev, Konstantin
2017-08-30 13:32       ` Kavanagh, Mark B
2017-09-05  7:57 ` [dpdk-dev] [PATCH v2 " Jiayu Hu
2017-09-05  7:57   ` [dpdk-dev] [PATCH v2 1/5] gso: add Generic Segmentation Offload API framework Jiayu Hu
2017-09-05  7:57   ` [dpdk-dev] [PATCH v2 2/5] gso: add TCP/IPv4 GSO support Jiayu Hu
2017-09-05  7:57   ` [dpdk-dev] [PATCH v2 3/5] gso: add VxLAN " Jiayu Hu
2017-09-05  7:57   ` [dpdk-dev] [PATCH v2 4/5] gso: add GRE " Jiayu Hu
2017-09-05  7:57   ` [dpdk-dev] [PATCH v2 5/5] app/testpmd: enable TCP/IPv4, VxLAN and GRE GSO Jiayu Hu
2017-09-12  2:43   ` [dpdk-dev] [PATCH v3 0/5] Support TCP/IPv4, VxLAN and GRE GSO in DPDK Jiayu Hu
2017-09-12  2:43     ` [dpdk-dev] [PATCH v3 1/5] gso: add Generic Segmentation Offload API framework Jiayu Hu
2017-09-12 10:36       ` Ananyev, Konstantin
2017-09-13  2:11         ` Jiayu Hu
2017-09-14 18:33       ` Ferruh Yigit
2017-09-15  1:12         ` Hu, Jiayu
2017-09-12  2:43     ` [dpdk-dev] [PATCH v3 2/5] gso: add TCP/IPv4 GSO support Jiayu Hu
2017-09-12 11:17       ` Ananyev, Konstantin
2017-09-13  2:48         ` Jiayu Hu
2017-09-13  9:38           ` Ananyev, Konstantin
2017-09-13 10:23             ` Hu, Jiayu
2017-09-13 14:52             ` Kavanagh, Mark B
2017-09-13 15:13               ` Ananyev, Konstantin
2017-09-14  0:59                 ` Hu, Jiayu
2017-09-14  8:35                   ` Kavanagh, Mark B
2017-09-14  8:39                     ` Ananyev, Konstantin
2017-09-14  9:00                       ` Kavanagh, Mark B
2017-09-14  9:10                         ` Ananyev, Konstantin
2017-09-14  9:35                           ` Kavanagh, Mark B
2017-09-12 14:17       ` Ananyev, Konstantin
2017-09-13 10:44         ` Jiayu Hu
2017-09-13 22:10           ` Ananyev, Konstantin
2017-09-14  6:07             ` Jiayu Hu
2017-09-14  8:47               ` Ananyev, Konstantin
2017-09-14  9:29                 ` Hu, Jiayu
2017-09-14  9:35                   ` Ananyev, Konstantin
2017-09-14 10:01                     ` Hu, Jiayu
2017-09-14 15:42                       ` Kavanagh, Mark B
2017-09-14 18:38                         ` Ananyev, Konstantin
2017-09-15  7:54                           ` Hu, Jiayu
2017-09-15  8:15                             ` Ananyev, Konstantin
2017-09-15  8:17                             ` Ananyev, Konstantin
2017-09-15  8:38                               ` Hu, Jiayu
2017-09-14  8:51               ` Kavanagh, Mark B
2017-09-14  9:45                 ` Hu, Jiayu
2017-09-12  2:43     ` [dpdk-dev] [PATCH v3 3/5] gso: add VxLAN " Jiayu Hu
2017-09-12  2:43     ` [dpdk-dev] [PATCH v3 4/5] gso: add GRE " Jiayu Hu
2017-09-12  2:43     ` [dpdk-dev] [PATCH v3 5/5] app/testpmd: enable TCP/IPv4, VxLAN and GRE GSO Jiayu Hu
2017-09-14 18:33       ` Ferruh Yigit
2017-09-15  1:13         ` Hu, Jiayu
2017-09-19  7:32     ` [dpdk-dev] [PATCH v4 0/5] Support TCP/IPv4, VxLAN and GRE GSO in DPDK Jiayu Hu
2017-09-19  7:32       ` [dpdk-dev] [PATCH v4 1/5] gso: add Generic Segmentation Offload API framework Jiayu Hu
2017-09-19  7:32       ` [dpdk-dev] [PATCH v4 2/5] gso: add TCP/IPv4 GSO support Jiayu Hu
2017-09-20  7:03         ` Yao, Lei A
2017-09-19  7:32       ` [dpdk-dev] [PATCH v4 3/5] gso: add VxLAN " Jiayu Hu
2017-09-20  3:11         ` Tan, Jianfeng
2017-09-20  3:17           ` Hu, Jiayu
2017-09-19  7:32       ` [dpdk-dev] [PATCH v4 4/5] gso: add GRE " Jiayu Hu
2017-09-20  2:53         ` Tan, Jianfeng
2017-09-20  6:01           ` Hu, Jiayu
2017-09-19  7:32       ` [dpdk-dev] [PATCH v4 5/5] app/testpmd: enable TCP/IPv4, VxLAN and GRE GSO Jiayu Hu
2017-09-28 22:13       ` [dpdk-dev] [PATCH v5 0/6] Support TCP/IPv4, VxLAN and GRE GSO in DPDK Mark Kavanagh
2017-10-02 16:45         ` [dpdk-dev] [PATCH v6 0/6] Support TCP/IPv4, VxLAN, " Mark Kavanagh
2017-10-02 16:45           ` [dpdk-dev] [PATCH v6 1/6] gso: add Generic Segmentation Offload API framework Mark Kavanagh
2017-10-04 13:11             ` Ananyev, Konstantin
2017-10-04 13:21               ` Kavanagh, Mark B
2017-10-02 16:45           ` [dpdk-dev] [PATCH v6 2/6] gso: add TCP/IPv4 GSO support Mark Kavanagh
2017-10-04 13:32             ` Ananyev, Konstantin
2017-10-04 14:30               ` Kavanagh, Mark B
2017-10-04 14:49                 ` Ananyev, Konstantin
2017-10-04 14:59                   ` Kavanagh, Mark B
2017-10-04 13:35             ` Ananyev, Konstantin
2017-10-04 14:22               ` Kavanagh, Mark B
2017-10-02 16:45           ` [dpdk-dev] [PATCH v6 3/6] gso: add VxLAN " Mark Kavanagh
2017-10-04 14:12             ` Ananyev, Konstantin
2017-10-04 14:35               ` Kavanagh, Mark B
2017-10-04 16:13               ` Kavanagh, Mark B
2017-10-04 16:17                 ` Ananyev, Konstantin
2017-10-02 16:45           ` [dpdk-dev] [PATCH v6 4/6] gso: add GRE " Mark Kavanagh
2017-10-04 14:15             ` Ananyev, Konstantin
2017-10-04 14:36               ` Kavanagh, Mark B
2017-10-02 16:45           ` [dpdk-dev] [PATCH v6 5/6] app/testpmd: enable TCP/IPv4, VxLAN and GRE GSO Mark Kavanagh
2017-10-04 15:08             ` Ananyev, Konstantin
2017-10-04 16:23               ` Kavanagh, Mark B
2017-10-04 16:26                 ` Ananyev, Konstantin
2017-10-04 16:51                   ` Kavanagh, Mark B
2017-10-02 16:45           ` [dpdk-dev] [PATCH v6 6/6] doc: add GSO programmer's guide Mark Kavanagh
2017-10-04 13:51             ` Mcnamara, John
2017-10-05 11:02           ` [dpdk-dev] [PATCH v7 0/6] Support TCP/IPv4, VxLAN, and GRE GSO in DPDK Mark Kavanagh
2017-10-05 11:02             ` [dpdk-dev] [PATCH v7 1/6] gso: add Generic Segmentation Offload API framework Mark Kavanagh
2017-10-05 11:02             ` [dpdk-dev] [PATCH v7 2/6] gso: add TCP/IPv4 GSO support Mark Kavanagh
2017-10-05 11:02             ` [dpdk-dev] [PATCH v7 3/6] gso: add VxLAN " Mark Kavanagh
2017-10-05 11:02             ` [dpdk-dev] [PATCH v7 4/6] gso: add GRE " Mark Kavanagh
2017-10-05 11:02             ` [dpdk-dev] [PATCH v7 5/6] app/testpmd: enable TCP/IPv4, VxLAN and GRE GSO Mark Kavanagh
2017-10-05 11:02             ` [dpdk-dev] [PATCH v7 6/6] doc: add GSO programmer's guide Mark Kavanagh
2017-10-05 13:22             ` [dpdk-dev] [PATCH v7 0/6] Support TCP/IPv4, VxLAN, and GRE GSO in DPDK Ananyev, Konstantin
2017-10-05 14:39               ` Kavanagh, Mark B
2017-10-05 15:43             ` [dpdk-dev] [PATCH v8 " Mark Kavanagh
2017-10-05 17:12               ` Ananyev, Konstantin
2017-10-05 20:16                 ` Kavanagh, Mark B
2017-10-05 20:36               ` [dpdk-dev] [PATCH v9 " Mark Kavanagh
2017-10-05 22:24                 ` Ananyev, Konstantin
2017-10-06  8:24                   ` [dpdk-dev] FW: " Kavanagh, Mark B
2017-10-06 10:35                   ` [dpdk-dev] " Kavanagh, Mark B
2017-10-06 23:32                 ` Ferruh Yigit
2017-10-06 23:34                   ` Ferruh Yigit
2017-10-07 14:56                 ` [dpdk-dev] [PATCH v10 " Jiayu Hu
2017-10-07 14:56                   ` [dpdk-dev] [PATCH v10 1/6] gso: add Generic Segmentation Offload API framework Jiayu Hu
2017-10-07 14:56                   ` [dpdk-dev] [PATCH v10 2/6] gso: add TCP/IPv4 GSO support Jiayu Hu
2017-10-07 14:56                   ` [dpdk-dev] [PATCH v10 3/6] gso: add VxLAN " Jiayu Hu
2017-10-07 14:56                   ` [dpdk-dev] [PATCH v10 4/6] gso: add GRE " Jiayu Hu
2017-10-07 14:56                   ` [dpdk-dev] [PATCH v10 5/6] app/testpmd: enable TCP/IPv4, VxLAN and GRE GSO Jiayu Hu
2017-10-07 14:56                   ` [dpdk-dev] [PATCH v10 6/6] doc: add GSO programmer's guide Jiayu Hu
2017-10-08  3:40                   ` [dpdk-dev] [PATCH v10 0/6] Support TCP/IPv4, VxLAN, and GRE GSO in DPDK Ferruh Yigit
2017-10-05 20:36               ` [dpdk-dev] [PATCH v9 1/6] gso: add Generic Segmentation Offload API framework Mark Kavanagh
2017-10-05 20:36               ` [dpdk-dev] [PATCH v9 2/6] gso: add TCP/IPv4 GSO support Mark Kavanagh
2017-10-05 20:36               ` [dpdk-dev] [PATCH v9 3/6] gso: add VxLAN " Mark Kavanagh
2017-10-05 20:36               ` [dpdk-dev] [PATCH v9 4/6] gso: add GRE " Mark Kavanagh
2017-10-05 20:36               ` [dpdk-dev] [PATCH v9 5/6] app/testpmd: enable TCP/IPv4, VxLAN and GRE GSO Mark Kavanagh
2017-10-05 20:36               ` [dpdk-dev] [PATCH v9 6/6] doc: add GSO programmer's guide Mark Kavanagh
2017-10-06 13:34                 ` Mcnamara, John
2017-10-06 13:41                   ` Kavanagh, Mark B
2017-10-05 15:43             ` [dpdk-dev] [PATCH v8 1/6] gso: add Generic Segmentation Offload API framework Mark Kavanagh
2017-10-05 15:44             ` [dpdk-dev] [PATCH v8 2/6] gso: add TCP/IPv4 GSO support Mark Kavanagh
2017-10-05 15:44             ` [dpdk-dev] [PATCH v8 3/6] gso: add VxLAN " Mark Kavanagh
2017-10-05 15:44             ` [dpdk-dev] [PATCH v8 4/6] gso: add GRE " Mark Kavanagh
2017-10-05 15:44             ` [dpdk-dev] [PATCH v8 5/6] app/testpmd: enable TCP/IPv4, VxLAN and GRE GSO Mark Kavanagh
2017-10-05 15:44             ` [dpdk-dev] [PATCH v8 6/6] doc: add GSO programmer's guide Mark Kavanagh
2017-10-05 17:57               ` Mcnamara, John
2017-09-28 22:13       ` [dpdk-dev] [PATCH v5 1/6] gso: add Generic Segmentation Offload API framework Mark Kavanagh
2017-09-28 22:13       ` [dpdk-dev] [PATCH v5 2/6] gso: add TCP/IPv4 GSO support Mark Kavanagh
2017-09-29  3:12         ` Jiayu Hu
2017-09-29  9:05           ` Kavanagh, Mark B
2017-09-28 22:13       ` [dpdk-dev] [PATCH v5 3/6] gso: add VxLAN " Mark Kavanagh
2017-09-28 22:13       ` [dpdk-dev] [PATCH v5 4/6] gso: add GRE " Mark Kavanagh
2017-09-28 22:13       ` [dpdk-dev] [PATCH v5 5/6] app/testpmd: enable TCP/IPv4, VxLAN and GRE GSO Mark Kavanagh
2017-09-28 22:13       ` [dpdk-dev] [PATCH v5 6/6] doc: add GSO programmer's guide Mark Kavanagh
2017-09-28 22:18       ` [dpdk-dev] [PATCH v5 2/6] gso: add TCP/IPv4 GSO support Mark Kavanagh

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=1503584144-63181-5-git-send-email-jiayu.hu@intel.com \
    --to=jiayu.hu@intel.com \
    --cc=dev@dpdk.org \
    --cc=jianfeng.tan@intel.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=mark.b.kavanagh@intel.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).