DPDK  21.08.0
rte_vxlan.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2018-2019 Intel Corporation
3  */
4 
5 #ifndef _RTE_VXLAN_H_
6 #define _RTE_VXLAN_H_
7 
14 #include <stdint.h>
15 
16 #include <rte_byteorder.h>
17 #include <rte_udp.h>
18 
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
25 #define RTE_VXLAN_DEFAULT_PORT 4789
26 #define RTE_VXLAN_GPE_DEFAULT_PORT 4790
27 
33 struct rte_vxlan_hdr {
36 } __rte_packed;
37 
39 #define RTE_ETHER_VXLAN_HLEN \
40  (sizeof(struct rte_udp_hdr) + sizeof(struct rte_vxlan_hdr))
41 
42 
49  uint8_t vx_flags;
50  uint8_t reserved[2];
51  uint8_t proto;
53 } __rte_packed;
54 
56 #define RTE_ETHER_VXLAN_GPE_HLEN (sizeof(struct rte_udp_hdr) + \
57  sizeof(struct rte_vxlan_gpe_hdr))
58 
59 /* VXLAN-GPE next protocol types */
60 #define RTE_VXLAN_GPE_TYPE_IPV4 1
61 #define RTE_VXLAN_GPE_TYPE_IPV6 2
62 #define RTE_VXLAN_GPE_TYPE_ETH 3
63 #define RTE_VXLAN_GPE_TYPE_NSH 4
64 #define RTE_VXLAN_GPE_TYPE_MPLS 5
65 #define RTE_VXLAN_GPE_TYPE_GBP 6
66 #define RTE_VXLAN_GPE_TYPE_VBNG 7
69 #ifdef __cplusplus
70 }
71 #endif
72 
73 #endif /* RTE_VXLAN_H_ */
#define __rte_packed
Definition: rte_common.h:86
uint32_t rte_be32_t
rte_be32_t vx_flags
Definition: rte_vxlan.h:34
rte_be32_t vx_vni
Definition: rte_vxlan.h:52
uint8_t vx_flags
Definition: rte_vxlan.h:49
rte_be32_t vx_vni
Definition: rte_vxlan.h:35