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