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:
7 * http://www.apache.org/licenses/LICENSE-2.0
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.
16 option version = "2.0.0";
18 import "vnet/interface_types.api";
19 import "plugins/lisp/lisp-cp/lisp_types.api";
21 /** \brief add or delete locator_set
22 @param client_index - opaque cookie to identify the sender
23 @param context - sender context, to match reply w/ request
24 @param is_add - add address if non-zero, else delete
25 @param locator_set_name - locator name
26 @param locator_num - number of locators
27 @param locators - LISP locator records
29 define lisp_add_del_locator_set
33 bool is_add [default=true];
34 string locator_set_name[64];
36 vl_api_local_locator_t locators[locator_num];
39 /** \brief Reply for locator_set add/del
40 @param context - returned sender context, to match reply w/ request
41 @param retval - return code
42 @param ls_index - locator set index
44 define lisp_add_del_locator_set_reply
51 /** \brief add or delete locator for locator_set
52 @param client_index - opaque cookie to identify the sender
53 @param context - sender context, to match reply w/ request
54 @param is_add - add address if non-zero, else delete
55 @param locator_set_name - name of locator_set to add/del locator
56 @param sw_if_index - index of the interface
57 @param priority - priority of the lisp locator
58 @param weight - weight of the lisp locator
60 autoreply define lisp_add_del_locator
64 bool is_add [default=true];
65 string locator_set_name[64];
66 vl_api_interface_index_t sw_if_index;
71 /** \brief add or delete lisp eid-table
72 @param client_index - opaque cookie to identify the sender
73 @param context - sender context, to match reply w/ request
74 @param is_add - add address if non-zero, else delete
75 @param eid - endpoint identifier
76 @param locator_set_name - name of locator_set to add/del eid-table
77 @param vni - virtual network instance
78 @param key - secret key
80 autoreply define lisp_add_del_local_eid
84 bool is_add [default=true];
86 string locator_set_name[64];
88 vl_api_hmac_key_t key;
91 /** \brief Add/delete map server
92 @param client_index - opaque cookie to identify the sender
93 @param context - sender context, to match reply w/ request
94 @param is_add - add address if non-zero; delete otherwise
95 @param ip_address - map server IP address
97 autoreply define lisp_add_del_map_server
101 bool is_add [default=true];
102 vl_api_address_t ip_address;
105 /** \brief add or delete map-resolver
106 @param client_index - opaque cookie to identify the sender
107 @param context - sender context, to match reply w/ request
108 @param is_add - add address if non-zero, else delete
109 @param ip_address - ip address
111 autoreply define lisp_add_del_map_resolver
115 bool is_add [default=true];
116 vl_api_address_t ip_address;
119 /** \brief enable or disable LISP feature
120 @param client_index - opaque cookie to identify the sender
121 @param context - sender context, to match reply w/ request
122 @param is_en - enable protocol if non-zero, else disable
124 autoreply define lisp_enable_disable
128 bool is_enable [default=true];
131 /** \brief configure or disable LISP PITR node
132 @param client_index - opaque cookie to identify the sender
133 @param context - sender context, to match reply w/ request
134 @param ls_name - locator set name
135 @param is_add - add locator set if non-zero, else disable pitr
137 autoreply define lisp_pitr_set_locator_set
141 bool is_add [default=true];
145 /** \brief configure or disable use of PETR
146 @param client_index - opaque cookie to identify the sender
147 @param context - sender context, to match reply w/ request
148 @param ip_address - PETR IP address
149 @param is_add - add locator set if non-zero, else disable pitr
151 autoreply define lisp_use_petr
155 vl_api_address_t ip_address;
156 bool is_add [default=true];
159 /** \brief Request for LISP PETR status
160 @param client_index - opaque cookie to identify the sender
161 @param context - sender context, to match reply w/ request
163 define show_lisp_use_petr
169 /** \brief LISP PETR status, enable or disable
170 @param context - sender context, to match reply w/ request
171 @param status - LISP PETR enable if non-zero, else disable
172 @param address - PETR IP address
174 define show_lisp_use_petr_reply
178 bool is_petr_enable [default=true];
179 vl_api_address_t ip_address;
182 /** \brief Get state of LISP RLOC probing
183 @param client_index - opaque cookie to identify the sender
184 @param context - sender context, to match reply w/ request
186 define show_lisp_rloc_probe_state
192 /** \brief Reply for show_lisp_rloc_probe_state
193 @param context - returned sender context, to match reply w/ request
194 @param retval - return code
195 @param is_enabled - state of RLOC probing
197 define show_lisp_rloc_probe_state_reply
201 bool is_enabled [default=true];
204 /** \brief enable/disable LISP RLOC probing
205 @param client_index - opaque cookie to identify the sender
206 @param context - sender context, to match reply w/ request
207 @param is_enable - enable if non-zero; disable otherwise
209 autoreply define lisp_rloc_probe_enable_disable
213 bool is_enable [default=true];
216 /** \brief enable/disable LISP map-register
217 @param client_index - opaque cookie to identify the sender
218 @param context - sender context, to match reply w/ request
219 @param is_enable - enable if non-zero; disable otherwise
221 autoreply define lisp_map_register_enable_disable
225 bool is_enable [default=true];
228 /** \brief Get state of LISP map-register
229 @param client_index - opaque cookie to identify the sender
230 @param context - sender context, to match reply w/ request
232 define show_lisp_map_register_state
238 /** \brief Reply for show_lisp_map_register_state
239 @param context - returned sender context, to match reply w/ request
240 @param retval - return code
242 define show_lisp_map_register_state_reply
246 bool is_enabled [default=true];
249 /** \brief set LISP map-request mode. Based on configuration VPP will send
250 src/dest or just normal destination map requests.
251 @param client_index - opaque cookie to identify the sender
252 @param context - sender context, to match reply w/ request
253 @param is_src_dst - if non-zero source/destination else destination only
255 autoreply define lisp_map_request_mode
262 /** \brief Request for LISP map-request mode
263 @param client_index - opaque cookie to identify the sender
264 @param context - sender context, to match reply w/ request
266 define show_lisp_map_request_mode
272 /** \brief Reply for show_lisp_map_request_mode
273 @param context - returned sender context, to match reply w/ request
274 @param retval - return code
275 @param is_src_dst - if non-zero source/destination else destination only
277 define show_lisp_map_request_mode_reply
284 /** \brief add or delete remote static mapping
285 @param client_index - opaque cookie to identify the sender
286 @param context - sender context, to match reply w/ request
287 @param is_add - add address if non-zero, else delete
288 @param is_src_dst - flag indicating src/dst based routing policy
289 @param del_all - if set, delete all remote mappings
290 @param vni - virtual network instance
291 @param action - negative map-reply action
292 @param deid - dst EID
293 @param seid - src EID, valid only if is_src_dst is enabled
294 @param rloc_num - number of remote locators
295 @param rlocs - remote locator records
297 autoreply define lisp_add_del_remote_mapping
301 bool is_add [default=true];
309 vl_api_remote_locator_t rlocs[rloc_num];
312 /** \brief add or delete LISP adjacency adjacency
313 @param client_index - opaque cookie to identify the sender
314 @param context - sender context, to match reply w/ request
315 @param is_add - add address if non-zero, else delete
316 @param vni - virtual network instance
317 @param reid - remote EID
318 @param leid - local EID
320 autoreply define lisp_add_del_adjacency
324 bool is_add [default=true];
330 /** \brief add or delete map request itr rlocs
331 @param client_index - opaque cookie to identify the sender
332 @param context - sender context, to match reply w/ request
333 @param is_add - add address if non-zero, else delete
334 @param locator_set_name - locator set name
336 autoreply define lisp_add_del_map_request_itr_rlocs
340 bool is_add [default=true];
341 string locator_set_name[64];
344 /** \brief Reply for lisp_add_del_map_request_itr_rlocs
345 @param context - returned sender context, to match reply w/ request
346 @param retval - return code
349 /** \brief map/unmap vni/bd_index to vrf
350 @param client_index - opaque cookie to identify the sender
351 @param context - sender context, to match reply w/ request
352 @param is_add - add or delete mapping
353 @param dp_table - virtual network id/bridge domain index
356 autoreply define lisp_eid_table_add_del_map
360 bool is_add [default=true];
366 /** \brief Request for map lisp locator status
367 @param client_index - opaque cookie to identify the sender
368 @param context - sender context, to match reply w/ request
369 @param locator_set_index - index of locator_set
370 @param ls_name - locator set name
371 @param is_index_set - flag indicating whether ls_name or ls_index is set
373 define lisp_locator_dump
382 /** \brief LISP locator_set status
383 @param local - if is set, then locator is local
384 @param locator_set_name - name of the locator_set
385 @param sw_if_index - sw_if_index of the locator
386 @param ip_address - ip address
387 @param priority - locator priority
388 @param weight - locator weight
390 define lisp_locator_details
394 vl_api_interface_index_t sw_if_index;
395 vl_api_address_t ip_address;
400 /** \brief LISP locator_set status
401 @param context - sender context, to match reply w/ request
402 @param ls_index - locator set index
403 @param ls_name - name of the locator set
405 define lisp_locator_set_details
412 enum lisp_locator_set_filter : u8 {
413 LISP_LOCATOR_SET_FILTER_API_ALL = 0,
414 LISP_LOCATOR_SET_FILTER_API_LOCAL = 1,
415 LISP_LOCATOR_SET_FILTER_API_REMOTE = 2,
418 /** \brief Request for locator_set summary status
419 @param client_index - opaque cookie to identify the sender
420 @param context - sender context, to match reply w/ request
421 @param filter - filter type
423 define lisp_locator_set_dump
427 vl_api_lisp_locator_set_filter_t filter;
430 /** \brief Dump lisp eid-table
431 @param client_index - opaque cookie to identify the sender
432 @param context - sender context, to match reply w/ request
433 @param locator_set_index - index of locator_set, if ~0 then the mapping
435 @param action - negative map request action
436 @param is_local - local if non-zero, else remote
437 @param is_src_dst - EID is type of source/destination
438 @param deid - dst EID
439 @param seid - src EID
440 @param vni - virtual network instance
441 @param ttl - time to live
442 @param authoritative - authoritative
447 @param key - secret key
450 define lisp_eid_table_details
453 u32 locator_set_index;
462 vl_api_hmac_key_t key;
465 /** \brief Request for eid table summary status
466 @param client_index - opaque cookie to identify the sender
467 @param context - sender context, to match reply w/ request
468 @param eid_set - if non-zero request info about specific mapping
469 @param vni - virtual network instance; valid only if eid_set != 0
470 @param prefix_length - prefix length if EID is IP address;
471 valid only if eid_set != 0
472 @param eid - endpoint identifier
473 @param filter - filter type;
479 define lisp_eid_table_dump
487 vl_api_lisp_locator_set_filter_t filter;
490 /** \brief LISP adjacency
491 @param reid - remote EID
492 @param leid - local EID
494 typedef lisp_adjacency
500 /** \brief LISP adjacency reply
501 @param count - number of adjacencies
502 @param adjacencies - array of adjacencies
504 define lisp_adjacencies_get_reply
509 vl_api_lisp_adjacency_t adjacencies[count];
512 /** \brief Request for LISP adjacencies
513 @param client_index - opaque cookie to identify the sender
514 @param context - sender context, to match reply w/ request
515 @param vni - filter adjacencies by VNI
517 define lisp_adjacencies_get
524 /** \brief Shows relationship between vni and vrf/bd
525 @param dp_table - VRF index or bridge domain index
526 @param vni - virtual network instance
528 define lisp_eid_table_map_details
535 /** \brief Request for lisp_eid_table_map_details
536 @param client_index - opaque cookie to identify the sender
537 @param context - sender context, to match reply w/ request
538 @param is_l2 - if set dump vni/bd mappings else vni/vrf
540 define lisp_eid_table_map_dump
547 /** \brief Dumps all VNIs used in mappings
548 @param client_index - opaque cookie to identify the sender
549 @param context - sender context, to match reply w/ request
551 define lisp_eid_table_vni_dump
557 /** \brief reply to lisp_eid_table_vni_dump
558 @param context - sender context, to match reply w/ request
559 @param vni - virtual network instance
561 define lisp_eid_table_vni_details
567 /** \brief LISP map resolver status
568 @param ip_address - array of address bytes
570 define lisp_map_resolver_details
573 vl_api_address_t ip_address;
576 /** \brief Request for map resolver summary status
577 @param client_index - opaque cookie to identify the sender
578 @param context - sender context, to match reply w/ request
580 define lisp_map_resolver_dump
586 /** \brief LISP map server details
587 @param ip_address - array of address bytes
589 define lisp_map_server_details
592 vl_api_address_t ip_address;
595 /** \brief Request for map server summary status
596 @param client_index - opaque cookie to identify the sender
597 @param context - sender context, to match reply w/ request
599 define lisp_map_server_dump
605 /** \brief Request for lisp-gpe protocol status
606 @param client_index - opaque cookie to identify the sender
607 @param context - sender context, to match reply w/ request
609 define show_lisp_status
615 /** \brief Status of lisp, enable or disable
616 @param context - sender context, to match reply w/ request
617 @param feature_status - lisp enable if non-zero, else disable
618 @param gpe_status - lisp enable if non-zero, else disable
620 define show_lisp_status_reply
624 bool is_lisp_enabled;
628 /** \brief Get LISP map request itr rlocs status
629 @param context - sender context, to match reply w/ request
630 @param locator_set_name - name of the locator_set
632 define lisp_get_map_request_itr_rlocs
638 /** \brief Request for map request itr rlocs summary status
640 define lisp_get_map_request_itr_rlocs_reply
644 string locator_set_name[64];
647 /** \brief Request for lisp pitr status
648 @param client_index - opaque cookie to identify the sender
649 @param context - sender context, to match reply w/ request
651 define show_lisp_pitr
657 /** \brief Status of lisp pitr, enable or disable
658 @param context - sender context, to match reply w/ request
659 @param status - lisp pitr enable if non-zero, else disable
660 @param locator_set_name - name of the locator_set
662 define show_lisp_pitr_reply
667 string locator_set_name[64];
672 * eval: (c-set-style "gnu")