[dpdk-dev,6/7] mbuf: introduce new Tx offload flag for MPLS-in-UDP

Message ID 1495960654-352-7-git-send-email-rasesh.mody@cavium.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Mody, Rasesh May 28, 2017, 8:37 a.m. UTC
  From: Harish Patil <harish.patil@cavium.com>

Some PMDs need to know the tunnel type in order to handle advance TX
features. This patch adds a new TX offload flag for MPLS-in-UDP packets.

Signed-off-by: Harish Patil <harish.patil@cavium.com>
---
 lib/librte_mbuf/rte_mbuf.c |    2 ++
 lib/librte_mbuf/rte_mbuf.h |   17 ++++++++++-------
 2 files changed, 12 insertions(+), 7 deletions(-)
  

Comments

Ferruh Yigit May 30, 2017, 12:23 p.m. UTC | #1
On 5/28/2017 9:37 AM, Rasesh Mody wrote:
> From: Harish Patil <harish.patil@cavium.com>
> 
> Some PMDs need to know the tunnel type in order to handle advance TX
> features. This patch adds a new TX offload flag for MPLS-in-UDP packets.
> 
> Signed-off-by: Harish Patil <harish.patil@cavium.com>
> ---
>  lib/librte_mbuf/rte_mbuf.c |    2 ++
>  lib/librte_mbuf/rte_mbuf.h |   17 ++++++++++-------
>  2 files changed, 12 insertions(+), 7 deletions(-)

CC: Olivier MATZ <olivier.matz@6wind.com>

This patch updates rte_mbuf, so the patchset will wait for the ACK for
this patch first.

Thanks,
ferruh
  
Patil, Harish June 1, 2017, 6:59 p.m. UTC | #2
>


>On 5/28/2017 9:37 AM, Rasesh Mody wrote:

>> From: Harish Patil <harish.patil@cavium.com>

>> 

>> Some PMDs need to know the tunnel type in order to handle advance TX

>> features. This patch adds a new TX offload flag for MPLS-in-UDP packets.

>> 

>> Signed-off-by: Harish Patil <harish.patil@cavium.com>

>> ---

>>  lib/librte_mbuf/rte_mbuf.c |    2 ++

>>  lib/librte_mbuf/rte_mbuf.h |   17 ++++++++++-------

>>  2 files changed, 12 insertions(+), 7 deletions(-)

>

>CC: Olivier MATZ <olivier.matz@6wind.com>

>

>This patch updates rte_mbuf, so the patchset will wait for the ACK for

>this patch first.

>

>Thanks,

>ferruh

>

>

Hi Ferruh,
Please note that this mbuf change is an independent patch.
Let me know if you want us to provide it as a separate patch.
Only patch 7/7 depends on the mbuf patch.

Thanks,
Harish
  
Ferruh Yigit June 1, 2017, 7:43 p.m. UTC | #3
On 6/1/2017 7:59 PM, Patil, Harish wrote:
>>
> 
>> On 5/28/2017 9:37 AM, Rasesh Mody wrote:
>>> From: Harish Patil <harish.patil@cavium.com>
>>>
>>> Some PMDs need to know the tunnel type in order to handle advance TX
>>> features. This patch adds a new TX offload flag for MPLS-in-UDP packets.
>>>
>>> Signed-off-by: Harish Patil <harish.patil@cavium.com>
>>> ---
>>>  lib/librte_mbuf/rte_mbuf.c |    2 ++
>>>  lib/librte_mbuf/rte_mbuf.h |   17 ++++++++++-------
>>>  2 files changed, 12 insertions(+), 7 deletions(-)
>>
>> CC: Olivier MATZ <olivier.matz@6wind.com>
>>
>> This patch updates rte_mbuf, so the patchset will wait for the ACK for
>> this patch first.
>>
>> Thanks,
>> ferruh
>>
>>
> Hi Ferruh,
> Please note that this mbuf change is an independent patch.
> Let me know if you want us to provide it as a separate patch.
> Only patch 7/7 depends on the mbuf patch.

I think it is good idea to make separate patchset, so this won't block
all patchset.

> 
> Thanks,
> Harish
> 
>
  
Mody, Rasesh June 7, 2017, 7:49 a.m. UTC | #4
> From: Ferruh Yigit [mailto:ferruh.yigit@intel.com]

> Sent: Thursday, June 01, 2017 12:44 PM

> 

> On 6/1/2017 7:59 PM, Patil, Harish wrote:

> >>

> >

> >> On 5/28/2017 9:37 AM, Rasesh Mody wrote:

> >>> From: Harish Patil <harish.patil@cavium.com>

> >>>

> >>> Some PMDs need to know the tunnel type in order to handle advance

> TX

> >>> features. This patch adds a new TX offload flag for MPLS-in-UDP packets.

> >>>

> >>> Signed-off-by: Harish Patil <harish.patil@cavium.com>

> >>> ---

> >>>  lib/librte_mbuf/rte_mbuf.c |    2 ++

> >>>  lib/librte_mbuf/rte_mbuf.h |   17 ++++++++++-------

> >>>  2 files changed, 12 insertions(+), 7 deletions(-)

> >>

> >> CC: Olivier MATZ <olivier.matz@6wind.com>

> >>

> >> This patch updates rte_mbuf, so the patchset will wait for the ACK

> >> for this patch first.

> >>

> >> Thanks,

> >> ferruh

> >>

> >>

> > Hi Ferruh,

> > Please note that this mbuf change is an independent patch.

> > Let me know if you want us to provide it as a separate patch.

> > Only patch 7/7 depends on the mbuf patch.

> 

> I think it is good idea to make separate patchset, so this won't block all

> patchset.


We have split the series into separate patch sets to disjoin mbuf changes from others.
 Thanks!
-Rasesh

> >

> > Thanks,

> > Harish

> >

> >
  

Patch

diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c
index 0e3e36a..c2793fb 100644
--- a/lib/librte_mbuf/rte_mbuf.c
+++ b/lib/librte_mbuf/rte_mbuf.c
@@ -410,6 +410,7 @@  const char *rte_get_tx_ol_flag_name(uint64_t mask)
 	case PKT_TX_TUNNEL_IPIP: return "PKT_TX_TUNNEL_IPIP";
 	case PKT_TX_TUNNEL_GENEVE: return "PKT_TX_TUNNEL_GENEVE";
 	case PKT_TX_MACSEC: return "PKT_TX_MACSEC";
+	case PKT_TX_TUNNEL_MPLSINUDP: return "PKT_TX_TUNNEL_MPLSINUDP";
 	default: return NULL;
 	}
 }
@@ -441,6 +442,7 @@  const char *rte_get_tx_ol_flag_name(uint64_t mask)
 		{ PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK,
 		  "PKT_TX_TUNNEL_NONE" },
 		{ PKT_TX_MACSEC, PKT_TX_MACSEC, NULL },
+		{ PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MPLSINUDP, NULL },
 	};
 	const char *name;
 	unsigned int i;
diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index 1cb0310..27ad421 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -197,19 +197,22 @@ 
  * Offload the MACsec. This flag must be set by the application to enable
  * this offload feature for a packet to be transmitted.
  */
-#define PKT_TX_MACSEC        (1ULL << 44)
+#define PKT_TX_MACSEC        (1ULL << 43)
 
 /**
- * Bits 45:48 used for the tunnel type.
+ * Bits 44:48 used for the tunnel type.
  * When doing Tx offload like TSO or checksum, the HW needs to configure the
  * tunnel type into the HW descriptors.
  */
-#define PKT_TX_TUNNEL_VXLAN   (0x1ULL << 45)
-#define PKT_TX_TUNNEL_GRE     (0x2ULL << 45)
-#define PKT_TX_TUNNEL_IPIP    (0x3ULL << 45)
-#define PKT_TX_TUNNEL_GENEVE  (0x4ULL << 45)
+/**< TX packet with MPLS-in-UDP RFC 7510 header. */
+#define PKT_TX_TUNNEL_MPLSINUDP (0x1ULL << 44)
+
+#define PKT_TX_TUNNEL_VXLAN   (0x2ULL << 44)
+#define PKT_TX_TUNNEL_GRE     (0x3ULL << 44)
+#define PKT_TX_TUNNEL_IPIP    (0x4ULL << 44)
+#define PKT_TX_TUNNEL_GENEVE  (0x5ULL << 45)
 /* add new TX TUNNEL type here */
-#define PKT_TX_TUNNEL_MASK    (0xFULL << 45)
+#define PKT_TX_TUNNEL_MASK    (0x1FULL << 44)
 
 /**
  * Second VLAN insertion (QinQ) flag.