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}
28 /** \brief Initialize a new tap interface with the given paramters
29 @param client_index - opaque cookie to identify the sender
30 @param context - sender context, to match reply w/ request
31 @param use_random_mac - let the system generate a unique mac address
32 @param tap_name - name to associate with the new interface
33 @param mac_address - mac addr to assign to the interface if use_radom not set
43 u32 custom_dev_instance;
47 /** \brief Reply for tap connect request
48 @param context - returned sender context, to match reply w/ request
49 @param retval - return code
50 @param sw_if_index - software index allocated for the new tap interface
52 define tap_connect_reply
59 /** \brief Modify a tap interface with the given paramters
60 @param client_index - opaque cookie to identify the sender
61 @param context - sender context, to match reply w/ request
62 @param sw_if_index - interface index of existing tap interface
63 @param use_random_mac - let the system generate a unique mac address
64 @param tap_name - name to associate with the new interface
65 @param mac_address - mac addr to assign to the interface if use_radom not set
76 u32 custom_dev_instance;
79 /** \brief Reply for tap modify request
80 @param context - returned sender context, to match reply w/ request
81 @param retval - return code
82 @param sw_if_index - software index if the modified tap interface
84 define tap_modify_reply
91 /** \brief Delete tap interface
92 @param client_index - opaque cookie to identify the sender
93 @param context - sender context, to match reply w/ request
94 @param sw_if_index - interface index of existing tap interface
103 /** \brief Reply for tap delete request
104 @param context - returned sender context, to match reply w/ request
105 @param retval - return code
107 define tap_delete_reply
113 /** \brief Dump tap interfaces request */
114 define sw_interface_tap_dump
120 /** \brief Reply for tap dump request
121 @param sw_if_index - software index of tap interface
122 @param dev_name - Linux tap device name
124 define sw_interface_tap_details
131 /** \brief Create a new subinterface with the given vlan id
132 @param client_index - opaque cookie to identify the sender
133 @param context - sender context, to match reply w/ request
134 @param sw_if_index - software index of the new vlan's parent interface
135 @param vlan_id - vlan tag of the new interface
137 define create_vlan_subif
145 /** \brief Reply for the vlan subinterface create request
146 @param context - returned sender context, to match reply w/ request
147 @param retval - return code
148 @param sw_if_index - software index allocated for the new subinterface
150 define create_vlan_subif_reply
157 /** \brief Enable or Disable MPLS on and interface
158 @param client_index - opaque cookie to identify the sender
159 @param context - sender context, to match reply w/ request
160 @param sw_if_index - index of the interface
161 @param enable - if non-zero enable, else disable
163 define sw_interface_set_mpls_enable
171 /** \brief Reply for MPLS state on an interface
172 @param context - returned sender context, to match reply w/ request
173 @param retval - return code
175 define sw_interface_set_mpls_enable_reply
181 /** \brief MPLS Route Add / del route
182 @param client_index - opaque cookie to identify the sender
183 @param context - sender context, to match reply w/ request
184 @param mr_label - The MPLS label value
185 @param mr_eos - The End of stack bit
186 @param mr_table_id - The MPLS table-id the route is added in
187 @param mr_classify_table_index - If this is a classify route,
188 this is the classify table index
189 @param mr_create_table_if_needed - If the MPLS or IP tables do not exist,
191 @param mr_is_add - Is this a route add or delete
192 @param mr_is_classify - Is this route result a classify
193 @param mr_is_multipath - Is this route update a multipath - i.e. is this
194 a path addition to an existing route
195 @param mr_is_resolve_host - Recurse resolution constraint via a host prefix
196 @param mr_is_resolve_attached - Recurse resolution constraint via attached prefix
197 @param mr_next_hop_proto_is_ip4 - The next-hop is IPV4
198 @param mr_next_hop_weight - The weight, for UCMP
199 @param mr_next_hop[16] - the nextop address
200 @param mr_next_hop_sw_if_index - the next-hop SW interface
201 @param mr_next_hop_table_id - the next-hop table-id (if appropriate)
202 @param mr_next_hop_n_out_labels - the number of labels in the label stack
203 @param mr_next_hop_out_label_stack - the next-hop output label stack, outer most first
204 @param next_hop_via_label - The next-hop is a resolved via a local label
206 define mpls_route_add_del
213 u32 mr_classify_table_index;
214 u8 mr_create_table_if_needed;
218 u8 mr_is_resolve_host;
219 u8 mr_is_resolve_attached;
220 u8 mr_next_hop_proto_is_ip4;
221 u8 mr_next_hop_weight;
223 u8 mr_next_hop_n_out_labels;
224 u32 mr_next_hop_sw_if_index;
225 u32 mr_next_hop_table_id;
226 u32 mr_next_hop_via_label;
227 u32 mr_next_hop_out_label_stack[mr_next_hop_n_out_labels];
230 /** \brief Reply for MPLS route add / del request
231 @param context - returned sender context, to match reply w/ request
232 @param retval - return code
234 define mpls_route_add_del_reply
240 /** \brief Dump MPLS fib table
241 @param client_index - opaque cookie to identify the sender
250 @param sw_if_index - index of the interface
251 @param weight - The weight, for UCMP
252 @param is_local - local if non-zero, else remote
253 @param is_drop - Drop the packet
254 @param is_unreach - Drop the packet and rate limit send ICMP unreachable
255 @param is_prohibit - Drop the packet and rate limit send ICMP prohibited
256 @param afi - the afi of the next hop, IP46_TYPE_IP4=1, IP46_TYPE_IP6=2
257 @param next_hop[16] - the next hop address
259 typeonly manual_print manual_endian define fib_path
271 /** \brief mpls FIB table response
272 @param table_id - MPLS fib table id
273 @param s_bit - End-of-stack bit
274 @param label - MPLS label value
275 @param count - the number of fib_path in path
276 @param path - array of of fib_path structures
278 manual_endian manual_print define mpls_fib_details
285 vl_api_fib_path_t path[count];
288 /** \brief Dump IP6 fib table
289 @param client_index - opaque cookie to identify the sender
297 /** \brief IP6 FIB table response
298 @param table_id - IP6 fib table id
299 @address_length - mask length
300 @address - ip6 prefix
301 @param count - the number of fib_path in path
302 @param path - array of of fib_path structures
304 manual_endian manual_print define ip6_fib_details
311 vl_api_fib_path_t path[count];
314 /** \brief Dump IP fib table
315 @param client_index - opaque cookie to identify the sender
323 /** \brief IP FIB table response
324 @param table_id - IP fib table id
325 @address_length - mask length
326 @address - ip4 prefix
327 @param count - the number of fib_path in path
328 @param path - array of of fib_path structures
330 manual_endian manual_print define ip_fib_details
337 vl_api_fib_path_t path[count];
340 /** \brief Bind/Unbind an MPLS local label to an IP prefix. i.e. create
341 a per-prefix label entry.
342 @param client_index - opaque cookie to identify the sender
343 @param context - sender context, to match reply w/ request
344 @param mb_mpls_table_id - The MPLS table-id the MPLS entry will be added in
345 @param mb_label - The MPLS label value to bind
346 @param mb_ip_table_id - The IP table-id of the IP prefix to bind to.
347 @param mb_create_table_if_needed - Create either/both tables if required.
348 @param mb_is_bind - Bind or unbind
349 @param mb_is_ip4 - The prefix to bind to is IPv4
350 @param mb_address_length - Length of IP prefix
351 @param mb_address[16] - IP prefix/
353 define mpls_ip_bind_unbind
357 u32 mb_mpls_table_id;
360 u8 mb_create_table_if_needed;
363 u8 mb_address_length;
367 /** \brief Reply for MPLS IP bind/unbind request
368 @param context - returned sender context, to match reply w/ request
369 @param retval - return code
371 define mpls_ip_bind_unbind_reply
377 /** \brief MPLS tunnel Add / del route
378 @param client_index - opaque cookie to identify the sender
379 @param context - sender context, to match reply w/ request
380 @param mt_is_add - Is this a route add or delete
381 @param mt_sw_if_index - The SW interface index of the tunnel to delete
382 @param mt_next_hop_proto_is_ip4 - The next-hop is IPV4
383 @param mt_next_hop_weight - The weight, for UCMP
384 @param mt_next_hop[16] - the nextop address
385 @param mt_next_hop_sw_if_index - the next-hop SW interface
386 @param mt_next_hop_table_id - the next-hop table-id (if appropriate)
387 @param mt_next_hop_n_out_labels - the number of next-hop output labels
388 @param mt_next_hop_out_label_stack - the next-hop output label stack, outer most first
390 define mpls_tunnel_add_del
397 u8 mt_next_hop_proto_is_ip4;
398 u8 mt_next_hop_weight;
400 u8 mt_next_hop_n_out_labels;
401 u32 mt_next_hop_sw_if_index;
402 u32 mt_next_hop_table_id;
403 u32 mt_next_hop_out_label_stack[mt_next_hop_n_out_labels];
406 /** \brief Reply for MPLS tunnel add / del request
407 @param context - returned sender context, to match reply w/ request
408 @param retval - return code
409 @param sw_if_index - SW interface index of the tunnel created
411 define mpls_tunnel_add_del_reply
418 /** \brief Dump mpls eth tunnel table
419 @param client_index - opaque cookie to identify the sender
420 @param tunnel_index - eth tunnel identifier or -1 in case of all tunnels
422 define mpls_tunnel_dump
429 /** \brief mpls eth tunnel operational state response
430 @param tunnel_index - eth tunnel identifier
431 @param intfc_address - interface ipv4 addr
432 @param mask_width - interface ipv4 addr mask
433 @param hw_if_index - interface id
435 @param tunnel_dst_mac -
436 @param tx_sw_if_index -
437 @param encap_index - reference to mpls label table
438 @param nlabels - number of resolved labels
439 @param labels - resolved labels
441 define mpls_tunnel_details
447 u8 mt_next_hop_proto_is_ip4;
449 u32 mt_next_hop_sw_if_index;
450 u32 mt_next_hop_table_id;
451 u32 mt_next_hop_n_labels;
452 u32 mt_next_hop_out_labels[mt_next_hop_n_labels];
455 /** \brief Add / del route request
456 @param client_index - opaque cookie to identify the sender
457 @param context - sender context, to match reply w/ request
458 @param sw_if_index - software index of the new vlan's parent interface
459 @param vrf_id - fib table /vrf associated with the route
460 @param lookup_in_vrf -
461 @param classify_table_index -
462 @param create_vrf_if_needed -
463 @param is_add - 1 if adding the route, 0 if deleting
464 @param is_drop - Drop the packet
465 @param is_unreach - Drop the packet and rate limit send ICMP unreachable
466 @param is_prohibit - Drop the packet and rate limit send ICMP prohibited
467 @param is_ipv6 - 0 if an ip4 route, else ip6
470 @param is_multipath - Set to 1 if this is a multipath route, else 0
471 @param not_last - Is last or not last msg in group of multiple add/del msgs
472 @param next_hop_weight -
473 @param dst_address_length -
474 @param dst_address[16] -
475 @param next_hop_address[16] -
476 @param next_hop_n_out_labels - the number of labels in the label stack
477 @param next_hop_out_label_stack - the next-hop output label stack, outer most first
478 @param next_hop_via_label - The next-hop is a resolved via a local label
480 define ip_add_del_route
484 u32 next_hop_sw_if_index;
486 u32 classify_table_index;
487 u32 next_hop_table_id;
488 u8 create_vrf_if_needed;
498 u8 is_resolve_attached;
499 /* Is last/not-last message in group of multiple add/del messages. */
502 u8 dst_address_length;
504 u8 next_hop_address[16];
505 u8 next_hop_n_out_labels;
506 u32 next_hop_via_label;
507 u32 next_hop_out_label_stack[next_hop_n_out_labels];
510 /** \brief Reply for add / del route request
511 @param context - returned sender context, to match reply w/ request
512 @param retval - return code
514 define ip_add_del_route_reply
520 /** \brief Proxy ARP add / del request
521 @param client_index - opaque cookie to identify the sender
522 @param context - sender context, to match reply w/ request
523 @param vrf_id - VRF / Fib table ID
524 @param is_add - 1 if adding the Proxy ARP range, 0 if deleting
525 @param low_address[4] - Low address of the Proxy ARP range
526 @param hi_address[4] - High address of the Proxy ARP range
528 define proxy_arp_add_del
538 /** \brief Reply for proxy arp add / del request
539 @param context - returned sender context, to match reply w/ request
540 @param retval - return code
542 define proxy_arp_add_del_reply
548 /** \brief Proxy ARP add / del request
549 @param client_index - opaque cookie to identify the sender
550 @param context - sender context, to match reply w/ request
551 @param sw_if_index - Which interface to enable / disable Proxy Arp on
552 @param enable_disable - 1 to enable Proxy ARP on interface, 0 to disable
554 define proxy_arp_intfc_enable_disable
559 /* 1 = on, 0 = off */
563 /** \brief Reply for Proxy ARP interface enable / disable request
564 @param context - returned sender context, to match reply w/ request
565 @param retval - return code
567 define proxy_arp_intfc_enable_disable_reply
573 /** \brief IP neighbor add / del request
574 @param client_index - opaque cookie to identify the sender
575 @param context - sender context, to match reply w/ request
576 @param vrf_id - vrf_id, only for IP4
577 @param sw_if_index - interface used to reach neighbor
578 @param is_add - 1 to add neighbor, 0 to delete
579 @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
581 @param mac_address - l2 address of the neighbor
582 @param dst_address - ip4 or ip6 address of the neighbor
584 define ip_neighbor_add_del
588 u32 vrf_id; /* only makes sense for ip4 */
590 /* 1 = add, 0 = delete */
598 /** \brief Reply for IP Neighbor add / delete request
599 @param context - returned sender context, to match reply w/ request
600 @param retval - return code
602 define ip_neighbor_add_del_reply
608 /** \brief Reset VRF (remove all routes etc) request
609 @param client_index - opaque cookie to identify the sender
610 @param context - sender context, to match reply w/ request
611 @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
612 @param vrf_id - ID of th FIB table / VRF to reset
622 /** \brief Reply for Reset VRF request
623 @param context - returned sender context, to match reply w/ request
624 @param retval - return code
626 define reset_vrf_reply
632 /** \brief Is Address Reachable request - DISABLED
633 @param client_index - opaque cookie to identify the sender
634 @param context - sender context, to match reply w/ request
635 @param next_hop_sw_if_index - index of interface used to get to next hop
636 @param is_ipv6 - 1 for IPv6, 0 for IPv4
637 @param is_error - address not found or does not match intf
638 @param address[] - Address in question
640 define is_address_reachable
642 u32 client_index; /* (api_main_t *) am->my_client_index */
644 u32 next_hop_sw_if_index;
645 u8 is_known; /* on reply, this is the answer */
647 u8 is_error; /* address not found or does not match intf */
651 /** \brief Want Stats, register for stats updates
652 @param client_index - opaque cookie to identify the sender
653 @param context - sender context, to match reply w/ request
654 @param enable_disable - 1 = enable stats, 0 = disable
655 @param pid - pid of process requesting stats updates
665 /** \brief Reply for Want Stats request
666 @param context - returned sender context, to match reply w/ request
667 @param retval - return code
669 define want_stats_reply
675 typeonly manual_print manual_endian define ip4_fib_counter
683 manual_print manual_endian define vnet_ip4_fib_counters
687 vl_api_ip4_fib_counter_t c[count];
690 typeonly manual_print manual_endian define ip6_fib_counter
698 manual_print manual_endian define vnet_ip6_fib_counters
702 vl_api_ip6_fib_counter_t c[count];
705 /** \brief Request for a single block of summary stats
706 @param client_index - opaque cookie to identify the sender
707 @param context - sender context, to match reply w/ request
709 define vnet_get_summary_stats
715 /** \brief Reply for vnet_get_summary_stats request
716 @param context - sender context, to match reply w/ request
717 @param retval - return code for request
722 define vnet_summary_stats_reply
731 /** \brief OAM event structure
732 @param dst_address[] -
741 /** \brief Want OAM events request
742 @param client_index - opaque cookie to identify the sender
743 @param context - sender context, to match reply w/ request
744 @param enable_disable- enable if non-zero, else disable
745 @param pid - pid of the requesting process
747 define want_oam_events
755 /** \brief Want OAM events response
756 @param context - sender context, to match reply w/ request
757 @param retval - return code for the want oam stats request
759 define want_oam_events_reply
765 /** \brief OAM add / del target request
766 @param client_index - opaque cookie to identify the sender
767 @param context - sender context, to match reply w/ request
768 @param vrf_id - vrf_id of the target
769 @param src_address[] - source address to use for the updates
770 @param dst_address[] - destination address of the target
771 @param is_add - add target if non-zero, else delete
783 /** \brief OAM add / del target response
784 @param context - sender context, to match reply w/ request
785 @param retval - return code of the request
787 define oam_add_del_reply
793 /** \brief Reset fib table request
794 @param client_index - opaque cookie to identify the sender
795 @param context - sender context, to match reply w/ request
796 @param vrf_id - vrf/table id of the fib table to reset
797 @param is_ipv6 - an ipv6 fib to reset if non-zero, else ipv4
807 /** \brief Reset fib response
808 @param context - sender context, to match reply w/ request
809 @param retval - return code for the reset bfib request
811 define reset_fib_reply
817 /** \brief DHCP Proxy config add / del request
818 @param client_index - opaque cookie to identify the sender
819 @param context - sender context, to match reply w/ request
820 @param vrf_id - vrf id
821 @param if_ipv6 - ipv6 if non-zero, else ipv4
822 @param is_add - add the config if non-zero, else delete
823 @param insert_circuit_id - option82 suboption 1 fib number
824 @param dhcp_server[] - server address
825 @param dhcp_src_address[] - <fix this, need details>
827 define dhcp_proxy_config
834 u8 insert_circuit_id;
836 u8 dhcp_src_address[16];
839 /** \brief DHCP Proxy config response
840 @param context - sender context, to match reply w/ request
841 @param retval - return code for the request
843 define dhcp_proxy_config_reply
849 /** \brief DHCP Proxy set / unset vss request
850 @param client_index - opaque cookie to identify the sender
851 @param context - sender context, to match reply w/ request
852 @param tbl_id - table id
853 @param oui - first part of vpn id
854 @param fib_id - second part of vpn id
855 @param is_ipv6 - ip6 if non-zero, else ip4
856 @param is_add - set vss if non-zero, else delete
858 define dhcp_proxy_set_vss
869 /** \brief DHCP proxy set / unset vss response
870 @param context - sender context, to match reply w/ request
871 @param retval - return code for the request
873 define dhcp_proxy_set_vss_reply
879 /** \brief Set the ip flow hash config for a fib request
880 @param client_index - opaque cookie to identify the sender
881 @param context - sender context, to match reply w/ request
882 @param vrf_id - vrf/fib id
883 @param is_ipv6 - if non-zero the fib is ip6, else ip4
884 @param src - if non-zero include src in flow hash
885 @param dst - if non-zero include dst in flow hash
886 @param sport - if non-zero include sport in flow hash
887 @param dport - if non-zero include dport in flow hash
888 @param proto -if non-zero include proto in flow hash
889 @param reverse - if non-zero include reverse in flow hash
891 define set_ip_flow_hash
905 /** \brief Set the ip flow hash config for a fib response
906 @param context - sender context, to match reply w/ request
907 @param retval - return code for the request
909 define set_ip_flow_hash_reply
915 /** \brief IPv6 router advertisement config request
916 @param client_index - opaque cookie to identify the sender
917 @param context - sender context, to match reply w/ request
922 @param send_unicast -
925 @param default_router -
926 @param max_interval -
927 @param min_interval -
929 @param initial_count -
930 @param initial_interval -
932 define sw_interface_ip6nd_ra_config
949 u32 initial_interval;
952 /** \brief IPv6 router advertisement config response
953 @param context - sender context, to match reply w/ request
954 @param retval - return code for the request
956 define sw_interface_ip6nd_ra_config_reply
962 /** \brief IPv6 router advertisement prefix config request
963 @param client_index - opaque cookie to identify the sender
964 @param context - sender context, to match reply w/ request
967 @param address_length -
969 @param no_advertise -
971 @param no_autoconfig -
974 @param val_lifetime -
975 @param pref_lifetime -
977 define sw_interface_ip6nd_ra_prefix
994 /** \brief IPv6 router advertisement prefix config response
995 @param context - sender context, to match reply w/ request
996 @param retval - return code for the request
998 define sw_interface_ip6nd_ra_prefix_reply
1004 /** \brief IPv6 interface enable / disable request
1005 @param client_index - opaque cookie to identify the sender
1006 @param context - sender context, to match reply w/ request
1007 @param sw_if_index - interface used to reach neighbor
1008 @param enable - if non-zero enable ip6 on interface, else disable
1010 define sw_interface_ip6_enable_disable
1015 u8 enable; /* set to true if enable */
1018 /** \brief IPv6 interface enable / disable response
1019 @param context - sender context, to match reply w/ request
1020 @param retval - return code for the request
1022 define sw_interface_ip6_enable_disable_reply
1028 /** \brief IPv6 set link local address on interface request
1029 @param client_index - opaque cookie to identify the sender
1030 @param context - sender context, to match reply w/ request
1031 @param sw_if_index - interface to set link local on
1032 @param address[] - the new link local address
1033 @param address_length - link local address length
1035 define sw_interface_ip6_set_link_local_address
1044 /** \brief IPv6 set link local address on interface response
1045 @param context - sender context, to match reply w/ request
1046 @param retval - error code for the request
1048 define sw_interface_ip6_set_link_local_address_reply
1054 /** \brief Create loopback interface request
1055 @param client_index - opaque cookie to identify the sender
1056 @param context - sender context, to match reply w/ request
1057 @param mac_address - mac addr to assign to the interface if none-zero
1059 define create_loopback
1066 /** \brief Create loopback interface response
1067 @param context - sender context, to match reply w/ request
1068 @param sw_if_index - sw index of the interface that was created
1069 @param retval - return code for the request
1071 define create_loopback_reply
1078 /** \brief Delete loopback interface request
1079 @param client_index - opaque cookie to identify the sender
1080 @param context - sender context, to match reply w/ request
1081 @param sw_if_index - sw index of the interface that was created
1083 define delete_loopback
1090 /** \brief Delete loopback interface response
1091 @param context - sender context, to match reply w/ request
1092 @param retval - return code for the request
1094 define delete_loopback_reply
1100 /** \brief Control ping from client to api server request
1101 @param client_index - opaque cookie to identify the sender
1102 @param context - sender context, to match reply w/ request
1110 /** \brief Control ping from the client to the server response
1111 @param client_index - opaque cookie to identify the sender
1112 @param context - sender context, to match reply w/ request
1113 @param retval - return code for the request
1114 @param vpe_pid - the pid of the vpe, returned by the server
1116 define control_ping_reply
1124 /** \brief Process a vpe parser cli string request
1125 @param client_index - opaque cookie to identify the sender
1126 @param context - sender context, to match reply w/ request
1127 @param cmd_in_shmem - pointer to cli command string
1143 /** \brief vpe parser cli string response
1144 @param context - sender context, to match reply w/ request
1145 @param retval - return code for request
1146 @param reply_in_shmem - Reply string from cli processing if any
1154 define cli_inband_reply
1162 /** \brief Set max allowed ARP or ip6 neighbor entries request
1163 @param client_index - opaque cookie to identify the sender
1164 @param context - sender context, to match reply w/ request
1165 @param is_ipv6 - neighbor limit if non-zero, else ARP limit
1166 @param arp_neighbor_limit - the new limit, defaults are ~ 50k
1168 define set_arp_neighbor_limit
1173 u32 arp_neighbor_limit;
1176 /** \brief Set max allowed ARP or ip6 neighbor entries response
1177 @param context - sender context, to match reply w/ request
1178 @param retval - return code for request
1180 define set_arp_neighbor_limit_reply
1186 /** \brief L2 interface patch add / del request
1187 @param client_index - opaque cookie to identify the sender
1188 @param context - sender context, to match reply w/ request
1189 @param rx_sw_if_index - receive side interface
1190 @param tx_sw_if_index - transmit side interface
1191 @param is_add - if non-zero set up the interface patch, else remove it
1193 define l2_patch_add_del
1202 /** \brief L2 interface patch add / del response
1203 @param context - sender context, to match reply w/ request
1204 @param retval - return code for the request
1206 define l2_patch_add_del_reply
1212 /** \brief IPv6 segment routing tunnel add / del request
1213 @param client_index - opaque cookie to identify the sender
1214 @param context - sender context, to match reply w/ request
1215 @param is_add - add the tunnel if non-zero, else delete it
1216 @param name[] - tunnel name (len. 64)
1217 @param src_address[] -
1218 @param dst_address[] -
1219 @param dst_mask_width -
1220 @param inner_vrf_id -
1221 @param outer_vrf_id -
1222 @param flags_net_byte_order -
1225 @param segs_and_tags[] -
1226 @param policy_name[] - name of policy to associate this tunnel to (len. 64)
1228 define sr_tunnel_add_del
1239 u16 flags_net_byte_order;
1242 u8 segs_and_tags[0];
1246 /** \brief IPv6 segment routing tunnel add / del response
1247 @param context - sender context, to match reply w/ request
1248 @param retval - return value for request
1250 define sr_tunnel_add_del_reply
1256 /** \brief IPv6 segment routing policy add / del request
1257 @param client_index - opaque cookie to identify the sender
1258 @param context - sender context, to match reply w/ request
1259 @param is_add - add the tunnel if non-zero, else delete it
1260 @param name[] - policy name (len. 64)
1261 @param tunnel_names[] -
1263 define sr_policy_add_del
1272 /** \brief IPv6 segment routing policy add / del response
1273 @param context - sender context, to match reply w/ request
1274 @param retval - return value for request
1276 define sr_policy_add_del_reply
1282 /** \brief IPv6 segment routing multicast map to policy add / del request
1283 @param client_index - opaque cookie to identify the sender
1284 @param context - sender context, to match reply w/ request
1285 @param is_add - add the tunnel if non-zero, else delete it
1286 @param multicast_address[] - IP6 multicast address
1287 @param policy_name[] = policy name (len.64)
1289 define sr_multicast_map_add_del
1294 u8 multicast_address[16];
1298 /** \brief IPv6 segment routing multicast map to policy add / del response
1299 @param context - sender context, to match reply w/ request
1300 @param retval - return value for request
1302 define sr_multicast_map_add_del_reply
1308 /** \brief Interface set vpath request
1309 @param client_index - opaque cookie to identify the sender
1310 @param context - sender context, to match reply w/ request
1311 @param sw_if_index - interface used to reach neighbor
1312 @param enable - if non-zero enable, else disable
1314 define sw_interface_set_vpath
1322 /** \brief Interface set vpath response
1323 @param context - sender context, to match reply w/ request
1324 @param retval - return code for the request
1326 define sw_interface_set_vpath_reply
1332 /** \brief Interface set vxlan-bypass request
1333 @param client_index - opaque cookie to identify the sender
1334 @param context - sender context, to match reply w/ request
1335 @param sw_if_index - interface used to reach neighbor
1336 @param is_ipv6 - if non-zero, enable ipv6-vxlan-bypass, else ipv4-vxlan-bypass
1337 @param enable - if non-zero enable, else disable
1339 define sw_interface_set_vxlan_bypass
1348 /** \brief Interface set vxlan-bypass response
1349 @param context - sender context, to match reply w/ request
1350 @param retval - return code for the request
1352 define sw_interface_set_vxlan_bypass_reply
1358 /** \brief Set L2 XConnect between two interfaces request
1359 @param client_index - opaque cookie to identify the sender
1360 @param context - sender context, to match reply w/ request
1361 @param rx_sw_if_index - Receive interface index
1362 @param tx_sw_if_index - Transmit interface index
1363 @param enable - enable xconnect if not 0, else set to L3 mode
1365 define sw_interface_set_l2_xconnect
1374 /** \brief Set L2 XConnect response
1375 @param context - sender context, to match reply w/ request
1376 @param retval - L2 XConnect request return code
1378 define sw_interface_set_l2_xconnect_reply
1384 /** \brief Interface bridge mode request
1385 @param client_index - opaque cookie to identify the sender
1386 @param context - sender context, to match reply w/ request
1387 @param rx_sw_if_index - the interface
1388 @param bd_id - bridge domain id
1389 @param bvi - Setup interface as a bvi, bridge mode only
1390 @param shg - Shared horizon group, for bridge mode only
1391 @param enable - Enable beige mode if not 0, else set to L3 mode
1393 define sw_interface_set_l2_bridge
1404 /** \brief Interface bridge mode response
1405 @param context - sender context, to match reply w/ request
1406 @param retval - Bridge mode request return code
1408 define sw_interface_set_l2_bridge_reply
1414 /** \brief L2 FIB add entry request
1415 @param client_index - opaque cookie to identify the sender
1416 @param context - sender context, to match reply w/ request
1417 @param mac - the entry's mac address
1418 @param bd_id - the entry's bridge domain id
1419 @param sw_if_index - the interface
1420 @param is_add - If non zero add the entry, else delete it
1424 define l2fib_add_del
1437 /** \brief L2 FIB add entry response
1438 @param context - sender context, to match reply w/ request
1439 @param retval - return code for the add l2fib entry request
1441 define l2fib_add_del_reply
1447 /** \brief Set L2 flags request !!! TODO - need more info, feature bits in l2_input.h
1448 @param client_index - opaque cookie to identify the sender
1449 @param context - sender context, to match reply w/ request
1450 @param sw_if_index - interface
1451 @param is_set - if non-zero, set the bits, else clear them
1452 @param feature_bitmap - non-zero bits to set or clear
1463 /** \brief Set L2 bits response
1464 @param context - sender context, to match reply w/ request
1465 @param retval - return code for the set l2 bits request
1467 define l2_flags_reply
1471 u32 resulting_feature_bitmap;
1474 /** \brief Set bridge flags (such as L2_LEARN, L2_FWD, L2_FLOOD,
1475 L2_UU_FLOOD, or L2_ARP_TERM) request
1476 @param client_index - opaque cookie to identify the sender
1477 @param context - sender context, to match reply w/ request
1478 @param bd_id - the bridge domain to set the flags for
1479 @param is_set - if non-zero, set the flags, else clear them
1480 @param feature_bitmap - bits that are non-zero to set or clear
1491 /** \brief Set bridge flags response
1492 @param context - sender context, to match reply w/ request
1493 @param retval - return code for the set bridge flags request
1494 @param resulting_feature_bitmap - the feature bitmap value after the request is implemented
1496 define bridge_flags_reply
1500 u32 resulting_feature_bitmap;
1503 /** \brief Set bridge domain ip to mac entry request
1504 @param client_index - opaque cookie to identify the sender
1505 @param context - sender context, to match reply w/ request
1506 @param bd_id - the bridge domain to set the flags for
1507 @param is_add - if non-zero, add the entry, else clear it
1508 @param is_ipv6 - if non-zero, ipv6 address, else ipv4 address
1509 @param mac_address - MAC address
1512 define bd_ip_mac_add_del
1523 /** \brief Set bridge domain ip to mac entry response
1524 @param context - sender context, to match reply w/ request
1525 @param retval - return code for the set bridge flags request
1527 define bd_ip_mac_add_del_reply
1533 /** \brief Add/Delete classification table request
1534 @param client_index - opaque cookie to identify the sender
1535 @param context - sender context, to match reply w/ request
1536 @param is_add- if non-zero add the table, else delete it
1537 @param table_index - if add, reuturns index of the created table, else specifies the table to delete
1538 @param nbuckets - number of buckets when adding a table
1539 @param memory_size - memory size when adding a table
1540 @param match_n_vectors - number of match vectors
1541 @param next_table_index - index of next table
1542 @param miss_next_index - index of miss table
1543 @param current_data_flag - option to use current node's packet payload
1544 as the starting point from where packets are classified,
1545 This option is only valid for L2/L3 input ACL for now.
1546 0: by default, classify data from the buffer's start location
1547 1: classify packets from VPP node’s current data pointer
1548 @param current_data_offset - a signed value to shift the start location of
1549 the packet to be classified
1550 For example, if input IP ACL node is used, L2 header’s first byte
1551 can be accessible by configuring current_data_offset to -14
1552 if there is no vlan tag.
1553 This is valid only if current_data_flag is set to 1.
1554 @param mask[] - match mask
1556 define classify_add_del_table
1565 u32 match_n_vectors;
1566 u32 next_table_index;
1567 u32 miss_next_index;
1568 u32 current_data_flag;
1569 i32 current_data_offset;
1573 /** \brief Add/Delete classification table response
1574 @param context - sender context, to match reply w/ request
1575 @param retval - return code for the table add/del requst
1576 @param new_table_index - for add, returned index of the new table
1577 @param skip_n_vectors - for add, returned value of skip_n_vectors in table
1578 @param match_n_vectors -for add, returned value of match_n_vectors in table
1580 define classify_add_del_table_reply
1584 u32 new_table_index;
1586 u32 match_n_vectors;
1589 /** \brief Classify add / del session request
1590 @param client_index - opaque cookie to identify the sender
1591 @param context - sender context, to match reply w/ request
1592 @param is_add - add session if non-zero, else delete
1593 @param table_index - index of the table to add/del the session, required
1594 @param hit_next_index - for add, hit_next_index of new session, required
1595 @param opaque_index - for add, opaque_index of new session
1596 @param advance -for add, advance value for session
1598 0: no action (by default)
1599 metadata is not used.
1600 1: Classified IP packets will be looked up from the
1601 specified ipv4 fib table (configured by metadata as VRF id).
1602 Only valid for L3 input ACL node
1603 2: Classified IP packets will be looked up from the
1604 specified ipv6 fib table (configured by metadata as VRF id).
1605 Only valid for L3 input ACL node
1606 @param metadata - valid only if action != 0
1607 VRF id if action is 1 or 2.
1608 @param match[] - for add, match value for session, required
1610 define classify_add_del_session
1624 /** \brief Classify add / del session response
1625 @param context - sender context, to match reply w/ request
1626 @param retval - return code for the add/del session request
1628 define classify_add_del_session_reply
1634 /** \brief Set/unset the classification table for an interface request
1635 @param client_index - opaque cookie to identify the sender
1636 @param context - sender context, to match reply w/ request
1637 @param is_ipv6 - ipv6 if non-zero, else ipv4
1638 @param sw_if_index - interface to associate with the table
1639 @param table_index - index of the table, if ~0 unset the table
1641 define classify_set_interface_ip_table
1647 u32 table_index; /* ~0 => off */
1650 /** \brief Set/unset interface classification table response
1651 @param context - sender context, to match reply w/ request
1652 @param retval - return code
1654 define classify_set_interface_ip_table_reply
1660 /** \brief Set/unset l2 classification tables for an interface request
1661 @param client_index - opaque cookie to identify the sender
1662 @param context - sender context, to match reply w/ request
1663 @param sw_if_index - interface to set/unset tables for
1664 @param ip4_table_index - ip4 index, use ~0 for all 3 indexes to unset
1665 @param ip6_table_index - ip6 index
1666 @param other_table_index - other index
1668 define classify_set_interface_l2_tables
1674 u32 ip4_table_index;
1675 u32 ip6_table_index;
1676 u32 other_table_index;
1680 /** \brief Set/unset l2 classification tables for an interface response
1681 @param context - sender context, to match reply w/ request
1682 @param retval - return code for the request
1684 define classify_set_interface_l2_tables_reply
1690 /** \brief Get node index using name request
1691 @param client_index - opaque cookie to identify the sender
1692 @param context - sender context, to match reply w/ request
1693 @param node_name[] - name of the node
1695 define get_node_index
1702 /** \brief Get node index using name request
1703 @param context - sender context, to match reply w/ request
1704 @param retval - return code for the request
1705 @param node_index - index of the desired node if found, else ~0
1707 define get_node_index_reply
1714 /** \brief Set the next node for a given node request
1715 @param client_index - opaque cookie to identify the sender
1716 @param context - sender context, to match reply w/ request
1717 @param node_name[] - node to add the next node to
1718 @param next_name[] - node to add as the next node
1720 define add_node_next
1728 /** \brief IP Set the next node for a given node response
1729 @param context - sender context, to match reply w/ request
1730 @param retval - return code for the add next node request
1731 @param next_index - the index of the next node if success, else ~0
1733 define add_node_next_reply
1740 /** \brief DHCP Proxy config 2 add / del request
1741 @param client_index - opaque cookie to identify the sender
1742 @param context - sender context, to match reply w/ request
1743 @param rx_vrf_id - receive vrf id
1744 @param server_vrf_id - server vrf id
1745 @param if_ipv6 - ipv6 if non-zero, else ipv4
1746 @param is_add - add the config if non-zero, else delete
1747 @param insert_circuit_id - option82 suboption 1 fib number
1748 @param dhcp_server[] - server address
1749 @param dhcp_src_address[] - <fix this, need details>
1751 define dhcp_proxy_config_2
1759 u8 insert_circuit_id;
1761 u8 dhcp_src_address[16];
1764 /** \brief DHCP Proxy config 2 add / del response
1765 @param context - sender context, to match reply w/ request
1766 @param retval - return code for request
1768 define dhcp_proxy_config_2_reply
1774 /** \brief l2tpv3 tunnel interface create request
1775 @param client_index - opaque cookie to identify the sender
1776 @param context - sender context, to match reply w/ request
1777 @param client_address - remote client tunnel ip address
1778 @param client_address - local tunnel ip address
1779 @param is_ipv6 - ipv6 if non-zero, else ipv4
1780 @param local_session_id - local tunnel session id
1781 @param remote_session_id - remote tunnel session id
1782 @param local_cookie - local tunnel cookie
1783 @param l2_sublayer_present - l2 sublayer is present in packets if non-zero
1784 @param encap_vrf_id - fib identifier used for outgoing encapsulated packets
1786 define l2tpv3_create_tunnel
1790 u8 client_address[16];
1793 u32 local_session_id;
1794 u32 remote_session_id;
1797 u8 l2_sublayer_present;
1801 /** \brief l2tpv3 tunnel interface create response
1802 @param context - sender context, to match reply w/ request
1803 @param retval - return code for the request
1804 @param sw_if_index - index of the new tunnel interface
1806 define l2tpv3_create_tunnel_reply
1813 define l2tpv3_set_tunnel_cookies
1818 u64 new_local_cookie;
1819 u64 new_remote_cookie;
1822 /** \brief L2TP tunnel set cookies response
1823 @param context - sender context, to match reply w/ request
1824 @param retval - return code for the request
1826 define l2tpv3_set_tunnel_cookies_reply
1832 define sw_if_l2tpv3_tunnel_details
1836 u8 interface_name[64];
1837 u8 client_address[16];
1839 u32 local_session_id;
1840 u32 remote_session_id;
1841 u64 local_cookie[2];
1843 u8 l2_sublayer_present;
1846 define sw_if_l2tpv3_tunnel_dump
1852 /** \brief L2 fib clear table request, clear all mac entries in the l2 fib
1853 @param client_index - opaque cookie to identify the sender
1854 @param context - sender context, to match reply w/ request
1856 define l2_fib_clear_table
1862 /** \brief L2 fib clear table response
1863 @param context - sender context, to match reply w/ request
1864 @param retval - return code for the request
1866 define l2_fib_clear_table_reply
1872 /** \brief L2 interface ethernet flow point filtering enable/disable request
1873 @param client_index - opaque cookie to identify the sender
1874 @param context - sender context, to match reply w/ request
1875 @param sw_if_index - interface to enable/disable filtering on
1876 @param enable_disable - if non-zero enable filtering, else disable
1878 define l2_interface_efp_filter
1886 /** \brief L2 interface ethernet flow point filtering response
1887 @param context - sender context, to match reply w/ request
1888 @param retval - return code for the request
1890 define l2_interface_efp_filter_reply
1896 define l2tpv3_interface_enable_disable
1904 define l2tpv3_interface_enable_disable_reply
1910 define l2tpv3_set_lookup_key
1914 /* 0 = ip6 src_address, 1 = ip6 dst_address, 2 = session_id */
1918 define l2tpv3_set_lookup_key_reply
1924 define vxlan_add_del_tunnel
1932 u32 mcast_sw_if_index;
1934 u32 decap_next_index;
1938 define vxlan_add_del_tunnel_reply
1945 define vxlan_tunnel_dump
1952 define vxlan_tunnel_details
1958 u32 mcast_sw_if_index;
1960 u32 decap_next_index;
1965 define gre_add_del_tunnel
1977 define gre_add_del_tunnel_reply
1984 define gre_tunnel_dump
1991 define gre_tunnel_details
2002 /** \brief L2 interface vlan tag rewrite configure request
2003 @param client_index - opaque cookie to identify the sender
2004 @param context - sender context, to match reply w/ request
2005 @param sw_if_index - interface the operation is applied to
2006 @param vtr_op - Choose from l2_vtr_op_t enum values
2007 @param push_dot1q - first pushed flag dot1q id set, else dot1ad
2008 @param tag1 - Needed for any push or translate vtr op
2009 @param tag2 - Needed for any push 2 or translate x-2 vtr ops
2011 define l2_interface_vlan_tag_rewrite
2017 u32 push_dot1q; // ethertype of first pushed tag is dot1q/dot1ad
2018 u32 tag1; // first pushed tag
2019 u32 tag2; // second pushed tag
2022 /** \brief L2 interface vlan tag rewrite response
2023 @param context - sender context, to match reply w/ request
2024 @param retval - return code for the request
2026 define l2_interface_vlan_tag_rewrite_reply
2032 /** \brief vhost-user interface create request
2033 @param client_index - opaque cookie to identify the sender
2034 @param is_server - our side is socket server
2035 @param sock_filename - unix socket filename, used to speak with frontend
2036 @param use_custom_mac - enable or disable the use of the provided hardware address
2037 @param mac_address - hardware address to use if 'use_custom_mac' is set
2039 define create_vhost_user_if
2044 u8 sock_filename[256];
2046 u32 custom_dev_instance;
2052 /** \brief vhost-user interface create response
2053 @param context - sender context, to match reply w/ request
2054 @param retval - return code for the request
2055 @param sw_if_index - interface the operation is applied to
2057 define create_vhost_user_if_reply
2064 /** \brief vhost-user interface modify request
2065 @param client_index - opaque cookie to identify the sender
2066 @param is_server - our side is socket server
2067 @param sock_filename - unix socket filename, used to speak with frontend
2069 define modify_vhost_user_if
2075 u8 sock_filename[256];
2077 u32 custom_dev_instance;
2080 /** \brief vhost-user interface modify response
2081 @param context - sender context, to match reply w/ request
2082 @param retval - return code for the request
2084 define modify_vhost_user_if_reply
2090 /** \brief vhost-user interface delete request
2091 @param client_index - opaque cookie to identify the sender
2093 define delete_vhost_user_if
2100 /** \brief vhost-user interface delete response
2101 @param context - sender context, to match reply w/ request
2102 @param retval - return code for the request
2104 define delete_vhost_user_if_reply
2117 /* These fields map directly onto the subif template */
2121 u8 dot1ad; // 0 = dot1q, 1=dot1ad
2124 u8 outer_vlan_id_any;
2125 u8 inner_vlan_id_any;
2130 define create_subif_reply
2137 /** \brief show version
2138 @param client_index - opaque cookie to identify the sender
2139 @param context - sender context, to match reply w/ request
2147 /** \brief show version response
2148 @param context - sender context, to match reply w/ request
2149 @param retval - return code for the request
2150 @param program - name of the program (vpe)
2151 @param version - version of the program
2152 @param build_directory - root of the workspace where the program was built
2154 define show_version_reply
2161 u8 build_directory[256];
2164 /** \brief Vhost-user interface details structure (fix this)
2165 @param sw_if_index - index of the interface
2166 @param interface_name - name of interface
2167 @param virtio_net_hdr_sz - net header size
2168 @param features - interface features
2169 @param is_server - vhost-user server socket
2170 @param sock_filename - socket filename
2171 @param num_regions - number of used memory regions
2173 define sw_interface_vhost_user_details
2177 u8 interface_name[64];
2178 u32 virtio_net_hdr_sz;
2181 u8 sock_filename[256];
2187 define sw_interface_vhost_user_dump
2193 define ip_address_details
2201 define ip_address_dump
2222 /** \brief l2 fib table entry structure
2223 @param bd_id - the l2 fib / bridge domain table id
2224 @param mac - the entry's mac address
2225 @param sw_if_index - index of the interface
2226 @param static_mac - the entry is statically configured.
2227 @param filter_mac - the entry is a mac filter entry.
2228 @param bvi_mac - the mac address is a bridge virtual interface
2230 define l2_fib_table_entry
2241 /** \brief Dump l2 fib (aka bridge domain) table
2242 @param client_index - opaque cookie to identify the sender
2243 @param bd_id - the l2 fib / bridge domain table identifier
2245 define l2_fib_table_dump
2252 define vxlan_gpe_add_del_tunnel
2266 define vxlan_gpe_add_del_tunnel_reply
2273 define vxlan_gpe_tunnel_dump
2280 define vxlan_gpe_tunnel_details
2293 /** \brief add or delete locator_set
2294 @param client_index - opaque cookie to identify the sender
2295 @param context - sender context, to match reply w/ request
2296 @param is_add - add address if non-zero, else delete
2297 @param locator_set_name - locator name
2298 @param locator_num - number of locators
2299 @param locators - LISP locator records
2300 Structure of one locator record is as follows:
2308 define lisp_add_del_locator_set
2313 u8 locator_set_name[64];
2318 /** \brief Reply for locator_set add/del
2319 @param context - returned sender context, to match reply w/ request
2320 @param retval - return code
2321 @param ls_index - locator set index
2323 define lisp_add_del_locator_set_reply
2330 /** \brief add or delete locator for locator_set
2331 @param client_index - opaque cookie to identify the sender
2332 @param context - sender context, to match reply w/ request
2333 @param is_add - add address if non-zero, else delete
2334 @param locator_set_name - name of locator_set to add/del locator
2335 @param sw_if_index - index of the interface
2336 @param priority - priority of the lisp locator
2337 @param weight - weight of the lisp locator
2339 define lisp_add_del_locator
2344 u8 locator_set_name[64];
2350 /** \brief Reply for locator add/del
2351 @param context - returned sender context, to match reply w/ request
2352 @param retval - return code
2354 define lisp_add_del_locator_reply
2360 /** \brief add or delete lisp eid-table
2361 @param client_index - opaque cookie to identify the sender
2362 @param context - sender context, to match reply w/ request
2363 @param is_add - add address if non-zero, else delete
2368 @param eid - EID can be ip4, ip6 or mac
2369 @param prefix_len - prefix len
2370 @param locator_set_name - name of locator_set to add/del eid-table
2371 @param vni - virtual network instance
2376 @param key - secret key
2378 define lisp_add_del_local_eid
2386 u8 locator_set_name[64];
2392 /** \brief Reply for local_eid add/del
2393 @param context - returned sender context, to match reply w/ request
2394 @param retval - return code
2396 define lisp_add_del_local_eid_reply
2402 /** \brief add or delete lisp gpe tunnel
2403 @param client_index - opaque cookie to identify the sender
2404 @param context - sender context, to match reply w/ request
2405 @param is_add - add address if non-zero, else delete
2410 @param rmt_eid - remote eid
2411 @param lcl_eid - local eid
2412 @param rmt_len - remote prefix len
2413 @param lcl_len - local prefix len
2414 @param vni - virtual network identifier
2415 @param dp_table - vrf/bridge domain id
2416 @param loc_num - number of locators
2417 @param lcl_locs - array of local locators
2418 @param rmt_locs - array of remote locators
2419 @param action - negative action when 0 locators configured
2421 define lisp_gpe_add_del_fwd_entry
2434 u8 lcl_locs[loc_num];
2435 u8 rmt_locs[loc_num];
2439 /** \brief Reply for gpe_fwd_entry add/del
2440 @param context - returned sender context, to match reply w/ request
2441 @param retval - return code
2443 define lisp_gpe_add_del_fwd_entry_reply
2449 /** \brief Add/delete map server
2450 @param client_index - opaque cookie to identify the sender
2451 @param context - sender context, to match reply w/ request
2452 @param is_add - add address if non-zero; delete otherwise
2453 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
2454 @param ip_address - map server IP address
2456 define lisp_add_del_map_server
2465 /** \brief Reply for lisp_add_del_map_server
2466 @param context - returned sender context, to match reply w/ request
2467 @param retval - return code
2469 define lisp_add_del_map_server_reply
2475 /** \brief add or delete map-resolver
2476 @param client_index - opaque cookie to identify the sender
2477 @param context - sender context, to match reply w/ request
2478 @param is_add - add address if non-zero, else delete
2479 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
2480 @param ip_address - array of address bytes
2482 define lisp_add_del_map_resolver
2491 /** \brief Reply for map_resolver add/del
2492 @param context - returned sender context, to match reply w/ request
2493 @param retval - return code
2495 define lisp_add_del_map_resolver_reply
2501 /** \brief enable or disable lisp-gpe protocol
2502 @param client_index - opaque cookie to identify the sender
2503 @param context - sender context, to match reply w/ request
2504 @param is_en - enable protocol if non-zero, else disable
2506 define lisp_gpe_enable_disable
2513 /** \brief Reply for gpe enable/disable
2514 @param context - returned sender context, to match reply w/ request
2515 @param retval - return code
2517 define lisp_gpe_enable_disable_reply
2523 /** \brief enable or disable LISP feature
2524 @param client_index - opaque cookie to identify the sender
2525 @param context - sender context, to match reply w/ request
2526 @param is_en - enable protocol if non-zero, else disable
2528 define lisp_enable_disable
2535 /** \brief Reply for gpe enable/disable
2536 @param context - returned sender context, to match reply w/ request
2537 @param retval - return code
2539 define lisp_enable_disable_reply
2545 /** \brief add or delete gpe_iface
2546 @param client_index - opaque cookie to identify the sender
2547 @param context - sender context, to match reply w/ request
2548 @param is_add - add address if non-zero, else delete
2550 define lisp_gpe_add_del_iface
2560 /** \brief Reply for gpe_iface add/del
2561 @param context - returned sender context, to match reply w/ request
2562 @param retval - return code
2564 define lisp_gpe_add_del_iface_reply
2570 /** \brief configure or disable LISP PITR node
2571 @param client_index - opaque cookie to identify the sender
2572 @param context - sender context, to match reply w/ request
2573 @param ls_name - locator set name
2574 @param is_add - add locator set if non-zero, else disable pitr
2576 define lisp_pitr_set_locator_set
2584 /** \brief Reply for lisp_pitr_set_locator_set
2585 @param context - returned sender context, to match reply w/ request
2586 @param retval - return code
2588 define lisp_pitr_set_locator_set_reply
2594 /** \brief Get state of LISP RLOC probing
2595 @param client_index - opaque cookie to identify the sender
2596 @param context - sender context, to match reply w/ request
2598 define show_lisp_rloc_probe_state
2604 /** \brief Reply for show_lisp_rloc_probe_state
2605 @param context - returned sender context, to match reply w/ request
2606 @param retval - return code
2607 @param is_enabled - state of RLOC probing
2609 define show_lisp_rloc_probe_state_reply
2616 /** \brief enable/disable LISP RLOC probing
2617 @param client_index - opaque cookie to identify the sender
2618 @param context - sender context, to match reply w/ request
2619 @param is_enable - enable if non-zero; disable otherwise
2621 define lisp_rloc_probe_enable_disable
2628 /** \brief Reply for lisp_rloc_probe_enable_disable
2629 @param context - returned sender context, to match reply w/ request
2630 @param retval - return code
2632 define lisp_rloc_probe_enable_disable_reply
2638 /** \brief enable/disable LISP map-register
2639 @param client_index - opaque cookie to identify the sender
2640 @param context - sender context, to match reply w/ request
2641 @param is_enable - enable if non-zero; disable otherwise
2643 define lisp_map_register_enable_disable
2650 /** \brief Reply for lisp_map_register_enable_disable
2651 @param context - returned sender context, to match reply w/ request
2652 @param retval - return code
2654 define lisp_map_register_enable_disable_reply
2660 /** \brief Get state of LISP map-register
2661 @param client_index - opaque cookie to identify the sender
2662 @param context - sender context, to match reply w/ request
2664 define show_lisp_map_register_state
2670 /** \brief Reply for show_lisp_map_register_state
2671 @param context - returned sender context, to match reply w/ request
2672 @param retval - return code
2674 define show_lisp_map_register_state_reply
2681 /** \brief set LISP map-request mode. Based on configuration VPP will send
2682 src/dest or just normal destination map requests.
2683 @param client_index - opaque cookie to identify the sender
2684 @param context - sender context, to match reply w/ request
2685 @param mode - new map-request mode. Supported values are:
2686 0 - destination only
2687 1 - source/destaination
2689 define lisp_map_request_mode
2696 /** \brief Reply for lisp_map_request_mode
2697 @param context - returned sender context, to match reply w/ request
2698 @param retval - return code
2700 define lisp_map_request_mode_reply
2706 /** \brief Request for LISP map-request mode
2707 @param client_index - opaque cookie to identify the sender
2708 @param context - sender context, to match reply w/ request
2710 define show_lisp_map_request_mode
2716 /** \brief Reply for show_lisp_map_request_mode
2717 @param context - returned sender context, to match reply w/ request
2718 @param retval - return code
2719 @param mode - map-request mode
2721 define show_lisp_map_request_mode_reply
2728 /** \brief add or delete remote static mapping
2729 @param client_index - opaque cookie to identify the sender
2730 @param context - sender context, to match reply w/ request
2731 @param is_add - add address if non-zero, else delete
2732 @param is_src_dst - flag indicating src/dst based routing policy
2733 @param del_all - if set, delete all remote mappings
2734 @param vni - virtual network instance
2735 @param action - negative map-reply action
2740 @param deid - dst EID
2741 @param seid - src EID, valid only if is_src_dst is enabled
2742 @param rloc_num - number of remote locators
2743 @param rlocs - remote locator records
2744 Structure of remote locator:
2753 define lisp_add_del_remote_mapping
2771 /** \brief Reply for lisp_add_del_remote_mapping
2772 @param context - returned sender context, to match reply w/ request
2773 @param retval - return code
2775 define lisp_add_del_remote_mapping_reply
2781 /** \brief add or delete LISP adjacency adjacency
2782 @param client_index - opaque cookie to identify the sender
2783 @param context - sender context, to match reply w/ request
2784 @param is_add - add address if non-zero, else delete
2785 @param vni - virtual network instance
2790 @param reid - remote EID
2791 @param leid - local EID
2793 define lisp_add_del_adjacency
2806 /** \brief Reply for lisp_add_del_adjacency
2807 @param context - returned sender context, to match reply w/ request
2808 @param retval - return code
2810 define lisp_add_del_adjacency_reply
2816 /** \brief add or delete map request itr rlocs
2817 @param client_index - opaque cookie to identify the sender
2818 @param context - sender context, to match reply w/ request
2819 @param is_add - add address if non-zero, else delete
2820 @param locator_set_name - locator set name
2822 define lisp_add_del_map_request_itr_rlocs
2827 u8 locator_set_name[64];
2830 /** \brief Reply for lisp_add_del_map_request_itr_rlocs
2831 @param context - returned sender context, to match reply w/ request
2832 @param retval - return code
2835 define lisp_add_del_map_request_itr_rlocs_reply
2841 /** \brief map/unmap vni/bd_index to vrf
2842 @param client_index - opaque cookie to identify the sender
2843 @param context - sender context, to match reply w/ request
2844 @param is_add - add or delete mapping
2845 @param dp_table - virtual network id/bridge domain index
2848 define lisp_eid_table_add_del_map
2858 /** \brief Reply for lisp_eid_table_add_del_map
2859 @param context - returned sender context, to match reply w/ request
2860 @param retval - return code
2862 define lisp_eid_table_add_del_map_reply
2868 /** \brief Request for map lisp locator status
2869 @param client_index - opaque cookie to identify the sender
2870 @param context - sender context, to match reply w/ request
2871 @param locator_set_index - index of locator_set
2872 @param ls_name - locator set name
2873 @param is_index_set - flag indicating whether ls_name or ls_index is set
2875 define lisp_locator_dump
2884 /** \brief LISP locator_set status
2885 @param local - if is set, then locator is local
2886 @param locator_set_name - name of the locator_set
2887 @param sw_if_index - sw_if_index of the locator
2888 @param priority - locator priority
2889 @param weight - locator weight
2891 define lisp_locator_details
2902 /** \brief LISP locator_set status
2903 @param context - sender context, to match reply w/ request
2904 @param ls_index - locator set index
2905 @param ls_name - name of the locator set
2907 define lisp_locator_set_details
2914 /** \brief Request for locator_set summary status
2915 @param client_index - opaque cookie to identify the sender
2916 @param context - sender context, to match reply w/ request
2917 @param filter - filter type
2920 1: local locator sets
2921 2: remote locator sets
2923 define lisp_locator_set_dump
2930 /** \brief Dump lisp eid-table
2931 @param client_index - opaque cookie to identify the sender
2932 @param context - sender context, to match reply w/ request
2933 @param locator_set_index - index of locator_set, if ~0 then the mapping
2935 @param action - negative map request action
2936 @param is_local - local if non-zero, else remote
2941 @param is_src_dst - EID is type of source/destination
2942 @param eid - EID can be ip4, ip6 or mac
2943 @param eid_prefix_len - prefix length
2944 @param seid - source EID can be ip4, ip6 or mac
2945 @param seid_prefix_len - source prefix length
2946 @param vni - virtual network instance
2947 @param ttl - time to live
2948 @param authoritative - authoritative
2953 @param key - secret key
2956 define lisp_eid_table_details
2959 u32 locator_set_index;
2975 /** \brief Request for eid table summary status
2976 @param client_index - opaque cookie to identify the sender
2977 @param context - sender context, to match reply w/ request
2978 @param eid_set - if non-zero request info about specific mapping
2979 @param vni - virtual network instance; valid only if eid_set != 0
2980 @param prefix_length - prefix length if EID is IP address;
2981 valid only if eid_set != 0
2982 @param eid_type - EID type; valid only if eid_set != 0
2986 2: EID is ethernet address
2987 @param eid - endpoint identifier
2988 @param filter - filter type;
2994 define lisp_eid_table_dump
3006 /** \brief LISP adjacency
3011 @param reid - remote EID
3012 @param leid - local EID
3013 @param reid_prefix_len - remote EID IP prefix length
3014 @param leid_prefix_len - local EID IP prefix length
3016 typeonly manual_print manual_endian define lisp_adjacency
3025 /** \brief LISP adjacency reply
3026 @param count - number of adjacencies
3027 @param adjacencies - array of adjacencies
3029 manual_endian manual_print define lisp_adjacencies_get_reply
3034 vl_api_lisp_adjacency_t adjacencies[count];
3037 /** \brief Request for LISP adjacencies
3038 @param client_index - opaque cookie to identify the sender
3039 @param context - sender context, to match reply w/ request
3040 @param vni - filter adjacencies by VNI
3042 define lisp_adjacencies_get
3049 /** \brief Shows relationship between vni and vrf/bd
3050 @param dp_table - VRF index or bridge domain index
3051 @param vni - vitual network instance
3053 define lisp_eid_table_map_details
3060 /** \brief Request for lisp_eid_table_map_details
3061 @param client_index - opaque cookie to identify the sender
3062 @param context - sender context, to match reply w/ request
3063 @param is_l2 - if set dump vni/bd mappings else vni/vrf
3065 define lisp_eid_table_map_dump
3072 /** \brief Dumps all VNIs used in mappings
3073 @param client_index - opaque cookie to identify the sender
3074 @param context - sender context, to match reply w/ request
3076 define lisp_eid_table_vni_dump
3082 /** \brief reply to lisp_eid_table_vni_dump
3083 @param client_index - opaque cookie to identify the sender
3084 @param context - sender context, to match reply w/ request
3085 @param vni - virtual network instance
3087 define lisp_eid_table_vni_details
3094 define lisp_gpe_tunnel_details
3100 u8 destination_ip[16];
3112 /** \brief Request for gpe tunnel summary status
3113 @param client_index - opaque cookie to identify the sender
3114 @param context - sender context, to match reply w/ request
3116 define lisp_gpe_tunnel_dump
3122 /** \brief LISP map resolver status
3123 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
3124 @param ip_address - array of address bytes
3126 define lisp_map_resolver_details
3133 /** \brief Request for map resolver summary status
3134 @param client_index - opaque cookie to identify the sender
3135 @param context - sender context, to match reply w/ request
3137 define lisp_map_resolver_dump
3143 /** \brief LISP map server details
3144 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
3145 @param ip_address - array of address bytes
3147 define lisp_map_server_details
3154 /** \brief Request for map server summary status
3155 @param client_index - opaque cookie to identify the sender
3156 @param context - sender context, to match reply w/ request
3158 define lisp_map_server_dump
3164 /** \brief Request for lisp-gpe protocol status
3165 @param client_index - opaque cookie to identify the sender
3166 @param context - sender context, to match reply w/ request
3168 define show_lisp_status
3174 /** \brief Status of lisp, enable or disable
3175 @param context - sender context, to match reply w/ request
3176 @param feature_status - lisp enable if non-zero, else disable
3177 @param gpe_status - lisp enable if non-zero, else disable
3179 define show_lisp_status_reply
3187 /** \brief Get LISP map request itr rlocs status
3188 @param context - sender context, to match reply w/ request
3189 @param locator_set_name - name of the locator_set
3191 define lisp_get_map_request_itr_rlocs
3197 /** \brief Request for map request itr rlocs summary status
3199 define lisp_get_map_request_itr_rlocs_reply
3203 u8 locator_set_name[64];
3206 /** \brief Request for lisp pitr status
3207 @param client_index - opaque cookie to identify the sender
3208 @param context - sender context, to match reply w/ request
3210 define show_lisp_pitr
3216 /** \brief Status of lisp pitr, enable or disable
3217 @param context - sender context, to match reply w/ request
3218 @param status - lisp pitr enable if non-zero, else disable
3219 @param locator_set_name - name of the locator_set
3221 define show_lisp_pitr_reply
3226 u8 locator_set_name[64];
3229 /* Gross kludge, DGMS */
3230 define interface_name_renumber
3235 u32 new_show_dev_instance;
3238 define interface_name_renumber_reply
3244 /** \brief Register for ip4 arp resolution events
3245 @param client_index - opaque cookie to identify the sender
3246 @param context - sender context, to match reply w/ request
3247 @param enable_disable - 1 => register for events, 0 => cancel registration
3248 @param pid - sender's pid
3249 @param address - the exact ip4 address of interest
3251 define want_ip4_arp_events
3260 /** \brief Reply for interface events registration
3261 @param context - returned sender context, to match reply w/ request
3262 @param retval - return code
3264 define want_ip4_arp_events_reply
3270 /** \brief Tell client about an ip4 arp resolution event
3271 @param client_index - opaque cookie to identify the sender
3272 @param context - sender context, to match reply w/ request
3273 @param address - the exact ip4 address of interest
3274 @param pid - client pid registered to receive notification
3275 @param sw_if_index - interface which received ARP packet
3276 @param new_mac - the new mac address
3277 @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
3279 define ip4_arp_event
3290 /** \brief Register for ip6 nd resolution events
3291 @param client_index - opaque cookie to identify the sender
3292 @param context - sender context, to match reply w/ request
3293 @param enable_disable - 1 => register for events, 0 => cancel registration
3294 @param pid - sender's pid
3295 @param address - the exact ip6 address of interest
3297 define want_ip6_nd_events
3306 /** \brief Reply for ip6 nd resolution events registration
3307 @param context - returned sender context, to match reply w/ request
3308 @param retval - return code
3310 define want_ip6_nd_events_reply
3316 /** \brief Tell client about an ip6 nd resolution or mac/ip event
3317 @param client_index - opaque cookie to identify the sender
3318 @param context - sender context, to match reply w/ request
3319 @param pid - client pid registered to receive notification
3320 @param sw_if_index - interface which received ARP packet
3321 @param address - the exact ip6 address of interest
3322 @param new_mac - the new mac address
3323 @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
3336 /** \brief L2 bridge domain add or delete request
3337 @param client_index - opaque cookie to identify the sender
3338 @param context - sender context, to match reply w/ request
3339 @param bd_id - the bridge domain to create
3340 @param flood - enable/disable bcast/mcast flooding in the bd
3341 @param uu_flood - enable/disable uknown unicast flood in the bd
3342 @param forward - enable/disable forwarding on all interfaces in the bd
3343 @param learn - enable/disable learning on all interfaces in the bd
3344 @param arp_term - enable/disable arp termination in the bd
3345 @param is_add - add or delete flag
3347 define bridge_domain_add_del
3360 /** \brief L2 bridge domain add or delete response
3361 @param context - sender context, to match reply w/ request
3362 @param retval - return code for the set bridge flags request
3364 define bridge_domain_add_del_reply
3370 /** \brief L2 bridge domain request operational state details
3371 @param client_index - opaque cookie to identify the sender
3372 @param context - sender context, to match reply w/ request
3373 @param bd_id - the bridge domain id desired or ~0 to request all bds
3375 define bridge_domain_dump
3382 /** \brief L2 bridge domain operational state response
3383 @param bd_id - the bridge domain id
3384 @param flood - bcast/mcast flooding state on all interfaces in the bd
3385 @param uu_flood - uknown unicast flooding state on all interfaces in the bd
3386 @param forward - forwarding state on all interfaces in the bd
3387 @param learn - learning state on all interfaces in the bd
3388 @param arp_term - arp termination state on all interfaces in the bd
3389 @param n_sw_ifs - number of sw_if_index's in the domain
3391 define bridge_domain_details
3400 u32 bvi_sw_if_index;
3404 /** \brief L2 bridge domain sw interface operational state response
3405 @param bd_id - the bridge domain id
3406 @param sw_if_index - sw_if_index in the domain
3407 @param shg - split horizon group for the interface
3409 define bridge_domain_sw_if_details
3417 /** \brief DHCP Client config add / del request
3418 @param client_index - opaque cookie to identify the sender
3419 @param context - sender context, to match reply w/ request
3420 @param sw_if_index - index of the interface for DHCP client
3421 @param hostname - hostname
3422 @param is_add - add the config if non-zero, else delete
3423 @param want_dhcp_event - DHCP event sent to the sender
3424 via dhcp_compl_event API message if non-zero
3425 @param pid - sender's pid
3427 define dhcp_client_config
3438 /** \brief DHCP Client config response
3439 @param context - sender context, to match reply w/ request
3440 @param retval - return code for the request
3442 define dhcp_client_config_reply
3448 /** \brief Set/unset input ACL interface
3449 @param client_index - opaque cookie to identify the sender
3450 @param context - sender context, to match reply w/ request
3451 @param sw_if_index - interface to set/unset input ACL
3452 @param ip4_table_index - ip4 classify table index (~0 for skip)
3453 @param ip6_table_index - ip6 classify table index (~0 for skip)
3454 @param l2_table_index - l2 classify table index (~0 for skip)
3455 @param is_add - Set input ACL if non-zero, else unset
3456 Note: User is recommeneded to use just one valid table_index per call.
3457 (ip4_table_index, ip6_table_index, or l2_table_index)
3459 define input_acl_set_interface
3464 u32 ip4_table_index;
3465 u32 ip6_table_index;
3470 /** \brief Set/unset input ACL interface response
3471 @param context - sender context, to match reply w/ request
3472 @param retval - return code for the request
3474 define input_acl_set_interface_reply
3480 /** \brief IPsec: Add/delete Security Policy Database
3481 @param client_index - opaque cookie to identify the sender
3482 @param context - sender context, to match reply w/ request
3483 @param is_add - add SPD if non-zero, else delete
3484 @param spd_id - SPD instance id (control plane allocated)
3487 define ipsec_spd_add_del
3495 /** \brief Reply for IPsec: Add/delete Security Policy Database entry
3496 @param context - returned sender context, to match reply w/ request
3497 @param retval - return code
3500 define ipsec_spd_add_del_reply
3506 /** \brief IPsec: Add/delete SPD from interface
3508 @param client_index - opaque cookie to identify the sender
3509 @param context - sender context, to match reply w/ request
3510 @param is_add - add security mode if non-zero, else delete
3511 @param sw_if_index - index of the interface
3512 @param spd_id - SPD instance id to use for lookups
3516 define ipsec_interface_add_del_spd
3526 /** \brief Reply for IPsec: Add/delete SPD from interface
3527 @param context - returned sender context, to match reply w/ request
3528 @param retval - return code
3531 define ipsec_interface_add_del_spd_reply
3537 /** \brief IPsec: Add/delete Security Policy Database entry
3539 See RFC 4301, 4.4.1.1 on how to match packet to selectors
3541 @param client_index - opaque cookie to identify the sender
3542 @param context - sender context, to match reply w/ request
3543 @param is_add - add SPD if non-zero, else delete
3544 @param spd_id - SPD instance id (control plane allocated)
3545 @param priority - priority of SPD entry (non-unique value). Used to order SPD matching - higher priorities match before lower
3546 @param is_outbound - entry applies to outbound traffic if non-zero, otherwise applies to inbound traffic
3547 @param is_ipv6 - remote/local address are IPv6 if non-zero, else IPv4
3548 @param remote_address_start - start of remote address range to match
3549 @param remote_address_stop - end of remote address range to match
3550 @param local_address_start - start of local address range to match
3551 @param local_address_stop - end of local address range to match
3552 @param protocol - protocol type to match [0 means any]
3553 @param remote_port_start - start of remote port range to match ...
3554 @param remote_port_stop - end of remote port range to match [0 to 65535 means ANY, 65535 to 0 means OPAQUE]
3555 @param local_port_start - start of local port range to match ...
3556 @param local_port_stop - end of remote port range to match [0 to 65535 means ANY, 65535 to 0 means OPAQUE]
3557 @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)
3558 @param sa_id - SAD instance id (control plane allocated)
3562 define ipsec_spd_add_del_entry
3575 u8 remote_address_start[16];
3576 u8 remote_address_stop[16];
3577 u8 local_address_start[16];
3578 u8 local_address_stop[16];
3582 u16 remote_port_start;
3583 u16 remote_port_stop;
3584 u16 local_port_start;
3585 u16 local_port_stop;
3592 /** \brief Reply for IPsec: Add/delete Security Policy Database entry
3593 @param context - returned sender context, to match reply w/ request
3594 @param retval - return code
3597 define ipsec_spd_add_del_entry_reply
3603 /** \brief IPsec: Add/delete Security Association Database entry
3604 @param client_index - opaque cookie to identify the sender
3605 @param context - sender context, to match reply w/ request
3606 @param is_add - add SAD entry if non-zero, else delete
3608 @param sad_id - sad id
3610 @param spi - security parameter index
3612 @param protocol - 0 = AH, 1 = ESP
3614 @param crypto_algorithm - 0 = Null, 1 = AES-CBC-128, 2 = AES-CBC-192, 3 = AES-CBC-256, 4 = 3DES-CBC
3615 @param crypto_key_length - length of crypto_key in bytes
3616 @param crypto_key - crypto keying material
3618 @param integrity_algorithm - 0 = None, 1 = MD5-96, 2 = SHA1-96, 3 = SHA-256, 4 = SHA-384, 5=SHA-512
3619 @param integrity_key_length - length of integrity_key in bytes
3620 @param integrity_key - integrity keying material
3622 @param use_extended_sequence_number - use ESN when non-zero
3624 @param is_tunnel - IPsec tunnel mode if non-zero, else transport mode
3625 @param is_tunnel_ipv6 - IPsec tunnel mode is IPv6 if non-zero, else IPv4 tunnel only valid if is_tunnel is non-zero
3626 @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
3627 @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
3631 IPsec tunnel address copy mode (to support GDOI)
3634 define ipsec_sad_add_del_entry
3646 u8 crypto_algorithm;
3647 u8 crypto_key_length;
3650 u8 integrity_algorithm;
3651 u8 integrity_key_length;
3652 u8 integrity_key[128];
3654 u8 use_extended_sequence_number;
3658 u8 tunnel_src_address[16];
3659 u8 tunnel_dst_address[16];
3662 /** \brief Reply for IPsec: Add/delete Security Association Database entry
3663 @param context - returned sender context, to match reply w/ request
3664 @param retval - return code
3667 define ipsec_sad_add_del_entry_reply
3673 /** \brief IPsec: Update Security Association keys
3674 @param client_index - opaque cookie to identify the sender
3675 @param context - sender context, to match reply w/ request
3677 @param sa_id - sa id
3679 @param crypto_key_length - length of crypto_key in bytes
3680 @param crypto_key - crypto keying material
3682 @param integrity_key_length - length of integrity_key in bytes
3683 @param integrity_key - integrity keying material
3686 define ipsec_sa_set_key
3693 u8 crypto_key_length;
3696 u8 integrity_key_length;
3697 u8 integrity_key[128];
3700 /** \brief Reply for IPsec: Update Security Association keys
3701 @param context - returned sender context, to match reply w/ request
3702 @param retval - return code
3705 define ipsec_sa_set_key_reply
3711 /** \brief IKEv2: Add/delete profile
3712 @param client_index - opaque cookie to identify the sender
3713 @param context - sender context, to match reply w/ request
3715 @param name - IKEv2 profile name
3716 @param is_add - Add IKEv2 profile if non-zero, else delete
3718 define ikev2_profile_add_del
3727 /** \brief Reply for IKEv2: Add/delete profile
3728 @param context - returned sender context, to match reply w/ request
3729 @param retval - return code
3731 define ikev2_profile_add_del_reply
3737 /** \brief IKEv2: Set IKEv2 profile authentication method
3738 @param client_index - opaque cookie to identify the sender
3739 @param context - sender context, to match reply w/ request
3741 @param name - IKEv2 profile name
3742 @param auth_method - IKEv2 authentication method (shared-key-mic/rsa-sig)
3743 @param is_hex - Authentication data in hex format if non-zero, else string
3744 @param data_len - Authentication data length
3745 @param data - Authentication data (for rsa-sig cert file path)
3747 define ikev2_profile_set_auth
3759 /** \brief Reply for IKEv2: Set IKEv2 profile authentication method
3760 @param context - returned sender context, to match reply w/ request
3761 @param retval - return code
3763 define ikev2_profile_set_auth_reply
3769 /** \brief IKEv2: Set IKEv2 profile local/remote identification
3770 @param client_index - opaque cookie to identify the sender
3771 @param context - sender context, to match reply w/ request
3773 @param name - IKEv2 profile name
3774 @param is_local - Identification is local if non-zero, else remote
3775 @param id_type - Identification type
3776 @param data_len - Identification data length
3777 @param data - Identification data
3779 define ikev2_profile_set_id
3791 /** \brief Reply for IKEv2:
3792 @param context - returned sender context, to match reply w/ request
3793 @param retval - return code
3795 define ikev2_profile_set_id_reply
3801 /** \brief IKEv2: Set IKEv2 profile traffic selector parameters
3802 @param client_index - opaque cookie to identify the sender
3803 @param context - sender context, to match reply w/ request
3805 @param name - IKEv2 profile name
3806 @param is_local - Traffic selector is local if non-zero, else remote
3807 @param proto - Traffic selector IP protocol (if zero not relevant)
3808 @param start_port - The smallest port number allowed by traffic selector
3809 @param end_port - The largest port number allowed by traffic selector
3810 @param start_addr - The smallest address included in traffic selector
3811 @param end_addr - The largest address included in traffic selector
3813 define ikev2_profile_set_ts
3827 /** \brief Reply for IKEv2: Set IKEv2 profile traffic selector parameters
3828 @param context - returned sender context, to match reply w/ request
3829 @param retval - return code
3831 define ikev2_profile_set_ts_reply
3837 /** \brief IKEv2: Set IKEv2 local RSA private key
3838 @param client_index - opaque cookie to identify the sender
3839 @param context - sender context, to match reply w/ request
3841 @param key_file - Key file absolute path
3843 define ikev2_set_local_key
3851 /** \brief Reply for IKEv2: Set IKEv2 local key
3852 @param context - returned sender context, to match reply w/ request
3853 @param retval - return code
3855 define ikev2_set_local_key_reply
3861 /** \brief Tell client about a DHCP completion event
3862 @param client_index - opaque cookie to identify the sender
3863 @param pid - client pid registered to receive notification
3864 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
3865 @param host_address - Host IP address
3866 @param router_address - Router IP address
3867 @param host_mac - Host MAC address
3869 define dhcp_compl_event
3875 u8 host_address[16];
3876 u8 router_address[16];
3880 /** \brief Add MAP domains
3881 @param client_index - opaque cookie to identify the sender
3882 @param context - sender context, to match reply w/ request
3883 @param ip6_prefix - Rule IPv6 prefix
3884 @param ip4_prefix - Rule IPv4 prefix
3885 @param ip6_src - MAP domain IPv6 BR address / Tunnel source
3886 @param ip6_prefix_len - Rule IPv6 prefix length
3887 @param ip4_prefix_len - Rule IPv4 prefix length
3888 @param ea_bits_len - Embedded Address bits length
3889 @param psid_offset - Port Set Identifider (PSID) offset
3890 @param psid_length - PSID length
3891 @param is_translation - MAP-E / MAP-T
3894 define map_add_domain
3903 u8 ip6_src_prefix_len;
3911 /** \brief Reply for MAP domain add
3912 @param context - returned sender context, to match reply w/ request
3913 @param index - MAP domain index
3914 @param retval - return code
3916 define map_add_domain_reply
3923 /** \brief Delete MAP domain
3924 @param client_index - opaque cookie to identify the sender
3925 @param context - sender context, to match reply w/ request
3926 @param index - MAP Domain index
3928 define map_del_domain
3935 /** \brief Reply for MAP domain del
3936 @param context - returned sender context, to match reply w/ request
3937 @param retval - return code
3939 define map_del_domain_reply
3945 /** \brief Add or Delete MAP rule from a domain (Only used for shared IPv4 per subscriber)
3946 @param client_index - opaque cookie to identify the sender
3947 @param context - sender context, to match reply w/ request
3948 @param index - MAP Domain index
3949 @param is_add - If 1 add rule, if 0 delete rule
3950 @param ip6_dst - MAP CE IPv6 address
3951 @param psid - Rule PSID
3953 define map_add_del_rule
3963 /** \brief Reply for MAP rule add/del
3964 @param context - returned sender context, to match reply w/ request
3965 @param retval - return code
3967 define map_add_del_rule_reply
3973 /** \brief Get list of map domains
3974 @param client_index - opaque cookie to identify the sender
3976 define map_domain_dump
3982 define map_domain_details
4000 define map_rule_dump
4007 define map_rule_details
4014 /** \brief Request for a single block of summary stats
4015 @param client_index - opaque cookie to identify the sender
4016 @param context - sender context, to match reply w/ request
4018 define map_summary_stats
4024 /** \brief Reply for map_summary_stats request
4025 @param context - sender context, to match reply w/ request
4026 @param retval - return code for request
4027 @param total_bindings -
4029 @param total_ip4_fragments -
4030 @param total_security_check -
4032 define map_summary_stats_reply
4039 u64 total_ip4_fragments;
4040 u64 total_security_check[2];
4043 /** \brief cop: enable/disable junk filtration features on an interface
4044 @param client_index - opaque cookie to identify the sender
4045 @param context - sender context, to match reply w/ request
4046 @param sw_if_inded - desired interface
4047 @param enable_disable - 1 => enable, 0 => disable
4050 define cop_interface_enable_disable
4058 /** \brief cop: interface enable/disable junk filtration reply
4059 @param context - returned sender context, to match reply w/ request
4060 @param retval - return code
4063 define cop_interface_enable_disable_reply
4069 /** \brief cop: enable/disable whitelist filtration features on an interface
4070 Note: the supplied fib_id must match in order to remove the feature!
4072 @param client_index - opaque cookie to identify the sender
4073 @param context - sender context, to match reply w/ request
4074 @param sw_if_index - interface handle, physical interfaces only
4075 @param fib_id - fib identifier for the whitelist / blacklist fib
4076 @param ip4 - 1 => enable ip4 filtration, 0=> disable ip4 filtration
4077 @param ip6 - 1 => enable ip6 filtration, 0=> disable ip6 filtration
4078 @param default_cop - 1 => enable non-ip4, non-ip6 filtration 0=> disable it
4081 define cop_whitelist_enable_disable
4092 /** \brief cop: interface enable/disable junk filtration reply
4093 @param context - returned sender context, to match reply w/ request
4094 @param retval - return code
4097 define cop_whitelist_enable_disable_reply
4103 /** \brief get_node_graph - get a copy of the vpp node graph
4104 including the current set of graph arcs.
4106 @param client_index - opaque cookie to identify the sender
4107 @param context - sender context, to match reply w/ request
4110 define get_node_graph
4116 /** \brief get_node_graph_reply
4117 @param context - returned sender context, to match reply w/ request
4118 @param retval - return code
4119 @param reply_in_shmem - result from vlib_node_serialize, in shared
4120 memory. Process with vlib_node_unserialize, remember to switch
4121 heaps and free the result.
4124 define get_node_graph_reply
4131 /** \brief IOAM enable : Enable in-band OAM
4132 @param id - profile id
4133 @param seqno - To enable Seqno Processing
4134 @param analyse - Enabling analysis of iOAM at decap node
4135 @param pow_enable - Proof of Work enabled or not flag
4136 @param trace_enable - iOAM Trace enabled or not flag
4150 /** \brief iOAM Trace profile add / del response
4151 @param context - sender context, to match reply w/ request
4152 @param retval - return value for request
4154 define ioam_enable_reply
4160 /** \brief iOAM disable
4161 @param client_index - opaque cookie to identify the sender
4162 @param context - sender context, to match reply w/ request
4163 @param index - MAP Domain index
4172 /** \brief iOAM disable response
4173 @param context - sender context, to match reply w/ request
4174 @param retval - return value for request
4176 define ioam_disable_reply
4182 /** \brief Create host-interface
4183 @param client_index - opaque cookie to identify the sender
4184 @param context - sender context, to match reply w/ request
4185 @param host_if_name - interface name
4186 @param hw_addr - interface MAC
4187 @param use_random_hw_addr - use random generated MAC
4189 define af_packet_create
4194 u8 host_if_name[64];
4196 u8 use_random_hw_addr;
4199 /** \brief Create host-interface response
4200 @param context - sender context, to match reply w/ request
4201 @param retval - return value for request
4203 define af_packet_create_reply
4210 /** \brief Delete host-interface
4211 @param client_index - opaque cookie to identify the sender
4212 @param context - sender context, to match reply w/ request
4213 @param host_if_name - interface name
4215 define af_packet_delete
4220 u8 host_if_name[64];
4223 /** \brief Delete host-interface response
4224 @param context - sender context, to match reply w/ request
4225 @param retval - return value for request
4227 define af_packet_delete_reply
4233 /** \brief Add/del policer
4234 @param client_index - opaque cookie to identify the sender
4235 @param context - sender context, to match reply w/ request
4236 @param is_add - add policer if non-zero, else delete
4237 @param name - policer name
4240 @param cb - Committed Burst
4241 @param eb - Excess or Peak Burst
4242 @param rate_type - rate type
4243 @param round_type - rounding type
4244 @param type - policer algorithm
4245 @param color_aware - 0=color-blind, 1=color-aware
4246 @param conform_action_type - conform action type
4247 @param conform_dscp - DSCP for conform mar-and-transmit action
4248 @param exceed_action_type - exceed action type
4249 @param exceed_dscp - DSCP for exceed mar-and-transmit action
4250 @param violate_action_type - violate action type
4251 @param violate_dscp - DSCP for violate mar-and-transmit action
4253 define policer_add_del
4268 u8 conform_action_type;
4270 u8 exceed_action_type;
4272 u8 violate_action_type;
4276 /** \brief Add/del policer response
4277 @param context - sender context, to match reply w/ request
4278 @param retval - return value for request
4279 @param policer_index - for add, returned index of the new policer
4281 define policer_add_del_reply
4288 /** \brief Get list of policers
4289 @param client_index - opaque cookie to identify the sender
4290 @param context - sender context, to match reply w/ request
4291 @param match_name_valid - if 0 request all policers otherwise use match_name
4292 @param match_name - policer name
4299 u8 match_name_valid;
4303 /** \brief Policer operational state response.
4304 @param context - sender context, to match reply w/ request
4305 @param name - policer name
4308 @param cb - Committed Burst
4309 @param eb - Excess or Peak Burst
4310 @param rate_type - rate type
4311 @param round_type - rounding type
4312 @param type - policer algorithm
4313 @param conform_action_type - conform action type
4314 @param conform_dscp - DSCP for conform mar-and-transmit action
4315 @param exceed_action_type - exceed action type
4316 @param exceed_dscp - DSCP for exceed mar-and-transmit action
4317 @param violate_action_type - violate action type
4318 @param violate_dscp - DSCP for violate mar-and-transmit action
4319 @param single_rate - 1 = single rate policer, 0 = two rate policer
4320 @param color_aware - for hierarchical policing
4321 @param scale - power-of-2 shift amount for lower rates
4322 @param cir_tokens_per_period - number of tokens for each period
4323 @param pir_tokens_per_period - number of tokens for each period for 2-rate policer
4324 @param current_limit - current limit
4325 @param current_bucket - current bucket
4326 @param extended_limit - extended limit
4327 @param extended_bucket - extended bucket
4328 @param last_update_time - last update time
4330 define policer_details
4342 u8 conform_action_type;
4344 u8 exceed_action_type;
4346 u8 violate_action_type;
4351 u32 cir_tokens_per_period;
4352 u32 pir_tokens_per_period;
4356 u32 extended_bucket;
4357 u64 last_update_time;
4360 /** \brief Set/unset policer classify interface
4361 @param client_index - opaque cookie to identify the sender
4362 @param context - sender context, to match reply w/ request
4363 @param sw_if_index - interface to set/unset policer classify
4364 @param ip4_table_index - ip4 classify table index (~0 for skip)
4365 @param ip6_table_index - ip6 classify table index (~0 for skip)
4366 @param l2_table_index - l2 classify table index (~0 for skip)
4367 @param is_add - Set if non-zero, else unset
4368 Note: User is recommeneded to use just one valid table_index per call.
4369 (ip4_table_index, ip6_table_index, or l2_table_index)
4371 define policer_classify_set_interface
4376 u32 ip4_table_index;
4377 u32 ip6_table_index;
4382 /** \brief Set/unset policer classify interface response
4383 @param context - sender context, to match reply w/ request
4384 @param retval - return value for request
4386 define policer_classify_set_interface_reply
4392 /** \brief Get list of policer classify interfaces and tables
4393 @param client_index - opaque cookie to identify the sender
4394 @param context - sender context, to match reply w/ request
4395 @param type - classify table type
4397 define policer_classify_dump
4404 /** \brief Policer iclassify operational state response.
4405 @param context - sender context, to match reply w/ request
4406 @param sw_if_index - software interface index
4407 @param table_index - classify table index
4409 define policer_classify_details
4416 /** \brief Create netmap
4417 @param client_index - opaque cookie to identify the sender
4418 @param context - sender context, to match reply w/ request
4419 @param netmap_if_name - interface name
4420 @param hw_addr - interface MAC
4421 @param use_random_hw_addr - use random generated MAC
4422 @param is_pipe - is pipe
4423 @param is_master - 0=slave, 1=master
4425 define netmap_create
4430 u8 netmap_if_name[64];
4432 u8 use_random_hw_addr;
4437 /** \brief Create netmap response
4438 @param context - sender context, to match reply w/ request
4439 @param retval - return value for request
4441 define netmap_create_reply
4447 /** \brief Delete netmap
4448 @param client_index - opaque cookie to identify the sender
4449 @param context - sender context, to match reply w/ request
4450 @param netmap_if_name - interface name
4452 define netmap_delete
4457 u8 netmap_if_name[64];
4460 /** \brief Delete netmap response
4461 @param context - sender context, to match reply w/ request
4462 @param retval - return value for request
4464 define netmap_delete_reply
4470 /** \brief Classify get table IDs request
4471 @param client_index - opaque cookie to identify the sender
4472 @param context - sender context, to match reply w/ request
4474 define classify_table_ids
4480 /** \brief Reply for classify get table IDs request
4481 @param context - sender context which was passed in the request
4482 @param count - number of ids returned in response
4483 @param ids - array of classify table ids
4485 define classify_table_ids_reply
4493 /** \brief Classify table ids by interface index request
4494 @param client_index - opaque cookie to identify the sender
4495 @param context - sender context, to match reply w/ request
4496 @param sw_if_index - index of the interface
4498 define classify_table_by_interface
4505 /** \brief Reply for classify table id by interface index request
4506 @param context - sender context which was passed in the request
4507 @param count - number of ids returned in response
4508 @param sw_if_index - index of the interface
4509 @param l2_table_id - l2 classify table index
4510 @param ip4_table_id - ip4 classify table index
4511 @param ip6_table_id - ip6 classify table index
4513 define classify_table_by_interface_reply
4523 /** \brief Classify table info
4524 @param client_index - opaque cookie to identify the sender
4525 @param context - sender context, to match reply w/ request
4526 @param table_id - classify table index
4528 define classify_table_info
4535 /** \brief Reply for classify table info request
4536 @param context - sender context which was passed in the request
4537 @param count - number of ids returned in response
4538 @param table_id - classify table index
4539 @param nbuckets - number of buckets when adding a table
4540 @param match_n_vectors - number of match vectors
4541 @param skip_n_vectors - number of skip_n_vectors
4542 @param active_sessions - number of sessions (active entries)
4543 @param next_table_index - index of next table
4544 @param miss_next_index - index of miss table
4545 @param mask[] - match mask
4547 define classify_table_info_reply
4553 u32 match_n_vectors;
4555 u32 active_sessions;
4556 u32 next_table_index;
4557 u32 miss_next_index;
4559 u8 mask[mask_length];
4562 /** \brief Classify sessions dump request
4563 @param client_index - opaque cookie to identify the sender
4564 @param context - sender context, to match reply w/ request
4565 @param table_id - classify table index
4567 define classify_session_dump
4574 /** \brief Reply for classify table session dump request
4575 @param context - sender context which was passed in the request
4576 @param count - number of ids returned in response
4577 @param table_id - classify table index
4578 @param hit_next_index - hit_next_index of session
4579 @param opaque_index - for add, opaque_index of session
4580 @param advance - advance value of session
4581 @param match[] - match value for session
4583 define classify_session_details
4592 u8 match[match_length];
4595 /** \brief Configure IPFIX exporter process request
4596 @param client_index - opaque cookie to identify the sender
4597 @param context - sender context, to match reply w/ request
4598 @param collector_address - address of IPFIX collector
4599 @param collector_port - port of IPFIX collector
4600 @param src_address - address of IPFIX exporter
4601 @param vrf_id - VRF / fib table ID
4602 @param path_mtu - Path MTU between exporter and collector
4603 @param template_interval - number of seconds after which to resend template
4604 @param udp_checksum - UDP checksum calculation enable flag
4606 define set_ipfix_exporter
4610 u8 collector_address[16];
4615 u32 template_interval;
4619 /** \brief Reply to IPFIX exporter configure request
4620 @param context - sender context which was passed in the request
4622 define set_ipfix_exporter_reply
4628 /** \brief IPFIX exporter dump request
4629 @param client_index - opaque cookie to identify the sender
4630 @param context - sender context, to match reply w/ request
4632 define ipfix_exporter_dump
4638 /** \brief Reply to IPFIX exporter dump request
4639 @param context - sender context which was passed in the request
4640 @param collector_address - address of IPFIX collector
4641 @param collector_port - port of IPFIX collector
4642 @param src_address - address of IPFIX exporter
4643 @param fib_index - fib table index
4644 @param path_mtu - Path MTU between exporter and collector
4645 @param template_interval - number of seconds after which to resend template
4646 @param udp_checksum - UDP checksum calculation enable flag
4648 define ipfix_exporter_details
4651 u8 collector_address[16];
4656 u32 template_interval;
4660 /** \brief IPFIX classify stream configure request
4661 @param client_index - opaque cookie to identify the sender
4662 @param context - sender context, to match reply w/ request
4663 @param domain_id - domain ID reported in IPFIX messages for classify stream
4664 @param src_port - source port of UDP session for classify stream
4666 define set_ipfix_classify_stream {
4673 /** \brief IPFIX classify stream configure response
4674 @param context - sender context, to match reply w/ request
4675 @param retval - return value for request
4677 define set_ipfix_classify_stream_reply {
4682 /** \brief IPFIX classify stream dump request
4683 @param client_index - opaque cookie to identify the sender
4684 @param context - sender context, to match reply w/ request
4686 define ipfix_classify_stream_dump {
4691 /** \brief Reply to IPFIX classify stream dump request
4692 @param context - sender context, to match reply w/ request
4693 @param domain_id - domain ID reported in IPFIX messages for classify stream
4694 @param src_port - source port of UDP session for classify stream
4696 define ipfix_classify_stream_details {
4702 /** \brief IPFIX add or delete classifier table request
4703 @param client_index - opaque cookie to identify the sender
4704 @param context - sender context, to match reply w/ request
4705 @param table_id - classifier table ID
4706 @param ip_version - version of IP used in the classifier table
4707 @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
4709 define ipfix_classify_table_add_del {
4714 u8 transport_protocol;
4718 /** \brief IPFIX add classifier table response
4719 @param context - sender context which was passed in the request
4721 define ipfix_classify_table_add_del_reply {
4726 /** \brief IPFIX classify tables dump request
4727 @param client_index - opaque cookie to identify the sender
4728 @param context - sender context, to match reply w/ request
4730 define ipfix_classify_table_dump {
4735 /** \brief Reply to IPFIX classify tables dump request
4736 @param context - sender context, to match reply w/ request
4737 @param table_id - classifier table ID
4738 @param ip_version - version of IP used in the classifier table
4739 @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
4741 define ipfix_classify_table_details {
4745 u8 transport_protocol;
4748 /** \brief Set/unset flow classify interface
4749 @param client_index - opaque cookie to identify the sender
4750 @param context - sender context, to match reply w/ request
4751 @param sw_if_index - interface to set/unset flow classify
4752 @param ip4_table_index - ip4 classify table index (~0 for skip)
4753 @param ip6_table_index - ip6 classify table index (~0 for skip)
4754 @param l2_table_index - l2 classify table index (~0 for skip)
4755 @param is_add - Set if non-zero, else unset
4756 Note: User is recommeneded to use just one valid table_index per call.
4757 (ip4_table_index, ip6_table_index, or l2_table_index)
4759 define flow_classify_set_interface {
4763 u32 ip4_table_index;
4764 u32 ip6_table_index;
4768 /** \brief Set/unset flow classify interface response
4769 @param context - sender context, to match reply w/ request
4770 @param retval - return value for request
4772 define flow_classify_set_interface_reply {
4777 /** \brief Get list of flow classify interfaces and tables
4778 @param client_index - opaque cookie to identify the sender
4779 @param context - sender context, to match reply w/ request
4780 @param type - classify table type
4782 define flow_classify_dump {
4788 /** \brief Flow classify operational state response.
4789 @param context - sender context, to match reply w/ request
4790 @param sw_if_index - software interface index
4791 @param table_index - classify table index
4793 define flow_classify_details {
4799 /** \brief Enable/Disable span to mirror traffic from one interface to another
4800 @param client_index - opaque cookie to identify the sender
4801 @param context - sender context which was passed in the request
4802 @param sw_if_index_from - interface to be mirorred
4803 @param sw_if_index_to - interface where the traffic is mirrored
4804 @param enable - 1 enable SPAN, 0 SPAN on given interface
4806 define sw_interface_span_enable_disable{
4809 u32 sw_if_index_from;
4814 /** \brief Reply to SPAN enable/disable request
4815 @param context - sender context which was passed in the request
4817 define sw_interface_span_enable_disable_reply {
4822 /** \brief SPAN dump request
4823 @param client_index - opaque cookie to identify the sender
4824 @param context - sender context, to match reply w/ request
4826 define sw_interface_span_dump {
4831 /** \brief Reply to SPAN dump request
4832 @param context - sender context which was passed in the request
4833 @param sw_if_index_from - mirorred interface
4834 @param sw_if_index_to - interface where the traffic is mirrored
4836 define sw_interface_span_details {
4838 u32 sw_if_index_from;
4842 /** \brief Query relative index via node names
4843 @param client_index - opaque cookie to identify the sender
4844 @param context - sender context, to match reply w/ request
4845 @param node_name - name of node to find relative index from
4846 @param next_name - next node from node_name to find relative index of
4848 define get_next_index
4856 /** \brief Reply for get next node index
4857 @param context - sender context which was passed in the request
4858 @param retval - return value
4859 @param next_index - index of the next_node
4861 define get_next_index_reply
4868 /** \brief PacketGenerator create interface request
4869 @param client_index - opaque cookie to identify the sender
4870 @param context - sender context, to match reply w/ request
4871 @param interface_id - interface index
4873 define pg_create_interface
4880 /** \brief PacketGenerator create interface response
4881 @param context - sender context, to match reply w/ request
4882 @param retval - return value for request
4884 define pg_create_interface_reply
4891 /** \brief PacketGenerator capture packets on given interface request
4892 @param client_index - opaque cookie to identify the sender
4893 @param context - sender context, to match reply w/ request
4894 @param interface_id - pg interface index
4895 @param is_enabled - 1 if enabling streams, 0 if disabling
4896 @param count - number of packets to be captured
4897 @param pcap_file - pacp file name to store captured packets
4906 u32 pcap_name_length;
4907 u8 pcap_file_name[pcap_name_length];
4910 /** \brief PacketGenerator capture packets response
4911 @param context - sender context, to match reply w/ request
4912 @param retval - return value for request
4914 define pg_capture_reply
4920 /** \brief Enable / disable packet generator request
4921 @param client_index - opaque cookie to identify the sender
4922 @param context - sender context, to match reply w/ request
4923 @param is_enabled - 1 if enabling streams, 0 if disabling
4924 @param stream - stream name to be enable/disabled, if not specified handle all streams
4926 define pg_enable_disable
4931 u32 stream_name_length;
4932 u8 stream_name[stream_name_length];
4935 /** \brief Reply for enable / disable packet generator
4936 @param context - returned sender context, to match reply w/ request
4937 @param retval - return code
4939 define pg_enable_disable_reply
4945 /** \brief Configure IP source and L4 port-range check
4946 @param client_index - opaque cookie to identify the sender
4947 @param context - sender context, to match reply w/ request
4948 @param is_ip6 - 1 if source address type is IPv6
4949 @param is_add - 1 if add, 0 if delete
4950 @param mask_length - mask length for address entry
4951 @param address - array of address bytes
4952 @param number_of_ranges - length of low_port and high_port arrays (must match)
4953 @param low_ports[32] - up to 32 low end of port range entries (must have corresponding high_ports entry)
4954 @param high_ports[32] - up to 32 high end of port range entries (must have corresponding low_ports entry)
4955 @param vrf_id - fib table/vrf id to associate the source and port-range check with
4956 @note To specify a single port set low_port and high_port entry the same
4958 define ip_source_and_port_range_check_add_del
4966 u8 number_of_ranges;
4972 /** \brief Configure IP source and L4 port-range check reply
4973 @param context - returned sender context, to match reply w/ request
4974 @param retval - return code
4976 define ip_source_and_port_range_check_add_del_reply
4982 /** \brief Set interface source and L4 port-range request
4983 @param client_index - opaque cookie to identify the sender
4984 @param context - sender context, to match reply w/ request
4985 @param interface_id - interface index
4986 @param tcp_vrf_id - VRF associated with source and TCP port-range check
4987 @param udp_vrf_id - VRF associated with source and TCP port-range check
4989 define ip_source_and_port_range_check_interface_add_del
5001 /** \brief Set interface source and L4 port-range response
5002 @param context - sender context, to match reply w/ request
5003 @param retval - return value for request
5005 define ip_source_and_port_range_check_interface_add_del_reply
5011 /** \brief Add / del ipsec gre tunnel request
5012 @param client_index - opaque cookie to identify the sender
5013 @param context - sender context, to match reply w/ request
5014 @param local_sa_id - local SA id
5015 @param remote_sa_id - remote SA id
5016 @param is_add - 1 if adding the tunnel, 0 if deleting
5017 @param src_address - tunnel source address
5018 @param dst_address - tunnel destination address
5020 define ipsec_gre_add_del_tunnel {
5030 /** \brief Reply for add / del ipsec gre tunnel request
5031 @param context - returned sender context, to match reply w/ request
5032 @param retval - return code
5033 @param sw_if_index - software index of the new ipsec gre tunnel
5035 define ipsec_gre_add_del_tunnel_reply {
5041 /** \brief Dump ipsec gre tunnel table
5042 @param client_index - opaque cookie to identify the sender
5043 @param context - sender context, to match reply w/ request
5044 @param tunnel_index - gre tunnel identifier or -1 in case of all tunnels
5046 define ipsec_gre_tunnel_dump {
5052 /** \brief mpls gre tunnel operational state response
5053 @param context - returned sender context, to match reply w/ request
5054 @param sw_if_index - software index of the ipsec gre tunnel
5055 @param local_sa_id - local SA id
5056 @param remote_sa_id - remote SA id
5057 @param src_address - tunnel source address
5058 @param dst_address - tunnel destination address
5060 define ipsec_gre_tunnel_details {
5069 /** \brief Delete sub interface request
5070 @param client_index - opaque cookie to identify the sender
5071 @param context - sender context, to match reply w/ request
5072 @param sw_if_index - sw index of the interface that was created by create_subif
5074 define delete_subif {
5080 /** \brief Delete sub interface response
5081 @param context - sender context, to match reply w/ request
5082 @param retval - return code for the request
5084 define delete_subif_reply {
5089 /** \brief DPDK interface HQoS pipe profile set request
5090 @param client_index - opaque cookie to identify the sender
5091 @param context - sender context, to match reply w/ request
5092 @param sw_if_index - the interface
5093 @param subport - subport ID
5094 @param pipe - pipe ID within its subport
5095 @param profile - pipe profile ID
5097 define sw_interface_set_dpdk_hqos_pipe {
5106 /** \brief DPDK interface HQoS pipe profile set reply
5107 @param context - sender context, to match reply w/ request
5108 @param retval - request return code
5110 define sw_interface_set_dpdk_hqos_pipe_reply {
5115 /** \brief DPDK interface HQoS subport parameters set request
5116 @param client_index - opaque cookie to identify the sender
5117 @param context - sender context, to match reply w/ request
5118 @param sw_if_index - the interface
5119 @param subport - subport ID
5120 @param tb_rate - subport token bucket rate (measured in bytes/second)
5121 @param tb_size - subport token bucket size (measured in credits)
5122 @param tc_rate - subport traffic class 0 .. 3 rates (measured in bytes/second)
5123 @param tc_period - enforcement period for rates (measured in milliseconds)
5125 define sw_interface_set_dpdk_hqos_subport {
5136 /** \brief DPDK interface HQoS subport parameters set reply
5137 @param context - sender context, to match reply w/ request
5138 @param retval - request return code
5140 define sw_interface_set_dpdk_hqos_subport_reply {
5145 /** \brief DPDK interface HQoS tctbl entry set request
5146 @param client_index - opaque cookie to identify the sender
5147 @param context - sender context, to match reply w/ request
5148 @param sw_if_index - the interface
5149 @param entry - entry index ID
5150 @param tc - traffic class (0 .. 3)
5151 @param queue - traffic class queue (0 .. 3)
5153 define sw_interface_set_dpdk_hqos_tctbl {
5162 /** \brief DPDK interface HQoS tctbl entry set reply
5163 @param context - sender context, to match reply w/ request
5164 @param retval - request return code
5166 define sw_interface_set_dpdk_hqos_tctbl_reply {
5171 /** \brief L2 interface pbb tag rewrite configure request
5172 @param client_index - opaque cookie to identify the sender
5173 @param context - sender context, to match reply w/ request
5174 @param sw_if_index - interface the operation is applied to
5175 @param vtr_op - Choose from l2_vtr_op_t enum values
5176 @param inner_tag - needed for translate_qinq vtr op only
5177 @param outer_tag - needed for translate_qinq vtr op only
5178 @param b_dmac - B-tag remote mac address, needed for any push or translate_qinq vtr op
5179 @param b_smac - B-tag local mac address, needed for any push or translate qinq vtr op
5180 @param b_vlanid - B-tag vlanid, needed for any push or translate qinq vtr op
5181 @param i_sid - I-tag service id, needed for any push or translate qinq vtr op
5183 define l2_interface_pbb_tag_rewrite
5196 /** \brief L2 interface pbb tag rewrite response
5197 @param context - sender context, to match reply w/ request
5198 @param retval - return code for the request
5200 define l2_interface_pbb_tag_rewrite_reply
5206 /** \brief Punt traffic to the host
5207 @param client_index - opaque cookie to identify the sender
5208 @param context - sender context, to match reply w/ request
5209 @param is_add - add punt if non-zero, else delete
5210 @param ipv - L3 protocol 4 - IPv4, 6 - IPv6, ~0 - All
5211 @param l4_protocol - L4 protocol to be punted, only UDP (0x11) is supported
5212 @param l4_port - TCP/UDP port to be punted
5223 /** \brief Reply to the punt request
5224 @param context - sender context which was passed in the request
5225 @param retval - return code of punt request
5233 /** \brief Dump ipsec policy database data
5234 @param client_index - opaque cookie to identify the sender
5235 @param context - sender context, to match reply w/ request
5236 @param spd_id - SPD instance id
5237 @param sa_id - SA id, optional, set to ~0 to see all policies in SPD
5239 define ipsec_spd_dump {
5246 /** \brief IPsec policy database response
5247 @param context - sender context which was passed in the request
5248 @param spd_id - SPD instance id
5249 @param priority - numeric value to control policy evaluation order
5250 @param is_outbound - [1|0] to indicate if direction is [out|in]bound
5251 @param is_ipv6 - [1|0] to indicate if address family is ipv[6|4]
5252 @param local_start_addr - first address in local traffic selector range
5253 @param local_stop_addr - last address in local traffic selector range
5254 @param local_start_port - first port in local traffic selector range
5255 @param local_stop_port - last port in local traffic selector range
5256 @param remote_start_addr - first address in remote traffic selector range
5257 @param remote_stop_addr - last address in remote traffic selector range
5258 @param remote_start_port - first port in remote traffic selector range
5259 @param remote_stop_port - last port in remote traffic selector range
5260 @param protocol - traffic selector protocol
5261 @param policy - policy action
5262 @param sa_id - SA id
5263 @param bytes - byte count of packets matching this policy
5264 @param packets - count of packets matching this policy
5267 define ipsec_spd_details {
5273 u8 local_start_addr[16];
5274 u8 local_stop_addr[16];
5275 u16 local_start_port;
5276 u16 local_stop_port;
5277 u8 remote_start_addr[16];
5278 u8 remote_stop_addr[16];
5279 u16 remote_start_port;
5280 u16 remote_stop_port;
5288 /** \brief Feature path enable/disable request
5289 @param client_index - opaque cookie to identify the sender
5290 @param context - sender context, to match reply w/ request
5291 @param sw_if_index - the interface
5292 @param enable - 1 = on, 0 = off
5294 define feature_enable_disable {
5300 u8 feature_name[64];
5303 /** \brief Reply to the eature path enable/disable request
5304 @param context - sender context which was passed in the request
5305 @param retval - return code for the request
5307 define feature_enable_disable_reply
5313 /** \brief Dump IP neighboors
5314 @param client_index - opaque cookie to identify the sender
5315 @param context - sender context, to match reply w/ request
5316 @param sw_if_index - the interface to dump neighboors
5317 @param is_ipv6 - [1|0] to indicate if address family is ipv[6|4]
5319 define ip_neighbor_dump
5327 /** \brief IP neighboors dump response
5328 @param context - sender context which was passed in the request
5329 @param is_static - [1|0] to indicate if neighbor is statically configured
5330 @param is_ipv6 - [1|0] to indicate if address family is ipv[6|4]
5332 define ip_neighbor_details {
5342 * eval: (c-set-style "gnu")