DVR: run L3 output features
[vpp.git] / src / vnet / ip / ip.api
1 /*
2  * Copyright (c) 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 /** \file
17
18     This file defines vpp IP control-plane API messages which are generally
19     called through a shared memory interface. 
20 */
21
22 vl_api_version 1.0.1
23
24 /** \brief Add / del table request
25            A table can be added multiple times, but need be deleted only once.
26     @param client_index - opaque cookie to identify the sender
27     @param context - sender context, to match reply w/ request
28     @param is_ipv6 - V4 or V6 table
29     @param table_id - table ID associated with the route
30                       This table ID will apply to both the unicats
31                       and mlticast FIBs
32     @param name - A client provided name/tag for the table. If this is
33                   not set by the client, then VPP will generate something
34                   meaningfull.
35 */
36 autoreply define ip_table_add_del
37 {
38   u32 client_index;
39   u32 context;
40   u32 table_id;
41   u8 is_ipv6;
42   u8 is_add;
43   u8 name[64];
44 };
45
46 /** \brief Dump IP fib table
47     @param client_index - opaque cookie to identify the sender
48 */
49 define ip_fib_dump
50 {
51   u32 client_index;
52   u32 context;
53 };
54
55 /** \brief FIB path
56     @param sw_if_index - index of the interface
57     @param weight - The weight, for UCMP
58     @param preference - The preference of the path. lowest preference is prefered
59     @param is_local - local if non-zero, else remote
60     @param is_drop - Drop the packet
61     @param is_unreach - Drop the packet and rate limit send ICMP unreachable
62     @param is_prohibit - Drop the packet and rate limit send ICMP prohibited
63     @param afi - the afi of the next hop, IP46_TYPE_IP4=1, IP46_TYPE_IP6=2
64     @param next_hop[16] - the next hop address
65
66     WARNING: this type is replicated, pending cleanup completion
67 */
68 typeonly manual_print manual_endian define fib_path
69 {
70   u32 sw_if_index;
71   u32 table_id;
72   u8 weight;
73   u8 preference;
74   u8 is_local;
75   u8 is_drop;
76   u8 is_unreach;
77   u8 is_prohibit;
78   u8 afi;
79   u8 next_hop[16];
80 };
81
82 /** \brief IP FIB table response
83     @param table_id - IP fib table id
84     @address_length - mask length
85     @address - ip4 prefix
86     @param count - the number of fib_path in path
87     @param path  - array of of fib_path structures
88 */
89 manual_endian manual_print define ip_fib_details
90 {
91   u32 context;
92   u32 table_id;
93   u8  table_name[64];
94   u8  address_length;
95   u8  address[4];
96   u32 count;
97   vl_api_fib_path_t path[count];
98 };
99
100 /** \brief Dump IP6 fib table
101     @param client_index - opaque cookie to identify the sender
102 */
103 define ip6_fib_dump
104 {
105   u32 client_index;
106   u32 context;
107 };
108
109 /** \brief IP6 FIB table entry response
110     @param table_id - IP6 fib table id
111     @param address_length - mask length
112     @param address - ip6 prefix
113     @param count - the number of fib_path in path
114     @param path  - array of of fib_path structures
115 */
116 manual_endian manual_print define ip6_fib_details
117 {
118   u32 context;
119   u32 table_id;
120   u8  table_name[64];
121   u8  address_length;
122   u8  address[16];
123   u32 count;
124   vl_api_fib_path_t path[count];
125 };
126
127 /** \brief Dump IP neighboors
128     @param client_index - opaque cookie to identify the sender
129     @param context - sender context, to match reply w/ request
130     @param sw_if_index - the interface to dump neighboors, ~0 == all
131     @param is_ipv6 - [1|0] to indicate if address family is ipv[6|4]
132 */
133 define ip_neighbor_dump
134 {
135     u32 client_index;
136     u32 context;
137     u32 sw_if_index;
138     u8  is_ipv6;
139 };
140
141 /** \brief IP neighboors dump response
142     @param context - sender context which was passed in the request
143     @param sw_if_index - The interface used to reach the neighbor
144     @param is_static - [1|0] to indicate if neighbor is statically configured
145     @param is_ipv6 - [1|0] to indicate if address family is ipv[6|4]
146 */
147 define ip_neighbor_details {
148     u32 context;
149     u32 sw_if_index;
150     u8  is_static;
151     u8  is_ipv6;
152     u8  mac_address[6];
153     u8  ip_address[16];
154 };
155
156 /** \brief IP neighbor add / del request
157     @param client_index - opaque cookie to identify the sender
158     @param context - sender context, to match reply w/ request
159     @param sw_if_index - interface used to reach neighbor
160     @param is_add - 1 to add neighbor, 0 to delete
161     @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
162     @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
163     @param is_static - A static neighbor Entry - there are not flushed
164                        If the interface goes down.
165     @param is_no_adj_fib - Do not create a corresponding entry in the FIB
166                            table for the neighbor.
167     @param mac_address - l2 address of the neighbor
168     @param dst_address - ip4 or ip6 address of the neighbor
169 */
170 autoreply define ip_neighbor_add_del
171 {
172   u32 client_index;
173   u32 context;
174   u32 sw_if_index;
175   /* 1 = add, 0 = delete */
176   u8 is_add;
177   u8 is_ipv6;
178   u8 is_static;
179   u8 is_no_adj_fib;
180   u8 mac_address[6];
181   u8 dst_address[16];
182 };
183
184 /** \brief Set the ip flow hash config for a fib request
185     @param client_index - opaque cookie to identify the sender
186     @param context - sender context, to match reply w/ request
187     @param vrf_id - vrf/fib id
188     @param is_ipv6 - if non-zero the fib is ip6, else ip4
189     @param src - if non-zero include src in flow hash
190     @param dst - if non-zero include dst in flow hash
191     @param sport - if non-zero include sport in flow hash
192     @param dport - if non-zero include dport in flow hash
193     @param proto -if non-zero include proto in flow hash
194     @param reverse - if non-zero include reverse in flow hash
195 */
196 autoreply define set_ip_flow_hash
197 {
198   u32 client_index;
199   u32 context;
200   u32 vrf_id;
201   u8 is_ipv6;
202   u8 src;
203   u8 dst;
204   u8 sport;
205   u8 dport;
206   u8 proto;
207   u8 reverse;
208 };
209
210 /** \brief IPv6 router advertisement config request
211     @param client_index - opaque cookie to identify the sender
212     @param context - sender context, to match reply w/ request
213     @param suppress -
214     @param managed -
215     @param other -
216     @param ll_option -
217     @param send_unicast -
218     @param cease -
219     @param is_no -
220     @param default_router -
221     @param max_interval -
222     @param min_interval -
223     @param lifetime -
224     @param initial_count -
225     @param initial_interval -
226 */
227 autoreply define sw_interface_ip6nd_ra_config
228 {
229   u32 client_index;
230   u32 context;
231   u32 sw_if_index;
232   u8 suppress;
233   u8 managed;
234   u8 other;
235   u8 ll_option;
236   u8 send_unicast;
237   u8 cease;
238   u8 is_no;
239   u8 default_router;
240   u32 max_interval;
241   u32 min_interval;
242   u32 lifetime;
243   u32 initial_count;
244   u32 initial_interval;
245 };
246
247 /** \brief IPv6 router advertisement prefix config request
248     @param client_index - opaque cookie to identify the sender
249     @param context - sender context, to match reply w/ request
250     @param sw_if_index - The interface the RA prefix information is for
251     @param address[] - The prefix to advertise
252     @param address_length - the prefix length
253     @param use_default - Revert to default settings
254     @param no_advertise - Do not advertise this prefix
255     @param off_link - The prefix is off link (it is not configured on the interface)
256                       Configures the L-flag, When set, indicates that this
257                       prefix can be used for on-link determination.
258     @param no_autoconfig - Setting for the A-flag. When
259                            set indicates that this prefix can be used for
260                           stateless address configuration.
261     @param no_onlink - The prefix is not on link. Make sure this is consistent
262                        with the off_link parameter else YMMV
263     @param is_no - add/delete
264     @param val_lifetime - The length of time in
265                      seconds (relative to the time the packet is sent)
266                      that the prefix is valid for the purpose of on-link
267                      determination.  A value of all one bits
268                      (0xffffffff) represents infinity
269     @param pref_lifetime - The length of time in
270                      seconds (relative to the time the packet is sent)
271                      that addresses generated from the prefix via
272                      stateless address autoconfiguration remain
273                      preferred [ADDRCONF].  A value of all one bits
274                      (0xffffffff) represents infinity.
275 */
276 autoreply define sw_interface_ip6nd_ra_prefix
277 {
278   u32 client_index;
279   u32 context;
280   u32 sw_if_index;
281   u8 address[16];
282   u8 address_length;
283   u8 use_default;
284   u8 no_advertise;
285   u8 off_link;
286   u8 no_autoconfig;
287   u8 no_onlink;
288   u8 is_no;
289   u32 val_lifetime;
290   u32 pref_lifetime;
291 };
292
293 /** \brief IPv6 ND proxy config
294     @param client_index - opaque cookie to identify the sender
295     @param context - sender context, to match reply w/ request
296     @param sw_if_index - The interface the host is on
297     @param address - The address of the host for which to proxy for
298     @param is_add - Adding or deleting
299 */
300 autoreply define ip6nd_proxy_add_del
301 {
302   u32 client_index;
303   u32 context;
304   u32 sw_if_index;
305   u8 is_del;
306   u8 address[16];
307 };
308
309 /** \brief IPv6 ND proxy details returned after request
310     @param context - sender context, to match reply w/ request
311     @param retval - return code for the request
312 */
313 define ip6nd_proxy_details
314 {
315   u32 client_index;
316   u32 context;
317   u32 sw_if_index;
318   u8 address[16];
319 };
320
321 /** \brief IPv6 ND proxy dump request
322     @param context - sender context, to match reply w/ request
323     @param retval - return code for the request
324     @param sw_if_index - The interface the host is on
325     @param address - The address of the host for which to proxy for
326 */
327 define ip6nd_proxy_dump
328 {
329   u32 client_index;
330   u32 context;
331 };
332
333 /** \brief IPv6 interface enable / disable request
334     @param client_index - opaque cookie to identify the sender
335     @param context - sender context, to match reply w/ request
336     @param sw_if_index - interface used to reach neighbor
337     @param enable - if non-zero enable ip6 on interface, else disable
338 */
339 autoreply define sw_interface_ip6_enable_disable
340 {
341   u32 client_index;
342   u32 context;
343   u32 sw_if_index;
344   u8 enable;                    /* set to true if enable */
345 };
346
347 /** \brief IPv6 set link local address on interface request
348     @param client_index - opaque cookie to identify the sender
349     @param context - sender context, to match reply w/ request
350     @param sw_if_index - interface to set link local on
351     @param address[] - the new link local address
352 */
353 autoreply define sw_interface_ip6_set_link_local_address
354 {
355   u32 client_index;
356   u32 context;
357   u32 sw_if_index;
358   u8 address[16];
359 };
360
361 /** \brief Add / del route request
362     @param client_index - opaque cookie to identify the sender
363     @param context - sender context, to match reply w/ request
364     @param sw_if_index - software index of the new vlan's parent interface
365     @param vrf_id - fib table /vrf associated with the route
366     @param lookup_in_vrf - 
367     @param classify_table_index - 
368     @param is_add - 1 if adding the route, 0 if deleting
369     @param is_drop - Drop the packet
370     @param is_unreach - Drop the packet and rate limit send ICMP unreachable
371     @param is_prohibit - Drop the packet and rate limit send ICMP prohibited
372     @param is_ipv6 - 0 if an ip4 route, else ip6
373     @param is_local - The route will result in packets sent to VPP IP stack
374     @param is_udp_encap - The path describes a UDP-o-IP encapsulation.
375     @param is_classify - 
376     @param is_multipath - Set to 1 if this is a multipath route, else 0
377     @param is_dvr - Does the route resolve via a DVR interface.
378     @param is_source_lookup - The the path is a deaggregate path (i.e. a lookup
379                               in another table) is the lookup on the packet's
380                               source address or destination.
381     @param next_hop_weight - Weight for Unequal cost multi-path
382     @param next_hop_preference - Path that are up that have the best preference are
383                                  are used for forwarding. lower value is better.
384     @param next_hop_id - Used when the path resolves via an object that has a unique
385                          identifier.
386     @param dst_address_length - 
387     @param dst_address[16] - 
388     @param next_hop_address[16] - 
389     @param next_hop_n_out_labels - the number of labels in the label stack
390     @param next_hop_out_label_stack - the next-hop output label stack, outer most first
391     @param next_hop_via_label - The next-hop is a resolved via a local label
392 */
393 autoreply define ip_add_del_route
394 {
395   u32 client_index;
396   u32 context;
397   u32 next_hop_sw_if_index;
398   u32 table_id;
399   u32 classify_table_index;
400   u32 next_hop_table_id;
401   u32 next_hop_id;
402   u8 is_add;
403   u8 is_drop;
404   u8 is_unreach;
405   u8 is_prohibit;
406   u8 is_ipv6;
407   u8 is_local;
408   u8 is_classify;
409   u8 is_multipath;
410   u8 is_resolve_host;
411   u8 is_resolve_attached;
412   u8 is_dvr;
413   u8 is_source_lookup;
414   u8 is_udp_encap;
415   u8 next_hop_weight;
416   u8 next_hop_preference;
417   u8 next_hop_proto;
418   u8 dst_address_length;
419   u8 dst_address[16];
420   u8 next_hop_address[16];
421   u8 next_hop_n_out_labels;
422   u32 next_hop_via_label;
423   u32 next_hop_out_label_stack[next_hop_n_out_labels];
424 };
425
426 /** \brief Add / del route request
427     @param client_index - opaque cookie to identify the sender
428     @param context - sender context, to match reply w/ request
429     @param sw_if_index - software index of the new vlan's parent interface
430     @param vrf_id - fib table /vrf associated with the route
431     @param next_hop_afi - Use dpo_proto_t
432     FIXME
433 */
434 autoreply define ip_mroute_add_del
435 {
436   u32 client_index;
437   u32 context;
438   u32 next_hop_sw_if_index;
439   u32 table_id;
440   u32 entry_flags;
441   u32 itf_flags;
442   u32 rpf_id;
443   u32 bier_imp;
444   u16 grp_address_length;
445   u8 next_hop_afi;
446   u8 is_add;
447   u8 is_ipv6;
448   u8 is_local;
449   u8 grp_address[16];
450   u8 src_address[16];
451 };
452
453 /** \brief Dump IP multicast fib table
454     @param client_index - opaque cookie to identify the sender
455 */
456 define ip_mfib_dump
457 {
458   u32 client_index;
459   u32 context;
460 };
461
462 /** \brief IP Multicast FIB table response
463     @param table_id - IP fib table id
464     @address_length - mask length
465     @grp_address - Group address/prefix
466     @src_address - Source address
467     @param count - the number of fib_path in path
468     @param path  - array of of fib_path structures
469 */
470 manual_endian manual_print define ip_mfib_details
471 {
472   u32 context;
473   u32 table_id;
474   u32 entry_flags;
475   u32 rpf_id;
476   u8  address_length;
477   u8  grp_address[4];
478   u8  src_address[4];
479   u32 count;
480   vl_api_fib_path_t path[count];
481 };
482
483 /** \brief Dump IP6 multicast fib table
484     @param client_index - opaque cookie to identify the sender
485 */
486 define ip6_mfib_dump
487 {
488   u32 client_index;
489   u32 context;
490 };
491
492 /** \brief IP6 Multicast FIB table response
493     @param table_id - IP fib table id
494     @address_length - mask length
495     @grp_address - Group address/prefix
496     @src_address - Source address
497     @param count - the number of fib_path in path
498     @param path  - array of of fib_path structures
499 */
500 manual_endian manual_print define ip6_mfib_details
501 {
502   u32 context;
503   u32 table_id;
504   u8  address_length;
505   u8  grp_address[16];
506   u8  src_address[16];
507   u32 count;
508   vl_api_fib_path_t path[count];
509 };
510
511 define ip_address_details
512 {
513   u32 client_index;
514   u32 context;
515   u8 ip[16];
516   u8 prefix_length;
517   u32 sw_if_index;
518   u8 is_ipv6;
519 };
520
521 define ip_address_dump
522 {
523   u32 client_index;
524   u32 context;
525   u32 sw_if_index;
526   u8 is_ipv6;
527 };
528
529 define ip_details
530 {
531   u32 sw_if_index;
532   u32 context;
533   u8 is_ipv6;
534 };
535
536 define ip_dump
537 {
538   u32 client_index;
539   u32 context;
540   u8 is_ipv6;
541 };
542
543 define mfib_signal_dump
544 {
545   u32 client_index;
546   u32 context;
547 };
548
549 define mfib_signal_details
550 {
551   u32 client_index;
552   u32 context;
553   u32 sw_if_index;
554   u32 table_id;
555   u16 grp_address_len;
556   u8 grp_address[16];
557   u8 src_address[16];
558   u16 ip_packet_len;
559   u8 ip_packet_data[256];
560 };
561
562 /** \brief IP punt policer
563     @param client_index - opaque cookie to identify the sender
564     @param context - sender context, to match reply w/ request
565     @param is_add - 1 to add neighbor, 0 to delete
566     @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
567     @param policer_index - Index of policer to use
568 */
569 autoreply define ip_punt_police
570 {
571   u32 client_index;
572   u32 context;
573   u32 policer_index;
574   u8 is_add;
575   u8 is_ip6;
576 };
577
578 /** \brief IP punt redirect
579     @param client_index - opaque cookie to identify the sender
580     @param context - sender context, to match reply w/ request
581     @param is_add - 1 to add neighbor, 0 to delete
582     @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
583     @param tx_sw_if_index - the TX interface to which traffic shoulde be
584                             redirected.
585     @param nh - The next-hop to redirect the traffic to.
586 */
587 autoreply define ip_punt_redirect
588 {
589   u32 client_index;
590   u32 context;
591   u32 rx_sw_if_index;
592   u32 tx_sw_if_index;
593   u8 is_add;
594   u8 is_ip6;
595   u8 nh[16];
596 };
597
598 autoreply define ip_container_proxy_add_del
599 {
600   u32 client_index;
601   u32 context;
602   u8 ip[16];
603   u8 is_ip4;
604   u8 plen;
605   u32 sw_if_index;
606   u8 is_add;
607 };
608
609 /** \brief Configure IP source and L4 port-range check
610     @param client_index - opaque cookie to identify the sender
611     @param context - sender context, to match reply w/ request
612     @param is_ip6 - 1 if source address type is IPv6
613     @param is_add - 1 if add, 0 if delete
614     @param mask_length - mask length for address entry
615     @param address - array of address bytes
616     @param number_of_ranges - length of low_port and high_port arrays (must match)
617     @param low_ports[32] - up to 32 low end of port range entries (must have corresponding high_ports entry)
618     @param high_ports[32] - up to 32 high end of port range entries (must have corresponding low_ports entry)
619     @param vrf_id - fib table/vrf id to associate the source and port-range check with
620     @note To specify a single port set low_port and high_port entry the same
621 */
622 autoreply define ip_source_and_port_range_check_add_del
623 {
624   u32 client_index;
625   u32 context;
626   u8 is_ipv6;
627   u8 is_add;
628   u8 mask_length;
629   u8 address[16];
630   u8 number_of_ranges;
631   u16 low_ports[32];
632   u16 high_ports[32];
633   u32 vrf_id;
634 };
635
636 /** \brief Set interface source and L4 port-range request
637     @param client_index - opaque cookie to identify the sender
638     @param context - sender context, to match reply w/ request
639     @param interface_id - interface index
640     @param tcp_vrf_id - VRF associated with source and TCP port-range check
641     @param udp_vrf_id - VRF associated with source and TCP port-range check
642 */
643 autoreply define ip_source_and_port_range_check_interface_add_del
644 {
645   u32 client_index;
646   u32 context;
647   u8 is_add;
648   u32 sw_if_index;
649   u32 tcp_in_vrf_id;
650   u32 tcp_out_vrf_id;
651   u32 udp_in_vrf_id;
652   u32 udp_out_vrf_id;
653 };
654
655 /** \brief Register for ip4 arp resolution events
656     @param client_index - opaque cookie to identify the sender
657     @param context - sender context, to match reply w/ request
658     @param enable_disable - 1 => register for events, 0 => cancel registration
659     @param pid - sender's pid
660     @param address - the exact ip4 address of interest
661 */
662 autoreply define want_ip4_arp_events
663 {
664   u32 client_index;
665   u32 context;
666   u8 enable_disable;
667   u32 pid;
668   u32 address;
669 };
670
671 /** \brief Tell client about an ip4 arp resolution event
672     @param client_index - opaque cookie to identify the sender
673     @param address - the exact ip4 address of interest
674     @param pid - client pid registered to receive notification
675     @param sw_if_index - interface which received ARP packet
676     @param new_mac - the new mac address 
677     @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
678 */
679 define ip4_arp_event
680 {
681   u32 client_index;
682   u32 address;
683   u32 pid;
684   u32 sw_if_index;
685   u8 new_mac[6];
686   u8 mac_ip;
687 };
688
689 /** \brief Register for ip6 nd resolution events
690     @param client_index - opaque cookie to identify the sender
691     @param context - sender context, to match reply w/ request
692     @param enable_disable - 1 => register for events, 0 => cancel registration
693     @param pid - sender's pid
694     @param address - the exact ip6 address of interest
695 */
696 autoreply define want_ip6_nd_events
697 {
698   u32 client_index;
699   u32 context;
700   u8 enable_disable;
701   u32 pid;
702   u8 address[16];
703 };
704
705 /** \brief Tell client about an ip6 nd resolution or mac/ip event
706     @param client_index - opaque cookie to identify the sender
707     @param pid - client pid registered to receive notification
708     @param sw_if_index - interface which received ARP packet
709     @param address - the exact ip6 address of interest
710     @param new_mac - the new mac address 
711     @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
712 */
713 define ip6_nd_event
714 {
715   u32 client_index;
716   u32 pid;
717   u32 sw_if_index;
718   u8 address[16];
719   u8 new_mac[6];
720   u8 mac_ip;
721 };
722
723 /** \brief Proxy ARP add / del request
724     @param client_index - opaque cookie to identify the sender
725     @param context - sender context, to match reply w/ request
726     @param vrf_id - VRF / Fib table ID
727     @param is_add - 1 if adding the Proxy ARP range, 0 if deleting
728     @param low_address[4] - Low address of the Proxy ARP range
729     @param hi_address[4] - High address of the Proxy ARP range
730 */
731 autoreply define proxy_arp_add_del
732 {
733   u32 client_index;
734   u32 context;
735   u32 vrf_id;
736   u8 is_add;
737   u8 low_address[4];
738   u8 hi_address[4];
739 };
740
741 /** \brief Proxy ARP add / del request
742     @param client_index - opaque cookie to identify the sender
743     @param context - sender context, to match reply w/ request
744     @param sw_if_index - Which interface to enable / disable Proxy Arp on
745     @param enable_disable - 1 to enable Proxy ARP on interface, 0 to disable
746 */
747 autoreply define proxy_arp_intfc_enable_disable
748 {
749   u32 client_index;
750   u32 context;
751   u32 sw_if_index;
752   /* 1 = on, 0 = off */
753   u8 enable_disable;
754 };
755
756 /** \brief Reset fib table request
757     @param client_index - opaque cookie to identify the sender
758     @param context - sender context, to match reply w/ request
759     @param vrf_id - vrf/table id of the fib table to reset
760     @param is_ipv6 - an ipv6 fib to reset if non-zero, else ipv4
761 */
762 autoreply define reset_fib
763 {
764   u32 client_index;
765   u32 context;
766   u32 vrf_id;
767   u8 is_ipv6;
768 };
769
770 /** \brief Set max allowed ARP or ip6 neighbor entries request
771     @param client_index - opaque cookie to identify the sender
772     @param context - sender context, to match reply w/ request
773     @param is_ipv6 - neighbor limit if non-zero, else ARP limit
774     @param arp_neighbor_limit - the new limit, defaults are ~ 50k
775 */
776 autoreply define set_arp_neighbor_limit
777 {
778   u32 client_index;
779   u32 context;
780   u8 is_ipv6;
781   u32 arp_neighbor_limit;
782 };
783
784 /** \brief IOAM enable : Enable in-band OAM
785     @param id - profile id
786     @param seqno - To enable Seqno Processing
787     @param analyse - Enabling analysis of iOAM at decap node 
788     @param pow_enable - Proof of Work enabled or not flag
789     @param trace_enable - iOAM Trace enabled or not flag
790 */
791 autoreply define ioam_enable
792 {
793   u32 client_index;
794   u32 context;
795   u16 id;
796   u8 seqno;
797   u8 analyse;
798   u8 pot_enable;
799   u8 trace_enable;
800   u32 node_id;
801 };
802
803 /** \brief iOAM disable
804     @param client_index - opaque cookie to identify the sender
805     @param context - sender context, to match reply w/ request
806     @param index - MAP Domain index
807 */
808 autoreply define ioam_disable
809 {
810   u32 client_index;
811   u32 context;
812   u16 id;
813 };
814
815 /*
816  * Local Variables:
817  * eval: (c-set-style "gnu")
818  * End:
819  */