DPDK  20.05.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_udp.h>
17 
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
24 #define RTE_VXLAN_DEFAULT_PORT 4789
25 
31 struct rte_vxlan_hdr {
32  uint32_t vx_flags;
33  uint32_t vx_vni;
34 } __rte_packed;
35 
37 #define RTE_ETHER_VXLAN_HLEN \
38  (sizeof(struct rte_udp_hdr) + sizeof(struct rte_vxlan_hdr))
39 
40 
47  uint8_t vx_flags;
48  uint8_t reserved[2];
49  uint8_t proto;
50  uint32_t vx_vni;
51 } __rte_packed;
52 
54 #define RTE_ETHER_VXLAN_GPE_HLEN (sizeof(struct rte_udp_hdr) + \
55  sizeof(struct rte_vxlan_gpe_hdr))
56 
57 /* VXLAN-GPE next protocol types */
58 #define RTE_VXLAN_GPE_TYPE_IPV4 1
59 #define RTE_VXLAN_GPE_TYPE_IPV6 2
60 #define RTE_VXLAN_GPE_TYPE_ETH 3
61 #define RTE_VXLAN_GPE_TYPE_NSH 4
62 #define RTE_VXLAN_GPE_TYPE_MPLS 5
63 #define RTE_VXLAN_GPE_TYPE_GBP 6
64 #define RTE_VXLAN_GPE_TYPE_VBNG 7
67 #ifdef __cplusplus
68 }
69 #endif
70 
71 #endif /* RTE_VXLAN_H_ */
#define __rte_packed
Definition: rte_common.h:84
uint32_t vx_vni
Definition: rte_vxlan.h:33
uint8_t vx_flags
Definition: rte_vxlan.h:47
uint32_t vx_flags
Definition: rte_vxlan.h:32
uint32_t vx_vni
Definition: rte_vxlan.h:50
uint8_t reserved[2]
Definition: rte_vxlan.h:48