DPDK  19.11.1
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 } __attribute__((__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 } __attribute__((__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_ */
rte_vxlan_gpe_hdr::vx_vni
uint32_t vx_vni
Definition: rte_vxlan.h:50
rte_vxlan_gpe_hdr
Definition: rte_vxlan.h:46
rte_vxlan_hdr::vx_vni
uint32_t vx_vni
Definition: rte_vxlan.h:33
rte_udp.h
rte_vxlan_gpe_hdr::reserved
uint8_t reserved[2]
Definition: rte_vxlan.h:48
rte_vxlan_gpe_hdr::proto
uint8_t proto
Definition: rte_vxlan.h:49
rte_vxlan_hdr
Definition: rte_vxlan.h:31
rte_vxlan_gpe_hdr::vx_flags
uint8_t vx_flags
Definition: rte_vxlan.h:47
rte_vxlan_hdr::vx_flags
uint32_t vx_flags
Definition: rte_vxlan.h:32