lisp: API cleanup
[vpp.git] / src / vnet / lisp-gpe / lisp_gpe.api
1 /*
2  * Copyright (c) 2015-2016 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
16 option version = "2.0.0";
17
18 import "vnet/interface_types.api";
19 import "vnet/lisp-cp/lisp_types.api";
20
21 /** \brief GPE locator structure
22     @param is_ip4 - whether addr is IPv4 or v6
23     @param weight - locator weight
24     @param addr - IPv4/6 address
25 */
26 typedef gpe_locator
27 {
28   u8 weight;
29   vl_api_address_t addr;
30 };
31
32 /** \brief add or delete GPE tunnel
33     @param client_index - opaque cookie to identify the sender
34     @param context - sender context, to match reply w/ request
35     @param is_add - add address if non-zero, else delete
36     @param rmt_eid - remote eid
37     @param lcl_eid - local eid
38     @param vni - virtual network identifier
39     @param dp_table - vrf/bridge domain id
40     @param action - negative action when 0 locators configured
41     @param loc_num - number of locators
42     @param locs - array of remote locators
43 */
44 manual_print manual_endian define gpe_add_del_fwd_entry
45 {
46   u32 client_index;
47   u32 context;
48   bool is_add [default=true];
49   vl_api_eid_t rmt_eid;
50   vl_api_eid_t lcl_eid;
51   u32 vni;
52   u32 dp_table;
53   u8 action;
54   u32 loc_num;
55   vl_api_gpe_locator_t locs[loc_num];
56 };
57
58 define gpe_add_del_fwd_entry_reply
59 {
60   u32 context;
61   i32 retval;
62   u32 fwd_entry_index;
63 };
64
65 /** \brief enable or disable gpe protocol
66     @param client_index - opaque cookie to identify the sender
67     @param context - sender context, to match reply w/ request
68     @param is_enable [default=true] - enable protocol if non-zero, else disable
69 */
70 autoreply define gpe_enable_disable
71 {
72   u32 client_index;
73   u32 context;
74   bool is_enable [default=true];
75 };
76
77 /** \brief add or delete gpe_iface
78     @param client_index - opaque cookie to identify the sender
79     @param context - sender context, to match reply w/ request
80     @param is_add - add address if non-zero, else delete
81 */
82 autoreply define gpe_add_del_iface
83 {
84   u32 client_index;
85   u32 context;
86   bool is_add [default=true];
87   bool is_l2;
88   u32 dp_table;
89   u32 vni;
90 };
91
92 define gpe_fwd_entry_vnis_get
93 {
94   u32 client_index;
95   u32 context;
96 };
97
98 manual_print manual_endian define gpe_fwd_entry_vnis_get_reply
99 {
100   u32 context;
101   i32 retval;
102   u32 count;
103   u32 vnis[count];
104 };
105
106 define gpe_fwd_entries_get
107 {
108   u32 client_index;
109   u32 context;
110   u32 vni;
111 };
112
113 typedef gpe_fwd_entry
114 {
115   u32 fwd_entry_index;
116   u32 dp_table;
117   vl_api_eid_t leid;
118   vl_api_eid_t reid;
119   u32 vni;
120   u8 action;
121 };
122
123 manual_print manual_endian define gpe_fwd_entries_get_reply
124 {
125   u32 context;
126   i32 retval;
127   u32 count;
128   vl_api_gpe_fwd_entry_t entries[count];
129 };
130
131 define gpe_fwd_entry_path_dump
132 {
133   u32 client_index;
134   u32 context;
135   u32 fwd_entry_index;
136 };
137
138 manual_endian manual_print define gpe_fwd_entry_path_details
139 {
140   u32 context;
141   vl_api_gpe_locator_t lcl_loc;
142   vl_api_gpe_locator_t rmt_loc;
143 };
144
145 /** \brief Set GPE encapsulation mode
146     @param client_index - opaque cookie to identify the sender
147     @param context - sender context, to match reply w/ request
148     @param mode - LISP (value 0) or VXLAN (value 1)
149 */
150 autoreply define gpe_set_encap_mode
151 {
152   u32 client_index;
153   u32 context;
154   bool is_vxlan;
155 };
156
157 /** \brief get GPE encapsulation mode
158     @param client_index - opaque cookie to identify the sender
159     @param context - sender context, to match reply w/ request
160     @param mode - LISP (value 0) or VXLAN (value 1)
161 */
162 define gpe_get_encap_mode
163 {
164   u32 client_index;
165   u32 context;
166 };
167
168 /** \brief Reply for set_encap_mode
169     @param context - returned sender context, to match reply w/ request
170     @param retval - return code
171     @param encap_mode - GPE encapsulation mode
172 */
173 define gpe_get_encap_mode_reply
174 {
175   u32 context;
176   i32 retval;
177   /* FIXME: gpe encap enum */
178   u8 encap_mode;
179 };
180
181 /** \brief Add native fwd rpath
182     @param context - returned sender context, to match reply w/ request
183     @param retval - return code
184     @param is_add - flag to indicate add or del
185     @param table_id - table id for route path
186     @param nh_sw_if_index - next-hop sw_if_index (~0 if not set)
187     @param is_ip4 - flag to indicate if nh is ip4
188     @param nh_addr - next hop ip address
189 */
190 autoreply define gpe_add_del_native_fwd_rpath
191 {
192   u32 client_index;
193   u32 context;
194   bool is_add [default=true];
195   u32 table_id;
196   vl_api_interface_index_t nh_sw_if_index;
197   vl_api_address_t nh_addr;
198 };
199
200 /** \brief get GPE native fwd rpath
201     @param client_index - opaque cookie to identify the sender
202     @param context - sender context, to match reply w/ request
203 */
204 define gpe_native_fwd_rpaths_get
205 {
206   u32 client_index;
207   u32 context;
208   bool is_ip4;
209 };
210
211 /** \brief Reply for get native fwd rpath
212     @param context - returned sender context, to match reply w/ request
213     @param retval - return code
214     @param table_id - table id for route path
215     @param nh_sw_if_index - next-hop sw_if_index (~0 if not set)
216     @param nh_addr - next hop address
217 */
218 typedef gpe_native_fwd_rpath
219 {
220   u32 fib_index;
221   vl_api_interface_index_t nh_sw_if_index;
222   vl_api_address_t nh_addr;
223 };
224
225 manual_print manual_endian define gpe_native_fwd_rpaths_get_reply
226 {
227   u32 context;
228   i32 retval;
229   u32 count;
230   vl_api_gpe_native_fwd_rpath_t entries[count];
231 };
232
233 /*
234  * Local Variables:
235  * eval: (c-set-style "gnu")
236  * End:
237  */