a7ef859ec58c281864046b20cdb5a130b6cf4a6e
[vpp.git] / plugins / ioam-plugin / ioam / lib-vxlan-gpe / vxlan_gpe_ioam_packet.h
1 /*
2  * Copyright (c) 2015 Cisco and/or its affiliates.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at:
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #ifndef __included_vxlan_gpe_ioam_packet_h__
16 #define __included_vxlan_gpe_ioam_packet_h__
17
18 #include <vnet/vxlan-gpe/vxlan_gpe.h>
19 #include <vnet/vxlan-gpe/vxlan_gpe_packet.h>
20 #include <vnet/ip/ip.h>
21
22
23
24 #define VXLAN_GPE_OPTION_TYPE_IOAM_TRACE   59
25 #define VXLAN_GPE_OPTION_TYPE_IOAM_PROOF_OF_TRANSIT 60
26
27 /**
28  * @brief VXLAN GPE Extension (iOAM) Header definition
29  */
30 typedef struct
31 {
32   u8 type;
33   u8 length;
34   /** Reserved */
35   u8 reserved;
36   /** see vxlan_gpe_protocol_t */
37   u8 protocol;
38 } vxlan_gpe_ioam_hdr_t;
39
40 /*
41  * @brief VxLAN GPE iOAM Option definition
42  */
43 typedef struct
44 {
45   /* Option Type */
46   u8 type;
47   /* Length in octets of the option data field */
48   u8 length;
49 } vxlan_gpe_ioam_option_t;
50
51
52 #endif
53
54
55 /*
56  * fd.io coding-style-patch-verification: ON
57  *
58  * Local Variables:
59  * eval: (c-set-style "gnu")
60  * End:
61  */