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.
22 option version = "1.0.0";
25 * Note: API placement cleanup in progress
26 * If you're looking for interface APIs, please
27 * see .../src/vnet/{interface.api,interface_api.c}
28 * IP APIs: see .../src/vnet/ip/{ip.api, ip_api.c}
29 * TAP APIs: see .../src/vnet/unix/{tap.api, tap_api.c}
30 * VXLAN APIs: see .../src/vnet/vxlan/{vxlan.api, vxlan_api.c}
31 * GENEVE APIs: see .../src/vnet/geneve/{geneve.api, geneve_api.c}
32 * LLDP APIs: see .../src/vnet/lldp/{lldp.api, lldp_api.c}
33 * AF-PACKET APIs: see ... /vnet/devices/af_packet/{af_packet.api, af_packet_api.c}
34 * NETMAP APIs: see ... /src/vnet/devices/netmap/{netmap.api, netmap_api.c}
35 * VHOST-USER APIs: see .../vnet/devices/virtio/{vhost_user.api, vhost_user_api.c}
36 * VXLAN GPE APIs: see .../src/vnet/vxlan-gpe/{vxlan_gpe.api, vxlan_gpe_api.c}
37 * GRE APIs: see .../src/vnet/gre/{gre.api, gre_api.c}
38 * L2 APIs: see .../src/vnet/l2/{l2.api, l2_api.c}
39 * L2TP APIs: see .../src/vnet/l2tp/{l2tp.api, l2tp_api.c}
40 * BFD APIs: see .../src/vnet/bfd/{bfd.api, bfd_api.c}
41 * IPSEC APIs: see .../src/vnet/ipsec/{ipsec.api, ipsec_api.c}
42 * IPSEC-GRE APIs: see .../src/vnet/ipsec-gre/{ipsec_gre.api, ipsec_gre_api.c}
43 * LISP APIs: see .../src/vnet/lisp/{lisp.api, lisp_api.c}
44 * LISP-GPE APIs: see .../src/vnet/lisp-gpe/{lisp_gpe.api, lisp_gpe_api.c}
45 * SESSION APIs: .../vnet/session/{session.api session_api.c}
46 * MPLS APIs: see .../src/vnet/mpls/{mpls.api, mpls_api.c}
47 * SR APIs: see .../src/vnet/srv6/{sr.api, sr_api.c}
48 * CLASSIFY APIs: see ... /src/vnet/classify/{classify.api, classify_api.c}
49 * FLOW APIs: see ... /src/vnet/flow/{flow.api, flow_api.c}
50 * DHCP APIs: see ... /src/vnet/dhcp/{dhcpk.api, dhcp_api.c}
51 * COP APIs: see ... /src/vnet/cop/{cop.api, cop_api.c}
52 * POLICER APIs: see ... /src/vnet/policer/{policer.api, policer_api.c}
53 * STATS APIs: see .../src/vpp/stats/{stats.api, stats.c}
54 * BIER APIs: see ... /src/vnet/policer/{bier.api, bier_api.c}
57 /** \brief Control ping from client to api server request
58 @param client_index - opaque cookie to identify the sender
59 @param context - sender context, to match reply w/ request
67 /** \brief Control ping from the client to the server response
68 @param client_index - opaque cookie to identify the sender
69 @param context - sender context, to match reply w/ request
70 @param retval - return code for the request
71 @param vpe_pid - the pid of the vpe, returned by the server
73 define control_ping_reply
81 /** \brief Process a vpe parser cli string request
82 @param client_index - opaque cookie to identify the sender
83 @param context - sender context, to match reply w/ request
84 @param cmd_in_shmem - pointer to cli command string
100 /** \brief vpe parser cli string response
101 @param context - sender context, to match reply w/ request
102 @param retval - return code for request
103 @param reply_in_shmem - Reply string from cli processing if any
111 define cli_inband_reply
119 /** \brief Get node index using name request
120 @param client_index - opaque cookie to identify the sender
121 @param context - sender context, to match reply w/ request
122 @param node_name[] - name of the node
124 define get_node_index
131 /** \brief Get node index using name request
132 @param context - sender context, to match reply w/ request
133 @param retval - return code for the request
134 @param node_index - index of the desired node if found, else ~0
136 define get_node_index_reply
143 /** \brief Set the next node for a given node request
144 @param client_index - opaque cookie to identify the sender
145 @param context - sender context, to match reply w/ request
146 @param node_name[] - node to add the next node to
147 @param next_name[] - node to add as the next node
157 /** \brief IP Set the next node for a given node response
158 @param context - sender context, to match reply w/ request
159 @param retval - return code for the add next node request
160 @param next_index - the index of the next node if success, else ~0
162 define add_node_next_reply
169 /** \brief show version
170 @param client_index - opaque cookie to identify the sender
171 @param context - sender context, to match reply w/ request
179 /** \brief show version response
180 @param context - sender context, to match reply w/ request
181 @param retval - return code for the request
182 @param program - name of the program (vpe)
183 @param version - version of the program
184 @param build_directory - root of the workspace where the program was built
186 define show_version_reply
193 u8 build_directory[256];
196 define get_node_graph
202 /** \brief get_node_graph_reply
203 @param context - returned sender context, to match reply w/ request
204 @param retval - return code
205 @param reply_in_shmem - result from vlib_node_serialize, in shared
206 memory. Process with vlib_node_unserialize, remember to switch
207 heaps and free the result.
210 define get_node_graph_reply
217 /** \brief Query relative index via node names
218 @param client_index - opaque cookie to identify the sender
219 @param context - sender context, to match reply w/ request
220 @param node_name - name of node to find relative index from
221 @param next_name - next node from node_name to find relative index of
223 define get_next_index
231 /** \brief Reply for get next node index
232 @param context - sender context which was passed in the request
233 @param retval - return value
234 @param next_index - index of the next_node
236 define get_next_index_reply
245 * eval: (c-set-style "gnu")