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