VPPAPIGEN: vppapigen replacement in Python PLY.
[vpp.git] / src / plugins / ioam / lib-vxlan-gpe / ioam_vxlan_gpe.api
1 /* Hey Emacs use -*- mode: C -*- */
2 /*
3  * Copyright (c) 2016 Cisco and/or its affiliates.
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 option version = "1.0.0";
18
19 /** \brief iOAM Over VxLAN-GPE - Set iOAM transport for VxLAN-GPE
20     @param client_index - opaque cookie to identify the sender
21     @param context - sender context, to match reply w/ request
22     @param id - profile id
23     @param trace_ppc - Trace PPC (none/encap/decap)
24     @param pow_enable - Proof of Work enabled or not flag
25     @param trace_enable - iOAM Trace enabled or not flag
26
27 */
28 autoreply define vxlan_gpe_ioam_enable {
29   u32 client_index;
30   u32 context;
31   u16 id;
32   u8 trace_ppc;
33   u8 pow_enable;
34   u8 trace_enable;
35 };
36
37 /** \brief iOAM for VxLAN-GPE disable
38     @param client_index - opaque cookie to identify the sender
39     @param context - sender context, to match reply w/ request
40     @param id - profile id
41 */
42 autoreply define vxlan_gpe_ioam_disable
43 {
44   u32 client_index;
45   u32 context;
46   u16 id;
47 };
48
49 /** \brief Enable iOAM for a VNI (VXLAN-GPE)
50     @param client_index - opaque cookie to identify the sender
51     @param context - sender context, to match reply w/ request
52     @param vni - VXLAN-GPE VNI
53     @param local - IPv4/6 Address of the local VTEP
54     @param remote - IPv4/6 Address of the remote VTEP
55
56 */
57 autoreply define vxlan_gpe_ioam_vni_enable {
58   u32 client_index;
59   u32 context;
60   u32 vni;
61   u8  local[16];
62   u8  remote[16];
63   u8  is_ipv6;
64 };
65
66 /** \brief Disable iOAM for a VNI (VXLAN-GPE)
67     @param client_index - opaque cookie to identify the sender
68     @param context - sender context, to match reply w/ request
69     @param vni - VXLAN-GPE VNI
70     @param local - IPv4/6 Address of the local VTEP
71     @param remote - IPv4/6 Address of the remote VTEP
72
73 */
74 autoreply define vxlan_gpe_ioam_vni_disable {
75   u32 client_index;
76   u32 context;
77   u32 vni;
78   u8  local[16];
79   u8  remote[16];
80   u8  is_ipv6;
81 };
82
83 /** \brief Enable iOAM for a VXLAN-GPE transit
84     @param client_index - opaque cookie to identify the sender
85     @param context - sender context, to match reply w/ request
86     @param dst_addr - IPv4/6 Address of the local VTEP
87     @param outer_fib_index- FIB index
88
89 */
90 autoreply define vxlan_gpe_ioam_transit_enable {
91   u32 client_index;
92   u32 context;
93   u32 outer_fib_index;
94   u8  dst_addr[16];
95   u8  is_ipv6;
96 };
97
98 /** \brief Disable iOAM for VXLAN-GPE transit
99     @param client_index - opaque cookie to identify the sender
100     @param context - sender context, to match reply w/ request
101     @param dst_addr - IPv4/6 Address of the local VTEP
102     @param outer_fib_index- FIB index
103
104 */
105 autoreply define vxlan_gpe_ioam_transit_disable {
106   u32 client_index;
107   u32 context;
108   u32 outer_fib_index;
109   u8  dst_addr[16];
110   u8  is_ipv6;
111 };
112