DPDK  19.05.0
rte_gre.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright 2016 6WIND S.A.
3  */
4 
5 #ifndef _RTE_GRE_H_
6 #define _RTE_GRE_H_
7 
8 #include <stdint.h>
9 #include <rte_byteorder.h>
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
18 __extension__
19 struct gre_hdr {
20 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
21  uint16_t res2:4;
22  uint16_t s:1;
23  uint16_t k:1;
24  uint16_t res1:1;
25  uint16_t c:1;
26  uint16_t ver:3;
27  uint16_t res3:5;
28 #elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
29  uint16_t c:1;
30  uint16_t res1:1;
31  uint16_t k:1;
32  uint16_t s:1;
33  uint16_t res2:4;
34  uint16_t res3:5;
35  uint16_t ver:3;
36 #endif
37  uint16_t proto;
38 } __attribute__((__packed__));
39 
40 #ifdef __cplusplus
41 }
42 #endif
43 
44 #endif /* RTE_GRE_H_ */