2 * Copyright (c) 2015-2016 Cisco and/or its affiliates.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at:
7 * http://www.apache.org/licenses/LICENSE-2.0
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
18 This file defines vpe control-plane API messages which are generally
19 called through a shared memory interface.
23 * Note: API placement cleanup in progress
24 * If you're looking for interface APIs, please
25 * see .../vnet/vnet/{interface.api,interface_api.c}
26 * IP APIs: see .../vnet/vnet/ip/{ip.api, ip_api.c}
27 * TAP APIs: see .../vnet/vnet/unix/{tap.api, tap_api.c}
28 * VXLAN APIs: see .../vnet/vnet/vxlan/{vxlan.api, vxlan_api.c}
29 * AF-PACKET APIs: ... see /vnet/devices/af_packet/{af_packet.api, af_packet_api.c}
32 /** \brief Create a new subinterface with the given vlan id
33 @param client_index - opaque cookie to identify the sender
34 @param context - sender context, to match reply w/ request
35 @param sw_if_index - software index of the new vlan's parent interface
36 @param vlan_id - vlan tag of the new interface
38 define create_vlan_subif
46 /** \brief Reply for the vlan subinterface create request
47 @param context - returned sender context, to match reply w/ request
48 @param retval - return code
49 @param sw_if_index - software index allocated for the new subinterface
51 define create_vlan_subif_reply
58 /** \brief Enable or Disable MPLS on and interface
59 @param client_index - opaque cookie to identify the sender
60 @param context - sender context, to match reply w/ request
61 @param sw_if_index - index of the interface
62 @param enable - if non-zero enable, else disable
64 define sw_interface_set_mpls_enable
72 /** \brief Reply for MPLS state on an interface
73 @param context - returned sender context, to match reply w/ request
74 @param retval - return code
76 define sw_interface_set_mpls_enable_reply
82 /** \brief MPLS Route Add / del route
83 @param client_index - opaque cookie to identify the sender
84 @param context - sender context, to match reply w/ request
85 @param mr_label - The MPLS label value
86 @param mr_eos - The End of stack bit
87 @param mr_table_id - The MPLS table-id the route is added in
88 @param mr_classify_table_index - If this is a classify route,
89 this is the classify table index
90 @param mr_create_table_if_needed - If the MPLS or IP tables do not exist,
92 @param mr_is_add - Is this a route add or delete
93 @param mr_is_classify - Is this route result a classify
94 @param mr_is_multipath - Is this route update a multipath - i.e. is this
95 a path addition to an existing route
96 @param mr_is_resolve_host - Recurse resolution constraint via a host prefix
97 @param mr_is_resolve_attached - Recurse resolution constraint via attached prefix
98 @param mr_next_hop_proto_is_ip4 - The next-hop is IPV4
99 @param mr_next_hop_weight - The weight, for UCMP
100 @param mr_next_hop[16] - the nextop address
101 @param mr_next_hop_sw_if_index - the next-hop SW interface
102 @param mr_next_hop_table_id - the next-hop table-id (if appropriate)
103 @param mr_next_hop_n_out_labels - the number of labels in the label stack
104 @param mr_next_hop_out_label_stack - the next-hop output label stack, outer most first
105 @param next_hop_via_label - The next-hop is a resolved via a local label
107 define mpls_route_add_del
114 u32 mr_classify_table_index;
115 u8 mr_create_table_if_needed;
119 u8 mr_is_resolve_host;
120 u8 mr_is_resolve_attached;
121 u8 mr_next_hop_proto_is_ip4;
122 u8 mr_next_hop_weight;
124 u8 mr_next_hop_n_out_labels;
125 u32 mr_next_hop_sw_if_index;
126 u32 mr_next_hop_table_id;
127 u32 mr_next_hop_via_label;
128 u32 mr_next_hop_out_label_stack[mr_next_hop_n_out_labels];
131 /** \brief Reply for MPLS route add / del request
132 @param context - returned sender context, to match reply w/ request
133 @param retval - return code
135 define mpls_route_add_del_reply
141 /** \brief Dump MPLS fib table
142 @param client_index - opaque cookie to identify the sender
151 @param sw_if_index - index of the interface
152 @param weight - The weight, for UCMP
153 @param is_local - local if non-zero, else remote
154 @param is_drop - Drop the packet
155 @param is_unreach - Drop the packet and rate limit send ICMP unreachable
156 @param is_prohibit - Drop the packet and rate limit send ICMP prohibited
157 @param afi - the afi of the next hop, IP46_TYPE_IP4=1, IP46_TYPE_IP6=2
158 @param next_hop[16] - the next hop address
160 WARNING: this type is replicated, pending cleanup completion
163 typeonly manual_print manual_endian define fib_path2
175 /** \brief mpls FIB table response
176 @param table_id - MPLS fib table id
177 @param s_bit - End-of-stack bit
178 @param label - MPLS label value
179 @param count - the number of fib_path in path
180 @param path - array of of fib_path structures
182 manual_endian manual_print define mpls_fib_details
189 vl_api_fib_path2_t path[count];
192 /** \brief Bind/Unbind an MPLS local label to an IP prefix. i.e. create
193 a per-prefix label entry.
194 @param client_index - opaque cookie to identify the sender
195 @param context - sender context, to match reply w/ request
196 @param mb_mpls_table_id - The MPLS table-id the MPLS entry will be added in
197 @param mb_label - The MPLS label value to bind
198 @param mb_ip_table_id - The IP table-id of the IP prefix to bind to.
199 @param mb_create_table_if_needed - Create either/both tables if required.
200 @param mb_is_bind - Bind or unbind
201 @param mb_is_ip4 - The prefix to bind to is IPv4
202 @param mb_address_length - Length of IP prefix
203 @param mb_address[16] - IP prefix/
205 define mpls_ip_bind_unbind
209 u32 mb_mpls_table_id;
212 u8 mb_create_table_if_needed;
215 u8 mb_address_length;
219 /** \brief Reply for MPLS IP bind/unbind request
220 @param context - returned sender context, to match reply w/ request
221 @param retval - return code
223 define mpls_ip_bind_unbind_reply
229 /** \brief MPLS tunnel Add / del route
230 @param client_index - opaque cookie to identify the sender
231 @param context - sender context, to match reply w/ request
232 @param mt_is_add - Is this a route add or delete
233 @param mt_sw_if_index - The SW interface index of the tunnel to delete
234 @param mt_next_hop_proto_is_ip4 - The next-hop is IPV4
235 @param mt_next_hop_weight - The weight, for UCMP
236 @param mt_next_hop[16] - the nextop address
237 @param mt_next_hop_sw_if_index - the next-hop SW interface
238 @param mt_next_hop_table_id - the next-hop table-id (if appropriate)
239 @param mt_next_hop_n_out_labels - the number of next-hop output labels
240 @param mt_next_hop_out_label_stack - the next-hop output label stack, outer most first
242 define mpls_tunnel_add_del
249 u8 mt_next_hop_proto_is_ip4;
250 u8 mt_next_hop_weight;
252 u8 mt_next_hop_n_out_labels;
253 u32 mt_next_hop_sw_if_index;
254 u32 mt_next_hop_table_id;
255 u32 mt_next_hop_out_label_stack[mt_next_hop_n_out_labels];
258 /** \brief Reply for MPLS tunnel add / del request
259 @param context - returned sender context, to match reply w/ request
260 @param retval - return code
261 @param sw_if_index - SW interface index of the tunnel created
263 define mpls_tunnel_add_del_reply
270 /** \brief Dump mpls eth tunnel table
271 @param client_index - opaque cookie to identify the sender
272 @param tunnel_index - eth tunnel identifier or -1 in case of all tunnels
274 define mpls_tunnel_dump
281 /** \brief mpls eth tunnel operational state response
282 @param tunnel_index - eth tunnel identifier
283 @param intfc_address - interface ipv4 addr
284 @param mask_width - interface ipv4 addr mask
285 @param hw_if_index - interface id
287 @param tunnel_dst_mac -
288 @param tx_sw_if_index -
289 @param encap_index - reference to mpls label table
290 @param nlabels - number of resolved labels
291 @param labels - resolved labels
293 define mpls_tunnel_details
299 u8 mt_next_hop_proto_is_ip4;
301 u32 mt_next_hop_sw_if_index;
302 u32 mt_next_hop_table_id;
303 u32 mt_next_hop_n_labels;
304 u32 mt_next_hop_out_labels[mt_next_hop_n_labels];
307 /** \brief Proxy ARP add / del request
308 @param client_index - opaque cookie to identify the sender
309 @param context - sender context, to match reply w/ request
310 @param vrf_id - VRF / Fib table ID
311 @param is_add - 1 if adding the Proxy ARP range, 0 if deleting
312 @param low_address[4] - Low address of the Proxy ARP range
313 @param hi_address[4] - High address of the Proxy ARP range
315 define proxy_arp_add_del
325 /** \brief Reply for proxy arp add / del request
326 @param context - returned sender context, to match reply w/ request
327 @param retval - return code
329 define proxy_arp_add_del_reply
335 /** \brief Proxy ARP add / del request
336 @param client_index - opaque cookie to identify the sender
337 @param context - sender context, to match reply w/ request
338 @param sw_if_index - Which interface to enable / disable Proxy Arp on
339 @param enable_disable - 1 to enable Proxy ARP on interface, 0 to disable
341 define proxy_arp_intfc_enable_disable
346 /* 1 = on, 0 = off */
350 /** \brief Reply for Proxy ARP interface enable / disable request
351 @param context - returned sender context, to match reply w/ request
352 @param retval - return code
354 define proxy_arp_intfc_enable_disable_reply
360 /** \brief Reset VRF (remove all routes etc) request
361 @param client_index - opaque cookie to identify the sender
362 @param context - sender context, to match reply w/ request
363 @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
364 @param vrf_id - ID of th FIB table / VRF to reset
374 /** \brief Reply for Reset VRF request
375 @param context - returned sender context, to match reply w/ request
376 @param retval - return code
378 define reset_vrf_reply
384 /** \brief Is Address Reachable request - DISABLED
385 @param client_index - opaque cookie to identify the sender
386 @param context - sender context, to match reply w/ request
387 @param next_hop_sw_if_index - index of interface used to get to next hop
388 @param is_ipv6 - 1 for IPv6, 0 for IPv4
389 @param is_error - address not found or does not match intf
390 @param address[] - Address in question
392 define is_address_reachable
394 u32 client_index; /* (api_main_t *) am->my_client_index */
396 u32 next_hop_sw_if_index;
397 u8 is_known; /* on reply, this is the answer */
399 u8 is_error; /* address not found or does not match intf */
403 /** \brief Want Stats, register for stats updates
404 @param client_index - opaque cookie to identify the sender
405 @param context - sender context, to match reply w/ request
406 @param enable_disable - 1 = enable stats, 0 = disable
407 @param pid - pid of process requesting stats updates
417 /** \brief Reply for Want Stats request
418 @param context - returned sender context, to match reply w/ request
419 @param retval - return code
421 define want_stats_reply
427 typeonly manual_print manual_endian define ip4_fib_counter
435 manual_print manual_endian define vnet_ip4_fib_counters
439 vl_api_ip4_fib_counter_t c[count];
442 typeonly manual_print manual_endian define ip6_fib_counter
450 manual_print manual_endian define vnet_ip6_fib_counters
454 vl_api_ip6_fib_counter_t c[count];
457 /** \brief Request for a single block of summary stats
458 @param client_index - opaque cookie to identify the sender
459 @param context - sender context, to match reply w/ request
461 define vnet_get_summary_stats
467 /** \brief Reply for vnet_get_summary_stats request
468 @param context - sender context, to match reply w/ request
469 @param retval - return code for request
474 define vnet_summary_stats_reply
483 /** \brief OAM event structure
484 @param dst_address[] -
493 /** \brief Want OAM events request
494 @param client_index - opaque cookie to identify the sender
495 @param context - sender context, to match reply w/ request
496 @param enable_disable- enable if non-zero, else disable
497 @param pid - pid of the requesting process
499 define want_oam_events
507 /** \brief Want OAM events response
508 @param context - sender context, to match reply w/ request
509 @param retval - return code for the want oam stats request
511 define want_oam_events_reply
517 /** \brief OAM add / del target request
518 @param client_index - opaque cookie to identify the sender
519 @param context - sender context, to match reply w/ request
520 @param vrf_id - vrf_id of the target
521 @param src_address[] - source address to use for the updates
522 @param dst_address[] - destination address of the target
523 @param is_add - add target if non-zero, else delete
535 /** \brief OAM add / del target response
536 @param context - sender context, to match reply w/ request
537 @param retval - return code of the request
539 define oam_add_del_reply
545 /** \brief Reset fib table request
546 @param client_index - opaque cookie to identify the sender
547 @param context - sender context, to match reply w/ request
548 @param vrf_id - vrf/table id of the fib table to reset
549 @param is_ipv6 - an ipv6 fib to reset if non-zero, else ipv4
559 /** \brief Reset fib response
560 @param context - sender context, to match reply w/ request
561 @param retval - return code for the reset bfib request
563 define reset_fib_reply
569 /** \brief DHCP Proxy config add / del request
570 @param client_index - opaque cookie to identify the sender
571 @param context - sender context, to match reply w/ request
572 @param vrf_id - vrf id
573 @param if_ipv6 - ipv6 if non-zero, else ipv4
574 @param is_add - add the config if non-zero, else delete
575 @param insert_circuit_id - option82 suboption 1 fib number
576 @param dhcp_server[] - server address
577 @param dhcp_src_address[] - <fix this, need details>
579 define dhcp_proxy_config
586 u8 insert_circuit_id;
588 u8 dhcp_src_address[16];
591 /** \brief DHCP Proxy config response
592 @param context - sender context, to match reply w/ request
593 @param retval - return code for the request
595 define dhcp_proxy_config_reply
601 /** \brief DHCP Proxy set / unset vss request
602 @param client_index - opaque cookie to identify the sender
603 @param context - sender context, to match reply w/ request
604 @param tbl_id - table id
605 @param oui - first part of vpn id
606 @param fib_id - second part of vpn id
607 @param is_ipv6 - ip6 if non-zero, else ip4
608 @param is_add - set vss if non-zero, else delete
610 define dhcp_proxy_set_vss
621 /** \brief DHCP proxy set / unset vss response
622 @param context - sender context, to match reply w/ request
623 @param retval - return code for the request
625 define dhcp_proxy_set_vss_reply
631 /** \brief Create loopback interface request
632 @param client_index - opaque cookie to identify the sender
633 @param context - sender context, to match reply w/ request
634 @param mac_address - mac addr to assign to the interface if none-zero
636 define create_loopback
643 /** \brief Create loopback interface response
644 @param context - sender context, to match reply w/ request
645 @param sw_if_index - sw index of the interface that was created
646 @param retval - return code for the request
648 define create_loopback_reply
655 /** \brief Delete loopback interface request
656 @param client_index - opaque cookie to identify the sender
657 @param context - sender context, to match reply w/ request
658 @param sw_if_index - sw index of the interface that was created
660 define delete_loopback
667 /** \brief Delete loopback interface response
668 @param context - sender context, to match reply w/ request
669 @param retval - return code for the request
671 define delete_loopback_reply
677 /** \brief Control ping from client to api server request
678 @param client_index - opaque cookie to identify the sender
679 @param context - sender context, to match reply w/ request
687 /** \brief Control ping from the client to the server response
688 @param client_index - opaque cookie to identify the sender
689 @param context - sender context, to match reply w/ request
690 @param retval - return code for the request
691 @param vpe_pid - the pid of the vpe, returned by the server
693 define control_ping_reply
701 /** \brief Process a vpe parser cli string request
702 @param client_index - opaque cookie to identify the sender
703 @param context - sender context, to match reply w/ request
704 @param cmd_in_shmem - pointer to cli command string
720 /** \brief vpe parser cli string response
721 @param context - sender context, to match reply w/ request
722 @param retval - return code for request
723 @param reply_in_shmem - Reply string from cli processing if any
731 define cli_inband_reply
739 /** \brief Set max allowed ARP or ip6 neighbor entries request
740 @param client_index - opaque cookie to identify the sender
741 @param context - sender context, to match reply w/ request
742 @param is_ipv6 - neighbor limit if non-zero, else ARP limit
743 @param arp_neighbor_limit - the new limit, defaults are ~ 50k
745 define set_arp_neighbor_limit
750 u32 arp_neighbor_limit;
753 /** \brief Set max allowed ARP or ip6 neighbor entries response
754 @param context - sender context, to match reply w/ request
755 @param retval - return code for request
757 define set_arp_neighbor_limit_reply
763 /** \brief L2 interface patch add / del request
764 @param client_index - opaque cookie to identify the sender
765 @param context - sender context, to match reply w/ request
766 @param rx_sw_if_index - receive side interface
767 @param tx_sw_if_index - transmit side interface
768 @param is_add - if non-zero set up the interface patch, else remove it
770 define l2_patch_add_del
779 /** \brief L2 interface patch add / del response
780 @param context - sender context, to match reply w/ request
781 @param retval - return code for the request
783 define l2_patch_add_del_reply
789 /** \brief IPv6 segment routing tunnel add / del request
790 @param client_index - opaque cookie to identify the sender
791 @param context - sender context, to match reply w/ request
792 @param is_add - add the tunnel if non-zero, else delete it
793 @param name[] - tunnel name (len. 64)
794 @param src_address[] -
795 @param dst_address[] -
796 @param dst_mask_width -
797 @param inner_vrf_id -
798 @param outer_vrf_id -
799 @param flags_net_byte_order -
802 @param segs_and_tags[] -
803 @param policy_name[] - name of policy to associate this tunnel to (len. 64)
805 define sr_tunnel_add_del
816 u16 flags_net_byte_order;
823 /** \brief IPv6 segment routing tunnel add / del response
824 @param context - sender context, to match reply w/ request
825 @param retval - return value for request
827 define sr_tunnel_add_del_reply
833 /** \brief IPv6 segment routing policy add / del request
834 @param client_index - opaque cookie to identify the sender
835 @param context - sender context, to match reply w/ request
836 @param is_add - add the tunnel if non-zero, else delete it
837 @param name[] - policy name (len. 64)
838 @param tunnel_names[] -
840 define sr_policy_add_del
849 /** \brief IPv6 segment routing policy add / del response
850 @param context - sender context, to match reply w/ request
851 @param retval - return value for request
853 define sr_policy_add_del_reply
859 /** \brief IPv6 segment routing multicast map to policy add / del request
860 @param client_index - opaque cookie to identify the sender
861 @param context - sender context, to match reply w/ request
862 @param is_add - add the tunnel if non-zero, else delete it
863 @param multicast_address[] - IP6 multicast address
864 @param policy_name[] = policy name (len.64)
866 define sr_multicast_map_add_del
871 u8 multicast_address[16];
875 /** \brief IPv6 segment routing multicast map to policy add / del response
876 @param context - sender context, to match reply w/ request
877 @param retval - return value for request
879 define sr_multicast_map_add_del_reply
885 /** \brief Interface set vpath request
886 @param client_index - opaque cookie to identify the sender
887 @param context - sender context, to match reply w/ request
888 @param sw_if_index - interface used to reach neighbor
889 @param enable - if non-zero enable, else disable
891 define sw_interface_set_vpath
899 /** \brief Interface set vpath response
900 @param context - sender context, to match reply w/ request
901 @param retval - return code for the request
903 define sw_interface_set_vpath_reply
909 /** \brief Set L2 XConnect between two interfaces request
910 @param client_index - opaque cookie to identify the sender
911 @param context - sender context, to match reply w/ request
912 @param rx_sw_if_index - Receive interface index
913 @param tx_sw_if_index - Transmit interface index
914 @param enable - enable xconnect if not 0, else set to L3 mode
916 define sw_interface_set_l2_xconnect
925 /** \brief Set L2 XConnect response
926 @param context - sender context, to match reply w/ request
927 @param retval - L2 XConnect request return code
929 define sw_interface_set_l2_xconnect_reply
935 /** \brief Interface bridge mode request
936 @param client_index - opaque cookie to identify the sender
937 @param context - sender context, to match reply w/ request
938 @param rx_sw_if_index - the interface
939 @param bd_id - bridge domain id
940 @param bvi - Setup interface as a bvi, bridge mode only
941 @param shg - Shared horizon group, for bridge mode only
942 @param enable - Enable beige mode if not 0, else set to L3 mode
944 define sw_interface_set_l2_bridge
955 /** \brief Interface bridge mode response
956 @param context - sender context, to match reply w/ request
957 @param retval - Bridge mode request return code
959 define sw_interface_set_l2_bridge_reply
965 /** \brief L2 FIB add entry request
966 @param client_index - opaque cookie to identify the sender
967 @param context - sender context, to match reply w/ request
968 @param mac - the entry's mac address
969 @param bd_id - the entry's bridge domain id
970 @param sw_if_index - the interface
971 @param is_add - If non zero add the entry, else delete it
988 /** \brief L2 FIB add entry response
989 @param context - sender context, to match reply w/ request
990 @param retval - return code for the add l2fib entry request
992 define l2fib_add_del_reply
998 /** \brief Set L2 flags request !!! TODO - need more info, feature bits in l2_input.h
999 @param client_index - opaque cookie to identify the sender
1000 @param context - sender context, to match reply w/ request
1001 @param sw_if_index - interface
1002 @param is_set - if non-zero, set the bits, else clear them
1003 @param feature_bitmap - non-zero bits to set or clear
1014 /** \brief Set L2 bits response
1015 @param context - sender context, to match reply w/ request
1016 @param retval - return code for the set l2 bits request
1018 define l2_flags_reply
1022 u32 resulting_feature_bitmap;
1025 /** \brief Set bridge flags (such as L2_LEARN, L2_FWD, L2_FLOOD,
1026 L2_UU_FLOOD, or L2_ARP_TERM) request
1027 @param client_index - opaque cookie to identify the sender
1028 @param context - sender context, to match reply w/ request
1029 @param bd_id - the bridge domain to set the flags for
1030 @param is_set - if non-zero, set the flags, else clear them
1031 @param feature_bitmap - bits that are non-zero to set or clear
1042 /** \brief Set bridge flags response
1043 @param context - sender context, to match reply w/ request
1044 @param retval - return code for the set bridge flags request
1045 @param resulting_feature_bitmap - the feature bitmap value after the request is implemented
1047 define bridge_flags_reply
1051 u32 resulting_feature_bitmap;
1054 /** \brief Set bridge domain ip to mac entry request
1055 @param client_index - opaque cookie to identify the sender
1056 @param context - sender context, to match reply w/ request
1057 @param bd_id - the bridge domain to set the flags for
1058 @param is_add - if non-zero, add the entry, else clear it
1059 @param is_ipv6 - if non-zero, ipv6 address, else ipv4 address
1060 @param mac_address - MAC address
1063 define bd_ip_mac_add_del
1074 /** \brief Set bridge domain ip to mac entry response
1075 @param context - sender context, to match reply w/ request
1076 @param retval - return code for the set bridge flags request
1078 define bd_ip_mac_add_del_reply
1084 /** \brief Add/Delete classification table request
1085 @param client_index - opaque cookie to identify the sender
1086 @param context - sender context, to match reply w/ request
1087 @param is_add- if non-zero add the table, else delete it
1088 @param del_chain - if non-zero delete the whole chain of tables
1089 @param table_index - if add, reuturns index of the created table, else specifies the table to delete
1090 @param nbuckets - number of buckets when adding a table
1091 @param memory_size - memory size when adding a table
1092 @param match_n_vectors - number of match vectors
1093 @param next_table_index - index of next table
1094 @param miss_next_index - index of miss table
1095 @param current_data_flag - option to use current node's packet payload
1096 as the starting point from where packets are classified,
1097 This option is only valid for L2/L3 input ACL for now.
1098 0: by default, classify data from the buffer's start location
1099 1: classify packets from VPP node’s current data pointer
1100 @param current_data_offset - a signed value to shift the start location of
1101 the packet to be classified
1102 For example, if input IP ACL node is used, L2 header’s first byte
1103 can be accessible by configuring current_data_offset to -14
1104 if there is no vlan tag.
1105 This is valid only if current_data_flag is set to 1.
1106 @param mask[] - match mask
1108 define classify_add_del_table
1118 u32 match_n_vectors;
1119 u32 next_table_index;
1120 u32 miss_next_index;
1121 u32 current_data_flag;
1122 i32 current_data_offset;
1126 /** \brief Add/Delete classification table response
1127 @param context - sender context, to match reply w/ request
1128 @param retval - return code for the table add/del requst
1129 @param new_table_index - for add, returned index of the new table
1130 @param skip_n_vectors - for add, returned value of skip_n_vectors in table
1131 @param match_n_vectors -for add, returned value of match_n_vectors in table
1133 define classify_add_del_table_reply
1137 u32 new_table_index;
1139 u32 match_n_vectors;
1142 /** \brief Classify add / del session request
1143 @param client_index - opaque cookie to identify the sender
1144 @param context - sender context, to match reply w/ request
1145 @param is_add - add session if non-zero, else delete
1146 @param table_index - index of the table to add/del the session, required
1147 @param hit_next_index - for add, hit_next_index of new session, required
1148 @param opaque_index - for add, opaque_index of new session
1149 @param advance -for add, advance value for session
1151 0: no action (by default)
1152 metadata is not used.
1153 1: Classified IP packets will be looked up from the
1154 specified ipv4 fib table (configured by metadata as VRF id).
1155 Only valid for L3 input ACL node
1156 2: Classified IP packets will be looked up from the
1157 specified ipv6 fib table (configured by metadata as VRF id).
1158 Only valid for L3 input ACL node
1159 @param metadata - valid only if action != 0
1160 VRF id if action is 1 or 2.
1161 @param match[] - for add, match value for session, required
1163 define classify_add_del_session
1177 /** \brief Classify add / del session response
1178 @param context - sender context, to match reply w/ request
1179 @param retval - return code for the add/del session request
1181 define classify_add_del_session_reply
1187 /** \brief Set/unset the classification table for an interface request
1188 @param client_index - opaque cookie to identify the sender
1189 @param context - sender context, to match reply w/ request
1190 @param is_ipv6 - ipv6 if non-zero, else ipv4
1191 @param sw_if_index - interface to associate with the table
1192 @param table_index - index of the table, if ~0 unset the table
1194 define classify_set_interface_ip_table
1200 u32 table_index; /* ~0 => off */
1203 /** \brief Set/unset interface classification table response
1204 @param context - sender context, to match reply w/ request
1205 @param retval - return code
1207 define classify_set_interface_ip_table_reply
1213 /** \brief Set/unset l2 classification tables for an interface request
1214 @param client_index - opaque cookie to identify the sender
1215 @param context - sender context, to match reply w/ request
1216 @param sw_if_index - interface to set/unset tables for
1217 @param ip4_table_index - ip4 index, use ~0 for all 3 indexes to unset
1218 @param ip6_table_index - ip6 index
1219 @param other_table_index - other index
1221 define classify_set_interface_l2_tables
1227 u32 ip4_table_index;
1228 u32 ip6_table_index;
1229 u32 other_table_index;
1233 /** \brief Set/unset l2 classification tables for an interface response
1234 @param context - sender context, to match reply w/ request
1235 @param retval - return code for the request
1237 define classify_set_interface_l2_tables_reply
1243 /** \brief Get node index using name request
1244 @param client_index - opaque cookie to identify the sender
1245 @param context - sender context, to match reply w/ request
1246 @param node_name[] - name of the node
1248 define get_node_index
1255 /** \brief Get node index using name request
1256 @param context - sender context, to match reply w/ request
1257 @param retval - return code for the request
1258 @param node_index - index of the desired node if found, else ~0
1260 define get_node_index_reply
1267 /** \brief Set the next node for a given node request
1268 @param client_index - opaque cookie to identify the sender
1269 @param context - sender context, to match reply w/ request
1270 @param node_name[] - node to add the next node to
1271 @param next_name[] - node to add as the next node
1273 define add_node_next
1281 /** \brief IP Set the next node for a given node response
1282 @param context - sender context, to match reply w/ request
1283 @param retval - return code for the add next node request
1284 @param next_index - the index of the next node if success, else ~0
1286 define add_node_next_reply
1293 /** \brief DHCP Proxy config 2 add / del request
1294 @param client_index - opaque cookie to identify the sender
1295 @param context - sender context, to match reply w/ request
1296 @param rx_vrf_id - receive vrf id
1297 @param server_vrf_id - server vrf id
1298 @param if_ipv6 - ipv6 if non-zero, else ipv4
1299 @param is_add - add the config if non-zero, else delete
1300 @param insert_circuit_id - option82 suboption 1 fib number
1301 @param dhcp_server[] - server address
1302 @param dhcp_src_address[] - <fix this, need details>
1304 define dhcp_proxy_config_2
1312 u8 insert_circuit_id;
1314 u8 dhcp_src_address[16];
1317 /** \brief DHCP Proxy config 2 add / del response
1318 @param context - sender context, to match reply w/ request
1319 @param retval - return code for request
1321 define dhcp_proxy_config_2_reply
1327 /** \brief l2tpv3 tunnel interface create request
1328 @param client_index - opaque cookie to identify the sender
1329 @param context - sender context, to match reply w/ request
1330 @param client_address - remote client tunnel ip address
1331 @param client_address - local tunnel ip address
1332 @param is_ipv6 - ipv6 if non-zero, else ipv4
1333 @param local_session_id - local tunnel session id
1334 @param remote_session_id - remote tunnel session id
1335 @param local_cookie - local tunnel cookie
1336 @param l2_sublayer_present - l2 sublayer is present in packets if non-zero
1337 @param encap_vrf_id - fib identifier used for outgoing encapsulated packets
1339 define l2tpv3_create_tunnel
1343 u8 client_address[16];
1346 u32 local_session_id;
1347 u32 remote_session_id;
1350 u8 l2_sublayer_present;
1354 /** \brief l2tpv3 tunnel interface create response
1355 @param context - sender context, to match reply w/ request
1356 @param retval - return code for the request
1357 @param sw_if_index - index of the new tunnel interface
1359 define l2tpv3_create_tunnel_reply
1366 define l2tpv3_set_tunnel_cookies
1371 u64 new_local_cookie;
1372 u64 new_remote_cookie;
1375 /** \brief L2TP tunnel set cookies response
1376 @param context - sender context, to match reply w/ request
1377 @param retval - return code for the request
1379 define l2tpv3_set_tunnel_cookies_reply
1385 define sw_if_l2tpv3_tunnel_details
1389 u8 interface_name[64];
1390 u8 client_address[16];
1392 u32 local_session_id;
1393 u32 remote_session_id;
1394 u64 local_cookie[2];
1396 u8 l2_sublayer_present;
1399 define sw_if_l2tpv3_tunnel_dump
1405 /** \brief L2 fib clear table request, clear all mac entries in the l2 fib
1406 @param client_index - opaque cookie to identify the sender
1407 @param context - sender context, to match reply w/ request
1409 define l2_fib_clear_table
1415 /** \brief L2 fib clear table response
1416 @param context - sender context, to match reply w/ request
1417 @param retval - return code for the request
1419 define l2_fib_clear_table_reply
1425 /** \brief L2 interface ethernet flow point filtering enable/disable request
1426 @param client_index - opaque cookie to identify the sender
1427 @param context - sender context, to match reply w/ request
1428 @param sw_if_index - interface to enable/disable filtering on
1429 @param enable_disable - if non-zero enable filtering, else disable
1431 define l2_interface_efp_filter
1439 /** \brief L2 interface ethernet flow point filtering response
1440 @param context - sender context, to match reply w/ request
1441 @param retval - return code for the request
1443 define l2_interface_efp_filter_reply
1449 define l2tpv3_interface_enable_disable
1457 define l2tpv3_interface_enable_disable_reply
1463 define l2tpv3_set_lookup_key
1467 /* 0 = ip6 src_address, 1 = ip6 dst_address, 2 = session_id */
1471 define l2tpv3_set_lookup_key_reply
1477 define gre_add_del_tunnel
1489 define gre_add_del_tunnel_reply
1496 define gre_tunnel_dump
1503 define gre_tunnel_details
1514 /** \brief L2 interface vlan tag rewrite configure request
1515 @param client_index - opaque cookie to identify the sender
1516 @param context - sender context, to match reply w/ request
1517 @param sw_if_index - interface the operation is applied to
1518 @param vtr_op - Choose from l2_vtr_op_t enum values
1519 @param push_dot1q - first pushed flag dot1q id set, else dot1ad
1520 @param tag1 - Needed for any push or translate vtr op
1521 @param tag2 - Needed for any push 2 or translate x-2 vtr ops
1523 define l2_interface_vlan_tag_rewrite
1529 u32 push_dot1q; // ethertype of first pushed tag is dot1q/dot1ad
1530 u32 tag1; // first pushed tag
1531 u32 tag2; // second pushed tag
1534 /** \brief L2 interface vlan tag rewrite response
1535 @param context - sender context, to match reply w/ request
1536 @param retval - return code for the request
1538 define l2_interface_vlan_tag_rewrite_reply
1544 /** \brief vhost-user interface create request
1545 @param client_index - opaque cookie to identify the sender
1546 @param is_server - our side is socket server
1547 @param sock_filename - unix socket filename, used to speak with frontend
1548 @param use_custom_mac - enable or disable the use of the provided hardware address
1549 @param mac_address - hardware address to use if 'use_custom_mac' is set
1551 define create_vhost_user_if
1556 u8 sock_filename[256];
1558 u32 custom_dev_instance;
1564 /** \brief vhost-user interface create response
1565 @param context - sender context, to match reply w/ request
1566 @param retval - return code for the request
1567 @param sw_if_index - interface the operation is applied to
1569 define create_vhost_user_if_reply
1576 /** \brief vhost-user interface modify request
1577 @param client_index - opaque cookie to identify the sender
1578 @param is_server - our side is socket server
1579 @param sock_filename - unix socket filename, used to speak with frontend
1581 define modify_vhost_user_if
1587 u8 sock_filename[256];
1589 u32 custom_dev_instance;
1592 /** \brief vhost-user interface modify response
1593 @param context - sender context, to match reply w/ request
1594 @param retval - return code for the request
1596 define modify_vhost_user_if_reply
1602 /** \brief vhost-user interface delete request
1603 @param client_index - opaque cookie to identify the sender
1605 define delete_vhost_user_if
1612 /** \brief vhost-user interface delete response
1613 @param context - sender context, to match reply w/ request
1614 @param retval - return code for the request
1616 define delete_vhost_user_if_reply
1629 /* These fields map directly onto the subif template */
1633 u8 dot1ad; // 0 = dot1q, 1=dot1ad
1636 u8 outer_vlan_id_any;
1637 u8 inner_vlan_id_any;
1642 define create_subif_reply
1649 /** \brief show version
1650 @param client_index - opaque cookie to identify the sender
1651 @param context - sender context, to match reply w/ request
1659 /** \brief show version response
1660 @param context - sender context, to match reply w/ request
1661 @param retval - return code for the request
1662 @param program - name of the program (vpe)
1663 @param version - version of the program
1664 @param build_directory - root of the workspace where the program was built
1666 define show_version_reply
1673 u8 build_directory[256];
1676 /** \brief Vhost-user interface details structure (fix this)
1677 @param sw_if_index - index of the interface
1678 @param interface_name - name of interface
1679 @param virtio_net_hdr_sz - net header size
1680 @param features - interface features
1681 @param is_server - vhost-user server socket
1682 @param sock_filename - socket filename
1683 @param num_regions - number of used memory regions
1685 define sw_interface_vhost_user_details
1689 u8 interface_name[64];
1690 u32 virtio_net_hdr_sz;
1693 u8 sock_filename[256];
1699 define sw_interface_vhost_user_dump
1705 /** \brief l2 fib table entry structure
1706 @param bd_id - the l2 fib / bridge domain table id
1707 @param mac - the entry's mac address
1708 @param sw_if_index - index of the interface
1709 @param static_mac - the entry is statically configured.
1710 @param filter_mac - the entry is a mac filter entry.
1711 @param bvi_mac - the mac address is a bridge virtual interface
1713 define l2_fib_table_entry
1724 /** \brief Dump l2 fib (aka bridge domain) table
1725 @param client_index - opaque cookie to identify the sender
1726 @param bd_id - the l2 fib / bridge domain table identifier
1728 define l2_fib_table_dump
1735 define vxlan_gpe_add_del_tunnel
1749 define vxlan_gpe_add_del_tunnel_reply
1756 define vxlan_gpe_tunnel_dump
1763 define vxlan_gpe_tunnel_details
1776 /** \brief add or delete locator_set
1777 @param client_index - opaque cookie to identify the sender
1778 @param context - sender context, to match reply w/ request
1779 @param is_add - add address if non-zero, else delete
1780 @param locator_set_name - locator name
1781 @param locator_num - number of locators
1782 @param locators - LISP locator records
1783 Structure of one locator record is as follows:
1791 define lisp_add_del_locator_set
1796 u8 locator_set_name[64];
1801 /** \brief Reply for locator_set add/del
1802 @param context - returned sender context, to match reply w/ request
1803 @param retval - return code
1804 @param ls_index - locator set index
1806 define lisp_add_del_locator_set_reply
1813 /** \brief add or delete locator for locator_set
1814 @param client_index - opaque cookie to identify the sender
1815 @param context - sender context, to match reply w/ request
1816 @param is_add - add address if non-zero, else delete
1817 @param locator_set_name - name of locator_set to add/del locator
1818 @param sw_if_index - index of the interface
1819 @param priority - priority of the lisp locator
1820 @param weight - weight of the lisp locator
1822 define lisp_add_del_locator
1827 u8 locator_set_name[64];
1833 /** \brief Reply for locator add/del
1834 @param context - returned sender context, to match reply w/ request
1835 @param retval - return code
1837 define lisp_add_del_locator_reply
1843 /** \brief add or delete lisp eid-table
1844 @param client_index - opaque cookie to identify the sender
1845 @param context - sender context, to match reply w/ request
1846 @param is_add - add address if non-zero, else delete
1851 @param eid - EID can be ip4, ip6 or mac
1852 @param prefix_len - prefix len
1853 @param locator_set_name - name of locator_set to add/del eid-table
1854 @param vni - virtual network instance
1859 @param key - secret key
1861 define lisp_add_del_local_eid
1869 u8 locator_set_name[64];
1875 /** \brief Reply for local_eid add/del
1876 @param context - returned sender context, to match reply w/ request
1877 @param retval - return code
1879 define lisp_add_del_local_eid_reply
1885 /** \brief add or delete lisp gpe tunnel
1886 @param client_index - opaque cookie to identify the sender
1887 @param context - sender context, to match reply w/ request
1888 @param is_add - add address if non-zero, else delete
1893 @param rmt_eid - remote eid
1894 @param lcl_eid - local eid
1895 @param rmt_len - remote prefix len
1896 @param lcl_len - local prefix len
1897 @param vni - virtual network identifier
1898 @param dp_table - vrf/bridge domain id
1899 @param loc_num - number of locators
1900 @param lcl_locs - array of local locators
1901 @param rmt_locs - array of remote locators
1902 @param action - negative action when 0 locators configured
1904 define lisp_gpe_add_del_fwd_entry
1917 u8 lcl_locs[loc_num];
1918 u8 rmt_locs[loc_num];
1922 /** \brief Reply for gpe_fwd_entry add/del
1923 @param context - returned sender context, to match reply w/ request
1924 @param retval - return code
1926 define lisp_gpe_add_del_fwd_entry_reply
1932 /** \brief Add/delete map server
1933 @param client_index - opaque cookie to identify the sender
1934 @param context - sender context, to match reply w/ request
1935 @param is_add - add address if non-zero; delete otherwise
1936 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
1937 @param ip_address - map server IP address
1939 define lisp_add_del_map_server
1948 /** \brief Reply for lisp_add_del_map_server
1949 @param context - returned sender context, to match reply w/ request
1950 @param retval - return code
1952 define lisp_add_del_map_server_reply
1958 /** \brief add or delete map-resolver
1959 @param client_index - opaque cookie to identify the sender
1960 @param context - sender context, to match reply w/ request
1961 @param is_add - add address if non-zero, else delete
1962 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
1963 @param ip_address - array of address bytes
1965 define lisp_add_del_map_resolver
1974 /** \brief Reply for map_resolver add/del
1975 @param context - returned sender context, to match reply w/ request
1976 @param retval - return code
1978 define lisp_add_del_map_resolver_reply
1984 /** \brief enable or disable lisp-gpe protocol
1985 @param client_index - opaque cookie to identify the sender
1986 @param context - sender context, to match reply w/ request
1987 @param is_en - enable protocol if non-zero, else disable
1989 define lisp_gpe_enable_disable
1996 /** \brief Reply for gpe enable/disable
1997 @param context - returned sender context, to match reply w/ request
1998 @param retval - return code
2000 define lisp_gpe_enable_disable_reply
2006 /** \brief enable or disable LISP feature
2007 @param client_index - opaque cookie to identify the sender
2008 @param context - sender context, to match reply w/ request
2009 @param is_en - enable protocol if non-zero, else disable
2011 define lisp_enable_disable
2018 /** \brief Reply for gpe enable/disable
2019 @param context - returned sender context, to match reply w/ request
2020 @param retval - return code
2022 define lisp_enable_disable_reply
2028 /** \brief add or delete gpe_iface
2029 @param client_index - opaque cookie to identify the sender
2030 @param context - sender context, to match reply w/ request
2031 @param is_add - add address if non-zero, else delete
2033 define lisp_gpe_add_del_iface
2043 /** \brief Reply for gpe_iface add/del
2044 @param context - returned sender context, to match reply w/ request
2045 @param retval - return code
2047 define lisp_gpe_add_del_iface_reply
2053 /** \brief configure or disable LISP PITR node
2054 @param client_index - opaque cookie to identify the sender
2055 @param context - sender context, to match reply w/ request
2056 @param ls_name - locator set name
2057 @param is_add - add locator set if non-zero, else disable pitr
2059 define lisp_pitr_set_locator_set
2067 /** \brief Reply for lisp_pitr_set_locator_set
2068 @param context - returned sender context, to match reply w/ request
2069 @param retval - return code
2071 define lisp_pitr_set_locator_set_reply
2077 /** \brief Get state of LISP RLOC probing
2078 @param client_index - opaque cookie to identify the sender
2079 @param context - sender context, to match reply w/ request
2081 define show_lisp_rloc_probe_state
2087 /** \brief Reply for show_lisp_rloc_probe_state
2088 @param context - returned sender context, to match reply w/ request
2089 @param retval - return code
2090 @param is_enabled - state of RLOC probing
2092 define show_lisp_rloc_probe_state_reply
2099 /** \brief enable/disable LISP RLOC probing
2100 @param client_index - opaque cookie to identify the sender
2101 @param context - sender context, to match reply w/ request
2102 @param is_enable - enable if non-zero; disable otherwise
2104 define lisp_rloc_probe_enable_disable
2111 /** \brief Reply for lisp_rloc_probe_enable_disable
2112 @param context - returned sender context, to match reply w/ request
2113 @param retval - return code
2115 define lisp_rloc_probe_enable_disable_reply
2121 /** \brief enable/disable LISP map-register
2122 @param client_index - opaque cookie to identify the sender
2123 @param context - sender context, to match reply w/ request
2124 @param is_enable - enable if non-zero; disable otherwise
2126 define lisp_map_register_enable_disable
2133 /** \brief Reply for lisp_map_register_enable_disable
2134 @param context - returned sender context, to match reply w/ request
2135 @param retval - return code
2137 define lisp_map_register_enable_disable_reply
2143 /** \brief Get state of LISP map-register
2144 @param client_index - opaque cookie to identify the sender
2145 @param context - sender context, to match reply w/ request
2147 define show_lisp_map_register_state
2153 /** \brief Reply for show_lisp_map_register_state
2154 @param context - returned sender context, to match reply w/ request
2155 @param retval - return code
2157 define show_lisp_map_register_state_reply
2164 /** \brief set LISP map-request mode. Based on configuration VPP will send
2165 src/dest or just normal destination map requests.
2166 @param client_index - opaque cookie to identify the sender
2167 @param context - sender context, to match reply w/ request
2168 @param mode - new map-request mode. Supported values are:
2169 0 - destination only
2170 1 - source/destaination
2172 define lisp_map_request_mode
2179 /** \brief Reply for lisp_map_request_mode
2180 @param context - returned sender context, to match reply w/ request
2181 @param retval - return code
2183 define lisp_map_request_mode_reply
2189 /** \brief Request for LISP map-request mode
2190 @param client_index - opaque cookie to identify the sender
2191 @param context - sender context, to match reply w/ request
2193 define show_lisp_map_request_mode
2199 /** \brief Reply for show_lisp_map_request_mode
2200 @param context - returned sender context, to match reply w/ request
2201 @param retval - return code
2202 @param mode - map-request mode
2204 define show_lisp_map_request_mode_reply
2211 /** \brief add or delete remote static mapping
2212 @param client_index - opaque cookie to identify the sender
2213 @param context - sender context, to match reply w/ request
2214 @param is_add - add address if non-zero, else delete
2215 @param is_src_dst - flag indicating src/dst based routing policy
2216 @param del_all - if set, delete all remote mappings
2217 @param vni - virtual network instance
2218 @param action - negative map-reply action
2223 @param deid - dst EID
2224 @param seid - src EID, valid only if is_src_dst is enabled
2225 @param rloc_num - number of remote locators
2226 @param rlocs - remote locator records
2227 Structure of remote locator:
2236 define lisp_add_del_remote_mapping
2254 /** \brief Reply for lisp_add_del_remote_mapping
2255 @param context - returned sender context, to match reply w/ request
2256 @param retval - return code
2258 define lisp_add_del_remote_mapping_reply
2264 /** \brief add or delete LISP adjacency adjacency
2265 @param client_index - opaque cookie to identify the sender
2266 @param context - sender context, to match reply w/ request
2267 @param is_add - add address if non-zero, else delete
2268 @param vni - virtual network instance
2273 @param reid - remote EID
2274 @param leid - local EID
2276 define lisp_add_del_adjacency
2289 /** \brief Reply for lisp_add_del_adjacency
2290 @param context - returned sender context, to match reply w/ request
2291 @param retval - return code
2293 define lisp_add_del_adjacency_reply
2299 /** \brief add or delete map request itr rlocs
2300 @param client_index - opaque cookie to identify the sender
2301 @param context - sender context, to match reply w/ request
2302 @param is_add - add address if non-zero, else delete
2303 @param locator_set_name - locator set name
2305 define lisp_add_del_map_request_itr_rlocs
2310 u8 locator_set_name[64];
2313 /** \brief Reply for lisp_add_del_map_request_itr_rlocs
2314 @param context - returned sender context, to match reply w/ request
2315 @param retval - return code
2318 define lisp_add_del_map_request_itr_rlocs_reply
2324 /** \brief map/unmap vni/bd_index to vrf
2325 @param client_index - opaque cookie to identify the sender
2326 @param context - sender context, to match reply w/ request
2327 @param is_add - add or delete mapping
2328 @param dp_table - virtual network id/bridge domain index
2331 define lisp_eid_table_add_del_map
2341 /** \brief Reply for lisp_eid_table_add_del_map
2342 @param context - returned sender context, to match reply w/ request
2343 @param retval - return code
2345 define lisp_eid_table_add_del_map_reply
2351 /** \brief Request for map lisp locator status
2352 @param client_index - opaque cookie to identify the sender
2353 @param context - sender context, to match reply w/ request
2354 @param locator_set_index - index of locator_set
2355 @param ls_name - locator set name
2356 @param is_index_set - flag indicating whether ls_name or ls_index is set
2358 define lisp_locator_dump
2367 /** \brief LISP locator_set status
2368 @param local - if is set, then locator is local
2369 @param locator_set_name - name of the locator_set
2370 @param sw_if_index - sw_if_index of the locator
2371 @param priority - locator priority
2372 @param weight - locator weight
2374 define lisp_locator_details
2385 /** \brief LISP locator_set status
2386 @param context - sender context, to match reply w/ request
2387 @param ls_index - locator set index
2388 @param ls_name - name of the locator set
2390 define lisp_locator_set_details
2397 /** \brief Request for locator_set summary status
2398 @param client_index - opaque cookie to identify the sender
2399 @param context - sender context, to match reply w/ request
2400 @param filter - filter type
2403 1: local locator sets
2404 2: remote locator sets
2406 define lisp_locator_set_dump
2413 /** \brief Dump lisp eid-table
2414 @param client_index - opaque cookie to identify the sender
2415 @param context - sender context, to match reply w/ request
2416 @param locator_set_index - index of locator_set, if ~0 then the mapping
2418 @param action - negative map request action
2419 @param is_local - local if non-zero, else remote
2424 @param is_src_dst - EID is type of source/destination
2425 @param eid - EID can be ip4, ip6 or mac
2426 @param eid_prefix_len - prefix length
2427 @param seid - source EID can be ip4, ip6 or mac
2428 @param seid_prefix_len - source prefix length
2429 @param vni - virtual network instance
2430 @param ttl - time to live
2431 @param authoritative - authoritative
2436 @param key - secret key
2439 define lisp_eid_table_details
2442 u32 locator_set_index;
2458 /** \brief Request for eid table summary status
2459 @param client_index - opaque cookie to identify the sender
2460 @param context - sender context, to match reply w/ request
2461 @param eid_set - if non-zero request info about specific mapping
2462 @param vni - virtual network instance; valid only if eid_set != 0
2463 @param prefix_length - prefix length if EID is IP address;
2464 valid only if eid_set != 0
2465 @param eid_type - EID type; valid only if eid_set != 0
2469 2: EID is ethernet address
2470 @param eid - endpoint identifier
2471 @param filter - filter type;
2477 define lisp_eid_table_dump
2489 /** \brief LISP adjacency
2494 @param reid - remote EID
2495 @param leid - local EID
2496 @param reid_prefix_len - remote EID IP prefix length
2497 @param leid_prefix_len - local EID IP prefix length
2499 typeonly manual_print manual_endian define lisp_adjacency
2508 /** \brief LISP adjacency reply
2509 @param count - number of adjacencies
2510 @param adjacencies - array of adjacencies
2512 manual_endian manual_print define lisp_adjacencies_get_reply
2517 vl_api_lisp_adjacency_t adjacencies[count];
2520 /** \brief Request for LISP adjacencies
2521 @param client_index - opaque cookie to identify the sender
2522 @param context - sender context, to match reply w/ request
2523 @param vni - filter adjacencies by VNI
2525 define lisp_adjacencies_get
2532 /** \brief Shows relationship between vni and vrf/bd
2533 @param dp_table - VRF index or bridge domain index
2534 @param vni - vitual network instance
2536 define lisp_eid_table_map_details
2543 /** \brief Request for lisp_eid_table_map_details
2544 @param client_index - opaque cookie to identify the sender
2545 @param context - sender context, to match reply w/ request
2546 @param is_l2 - if set dump vni/bd mappings else vni/vrf
2548 define lisp_eid_table_map_dump
2555 /** \brief Dumps all VNIs used in mappings
2556 @param client_index - opaque cookie to identify the sender
2557 @param context - sender context, to match reply w/ request
2559 define lisp_eid_table_vni_dump
2565 /** \brief reply to lisp_eid_table_vni_dump
2566 @param client_index - opaque cookie to identify the sender
2567 @param context - sender context, to match reply w/ request
2568 @param vni - virtual network instance
2570 define lisp_eid_table_vni_details
2577 define lisp_gpe_tunnel_details
2583 u8 destination_ip[16];
2595 /** \brief Request for gpe tunnel summary status
2596 @param client_index - opaque cookie to identify the sender
2597 @param context - sender context, to match reply w/ request
2599 define lisp_gpe_tunnel_dump
2605 /** \brief LISP map resolver status
2606 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
2607 @param ip_address - array of address bytes
2609 define lisp_map_resolver_details
2616 /** \brief Request for map resolver summary status
2617 @param client_index - opaque cookie to identify the sender
2618 @param context - sender context, to match reply w/ request
2620 define lisp_map_resolver_dump
2626 /** \brief LISP map server details
2627 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
2628 @param ip_address - array of address bytes
2630 define lisp_map_server_details
2637 /** \brief Request for map server summary status
2638 @param client_index - opaque cookie to identify the sender
2639 @param context - sender context, to match reply w/ request
2641 define lisp_map_server_dump
2647 /** \brief Request for lisp-gpe protocol status
2648 @param client_index - opaque cookie to identify the sender
2649 @param context - sender context, to match reply w/ request
2651 define show_lisp_status
2657 /** \brief Status of lisp, enable or disable
2658 @param context - sender context, to match reply w/ request
2659 @param feature_status - lisp enable if non-zero, else disable
2660 @param gpe_status - lisp enable if non-zero, else disable
2662 define show_lisp_status_reply
2670 /** \brief Get LISP map request itr rlocs status
2671 @param context - sender context, to match reply w/ request
2672 @param locator_set_name - name of the locator_set
2674 define lisp_get_map_request_itr_rlocs
2680 /** \brief Request for map request itr rlocs summary status
2682 define lisp_get_map_request_itr_rlocs_reply
2686 u8 locator_set_name[64];
2689 /** \brief Request for lisp pitr status
2690 @param client_index - opaque cookie to identify the sender
2691 @param context - sender context, to match reply w/ request
2693 define show_lisp_pitr
2699 /** \brief Status of lisp pitr, enable or disable
2700 @param context - sender context, to match reply w/ request
2701 @param status - lisp pitr enable if non-zero, else disable
2702 @param locator_set_name - name of the locator_set
2704 define show_lisp_pitr_reply
2709 u8 locator_set_name[64];
2712 /* Gross kludge, DGMS */
2713 define interface_name_renumber
2718 u32 new_show_dev_instance;
2721 define interface_name_renumber_reply
2727 /** \brief Register for ip4 arp resolution events
2728 @param client_index - opaque cookie to identify the sender
2729 @param context - sender context, to match reply w/ request
2730 @param enable_disable - 1 => register for events, 0 => cancel registration
2731 @param pid - sender's pid
2732 @param address - the exact ip4 address of interest
2734 define want_ip4_arp_events
2743 /** \brief Reply for interface events registration
2744 @param context - returned sender context, to match reply w/ request
2745 @param retval - return code
2747 define want_ip4_arp_events_reply
2753 /** \brief Tell client about an ip4 arp resolution event
2754 @param client_index - opaque cookie to identify the sender
2755 @param context - sender context, to match reply w/ request
2756 @param address - the exact ip4 address of interest
2757 @param pid - client pid registered to receive notification
2758 @param sw_if_index - interface which received ARP packet
2759 @param new_mac - the new mac address
2760 @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
2762 define ip4_arp_event
2773 /** \brief Register for ip6 nd resolution events
2774 @param client_index - opaque cookie to identify the sender
2775 @param context - sender context, to match reply w/ request
2776 @param enable_disable - 1 => register for events, 0 => cancel registration
2777 @param pid - sender's pid
2778 @param address - the exact ip6 address of interest
2780 define want_ip6_nd_events
2789 /** \brief Reply for ip6 nd resolution events registration
2790 @param context - returned sender context, to match reply w/ request
2791 @param retval - return code
2793 define want_ip6_nd_events_reply
2799 /** \brief Tell client about an ip6 nd resolution or mac/ip event
2800 @param client_index - opaque cookie to identify the sender
2801 @param context - sender context, to match reply w/ request
2802 @param pid - client pid registered to receive notification
2803 @param sw_if_index - interface which received ARP packet
2804 @param address - the exact ip6 address of interest
2805 @param new_mac - the new mac address
2806 @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
2819 /** \brief L2 bridge domain add or delete request
2820 @param client_index - opaque cookie to identify the sender
2821 @param context - sender context, to match reply w/ request
2822 @param bd_id - the bridge domain to create
2823 @param flood - enable/disable bcast/mcast flooding in the bd
2824 @param uu_flood - enable/disable uknown unicast flood in the bd
2825 @param forward - enable/disable forwarding on all interfaces in the bd
2826 @param learn - enable/disable learning on all interfaces in the bd
2827 @param arp_term - enable/disable arp termination in the bd
2828 @param mac_age - mac aging time in min, 0 for disabled
2829 @param is_add - add or delete flag
2831 define bridge_domain_add_del
2845 /** \brief L2 bridge domain add or delete response
2846 @param context - sender context, to match reply w/ request
2847 @param retval - return code for the set bridge flags request
2849 define bridge_domain_add_del_reply
2855 /** \brief L2 bridge domain request operational state details
2856 @param client_index - opaque cookie to identify the sender
2857 @param context - sender context, to match reply w/ request
2858 @param bd_id - the bridge domain id desired or ~0 to request all bds
2860 define bridge_domain_dump
2867 /** \brief L2 bridge domain operational state response
2868 @param bd_id - the bridge domain id
2869 @param flood - bcast/mcast flooding state on all interfaces in the bd
2870 @param uu_flood - uknown unicast flooding state on all interfaces in the bd
2871 @param forward - forwarding state on all interfaces in the bd
2872 @param learn - learning state on all interfaces in the bd
2873 @param arp_term - arp termination state on all interfaces in the bd
2874 @param mac_age - mac aging time in min, 0 for disabled
2875 @param n_sw_ifs - number of sw_if_index's in the domain
2877 define bridge_domain_details
2887 u32 bvi_sw_if_index;
2891 /** \brief L2 bridge domain sw interface operational state response
2892 @param bd_id - the bridge domain id
2893 @param sw_if_index - sw_if_index in the domain
2894 @param shg - split horizon group for the interface
2896 define bridge_domain_sw_if_details
2904 /** \brief DHCP Client config add / del request
2905 @param client_index - opaque cookie to identify the sender
2906 @param context - sender context, to match reply w/ request
2907 @param sw_if_index - index of the interface for DHCP client
2908 @param hostname - hostname
2909 @param is_add - add the config if non-zero, else delete
2910 @param want_dhcp_event - DHCP event sent to the sender
2911 via dhcp_compl_event API message if non-zero
2912 @param pid - sender's pid
2914 define dhcp_client_config
2925 /** \brief DHCP Client config response
2926 @param context - sender context, to match reply w/ request
2927 @param retval - return code for the request
2929 define dhcp_client_config_reply
2935 /** \brief Set/unset input ACL interface
2936 @param client_index - opaque cookie to identify the sender
2937 @param context - sender context, to match reply w/ request
2938 @param sw_if_index - interface to set/unset input ACL
2939 @param ip4_table_index - ip4 classify table index (~0 for skip)
2940 @param ip6_table_index - ip6 classify table index (~0 for skip)
2941 @param l2_table_index - l2 classify table index (~0 for skip)
2942 @param is_add - Set input ACL if non-zero, else unset
2943 Note: User is recommeneded to use just one valid table_index per call.
2944 (ip4_table_index, ip6_table_index, or l2_table_index)
2946 define input_acl_set_interface
2951 u32 ip4_table_index;
2952 u32 ip6_table_index;
2957 /** \brief Set/unset input ACL interface response
2958 @param context - sender context, to match reply w/ request
2959 @param retval - return code for the request
2961 define input_acl_set_interface_reply
2967 /** \brief IPsec: Add/delete Security Policy Database
2968 @param client_index - opaque cookie to identify the sender
2969 @param context - sender context, to match reply w/ request
2970 @param is_add - add SPD if non-zero, else delete
2971 @param spd_id - SPD instance id (control plane allocated)
2974 define ipsec_spd_add_del
2982 /** \brief Reply for IPsec: Add/delete Security Policy Database entry
2983 @param context - returned sender context, to match reply w/ request
2984 @param retval - return code
2987 define ipsec_spd_add_del_reply
2993 /** \brief IPsec: Add/delete SPD from interface
2995 @param client_index - opaque cookie to identify the sender
2996 @param context - sender context, to match reply w/ request
2997 @param is_add - add security mode if non-zero, else delete
2998 @param sw_if_index - index of the interface
2999 @param spd_id - SPD instance id to use for lookups
3003 define ipsec_interface_add_del_spd
3013 /** \brief Reply for IPsec: Add/delete SPD from interface
3014 @param context - returned sender context, to match reply w/ request
3015 @param retval - return code
3018 define ipsec_interface_add_del_spd_reply
3024 /** \brief IPsec: Add/delete Security Policy Database entry
3026 See RFC 4301, 4.4.1.1 on how to match packet to selectors
3028 @param client_index - opaque cookie to identify the sender
3029 @param context - sender context, to match reply w/ request
3030 @param is_add - add SPD if non-zero, else delete
3031 @param spd_id - SPD instance id (control plane allocated)
3032 @param priority - priority of SPD entry (non-unique value). Used to order SPD matching - higher priorities match before lower
3033 @param is_outbound - entry applies to outbound traffic if non-zero, otherwise applies to inbound traffic
3034 @param is_ipv6 - remote/local address are IPv6 if non-zero, else IPv4
3035 @param remote_address_start - start of remote address range to match
3036 @param remote_address_stop - end of remote address range to match
3037 @param local_address_start - start of local address range to match
3038 @param local_address_stop - end of local address range to match
3039 @param protocol - protocol type to match [0 means any]
3040 @param remote_port_start - start of remote port range to match ...
3041 @param remote_port_stop - end of remote port range to match [0 to 65535 means ANY, 65535 to 0 means OPAQUE]
3042 @param local_port_start - start of local port range to match ...
3043 @param local_port_stop - end of remote port range to match [0 to 65535 means ANY, 65535 to 0 means OPAQUE]
3044 @param policy - 0 = bypass (no IPsec processing), 1 = discard (discard packet with ICMP processing), 2 = resolve (send request to control plane for SA resolving, and discard without ICMP processing), 3 = protect (apply IPsec policy using following parameters)
3045 @param sa_id - SAD instance id (control plane allocated)
3049 define ipsec_spd_add_del_entry
3062 u8 remote_address_start[16];
3063 u8 remote_address_stop[16];
3064 u8 local_address_start[16];
3065 u8 local_address_stop[16];
3069 u16 remote_port_start;
3070 u16 remote_port_stop;
3071 u16 local_port_start;
3072 u16 local_port_stop;
3079 /** \brief Reply for IPsec: Add/delete Security Policy Database entry
3080 @param context - returned sender context, to match reply w/ request
3081 @param retval - return code
3084 define ipsec_spd_add_del_entry_reply
3090 /** \brief IPsec: Add/delete Security Association Database entry
3091 @param client_index - opaque cookie to identify the sender
3092 @param context - sender context, to match reply w/ request
3093 @param is_add - add SAD entry if non-zero, else delete
3095 @param sad_id - sad id
3097 @param spi - security parameter index
3099 @param protocol - 0 = AH, 1 = ESP
3101 @param crypto_algorithm - 0 = Null, 1 = AES-CBC-128, 2 = AES-CBC-192, 3 = AES-CBC-256, 4 = 3DES-CBC
3102 @param crypto_key_length - length of crypto_key in bytes
3103 @param crypto_key - crypto keying material
3105 @param integrity_algorithm - 0 = None, 1 = MD5-96, 2 = SHA1-96, 3 = SHA-256, 4 = SHA-384, 5=SHA-512
3106 @param integrity_key_length - length of integrity_key in bytes
3107 @param integrity_key - integrity keying material
3109 @param use_extended_sequence_number - use ESN when non-zero
3111 @param is_tunnel - IPsec tunnel mode if non-zero, else transport mode
3112 @param is_tunnel_ipv6 - IPsec tunnel mode is IPv6 if non-zero, else IPv4 tunnel only valid if is_tunnel is non-zero
3113 @param tunnel_src_address - IPsec tunnel source address IPv6 if is_tunnel_ipv6 is non-zero, else IPv4. Only valid if is_tunnel is non-zero
3114 @param tunnel_dst_address - IPsec tunnel destination address IPv6 if is_tunnel_ipv6 is non-zero, else IPv4. Only valid if is_tunnel is non-zero
3118 IPsec tunnel address copy mode (to support GDOI)
3121 define ipsec_sad_add_del_entry
3133 u8 crypto_algorithm;
3134 u8 crypto_key_length;
3137 u8 integrity_algorithm;
3138 u8 integrity_key_length;
3139 u8 integrity_key[128];
3141 u8 use_extended_sequence_number;
3145 u8 tunnel_src_address[16];
3146 u8 tunnel_dst_address[16];
3149 /** \brief Reply for IPsec: Add/delete Security Association Database entry
3150 @param context - returned sender context, to match reply w/ request
3151 @param retval - return code
3154 define ipsec_sad_add_del_entry_reply
3160 /** \brief IPsec: Update Security Association keys
3161 @param client_index - opaque cookie to identify the sender
3162 @param context - sender context, to match reply w/ request
3164 @param sa_id - sa id
3166 @param crypto_key_length - length of crypto_key in bytes
3167 @param crypto_key - crypto keying material
3169 @param integrity_key_length - length of integrity_key in bytes
3170 @param integrity_key - integrity keying material
3173 define ipsec_sa_set_key
3180 u8 crypto_key_length;
3183 u8 integrity_key_length;
3184 u8 integrity_key[128];
3187 /** \brief Reply for IPsec: Update Security Association keys
3188 @param context - returned sender context, to match reply w/ request
3189 @param retval - return code
3192 define ipsec_sa_set_key_reply
3198 /** \brief IKEv2: Add/delete profile
3199 @param client_index - opaque cookie to identify the sender
3200 @param context - sender context, to match reply w/ request
3202 @param name - IKEv2 profile name
3203 @param is_add - Add IKEv2 profile if non-zero, else delete
3205 define ikev2_profile_add_del
3214 /** \brief Reply for IKEv2: Add/delete profile
3215 @param context - returned sender context, to match reply w/ request
3216 @param retval - return code
3218 define ikev2_profile_add_del_reply
3224 /** \brief IKEv2: Set IKEv2 profile authentication method
3225 @param client_index - opaque cookie to identify the sender
3226 @param context - sender context, to match reply w/ request
3228 @param name - IKEv2 profile name
3229 @param auth_method - IKEv2 authentication method (shared-key-mic/rsa-sig)
3230 @param is_hex - Authentication data in hex format if non-zero, else string
3231 @param data_len - Authentication data length
3232 @param data - Authentication data (for rsa-sig cert file path)
3234 define ikev2_profile_set_auth
3246 /** \brief Reply for IKEv2: Set IKEv2 profile authentication method
3247 @param context - returned sender context, to match reply w/ request
3248 @param retval - return code
3250 define ikev2_profile_set_auth_reply
3256 /** \brief IKEv2: Set IKEv2 profile local/remote identification
3257 @param client_index - opaque cookie to identify the sender
3258 @param context - sender context, to match reply w/ request
3260 @param name - IKEv2 profile name
3261 @param is_local - Identification is local if non-zero, else remote
3262 @param id_type - Identification type
3263 @param data_len - Identification data length
3264 @param data - Identification data
3266 define ikev2_profile_set_id
3278 /** \brief Reply for IKEv2:
3279 @param context - returned sender context, to match reply w/ request
3280 @param retval - return code
3282 define ikev2_profile_set_id_reply
3288 /** \brief IKEv2: Set IKEv2 profile traffic selector parameters
3289 @param client_index - opaque cookie to identify the sender
3290 @param context - sender context, to match reply w/ request
3292 @param name - IKEv2 profile name
3293 @param is_local - Traffic selector is local if non-zero, else remote
3294 @param proto - Traffic selector IP protocol (if zero not relevant)
3295 @param start_port - The smallest port number allowed by traffic selector
3296 @param end_port - The largest port number allowed by traffic selector
3297 @param start_addr - The smallest address included in traffic selector
3298 @param end_addr - The largest address included in traffic selector
3300 define ikev2_profile_set_ts
3314 /** \brief Reply for IKEv2: Set IKEv2 profile traffic selector parameters
3315 @param context - returned sender context, to match reply w/ request
3316 @param retval - return code
3318 define ikev2_profile_set_ts_reply
3324 /** \brief IKEv2: Set IKEv2 local RSA private key
3325 @param client_index - opaque cookie to identify the sender
3326 @param context - sender context, to match reply w/ request
3328 @param key_file - Key file absolute path
3330 define ikev2_set_local_key
3338 /** \brief Reply for IKEv2: Set IKEv2 local key
3339 @param context - returned sender context, to match reply w/ request
3340 @param retval - return code
3342 define ikev2_set_local_key_reply
3348 /** \brief Tell client about a DHCP completion event
3349 @param client_index - opaque cookie to identify the sender
3350 @param pid - client pid registered to receive notification
3351 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
3352 @param host_address - Host IP address
3353 @param router_address - Router IP address
3354 @param host_mac - Host MAC address
3356 define dhcp_compl_event
3362 u8 host_address[16];
3363 u8 router_address[16];
3367 /** \brief cop: enable/disable junk filtration features on an interface
3368 @param client_index - opaque cookie to identify the sender
3369 @param context - sender context, to match reply w/ request
3370 @param sw_if_inded - desired interface
3371 @param enable_disable - 1 => enable, 0 => disable
3374 define cop_interface_enable_disable
3382 /** \brief cop: interface enable/disable junk filtration reply
3383 @param context - returned sender context, to match reply w/ request
3384 @param retval - return code
3387 define cop_interface_enable_disable_reply
3393 /** \brief cop: enable/disable whitelist filtration features on an interface
3394 Note: the supplied fib_id must match in order to remove the feature!
3396 @param client_index - opaque cookie to identify the sender
3397 @param context - sender context, to match reply w/ request
3398 @param sw_if_index - interface handle, physical interfaces only
3399 @param fib_id - fib identifier for the whitelist / blacklist fib
3400 @param ip4 - 1 => enable ip4 filtration, 0=> disable ip4 filtration
3401 @param ip6 - 1 => enable ip6 filtration, 0=> disable ip6 filtration
3402 @param default_cop - 1 => enable non-ip4, non-ip6 filtration 0=> disable it
3405 define cop_whitelist_enable_disable
3416 /** \brief cop: interface enable/disable junk filtration reply
3417 @param context - returned sender context, to match reply w/ request
3418 @param retval - return code
3421 define cop_whitelist_enable_disable_reply
3427 /** \brief get_node_graph - get a copy of the vpp node graph
3428 including the current set of graph arcs.
3430 @param client_index - opaque cookie to identify the sender
3431 @param context - sender context, to match reply w/ request
3434 define get_node_graph
3440 /** \brief get_node_graph_reply
3441 @param context - returned sender context, to match reply w/ request
3442 @param retval - return code
3443 @param reply_in_shmem - result from vlib_node_serialize, in shared
3444 memory. Process with vlib_node_unserialize, remember to switch
3445 heaps and free the result.
3448 define get_node_graph_reply
3455 /** \brief IOAM enable : Enable in-band OAM
3456 @param id - profile id
3457 @param seqno - To enable Seqno Processing
3458 @param analyse - Enabling analysis of iOAM at decap node
3459 @param pow_enable - Proof of Work enabled or not flag
3460 @param trace_enable - iOAM Trace enabled or not flag
3474 /** \brief iOAM Trace profile add / del response
3475 @param context - sender context, to match reply w/ request
3476 @param retval - return value for request
3478 define ioam_enable_reply
3484 /** \brief iOAM disable
3485 @param client_index - opaque cookie to identify the sender
3486 @param context - sender context, to match reply w/ request
3487 @param index - MAP Domain index
3496 /** \brief iOAM disable response
3497 @param context - sender context, to match reply w/ request
3498 @param retval - return value for request
3500 define ioam_disable_reply
3506 /** \brief Add/del policer
3507 @param client_index - opaque cookie to identify the sender
3508 @param context - sender context, to match reply w/ request
3509 @param is_add - add policer if non-zero, else delete
3510 @param name - policer name
3513 @param cb - Committed Burst
3514 @param eb - Excess or Peak Burst
3515 @param rate_type - rate type
3516 @param round_type - rounding type
3517 @param type - policer algorithm
3518 @param color_aware - 0=color-blind, 1=color-aware
3519 @param conform_action_type - conform action type
3520 @param conform_dscp - DSCP for conform mar-and-transmit action
3521 @param exceed_action_type - exceed action type
3522 @param exceed_dscp - DSCP for exceed mar-and-transmit action
3523 @param violate_action_type - violate action type
3524 @param violate_dscp - DSCP for violate mar-and-transmit action
3526 define policer_add_del
3541 u8 conform_action_type;
3543 u8 exceed_action_type;
3545 u8 violate_action_type;
3549 /** \brief Add/del policer response
3550 @param context - sender context, to match reply w/ request
3551 @param retval - return value for request
3552 @param policer_index - for add, returned index of the new policer
3554 define policer_add_del_reply
3561 /** \brief Get list of policers
3562 @param client_index - opaque cookie to identify the sender
3563 @param context - sender context, to match reply w/ request
3564 @param match_name_valid - if 0 request all policers otherwise use match_name
3565 @param match_name - policer name
3572 u8 match_name_valid;
3576 /** \brief Policer operational state response.
3577 @param context - sender context, to match reply w/ request
3578 @param name - policer name
3581 @param cb - Committed Burst
3582 @param eb - Excess or Peak Burst
3583 @param rate_type - rate type
3584 @param round_type - rounding type
3585 @param type - policer algorithm
3586 @param conform_action_type - conform action type
3587 @param conform_dscp - DSCP for conform mar-and-transmit action
3588 @param exceed_action_type - exceed action type
3589 @param exceed_dscp - DSCP for exceed mar-and-transmit action
3590 @param violate_action_type - violate action type
3591 @param violate_dscp - DSCP for violate mar-and-transmit action
3592 @param single_rate - 1 = single rate policer, 0 = two rate policer
3593 @param color_aware - for hierarchical policing
3594 @param scale - power-of-2 shift amount for lower rates
3595 @param cir_tokens_per_period - number of tokens for each period
3596 @param pir_tokens_per_period - number of tokens for each period for 2-rate policer
3597 @param current_limit - current limit
3598 @param current_bucket - current bucket
3599 @param extended_limit - extended limit
3600 @param extended_bucket - extended bucket
3601 @param last_update_time - last update time
3603 define policer_details
3615 u8 conform_action_type;
3617 u8 exceed_action_type;
3619 u8 violate_action_type;
3624 u32 cir_tokens_per_period;
3625 u32 pir_tokens_per_period;
3629 u32 extended_bucket;
3630 u64 last_update_time;
3633 /** \brief Set/unset policer classify interface
3634 @param client_index - opaque cookie to identify the sender
3635 @param context - sender context, to match reply w/ request
3636 @param sw_if_index - interface to set/unset policer classify
3637 @param ip4_table_index - ip4 classify table index (~0 for skip)
3638 @param ip6_table_index - ip6 classify table index (~0 for skip)
3639 @param l2_table_index - l2 classify table index (~0 for skip)
3640 @param is_add - Set if non-zero, else unset
3641 Note: User is recommeneded to use just one valid table_index per call.
3642 (ip4_table_index, ip6_table_index, or l2_table_index)
3644 define policer_classify_set_interface
3649 u32 ip4_table_index;
3650 u32 ip6_table_index;
3655 /** \brief Set/unset policer classify interface response
3656 @param context - sender context, to match reply w/ request
3657 @param retval - return value for request
3659 define policer_classify_set_interface_reply
3665 /** \brief Get list of policer classify interfaces and tables
3666 @param client_index - opaque cookie to identify the sender
3667 @param context - sender context, to match reply w/ request
3668 @param type - classify table type
3670 define policer_classify_dump
3677 /** \brief Policer iclassify operational state response.
3678 @param context - sender context, to match reply w/ request
3679 @param sw_if_index - software interface index
3680 @param table_index - classify table index
3682 define policer_classify_details
3689 /** \brief Create netmap
3690 @param client_index - opaque cookie to identify the sender
3691 @param context - sender context, to match reply w/ request
3692 @param netmap_if_name - interface name
3693 @param hw_addr - interface MAC
3694 @param use_random_hw_addr - use random generated MAC
3695 @param is_pipe - is pipe
3696 @param is_master - 0=slave, 1=master
3698 define netmap_create
3703 u8 netmap_if_name[64];
3705 u8 use_random_hw_addr;
3710 /** \brief Create netmap response
3711 @param context - sender context, to match reply w/ request
3712 @param retval - return value for request
3714 define netmap_create_reply
3720 /** \brief Delete netmap
3721 @param client_index - opaque cookie to identify the sender
3722 @param context - sender context, to match reply w/ request
3723 @param netmap_if_name - interface name
3725 define netmap_delete
3730 u8 netmap_if_name[64];
3733 /** \brief Delete netmap response
3734 @param context - sender context, to match reply w/ request
3735 @param retval - return value for request
3737 define netmap_delete_reply
3743 /** \brief Classify get table IDs request
3744 @param client_index - opaque cookie to identify the sender
3745 @param context - sender context, to match reply w/ request
3747 define classify_table_ids
3753 /** \brief Reply for classify get table IDs request
3754 @param context - sender context which was passed in the request
3755 @param count - number of ids returned in response
3756 @param ids - array of classify table ids
3758 define classify_table_ids_reply
3766 /** \brief Classify table ids by interface index request
3767 @param client_index - opaque cookie to identify the sender
3768 @param context - sender context, to match reply w/ request
3769 @param sw_if_index - index of the interface
3771 define classify_table_by_interface
3778 /** \brief Reply for classify table id by interface index request
3779 @param context - sender context which was passed in the request
3780 @param count - number of ids returned in response
3781 @param sw_if_index - index of the interface
3782 @param l2_table_id - l2 classify table index
3783 @param ip4_table_id - ip4 classify table index
3784 @param ip6_table_id - ip6 classify table index
3786 define classify_table_by_interface_reply
3796 /** \brief Classify table info
3797 @param client_index - opaque cookie to identify the sender
3798 @param context - sender context, to match reply w/ request
3799 @param table_id - classify table index
3801 define classify_table_info
3808 /** \brief Reply for classify table info request
3809 @param context - sender context which was passed in the request
3810 @param count - number of ids returned in response
3811 @param table_id - classify table index
3812 @param nbuckets - number of buckets when adding a table
3813 @param match_n_vectors - number of match vectors
3814 @param skip_n_vectors - number of skip_n_vectors
3815 @param active_sessions - number of sessions (active entries)
3816 @param next_table_index - index of next table
3817 @param miss_next_index - index of miss table
3818 @param mask[] - match mask
3820 define classify_table_info_reply
3826 u32 match_n_vectors;
3828 u32 active_sessions;
3829 u32 next_table_index;
3830 u32 miss_next_index;
3832 u8 mask[mask_length];
3835 /** \brief Classify sessions dump request
3836 @param client_index - opaque cookie to identify the sender
3837 @param context - sender context, to match reply w/ request
3838 @param table_id - classify table index
3840 define classify_session_dump
3847 /** \brief Reply for classify table session dump request
3848 @param context - sender context which was passed in the request
3849 @param count - number of ids returned in response
3850 @param table_id - classify table index
3851 @param hit_next_index - hit_next_index of session
3852 @param opaque_index - for add, opaque_index of session
3853 @param advance - advance value of session
3854 @param match[] - match value for session
3856 define classify_session_details
3865 u8 match[match_length];
3868 /** \brief Configure IPFIX exporter process request
3869 @param client_index - opaque cookie to identify the sender
3870 @param context - sender context, to match reply w/ request
3871 @param collector_address - address of IPFIX collector
3872 @param collector_port - port of IPFIX collector
3873 @param src_address - address of IPFIX exporter
3874 @param vrf_id - VRF / fib table ID
3875 @param path_mtu - Path MTU between exporter and collector
3876 @param template_interval - number of seconds after which to resend template
3877 @param udp_checksum - UDP checksum calculation enable flag
3879 define set_ipfix_exporter
3883 u8 collector_address[16];
3888 u32 template_interval;
3892 /** \brief Reply to IPFIX exporter configure request
3893 @param context - sender context which was passed in the request
3895 define set_ipfix_exporter_reply
3901 /** \brief IPFIX exporter dump request
3902 @param client_index - opaque cookie to identify the sender
3903 @param context - sender context, to match reply w/ request
3905 define ipfix_exporter_dump
3911 /** \brief Reply to IPFIX exporter dump request
3912 @param context - sender context which was passed in the request
3913 @param collector_address - address of IPFIX collector
3914 @param collector_port - port of IPFIX collector
3915 @param src_address - address of IPFIX exporter
3916 @param fib_index - fib table index
3917 @param path_mtu - Path MTU between exporter and collector
3918 @param template_interval - number of seconds after which to resend template
3919 @param udp_checksum - UDP checksum calculation enable flag
3921 define ipfix_exporter_details
3924 u8 collector_address[16];
3929 u32 template_interval;
3933 /** \brief IPFIX classify stream configure request
3934 @param client_index - opaque cookie to identify the sender
3935 @param context - sender context, to match reply w/ request
3936 @param domain_id - domain ID reported in IPFIX messages for classify stream
3937 @param src_port - source port of UDP session for classify stream
3939 define set_ipfix_classify_stream {
3946 /** \brief IPFIX classify stream configure response
3947 @param context - sender context, to match reply w/ request
3948 @param retval - return value for request
3950 define set_ipfix_classify_stream_reply {
3955 /** \brief IPFIX classify stream dump request
3956 @param client_index - opaque cookie to identify the sender
3957 @param context - sender context, to match reply w/ request
3959 define ipfix_classify_stream_dump {
3964 /** \brief Reply to IPFIX classify stream dump request
3965 @param context - sender context, to match reply w/ request
3966 @param domain_id - domain ID reported in IPFIX messages for classify stream
3967 @param src_port - source port of UDP session for classify stream
3969 define ipfix_classify_stream_details {
3975 /** \brief IPFIX add or delete classifier table request
3976 @param client_index - opaque cookie to identify the sender
3977 @param context - sender context, to match reply w/ request
3978 @param table_id - classifier table ID
3979 @param ip_version - version of IP used in the classifier table
3980 @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
3982 define ipfix_classify_table_add_del {
3987 u8 transport_protocol;
3991 /** \brief IPFIX add classifier table response
3992 @param context - sender context which was passed in the request
3994 define ipfix_classify_table_add_del_reply {
3999 /** \brief IPFIX classify tables dump request
4000 @param client_index - opaque cookie to identify the sender
4001 @param context - sender context, to match reply w/ request
4003 define ipfix_classify_table_dump {
4008 /** \brief Reply to IPFIX classify tables dump request
4009 @param context - sender context, to match reply w/ request
4010 @param table_id - classifier table ID
4011 @param ip_version - version of IP used in the classifier table
4012 @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
4014 define ipfix_classify_table_details {
4018 u8 transport_protocol;
4021 /** \brief Set/unset flow classify interface
4022 @param client_index - opaque cookie to identify the sender
4023 @param context - sender context, to match reply w/ request
4024 @param sw_if_index - interface to set/unset flow classify
4025 @param ip4_table_index - ip4 classify table index (~0 for skip)
4026 @param ip6_table_index - ip6 classify table index (~0 for skip)
4027 @param l2_table_index - l2 classify table index (~0 for skip)
4028 @param is_add - Set if non-zero, else unset
4029 Note: User is recommeneded to use just one valid table_index per call.
4030 (ip4_table_index, ip6_table_index, or l2_table_index)
4032 define flow_classify_set_interface {
4036 u32 ip4_table_index;
4037 u32 ip6_table_index;
4041 /** \brief Set/unset flow classify interface response
4042 @param context - sender context, to match reply w/ request
4043 @param retval - return value for request
4045 define flow_classify_set_interface_reply {
4050 /** \brief Get list of flow classify interfaces and tables
4051 @param client_index - opaque cookie to identify the sender
4052 @param context - sender context, to match reply w/ request
4053 @param type - classify table type
4055 define flow_classify_dump {
4061 /** \brief Flow classify operational state response.
4062 @param context - sender context, to match reply w/ request
4063 @param sw_if_index - software interface index
4064 @param table_index - classify table index
4066 define flow_classify_details {
4072 /** \brief Query relative index via node names
4073 @param client_index - opaque cookie to identify the sender
4074 @param context - sender context, to match reply w/ request
4075 @param node_name - name of node to find relative index from
4076 @param next_name - next node from node_name to find relative index of
4078 define get_next_index
4086 /** \brief Reply for get next node index
4087 @param context - sender context which was passed in the request
4088 @param retval - return value
4089 @param next_index - index of the next_node
4091 define get_next_index_reply
4098 /** \brief PacketGenerator create interface request
4099 @param client_index - opaque cookie to identify the sender
4100 @param context - sender context, to match reply w/ request
4101 @param interface_id - interface index
4103 define pg_create_interface
4110 /** \brief PacketGenerator create interface response
4111 @param context - sender context, to match reply w/ request
4112 @param retval - return value for request
4114 define pg_create_interface_reply
4121 /** \brief PacketGenerator capture packets on given interface request
4122 @param client_index - opaque cookie to identify the sender
4123 @param context - sender context, to match reply w/ request
4124 @param interface_id - pg interface index
4125 @param is_enabled - 1 if enabling streams, 0 if disabling
4126 @param count - number of packets to be captured
4127 @param pcap_file - pacp file name to store captured packets
4136 u32 pcap_name_length;
4137 u8 pcap_file_name[pcap_name_length];
4140 /** \brief PacketGenerator capture packets response
4141 @param context - sender context, to match reply w/ request
4142 @param retval - return value for request
4144 define pg_capture_reply
4150 /** \brief Enable / disable packet generator request
4151 @param client_index - opaque cookie to identify the sender
4152 @param context - sender context, to match reply w/ request
4153 @param is_enabled - 1 if enabling streams, 0 if disabling
4154 @param stream - stream name to be enable/disabled, if not specified handle all streams
4156 define pg_enable_disable
4161 u32 stream_name_length;
4162 u8 stream_name[stream_name_length];
4165 /** \brief Reply for enable / disable packet generator
4166 @param context - returned sender context, to match reply w/ request
4167 @param retval - return code
4169 define pg_enable_disable_reply
4175 /** \brief Configure IP source and L4 port-range check
4176 @param client_index - opaque cookie to identify the sender
4177 @param context - sender context, to match reply w/ request
4178 @param is_ip6 - 1 if source address type is IPv6
4179 @param is_add - 1 if add, 0 if delete
4180 @param mask_length - mask length for address entry
4181 @param address - array of address bytes
4182 @param number_of_ranges - length of low_port and high_port arrays (must match)
4183 @param low_ports[32] - up to 32 low end of port range entries (must have corresponding high_ports entry)
4184 @param high_ports[32] - up to 32 high end of port range entries (must have corresponding low_ports entry)
4185 @param vrf_id - fib table/vrf id to associate the source and port-range check with
4186 @note To specify a single port set low_port and high_port entry the same
4188 define ip_source_and_port_range_check_add_del
4196 u8 number_of_ranges;
4202 /** \brief Configure IP source and L4 port-range check reply
4203 @param context - returned sender context, to match reply w/ request
4204 @param retval - return code
4206 define ip_source_and_port_range_check_add_del_reply
4212 /** \brief Set interface source and L4 port-range request
4213 @param client_index - opaque cookie to identify the sender
4214 @param context - sender context, to match reply w/ request
4215 @param interface_id - interface index
4216 @param tcp_vrf_id - VRF associated with source and TCP port-range check
4217 @param udp_vrf_id - VRF associated with source and TCP port-range check
4219 define ip_source_and_port_range_check_interface_add_del
4231 /** \brief Set interface source and L4 port-range response
4232 @param context - sender context, to match reply w/ request
4233 @param retval - return value for request
4235 define ip_source_and_port_range_check_interface_add_del_reply
4241 /** \brief Add / del ipsec gre tunnel request
4242 @param client_index - opaque cookie to identify the sender
4243 @param context - sender context, to match reply w/ request
4244 @param local_sa_id - local SA id
4245 @param remote_sa_id - remote SA id
4246 @param is_add - 1 if adding the tunnel, 0 if deleting
4247 @param src_address - tunnel source address
4248 @param dst_address - tunnel destination address
4250 define ipsec_gre_add_del_tunnel {
4260 /** \brief Reply for add / del ipsec gre tunnel request
4261 @param context - returned sender context, to match reply w/ request
4262 @param retval - return code
4263 @param sw_if_index - software index of the new ipsec gre tunnel
4265 define ipsec_gre_add_del_tunnel_reply {
4271 /** \brief Dump ipsec gre tunnel table
4272 @param client_index - opaque cookie to identify the sender
4273 @param context - sender context, to match reply w/ request
4274 @param tunnel_index - gre tunnel identifier or -1 in case of all tunnels
4276 define ipsec_gre_tunnel_dump {
4282 /** \brief mpls gre tunnel operational state response
4283 @param context - returned sender context, to match reply w/ request
4284 @param sw_if_index - software index of the ipsec gre tunnel
4285 @param local_sa_id - local SA id
4286 @param remote_sa_id - remote SA id
4287 @param src_address - tunnel source address
4288 @param dst_address - tunnel destination address
4290 define ipsec_gre_tunnel_details {
4299 /** \brief Delete sub interface request
4300 @param client_index - opaque cookie to identify the sender
4301 @param context - sender context, to match reply w/ request
4302 @param sw_if_index - sw index of the interface that was created by create_subif
4304 define delete_subif {
4310 /** \brief Delete sub interface response
4311 @param context - sender context, to match reply w/ request
4312 @param retval - return code for the request
4314 define delete_subif_reply {
4319 /** \brief DPDK interface HQoS pipe profile set request
4320 @param client_index - opaque cookie to identify the sender
4321 @param context - sender context, to match reply w/ request
4322 @param sw_if_index - the interface
4323 @param subport - subport ID
4324 @param pipe - pipe ID within its subport
4325 @param profile - pipe profile ID
4327 define sw_interface_set_dpdk_hqos_pipe {
4336 /** \brief DPDK interface HQoS pipe profile set reply
4337 @param context - sender context, to match reply w/ request
4338 @param retval - request return code
4340 define sw_interface_set_dpdk_hqos_pipe_reply {
4345 /** \brief DPDK interface HQoS subport parameters set request
4346 @param client_index - opaque cookie to identify the sender
4347 @param context - sender context, to match reply w/ request
4348 @param sw_if_index - the interface
4349 @param subport - subport ID
4350 @param tb_rate - subport token bucket rate (measured in bytes/second)
4351 @param tb_size - subport token bucket size (measured in credits)
4352 @param tc_rate - subport traffic class 0 .. 3 rates (measured in bytes/second)
4353 @param tc_period - enforcement period for rates (measured in milliseconds)
4355 define sw_interface_set_dpdk_hqos_subport {
4366 /** \brief DPDK interface HQoS subport parameters set reply
4367 @param context - sender context, to match reply w/ request
4368 @param retval - request return code
4370 define sw_interface_set_dpdk_hqos_subport_reply {
4375 /** \brief DPDK interface HQoS tctbl entry set request
4376 @param client_index - opaque cookie to identify the sender
4377 @param context - sender context, to match reply w/ request
4378 @param sw_if_index - the interface
4379 @param entry - entry index ID
4380 @param tc - traffic class (0 .. 3)
4381 @param queue - traffic class queue (0 .. 3)
4383 define sw_interface_set_dpdk_hqos_tctbl {
4392 /** \brief DPDK interface HQoS tctbl entry set reply
4393 @param context - sender context, to match reply w/ request
4394 @param retval - request return code
4396 define sw_interface_set_dpdk_hqos_tctbl_reply {
4401 /** \brief L2 interface pbb tag rewrite configure request
4402 @param client_index - opaque cookie to identify the sender
4403 @param context - sender context, to match reply w/ request
4404 @param sw_if_index - interface the operation is applied to
4405 @param vtr_op - Choose from l2_vtr_op_t enum values
4406 @param inner_tag - needed for translate_qinq vtr op only
4407 @param outer_tag - needed for translate_qinq vtr op only
4408 @param b_dmac - B-tag remote mac address, needed for any push or translate_qinq vtr op
4409 @param b_smac - B-tag local mac address, needed for any push or translate qinq vtr op
4410 @param b_vlanid - B-tag vlanid, needed for any push or translate qinq vtr op
4411 @param i_sid - I-tag service id, needed for any push or translate qinq vtr op
4413 define l2_interface_pbb_tag_rewrite
4426 /** \brief L2 interface pbb tag rewrite response
4427 @param context - sender context, to match reply w/ request
4428 @param retval - return code for the request
4430 define l2_interface_pbb_tag_rewrite_reply
4436 /** \brief Punt traffic to the host
4437 @param client_index - opaque cookie to identify the sender
4438 @param context - sender context, to match reply w/ request
4439 @param is_add - add punt if non-zero, else delete
4440 @param ipv - L3 protocol 4 - IPv4, 6 - IPv6, ~0 - All
4441 @param l4_protocol - L4 protocol to be punted, only UDP (0x11) is supported
4442 @param l4_port - TCP/UDP port to be punted
4453 /** \brief Reply to the punt request
4454 @param context - sender context which was passed in the request
4455 @param retval - return code of punt request
4463 /** \brief Dump ipsec policy database data
4464 @param client_index - opaque cookie to identify the sender
4465 @param context - sender context, to match reply w/ request
4466 @param spd_id - SPD instance id
4467 @param sa_id - SA id, optional, set to ~0 to see all policies in SPD
4469 define ipsec_spd_dump {
4476 /** \brief IPsec policy database response
4477 @param context - sender context which was passed in the request
4478 @param spd_id - SPD instance id
4479 @param priority - numeric value to control policy evaluation order
4480 @param is_outbound - [1|0] to indicate if direction is [out|in]bound
4481 @param is_ipv6 - [1|0] to indicate if address family is ipv[6|4]
4482 @param local_start_addr - first address in local traffic selector range
4483 @param local_stop_addr - last address in local traffic selector range
4484 @param local_start_port - first port in local traffic selector range
4485 @param local_stop_port - last port in local traffic selector range
4486 @param remote_start_addr - first address in remote traffic selector range
4487 @param remote_stop_addr - last address in remote traffic selector range
4488 @param remote_start_port - first port in remote traffic selector range
4489 @param remote_stop_port - last port in remote traffic selector range
4490 @param protocol - traffic selector protocol
4491 @param policy - policy action
4492 @param sa_id - SA id
4493 @param bytes - byte count of packets matching this policy
4494 @param packets - count of packets matching this policy
4497 define ipsec_spd_details {
4503 u8 local_start_addr[16];
4504 u8 local_stop_addr[16];
4505 u16 local_start_port;
4506 u16 local_stop_port;
4507 u8 remote_start_addr[16];
4508 u8 remote_stop_addr[16];
4509 u16 remote_start_port;
4510 u16 remote_stop_port;
4518 /** \brief Feature path enable/disable request
4519 @param client_index - opaque cookie to identify the sender
4520 @param context - sender context, to match reply w/ request
4521 @param sw_if_index - the interface
4522 @param enable - 1 = on, 0 = off
4524 define feature_enable_disable {
4530 u8 feature_name[64];
4533 /** \brief Reply to the eature path enable/disable request
4534 @param context - sender context which was passed in the request
4535 @param retval - return code for the request
4537 define feature_enable_disable_reply
4543 /** \brief Configure BFD feature
4544 @param client_index - opaque cookie to identify the sender
4545 @param context - sender context, to match reply w/ request
4546 @param slow_timer - slow timer (seconds)
4547 @param min_tx - desired min tx interval
4548 @param min_rx - desired min rx interval
4549 @param detect_mult - desired detection multiplier
4551 define bfd_set_config {
4560 /** \brief Configure BFD feature response
4561 @param context - sender context, to match reply w/ request
4562 @param retval - return code for the request
4564 define bfd_set_config_reply {
4569 /** \brief Get BFD configuration
4571 define bfd_get_config {
4576 /** \brief Get BFD configuration response
4577 @param context - sender context, to match reply w/ request
4578 @param retval - return code for the request
4579 @param slow_timer - slow timer (seconds)
4580 @param min_tx - desired min tx interval
4581 @param min_rx - desired min rx interval
4582 @param detect_mult - desired detection multiplier
4584 define bfd_get_config_reply {
4593 /** \brief Add UDP BFD session on interface
4594 @param client_index - opaque cookie to identify the sender
4595 @param context - sender context, to match reply w/ request
4596 @param sw_if_index - sw index of the interface
4597 @param desired_min_tx - desired min transmit interval (microseconds)
4598 @param required_min_rx - required min receive interval (microseconds)
4599 @param detect_mult - detect multiplier (# of packets missed between connection goes down)
4600 @param local_addr - local address
4601 @param peer_addr - peer address
4602 @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
4604 define bfd_udp_add {
4609 u32 required_min_rx;
4616 /** \brief Add UDP BFD session response
4617 @param context - sender context, to match reply w/ request
4618 @param retval - return code for the request
4619 @param bs_index - index of the session created
4621 define bfd_udp_add_reply {
4627 /** \brief Delete UDP BFD session on interface
4628 @param client_index - opaque cookie to identify the sender
4629 @param context - sender context, to match reply w/ request
4630 @param sw_if_index - sw index of the interface
4631 @param local_addr - local address
4632 @param peer_addr - peer address
4633 @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
4635 define bfd_udp_del {
4644 /** \brief Delete UDP BFD session response
4645 @param context - sender context, to match reply w/ request
4646 @param retval - return code for the request
4648 define bfd_udp_del_reply {
4653 /** \brief Get all BFD sessions
4654 @param client_index - opaque cookie to identify the sender
4655 @param context - sender context, to match reply w/ request
4657 define bfd_udp_session_dump {
4662 /** \brief BFD session details structure
4663 @param context - sender context, to match reply w/ request
4664 @param bs_index - index of the session
4665 @param sw_if_index - sw index of the interface
4666 @param local_addr - local address
4667 @param peer_addr - peer address
4668 @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
4669 @param state - session state
4671 define bfd_udp_session_details {
4681 /** \brief Set flags of BFD session
4682 @param client_index - opaque cookie to identify the sender
4683 @param context - sender context, to match reply w/ request
4684 @param bs_index - index of the bfd session to set flags on
4685 @param admin_up_down - set the admin state, 1 = up, 0 = down
4687 define bfd_session_set_flags {
4694 /** \brief Reply to bfd_session_set_flags
4695 @param context - sender context which was passed in the request
4696 @param retval - return code of the set flags request
4698 define bfd_session_set_flags_reply
4704 /** \brief Register for BFD events
4705 @param client_index - opaque cookie to identify the sender
4706 @param context - sender context, to match reply w/ request
4707 @param enable_disable - 1 => register for events, 0 => cancel registration
4708 @param pid - sender's pid
4710 define want_bfd_events
4718 /** \brief Reply for BFD events registration
4719 @param context - returned sender context, to match reply w/ request
4720 @param retval - return code
4722 define want_bfd_events_reply
4730 * eval: (c-set-style "gnu")