dev.dpdk.org archive mirror
 help / color / mirror / Atom feed
From: Jijiang Liu <jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: dev-VfR2kkLFssw@public.gmane.org
Subject: [PATCH v8 01/10] librte_mbuf:the rte_mbuf structure changes
Date: Mon, 27 Oct 2014 10:13:17 +0800	[thread overview]
Message-ID: <1414376006-31402-2-git-send-email-jijiang.liu@intel.com> (raw)
In-Reply-To: <1414376006-31402-1-git-send-email-jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

Replace the "reserved2" field with the "packet_type" field and add the "inner_l2_l3_len" field in the rte_mbuf structure.
The "packet_type" field is used to indicate ordinary packet format and also tunneling packet format such as IP in IP, IP in GRE, MAC in GRE and MAC in UDP.
The "inner_l2_len" and the "inner_l3_len" fields are added in the second cache line, they use 2 bytes for TX offloading of tunnels.

Signed-off-by: Jijiang Liu <jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
 lib/librte_mbuf/rte_mbuf.h |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index ddadc21..497d88b 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -163,7 +163,14 @@ struct rte_mbuf {
 
 	/* remaining bytes are set on RX when pulling packet from descriptor */
 	MARKER rx_descriptor_fields1;
-	uint16_t reserved2;       /**< Unused field. Required for padding */
+
+	/**
+	 * The packet type, which is used to indicate ordinary packet and also
+	 * tunneled packet format, i.e. each number is represented a type of
+	 * packet.
+	 */
+	uint16_t packet_type;
+
 	uint16_t data_len;        /**< Amount of data in segment buffer. */
 	uint32_t pkt_len;         /**< Total pkt len: sum of all segments. */
 	uint16_t vlan_tci;        /**< VLAN Tag Control Identifier (CPU order) */
@@ -196,6 +203,18 @@ struct rte_mbuf {
 			uint16_t l2_len:7;      /**< L2 (MAC) Header Length. */
 		};
 	};
+
+	/* fields for TX offloading of tunnels */
+	union {
+		uint16_t inner_l2_l3_len;
+		/**< combined inner l2/l3 lengths as single var */
+		struct {
+			uint16_t inner_l3_len:9;
+			/**< inner L3 (IP) Header Length. */
+			uint16_t inner_l2_len:7;
+			/**< inner L2 (MAC) Header Length. */
+		};
+	};
 } __rte_cache_aligned;
 
 /**
@@ -546,11 +565,13 @@ static inline void rte_pktmbuf_reset(struct rte_mbuf *m)
 	m->next = NULL;
 	m->pkt_len = 0;
 	m->l2_l3_len = 0;
+	m->inner_l2_l3_len = 0;
 	m->vlan_tci = 0;
 	m->nb_segs = 1;
 	m->port = 0xff;
 
 	m->ol_flags = 0;
+	m->packet_type = 0;
 	m->data_off = (RTE_PKTMBUF_HEADROOM <= m->buf_len) ?
 			RTE_PKTMBUF_HEADROOM : m->buf_len;
 
@@ -614,12 +635,14 @@ static inline void rte_pktmbuf_attach(struct rte_mbuf *mi, struct rte_mbuf *md)
 	mi->port = md->port;
 	mi->vlan_tci = md->vlan_tci;
 	mi->l2_l3_len = md->l2_l3_len;
+	mi->inner_l2_l3_len = md->inner_l2_l3_len;
 	mi->hash = md->hash;
 
 	mi->next = NULL;
 	mi->pkt_len = mi->data_len;
 	mi->nb_segs = 1;
 	mi->ol_flags = md->ol_flags;
+	mi->packet_type = md->packet_type;
 
 	__rte_mbuf_sanity_check(mi, 1);
 	__rte_mbuf_sanity_check(md, 0);
-- 
1.7.7.6

  parent reply	other threads:[~2014-10-27  2:13 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-27  2:13 [PATCH v8 00/10] Support VxLAN on Fortville Jijiang Liu
     [not found] ` <1414376006-31402-1-git-send-email-jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-27  2:13   ` Jijiang Liu [this message]
2014-10-27  2:13   ` [PATCH v8 02/10] librte_ether:add the basic data structures of VxLAN Jijiang Liu
2014-10-27  2:13   ` [PATCH v8 03/10] librte_ether:add VxLAN packet identification API Jijiang Liu
2014-10-27  2:13   ` [PATCH v8 04/10] i40e:support VxLAN packet identification in i40e Jijiang Liu
2014-10-27  2:13   ` [PATCH v8 05/10] app/test-pmd:test VxLAN packet identification Jijiang Liu
2014-10-27  2:13   ` [PATCH v8 06/10] librte_ether:add data structures of VxLAN filter Jijiang Liu
2014-10-27  2:13   ` [PATCH v8 07/10] i40e:implement the API of VxLAN filter in librte_pmd_i40e Jijiang Liu
2014-10-27  2:13   ` [PATCH v8 08/10] app/testpmd:test VxLAN packet filter Jijiang Liu
2014-10-27  2:13   ` [PATCH v8 09/10] i40e:support VxLAN Tx checksum offload Jijiang Liu
2014-10-27  2:13   ` [PATCH v8 10/10] app/testpmd:test " Jijiang Liu
     [not found]     ` <1414376006-31402-11-git-send-email-jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-04  8:19       ` Olivier MATZ
     [not found]         ` <54588BF7.309-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-05  6:02           ` Liu, Jijiang
     [not found]             ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D8510E-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-05 10:28               ` Olivier MATZ
     [not found]                 ` <5459FBB2.1040408-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-06 11:24                   ` Liu, Jijiang
     [not found]                     ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D858A1-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-06 13:08                       ` Olivier MATZ
     [not found]                         ` <545B72E5.9090002-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-06 14:27                           ` Liu, Jijiang
2014-11-07  0:43                   ` Yong Wang
     [not found]                     ` <0c654d2c0d304b45a40af6ca38b70adf-kzjMWN3NnNA9Xh8A42242iWTkRzJkiQl@public.gmane.org>
2014-11-07 17:16                       ` Olivier MATZ
     [not found]                         ` <545CFE56.60605-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-10 11:39                           ` Ananyev, Konstantin
     [not found]                             ` <2601191342CEEE43887BDE71AB977258213A38D2-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-10 15:57                               ` Olivier MATZ
     [not found]                                 ` <5460E07F.6060303-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-12  9:55                                   ` Ananyev, Konstantin
     [not found]                                     ` <2601191342CEEE43887BDE71AB977258213A3F5F-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-12 13:05                                       ` Olivier MATZ
     [not found]                                         ` <54635B2B.5040603-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-12 13:40                                           ` Thomas Monjalon
2014-11-12 23:14                                             ` Ananyev, Konstantin
2014-11-12 14:39                                           ` Ananyev, Konstantin
     [not found]                                             ` <2601191342CEEE43887BDE71AB977258213A40EB-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-12 14:56                                               ` Olivier MATZ
     [not found]                         ` <D0868B54.24DBB%yongwang@vmware.com>
2014-11-11  0:07                           ` FW: " Yong Wang
2014-11-10  6:03                   ` Liu, Jijiang
     [not found]                     ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D8F399-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-10 16:17                       ` Olivier MATZ
     [not found]                         ` <5460E512.1050609-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-11  5:29                           ` Liu, Jijiang
     [not found]                             ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D8F7A7-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-12 17:26                               ` Thomas Monjalon
2014-11-13  5:35                                 ` Liu, Jijiang
     [not found]                                   ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D99258-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-13  5:39                                     ` Liu, Jijiang
2014-11-13  6:51                                 ` Liu, Jijiang
     [not found]                                   ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D992F8-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-13  9:10                                     ` Thomas Monjalon
2014-11-14  8:15                                       ` Liu, Jijiang
     [not found]                                         ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D9B646-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-14  9:09                                           ` Olivier MATZ
     [not found]                                             ` <5465C6DD.4000000-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-17  6:52                                               ` Liu, Jijiang
     [not found]                                                 ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D9BAC0-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-17 11:21                                                   ` Olivier MATZ
     [not found]                                                     ` <5469DA40.7050107-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-20  7:28                                                       ` Liu, Jijiang
     [not found]                                                         ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D9C383-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-20 16:36                                                           ` Olivier MATZ
     [not found]                                                             ` <546E1887.1020800-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-21  5:40                                                               ` Liu, Jijiang
2014-10-27  2:20   ` [PATCH v8 00/10] Support VxLAN on Fortville Liu, Yong
2014-10-27  2:41   ` Zhang, Helin
     [not found]     ` <F35DEAC7BCE34641BA9FAC6BCA4A12E70A7AB624-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-27 13:46       ` Thomas Monjalon
2014-10-27 14:34         ` Liu, Jijiang
     [not found]           ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D83857-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-27 15:15             ` 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=1414376006-31402-2-git-send-email-jijiang.liu@intel.com \
    --to=jijiang.liu-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    /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).