-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
app/testpmd: add GTP parsing and Tx checksum offload
Enable testpmd to forward GTP packet in csum fwd mode. A GTP header structure (without optional fields and extension header) is defined in new rte_gtp.h. A parser function in testpmd is added. GTPU and GTPC packets are both supported, with respective UDP destination port and GTP message type. Signed-off-by: Ting Xu <ting.xu@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
- Loading branch information
Showing
5 changed files
with
141 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
/* SPDX-License-Identifier: BSD-3-Clause | ||
* Copyright(c) 1982, 1986, 1990, 1993 | ||
* The Regents of the University of California. | ||
* Copyright(c) 2010-2014 Intel Corporation. | ||
* All rights reserved. | ||
*/ | ||
|
||
#ifndef _RTE_GTP_H_ | ||
#define _RTE_GTP_H_ | ||
|
||
/** | ||
* @file | ||
* | ||
* GTP-related defines | ||
*/ | ||
|
||
#include <stdint.h> | ||
#include <rte_byteorder.h> | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/** | ||
* Simplified GTP protocol header. | ||
* Contains 8-bit header info, 8-bit message type, | ||
* 16-bit payload length after mandatory header, 32-bit TEID. | ||
* No optional fields and next extension header. | ||
*/ | ||
struct rte_gtp_hdr { | ||
uint8_t gtp_hdr_info; /**< GTP header info */ | ||
uint8_t msg_type; /**< GTP message type */ | ||
uint16_t plen; /**< Total payload length */ | ||
uint32_t teid; /**< Tunnel endpoint ID */ | ||
} __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 /**< GTP next protocal type IPv4 */ | ||
#define RTE_GTP_TYPE_IPV6 0x60 /**< GTP next protocal type IPv6 */ | ||
/* GTP destination port number */ | ||
#define RTE_GTPC_UDP_PORT 2123 /**< GTP-C UDP destination port */ | ||
#define RTE_GTPU_UDP_PORT 2152 /**< GTP-U UDP destination port */ | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif /* RTE_GTP_H_ */ |