ethdev: introduce tunnel type MPLS-in-GRE and MPLS-in-UDP

This patch adds new tunnel type for MPLS-in-GRE and MPLS-in-UDP.

MPLS-in-GRE protocol link:
https://tools.ietf.org/html/rfc4023

MPLS-in-UDP protocol link:
https://tools.ietf.org/html/rfc7510

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
This commit is contained in:
Xueming Li 2018-04-23 20:16:33 +08:00 committed by Ferruh Yigit
parent 6f99e5b54e
commit 063f39f26d
2 changed files with 36 additions and 0 deletions

View File

@ -66,6 +66,8 @@ const char *rte_get_ptype_tunnel_name(uint32_t ptype)
case RTE_PTYPE_TUNNEL_ESP: return "TUNNEL_ESP";
case RTE_PTYPE_TUNNEL_L2TP: return "TUNNEL_L2TP";
case RTE_PTYPE_TUNNEL_VXLAN_GPE: return "TUNNEL_VXLAN_GPE";
case RTE_PTYPE_TUNNEL_MPLS_IN_UDP: return "TUNNEL_MPLS_IN_UDP";
case RTE_PTYPE_TUNNEL_MPLS_IN_GRE: return "TUNNEL_MPLS_IN_GRE";
default: return "TUNNEL_UNKNOWN";
}
}

View File

@ -435,6 +435,40 @@ extern "C" {
* | 'destination port'=4790>
*/
#define RTE_PTYPE_TUNNEL_VXLAN_GPE 0x0000b000
/**
* MPLS-in-GRE tunneling packet type (RFC 4023).
*
* Packet format:
* <'ether type'=0x0800
* | 'version'=4, 'protocol'=47
* | 'protocol'=0x8847>
* or,
* <'ether type'=0x0800
* | 'version'=4, 'protocol'=47
* | 'protocol'=0x8848>
* or,
* <'ether type'=0x86DD
* | 'version'=6, 'protocol'=47
* | 'protocol'=0x8847>
* or,
* <'ether type'=0x86DD
* | 'version'=6, 'next header'=47
* | 'protocol'=0x8848>
*/
#define RTE_PTYPE_TUNNEL_MPLS_IN_GRE 0x0000c000
/**
* MPLS-in-UDP tunneling packet type (RFC 7510).
*
* Packet format:
* <'ether type'=0x0800
* | 'version'=4, 'protocol'=17
* | 'destination port'=6635>
* or,
* <'ether type'=0x86DD
* | 'version'=6, 'next header'=17
* | 'destination port'=6635>
*/
#define RTE_PTYPE_TUNNEL_MPLS_IN_UDP 0x0000d000
/**
* Mask of tunneling packet types.
*/