Trivial: Clean up some typos.
[vpp.git] / src / vnet / lisp-cp / lisp.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 = "1.0.0";
17
18 typeonly manual_print manual_endian define local_locator
19 {
20   u32 sw_if_index;
21   u8 priority;
22   u8 weight;
23 };
24
25 /** \brief add or delete locator_set
26     @param client_index - opaque cookie to identify the sender
27     @param context - sender context, to match reply w/ request
28     @param is_add - add address if non-zero, else delete
29     @param locator_set_name - locator name
30     @param locator_num - number of locators
31     @param locators - LISP locator records
32 */
33 manual_endian manual_print define lisp_add_del_locator_set
34 {
35   u32 client_index;
36   u32 context;
37   u8 is_add;
38   u8 locator_set_name[64];
39   u32 locator_num;
40   vl_api_local_locator_t locators[locator_num];
41 };
42
43 /** \brief Reply for locator_set add/del
44     @param context - returned sender context, to match reply w/ request
45     @param retval - return code
46     @param ls_index - locator set index
47 */
48 define lisp_add_del_locator_set_reply
49 {
50   u32 context;
51   i32 retval;
52   u32 ls_index;
53 };
54
55 /** \brief add or delete locator for locator_set
56     @param client_index - opaque cookie to identify the sender
57     @param context - sender context, to match reply w/ request
58     @param is_add - add address if non-zero, else delete
59     @param locator_set_name - name of locator_set to add/del locator
60     @param sw_if_index - index of the interface
61     @param priority - priority of the lisp locator
62     @param weight - weight of the lisp locator
63 */
64 autoreply define lisp_add_del_locator
65 {
66   u32 client_index;
67   u32 context;
68   u8 is_add;
69   u8 locator_set_name[64];
70   u32 sw_if_index;
71   u8 priority;
72   u8 weight;
73 };
74
75 /** \brief add or delete lisp eid-table
76     @param client_index - opaque cookie to identify the sender
77     @param context - sender context, to match reply w/ request
78     @param is_add - add address if non-zero, else delete
79     @param eid_type:
80       0 : ipv4
81       1 : ipv6
82       2 : mac
83     @param eid - EID can be ip4, ip6 or mac
84     @param prefix_len - prefix len
85     @param locator_set_name - name of locator_set to add/del eid-table
86     @param vni - virtual network instance
87     @param key_id
88       HMAC_NO_KEY           0
89       HMAC_SHA_1_96         1
90       HMAC_SHA_256_128      2
91     @param key - secret key
92 */
93 autoreply define lisp_add_del_local_eid
94 {
95   u32 client_index;
96   u32 context;
97   u8 is_add;
98   u8 eid_type;
99   u8 eid[16];
100   u8 prefix_len;
101   u8 locator_set_name[64];
102   u32 vni;
103   u16 key_id;
104   u8 key[64];
105 };
106
107 /** \brief Add/delete map server
108     @param client_index - opaque cookie to identify the sender
109     @param context - sender context, to match reply w/ request
110     @param is_add - add address if non-zero; delete otherwise
111     @param is_ipv6 - if non-zero the address is ipv6, else ipv4
112     @param ip_address - map server IP address
113 */
114 autoreply define lisp_add_del_map_server
115 {
116   u32 client_index;
117   u32 context;
118   u8 is_add;
119   u8 is_ipv6;
120   u8 ip_address[16];
121 };
122
123 /** \brief add or delete map-resolver
124     @param client_index - opaque cookie to identify the sender
125     @param context - sender context, to match reply w/ request
126     @param is_add - add address if non-zero, else delete
127     @param is_ipv6 - if non-zero the address is ipv6, else ipv4
128     @param ip_address - array of address bytes
129 */
130 autoreply define lisp_add_del_map_resolver
131 {
132   u32 client_index;
133   u32 context;
134   u8 is_add;
135   u8 is_ipv6;
136   u8 ip_address[16];
137 };
138
139 /** \brief enable or disable LISP feature
140     @param client_index - opaque cookie to identify the sender
141     @param context - sender context, to match reply w/ request
142     @param is_en - enable protocol if non-zero, else disable
143 */
144 autoreply define lisp_enable_disable
145 {
146   u32 client_index;
147   u32 context;
148   u8 is_en;
149 };
150
151 /** \brief configure or disable LISP PITR node
152     @param client_index - opaque cookie to identify the sender
153     @param context - sender context, to match reply w/ request
154     @param ls_name - locator set name
155     @param is_add - add locator set if non-zero, else disable pitr
156 */
157 autoreply define lisp_pitr_set_locator_set
158 {
159   u32 client_index;
160   u32 context;
161   u8 is_add;
162   u8 ls_name[64];
163 };
164
165 /** \brief configure or disable use of PETR
166     @param client_index - opaque cookie to identify the sender
167     @param context - sender context, to match reply w/ request
168     @param is_ip4 - Address is IPv4 if set and IPv6 otherwise
169     @param address - PETR IP address
170     @param is_add - add locator set if non-zero, else disable pitr
171 */
172 autoreply define lisp_use_petr
173 {
174   u32 client_index;
175   u32 context;
176   u8 is_ip4;
177   u8 address[16];
178   u8 is_add;
179 };
180
181 /** \brief Request for LISP PETR status
182     @param client_index - opaque cookie to identify the sender
183     @param context - sender context, to match reply w/ request
184 */
185 define show_lisp_use_petr
186 {
187   u32 client_index;
188   u32 context;
189 };
190
191 /** \brief LISP PETR status, enable or disable
192     @param context - sender context, to match reply w/ request
193     @param status - LISP PETR enable if non-zero, else disable
194     @param is_ip4 - Address is IPv4 if non-zero, else IPv6
195     @param address - PETR IP address
196 */
197 define show_lisp_use_petr_reply
198 {
199   u32 context;
200   i32 retval;
201   u8 status;
202   u8 is_ip4;
203   u8 address[16];
204 };
205
206 /** \brief Get state of LISP RLOC probing
207     @param client_index - opaque cookie to identify the sender
208     @param context - sender context, to match reply w/ request
209 */
210 define show_lisp_rloc_probe_state
211 {
212   u32 client_index;
213   u32 context;
214 };
215
216 /** \brief Reply for show_lisp_rloc_probe_state
217     @param context - returned sender context, to match reply w/ request
218     @param retval - return code
219     @param is_enabled - state of RLOC probing
220 */
221 define show_lisp_rloc_probe_state_reply
222 {
223   u32 context;
224   i32 retval;
225   u8 is_enabled;
226 };
227
228 /** \brief enable/disable LISP RLOC probing
229     @param client_index - opaque cookie to identify the sender
230     @param context - sender context, to match reply w/ request
231     @param is_enable - enable if non-zero; disable otherwise
232 */
233 autoreply define lisp_rloc_probe_enable_disable
234 {
235   u32 client_index;
236   u32 context;
237   u8 is_enabled;
238 };
239
240 /** \brief enable/disable LISP map-register
241     @param client_index - opaque cookie to identify the sender
242     @param context - sender context, to match reply w/ request
243     @param is_enable - enable if non-zero; disable otherwise
244 */
245 autoreply define lisp_map_register_enable_disable
246 {
247   u32 client_index;
248   u32 context;
249   u8 is_enabled;
250 };
251
252 /** \brief Get state of LISP map-register
253     @param client_index - opaque cookie to identify the sender
254     @param context - sender context, to match reply w/ request
255 */
256 define show_lisp_map_register_state
257 {
258   u32 client_index;
259   u32 context;
260 };
261
262 /** \brief Reply for show_lisp_map_register_state
263     @param context - returned sender context, to match reply w/ request
264     @param retval - return code
265 */
266 define show_lisp_map_register_state_reply
267 {
268   u32 context;
269   i32 retval;
270   u8 is_enabled;
271 };
272
273 /** \brief set LISP map-request mode. Based on configuration VPP will send
274       src/dest or just normal destination map requests.
275     @param client_index - opaque cookie to identify the sender
276     @param context - sender context, to match reply w/ request
277     @param mode - new map-request mode. Supported values are:
278       0 - destination only
279       1 - source/destination
280 */
281 autoreply define lisp_map_request_mode
282 {
283   u32 client_index;
284   u32 context;
285   u8 mode;
286 };
287
288 /** \brief Request for LISP map-request mode
289     @param client_index - opaque cookie to identify the sender
290     @param context - sender context, to match reply w/ request
291 */
292 define show_lisp_map_request_mode
293 {
294   u32 client_index;
295   u32 context;
296 };
297
298 /** \brief Reply for show_lisp_map_request_mode
299     @param context - returned sender context, to match reply w/ request
300     @param retval - return code
301     @param mode - map-request mode
302 */
303 define show_lisp_map_request_mode_reply
304 {
305   u32 context;
306   i32 retval;
307   u8 mode;
308 };
309
310 typeonly manual_endian manual_print define remote_locator
311 {
312   u8 is_ip4;
313   u8 priority;
314   u8 weight;
315   u8 addr[16];
316 };
317
318 /** \brief add or delete remote static mapping
319     @param client_index - opaque cookie to identify the sender
320     @param context - sender context, to match reply w/ request
321     @param is_add - add address if non-zero, else delete
322     @param is_src_dst - flag indicating src/dst based routing policy
323     @param del_all - if set, delete all remote mappings
324     @param vni - virtual network instance
325     @param action - negative map-reply action
326     @param eid_type -
327       0 : ipv4
328       1 : ipv6
329       2 : mac
330     @param deid - dst EID
331     @param seid - src EID, valid only if is_src_dst is enabled
332     @param rloc_num - number of remote locators
333     @param rlocs - remote locator records
334 */
335 autoreply manual_print manual_endian define lisp_add_del_remote_mapping
336 {
337   u32 client_index;
338   u32 context;
339   u8 is_add;
340   u8 is_src_dst;
341   u8 del_all;
342   u32 vni;
343   u8 action;
344   u8 eid_type;
345   u8 eid[16];
346   u8 eid_len;
347   u8 seid[16];
348   u8 seid_len;
349   u32 rloc_num;
350   vl_api_remote_locator_t rlocs[rloc_num];
351 };
352
353 /** \brief add or delete LISP adjacency adjacency
354     @param client_index - opaque cookie to identify the sender
355     @param context - sender context, to match reply w/ request
356     @param is_add - add address if non-zero, else delete
357     @param vni - virtual network instance
358     @param eid_type -
359       0 : ipv4
360       1 : ipv6
361       2 : mac
362     @param reid - remote EID
363     @param leid - local EID
364 */
365 autoreply define lisp_add_del_adjacency
366 {
367   u32 client_index;
368   u32 context;
369   u8 is_add;
370   u32 vni;
371   u8 eid_type;
372   u8 reid[16];
373   u8 leid[16];
374   u8 reid_len;
375   u8 leid_len;
376 };
377
378 /** \brief add or delete map request itr rlocs
379     @param client_index - opaque cookie to identify the sender
380     @param context - sender context, to match reply w/ request
381     @param is_add - add address if non-zero, else delete
382     @param locator_set_name - locator set name
383 */
384 autoreply define lisp_add_del_map_request_itr_rlocs
385 {
386   u32 client_index;
387   u32 context;
388   u8 is_add;
389   u8 locator_set_name[64];
390 };
391
392 /** \brief Reply for lisp_add_del_map_request_itr_rlocs
393     @param context - returned sender context, to match reply w/ request
394     @param retval - return code
395 */
396
397 /** \brief map/unmap vni/bd_index to vrf
398     @param client_index - opaque cookie to identify the sender
399     @param context - sender context, to match reply w/ request
400     @param is_add - add or delete mapping
401     @param dp_table - virtual network id/bridge domain index
402     @param vrf - vrf
403 */
404 autoreply define lisp_eid_table_add_del_map
405 {
406   u32 client_index;
407   u32 context;
408   u8 is_add;
409   u32 vni;
410   u32 dp_table;
411   u8 is_l2;
412 };
413
414 /** \brief Request for map lisp locator status
415     @param client_index - opaque cookie to identify the sender
416     @param context - sender context, to match reply w/ request
417     @param locator_set_index - index of locator_set
418     @param ls_name - locator set name
419     @param is_index_set - flag indicating whether ls_name or ls_index is set
420  */
421 define lisp_locator_dump
422 {
423   u32 client_index;
424   u32 context;
425   u32 ls_index;
426   u8 ls_name[64];
427   u8 is_index_set;
428 };
429
430 /** \brief LISP locator_set status
431     @param local - if is set, then locator is local
432     @param locator_set_name - name of the locator_set
433     @param sw_if_index - sw_if_index of the locator
434     @param priority - locator priority
435     @param weight - locator weight
436   */
437 define lisp_locator_details
438 {
439   u32 context;
440   u8 local;
441   u32 sw_if_index;
442   u8 is_ipv6;
443   u8 ip_address[16];
444   u8 priority;
445   u8 weight;
446 };
447
448 /** \brief LISP locator_set status
449     @param context - sender context, to match reply w/ request
450     @param ls_index - locator set index
451     @param ls_name - name of the locator set
452  */
453 define lisp_locator_set_details
454 {
455   u32 context;
456   u32 ls_index;
457   u8 ls_name[64];
458 };
459
460 /** \brief Request for locator_set summary status
461     @param client_index - opaque cookie to identify the sender
462     @param context - sender context, to match reply w/ request
463     @param filter - filter type
464       Supported values:
465         0: all locator sets
466         1: local locator sets
467         2: remote locator sets
468  */
469 define lisp_locator_set_dump
470 {
471   u32 client_index;
472   u32 context;
473   u8 filter;
474 };
475
476 /** \brief Dump lisp eid-table
477     @param client_index - opaque cookie to identify the sender
478     @param context - sender context, to match reply w/ request
479     @param locator_set_index - index of locator_set, if ~0 then the mapping
480                                 is negative
481     @param action - negative map request action
482     @param is_local - local if non-zero, else remote
483     @param eid_type:
484       0 : ipv4
485       1 : ipv6
486       2 : mac
487     @param is_src_dst - EID is type of source/destination
488     @param eid - EID can be ip4, ip6 or mac
489     @param eid_prefix_len - prefix length
490     @param seid - source EID can be ip4, ip6 or mac
491     @param seid_prefix_len - source prefix length
492     @param vni - virtual network instance
493     @param ttl - time to live
494     @param authoritative - authoritative
495     @param key_id
496       HMAC_NO_KEY           0
497       HMAC_SHA_1_96         1
498       HMAC_SHA_256_128      2
499     @param key - secret key
500 */
501
502 define lisp_eid_table_details
503 {
504   u32 context;
505   u32 locator_set_index;
506   u8 action;
507   u8 is_local;
508   u8 eid_type;
509   u8 is_src_dst;
510   u32 vni;
511   u8 eid[16];
512   u8 eid_prefix_len;
513   u8 seid[16];
514   u8 seid_prefix_len;
515   u32 ttl;
516   u8 authoritative;
517   u16 key_id;
518   u8 key[64];
519 };
520
521 /** \brief Request for eid table summary status
522     @param client_index - opaque cookie to identify the sender
523     @param context - sender context, to match reply w/ request
524     @param eid_set - if non-zero request info about specific mapping
525     @param vni - virtual network instance; valid only if eid_set != 0
526     @param prefix_length - prefix length if EID is IP address;
527       valid only if eid_set != 0
528     @param eid_type - EID type; valid only if eid_set != 0
529       Supported values:
530         0: EID is IPv4
531         1: EID is IPv6
532         2: EID is ethernet address
533     @param eid - endpoint identifier
534     @param filter - filter type;
535       Support values:
536         0: all eid
537         1: local eid
538         2: remote eid
539  */
540 define lisp_eid_table_dump
541 {
542   u32 client_index;
543   u32 context;
544   u8 eid_set;
545   u8 prefix_length;
546   u32 vni;
547   u8 eid_type;
548   u8 eid[16];
549   u8 filter;
550 };
551
552 /** \brief LISP adjacency
553     @param eid_type -
554       0 : ipv4
555       1 : ipv6
556       2 : mac
557     @param reid - remote EID
558     @param leid - local EID
559     @param reid_prefix_len - remote EID IP prefix length
560     @param leid_prefix_len - local EID IP prefix length
561   */
562 typeonly manual_print manual_endian define lisp_adjacency
563 {
564   u8 eid_type;
565   u8 reid[16];
566   u8 leid[16];
567   u8 reid_prefix_len;
568   u8 leid_prefix_len;
569 };
570
571 /** \brief LISP adjacency reply
572     @param count - number of adjacencies
573     @param adjacencies - array of adjacencies
574   */
575 manual_endian manual_print define lisp_adjacencies_get_reply
576 {
577   u32 context;
578   i32 retval;
579   u32 count;
580   vl_api_lisp_adjacency_t adjacencies[count];
581 };
582
583 /** \brief Request for LISP adjacencies
584     @param client_index - opaque cookie to identify the sender
585     @param context - sender context, to match reply w/ request
586     @param vni - filter adjacencies by VNI
587  */
588 define lisp_adjacencies_get
589 {
590   u32 client_index;
591   u32 context;
592   u32 vni;
593 };
594
595 /** \brief Shows relationship between vni and vrf/bd
596     @param dp_table - VRF index or bridge domain index
597     @param vni - virtual network instance
598   */
599 define lisp_eid_table_map_details
600 {
601   u32 context;
602   u32 vni;
603   u32 dp_table;
604 };
605
606 /** \brief Request for lisp_eid_table_map_details
607     @param client_index - opaque cookie to identify the sender
608     @param context - sender context, to match reply w/ request
609     @param is_l2 - if set dump vni/bd mappings else vni/vrf
610  */
611 define lisp_eid_table_map_dump
612 {
613   u32 client_index;
614   u32 context;
615   u8 is_l2;
616 };
617
618 /** \brief Dumps all VNIs used in mappings
619     @param client_index - opaque cookie to identify the sender
620     @param context - sender context, to match reply w/ request
621   */
622 define lisp_eid_table_vni_dump
623 {
624   u32 client_index;
625   u32 context;
626 };
627
628 /** \brief reply to lisp_eid_table_vni_dump
629     @param context - sender context, to match reply w/ request
630     @param vni - virtual network instance
631  */
632 define lisp_eid_table_vni_details
633 {
634   u32 context;
635   u32 vni;
636 };
637
638 /** \brief LISP map resolver status
639     @param is_ipv6 - if non-zero the address is ipv6, else ipv4
640     @param ip_address - array of address bytes
641  */
642 define lisp_map_resolver_details
643 {
644   u32 context;
645   u8 is_ipv6;
646   u8 ip_address[16];
647 };
648
649 /** \brief Request for map resolver summary status
650     @param client_index - opaque cookie to identify the sender
651     @param context - sender context, to match reply w/ request
652  */
653 define lisp_map_resolver_dump
654 {
655   u32 client_index;
656   u32 context;
657 };
658
659 /** \brief LISP map server details
660     @param is_ipv6 - if non-zero the address is ipv6, else ipv4
661     @param ip_address - array of address bytes
662  */
663 define lisp_map_server_details
664 {
665   u32 context;
666   u8 is_ipv6;
667   u8 ip_address[16];
668 };
669
670 /** \brief Request for map server summary status
671     @param client_index - opaque cookie to identify the sender
672     @param context - sender context, to match reply w/ request
673  */
674 define lisp_map_server_dump
675 {
676   u32 client_index;
677   u32 context;
678 };
679
680 /** \brief Request for lisp-gpe protocol status
681     @param client_index - opaque cookie to identify the sender
682     @param context - sender context, to match reply w/ request
683 */
684 define show_lisp_status
685 {
686   u32 client_index;
687   u32 context;
688 };
689
690 /** \brief Status of lisp, enable or disable
691     @param context - sender context, to match reply w/ request
692     @param feature_status - lisp enable if non-zero, else disable
693     @param gpe_status - lisp enable if non-zero, else disable
694 */
695 define show_lisp_status_reply
696 {
697   u32 context;
698   i32 retval;
699   u8 feature_status;
700   u8 gpe_status;
701 };
702
703 /** \brief Get LISP map request itr rlocs status
704     @param context - sender context, to match reply w/ request
705     @param locator_set_name - name of the locator_set
706  */
707 define lisp_get_map_request_itr_rlocs
708 {
709   u32 client_index;
710   u32 context;
711 };
712
713 /** \brief Request for map request itr rlocs summary status
714  */
715 define lisp_get_map_request_itr_rlocs_reply
716 {
717   u32 context;
718   i32 retval;
719   u8 locator_set_name[64];
720 };
721
722 /** \brief Request for lisp pitr status
723     @param client_index - opaque cookie to identify the sender
724     @param context - sender context, to match reply w/ request
725 */
726 define show_lisp_pitr
727 {
728   u32 client_index;
729   u32 context;
730 };
731
732 /** \brief Status of lisp pitr, enable or disable
733     @param context - sender context, to match reply w/ request
734     @param status - lisp pitr enable if non-zero, else disable
735     @param locator_set_name -  name of the locator_set
736 */
737 define show_lisp_pitr_reply
738 {
739   u32 context;
740   i32 retval;
741   u8 status;
742   u8 locator_set_name[64];
743 };
744
745 /*
746  * Local Variables:
747  * eval: (c-set-style "gnu")
748  * End:
749  */
750