[dpdk-dev] [PATCH v4] app/testpmd: enable GTP header parse and Tx checksum offload
Ferruh Yigit
ferruh.yigit at intel.com
Mon Oct 21 12:52:46 CEST 2019
On 10/21/2019 10:28 AM, Ferruh Yigit wrote:
> On 10/21/2019 1:29 PM, Ting Xu wrote:
>> This patch enables testpmd to forward GTP packet in csum fwd mode.
>> GTP header structure (without optional fields and extension header)
>> and parser function are added. GTPU and GTPC packets are both
>> supported, with respective UDP destination port and GTP message
>> type.
>>
>> Signed-off-by: Ting Xu <ting.xu at intel.com>
>>
>> ---
>> v4: Move GTP header defination to rte_ether.h
>> v3: correct coding style issue.
>> v2: modify commit log
>> depend on patch: lib/mbuf: add GTP tunnel type flag.
>> ---
>> app/test-pmd/csumonly.c | 96 ++++++++++++++++++++++++++++++++++----
>> lib/librte_net/rte_ether.h | 23 +++++++++
>> 2 files changed, 109 insertions(+), 10 deletions(-)
>
> <...>
>
>> --- a/lib/librte_net/rte_ether.h
>> +++ b/lib/librte_net/rte_ether.h
>> @@ -342,6 +342,29 @@ struct rte_vxlan_gpe_hdr {
>> sizeof(struct rte_vxlan_gpe_hdr))
>> /**< VXLAN-GPE tunnel header length. */
>>
>> +/**
>> + * Simplified GTP protocol header.
>> + * Contains 8-bit flag, 8-bit message type,
>> + * 16-bit message length, 32-bit TEID.
>> + * No optional fields and next extension header.
>> + */
>> +struct rte_gtp_hdr {
>> + uint8_t gtp_hdr_info;
>> + uint8_t msg_type;
>> + uint16_t msg_len;
>> + uint32_t teid;
>> +} __attribute__((__packed__));
>> +
>> +/* GTP header length */
>> +#define RTE_ETHER_GTP_HLEN \
>> + (sizeof(struct rte_udp_hdr) + sizeof(struct rte_gtp_hdr))
>> +/* GTP next protocal type */
>> +#define RTE_GTP_TYPE_IPV4 0x40
>> +#define RTE_GTP_TYPE_IPV6 0x60
>> +/* GTP destination port number */
>> +#define RTE_GTPC_UDP_PORT 2123
>> +#define RTE_GTPU_UDP_PORT 2152
>> +
>> /**
>> * Extract VLAN tag information into mbuf
>> *
>>
>
> lgtm, @Oliver, any comment/objection on GTP part in rte_ether.h?
>
What about moving the defines to its own header, like rte_gtp? Is these defines
part of the ether?
More information about the dev
mailing list