2 * Copyright (c) 2016 Cisco and/or its affiliates.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at:
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.
17 * @brief VPP control-plane API messages.
19 * This file defines VPP control-plane API messages which are generally
20 * called through a shared memory interface.
23 /** \brief Add/del S-NAT address range
24 @param client_index - opaque cookie to identify the sender
25 @param context - sender context, to match reply w/ request
26 @param is_ip4 - 1 if address type is IPv4
27 @param first_ip_address - first IP address
28 @param last_ip_address - last IP address
29 @param vrf_id - VRF id of tenant, ~0 means independent of VRF
30 @param is_add - 1 if add, 0 if delete
32 define snat_add_address_range {
36 u8 first_ip_address[16];
37 u8 last_ip_address[16];
42 /** \brief Add S-NAT address range reply
43 @param context - sender context, to match reply w/ request
44 @param retval - return code
46 define snat_add_address_range_reply {
51 /** \brief Dump S-NAT addresses
52 @param client_index - opaque cookie to identify the sender
53 @param context - sender context, to match reply w/ request
55 define snat_address_dump {
60 /** \brief S-NAT address details response
61 @param context - sender context, to match reply w/ request
62 @param is_ip4 - 1 if address type is IPv4
63 @param ip_address - IP address
64 @param vrf_id - VRF id of tenant, ~0 means independent of VRF
66 define snat_address_details {
73 /** \brief Enable/disable S-NAT feature on the interface
74 @param client_index - opaque cookie to identify the sender
75 @param context - sender context, to match reply w/ request
76 @param is_add - 1 if add, 0 if delete
77 @param is_inside - 1 if inside, 0 if outside
78 @param sw_if_index - software index of the interface
80 define snat_interface_add_del_feature {
88 /** \brief Enable/disable S-NAT feature on the interface reply
89 @param context - sender context, to match reply w/ request
90 @param retval - return code
92 define snat_interface_add_del_feature_reply {
97 /** \brief Dump interfaces with S-NAT feature
98 @param client_index - opaque cookie to identify the sender
99 @param context - sender context, to match reply w/ request
101 define snat_interface_dump {
106 /** \brief S-NAT interface details response
107 @param context - sender context, to match reply w/ request
108 @param is_inside - 1 if inside, 0 if outside
109 @param sw_if_index - software index of the interface
111 define snat_interface_details {
117 /** \brief Add/delete S-NAT static mapping
118 @param client_index - opaque cookie to identify the sender
119 @param context - sender context, to match reply w/ request
120 @param is_add - 1 if add, 0 if delete
121 @param is_ip4 - 1 if address type is IPv4
122 @param addr_only - 1 if address only mapping
123 @param local_ip_address - local IP address
124 @param external_ip_address - external IP address
125 @param protocol - IP protocol
126 @param local_port - local port number
127 @param external_port - external port number
128 @param external_sw_if_index - external interface (if set
129 external_ip_address is ignored)
130 @param vfr_id - VRF ID
132 define snat_add_static_mapping {
138 u8 local_ip_address[16];
139 u8 external_ip_address[16];
143 u32 external_sw_if_index;
147 /** \brief Add/delete S-NAT static mapping reply
148 @param context - sender context, to match reply w/ request
149 @param retval - return code
151 define snat_add_static_mapping_reply {
156 /** \brief Dump S-NAT static mappings
157 @param client_index - opaque cookie to identify the sender
158 @param context - sender context, to match reply w/ request
160 define snat_static_mapping_dump {
165 /** \brief S-NAT static mapping details response
166 @param context - sender context, to match reply w/ request
167 @param is_ip4 - 1 if address type is IPv4
168 @param addr_only - 1 if address only mapping
169 @param local_ip_address - local IP address
170 @param external_ip_address - external IP address
171 @param protocol - IP protocol
172 @param local_port - local port number
173 @param external_port - external port number
174 @param external_sw_if_index - external interface
175 @param vfr_id - VRF ID
177 define snat_static_mapping_details {
181 u8 local_ip_address[16];
182 u8 external_ip_address[16];
186 u32 external_sw_if_index;
190 /** \brief Control ping from client to api server request
191 @param client_index - opaque cookie to identify the sender
192 @param context - sender context, to match reply w/ request
194 define snat_control_ping
200 /** \brief Control ping from the client to the server response
201 @param client_index - opaque cookie to identify the sender
202 @param context - sender context, to match reply w/ request
203 @param retval - return code for the request
204 @param vpe_pid - the pid of the vpe, returned by the server
206 define snat_control_ping_reply
214 /** \brief Show S-NAT plugin startup config
215 @param client_index - opaque cookie to identify the sender
216 @param context - sender context, to match reply w/ request
218 define snat_show_config
224 /** \brief Show S-NAT plugin startup config reply
225 @param context - sender context, to match reply w/ request
226 @param retval - return code for the request
227 @param static_mapping_only - if 1 dynamic translations disabled
228 @param static_mapping_connection_tracking - if 1 create session data
229 @param translation_buckets - number of translation hash buckets
230 @param translation_memory_size - translation hash memory size
231 @param user_buckets - number of user hash buckets
232 @param user_memory_size - user hash memory size
233 @param max_translations_per_user - maximum number of translations per user
234 @param outside_vrf_id - outside VRF id
235 @param inside_vrf_id - default inside VRF id
237 define snat_show_config_reply
241 u8 static_mapping_only;
242 u8 static_mapping_connection_tracking;
243 u32 translation_buckets;
244 u32 translation_memory_size;
246 u32 user_memory_size;
247 u32 max_translations_per_user;
252 /** \brief Set S-NAT workers
253 @param client_index - opaque cookie to identify the sender
254 @param context - sender context, to match reply w/ request
255 @param worker_mask - S-NAT workers mask
257 define snat_set_workers {
263 /** \brief Set S-NAT workers reply
264 @param context - sender context, to match reply w/ request
265 @param retval - return code
267 define snat_set_workers_reply {
272 /** \brief Dump S-NAT workers
273 @param client_index - opaque cookie to identify the sender
274 @param context - sender context, to match reply w/ request
276 define snat_worker_dump {
281 /** \brief S-NAT workers details response
282 @param context - sender context, to match reply w/ request
283 @param worker_index - worker index
284 @param lcore_id - lcore ID
285 @param name - worker name
287 define snat_worker_details {
294 /** \brief Add/delete S-NAT pool address from specific interfce
295 @param client_index - opaque cookie to identify the sender
296 @param context - sender context, to match reply w/ request
297 @param is_add - 1 if add, 0 if delete
298 @param sw_if_index - software index of the interface
300 define snat_add_del_interface_addr {
308 /** \brief Add/delete S-NAT pool address from specific interfce reply
309 @param context - sender context, to match reply w/ request
310 @param retval - return code
312 define snat_add_del_interface_addr_reply {
317 /** \brief Dump S-NAT pool addresses interfaces
318 @param client_index - opaque cookie to identify the sender
319 @param context - sender context, to match reply w/ request
321 define snat_interface_addr_dump {
326 /** \brief S-NAT pool addresses interfaces details response
327 @param context - sender context, to match reply w/ request
328 @param sw_if_index - software index of the interface
330 define snat_interface_addr_details {
335 /** \brief Enable/disable S-NAT IPFIX logging
336 @param client_index - opaque cookie to identify the sender
337 @param context - sender context, to match reply w/ request
338 @param domain_id - observation domain ID
339 @param src_port - source port number
340 @param enable - 1 if enable, 0 if disable
342 define snat_ipfix_enable_disable {
350 /** \brief Enable/disable S-NAT IPFIX logging reply
351 @param context - sender context, to match reply w/ request
352 @param retval - return code
354 define snat_ipfix_enable_disable_reply {
359 /** \brief Dump S-NAT users
360 @param client_index - opaque cookie to identify the sender
361 @param context - sender context, to match reply w/ request
363 define snat_user_dump {
368 /** \brief S-NAT users response
369 @param context - sender context, to match reply w/ request
371 @param is_ip4 - 1 if address type is IPv4
372 @param ip_adress - IP address
373 @param nsessions - number of dynamic sessions
374 @param nstaticsessions - number of static sessions
376 define snat_user_details {
385 /** \brief S-NAT user's sessions
386 @param client_index - opaque cookie to identify the sender
387 @param context - sender context, to match reply w/ request
388 @param user_ip - IP address of the user to dump
389 @param vrf_id - VRF_ID
391 define snat_user_session_dump {
398 /** \brief S-NAT user's sessions response
399 @param context - sender context, to match reply w/ request
400 @param is_ip4 - 1 if address type is IPv4
401 @param outside_ip_address - outside IP address
402 @param outside_port - outside port
403 @param inside_ip_address - inside IP address
404 @param inside_port - inside port
405 @param protocol - protocol
406 @param is_static - 1 if session is static
407 @param last_heard - last heard timer
408 @param total_bytes - count of bytes sent through session
409 @param total_pkts - count of pakets sent through session
411 define snat_user_session_details {
414 u8 outside_ip_address[16];
416 u8 inside_ip_address[16];