FD.io VPP
v19.01.3-6-g70449b9b9
Vector Packet Processing
vpe.api
Go to the documentation of this file.
1
/*
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:
6
*
7
* http://www.apache.org/licenses/LICENSE-2.0
8
*
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
* See the License for the specific language governing permissions and
13
* limitations under the License.
14
*/
15
16
/** \file
17
18
This file defines vpe control-plane API messages which are generally
19
called through a shared memory interface.
20
*/
21
22
option
version
=
"1.1.0"
;
23
24
/*
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/{dhcp.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
* BIER APIs: see ... /src/vnet/policer/{bier.api, bier_api.c}
54
*/
55
56
/** \brief Control ping from client to api server request
57
@param client_index - opaque cookie to identify the sender
58
@param context - sender context, to match reply w/ request
59
*/
60
define control_ping
61
{
62
u32
client_index
;
63
u32
context
;
64
};
65
66
/** \brief Control ping from the client to the server response
67
@param client_index - opaque cookie to identify the sender
68
@param context - sender context, to match reply w/ request
69
@param retval - return code for the request
70
@param vpe_pid - the pid of the vpe, returned by the server
71
*/
72
define control_ping_reply
73
{
74
u32
context
;
75
i32
retval
;
76
u32
client_index
;
77
u32
vpe_pid
;
78
};
79
80
/** \brief Process a vpe parser cli string request
81
@param client_index - opaque cookie to identify the sender
82
@param context - sender context, to match reply w/ request
83
@param cmd_in_shmem - pointer to cli command string
84
*/
85
define cli
86
{
87
u32
client_index
;
88
u32
context
;
89
u64
cmd_in_shmem
;
90
};
91
define cli_inband
92
{
93
u32
client_index
;
94
u32
context
;
95
string
cmd
;
96
};
97
98
/** \brief vpe parser cli string response
99
@param context - sender context, to match reply w/ request
100
@param retval - return code for request
101
@param reply_in_shmem - Reply string from cli processing if any
102
*/
103
define cli_reply
104
{
105
u32
context
;
106
i32
retval
;
107
u64
reply_in_shmem
;
108
};
109
define cli_inband_reply
110
{
111
u32
context
;
112
i32
retval
;
113
string
reply
;
114
};
115
116
/** \brief Get node index using name request
117
@param client_index - opaque cookie to identify the sender
118
@param context - sender context, to match reply w/ request
119
@param node_name[] - name of the node
120
*/
121
define get_node_index
122
{
123
u32
client_index
;
124
u32
context
;
125
u8
node_name[64];
126
};
127
128
/** \brief Get node index using name request
129
@param context - sender context, to match reply w/ request
130
@param retval - return code for the request
131
@param node_index - index of the desired node if found, else ~0
132
*/
133
define get_node_index_reply
134
{
135
u32
context
;
136
i32
retval
;
137
u32
node_index
;
138
};
139
140
/** \brief Set the next node for a given node request
141
@param client_index - opaque cookie to identify the sender
142
@param context - sender context, to match reply w/ request
143
@param node_name[] - node to add the next node to
144
@param next_name[] - node to add as the next node
145
*/
146
define add_node_next
147
{
148
u32
client_index
;
149
u32
context
;
150
u8
node_name[64];
151
u8
next_name[64];
152
};
153
154
/** \brief IP Set the next node for a given node response
155
@param context - sender context, to match reply w/ request
156
@param retval - return code for the add next node request
157
@param next_index - the index of the next node if success, else ~0
158
*/
159
define add_node_next_reply
160
{
161
u32
context
;
162
i32
retval
;
163
u32
next_index
;
164
};
165
166
/** \brief show version
167
@param client_index - opaque cookie to identify the sender
168
@param context - sender context, to match reply w/ request
169
*/
170
define show_version
171
{
172
u32
client_index
;
173
u32
context
;
174
};
175
176
/** \brief show version response
177
@param context - sender context, to match reply w/ request
178
@param retval - return code for the request
179
@param program - name of the program (vpe)
180
@param version - version of the program
181
@param build_directory - root of the workspace where the program was built
182
*/
183
define show_version_reply
184
{
185
u32
context
;
186
i32
retval
;
187
string
program
;
188
string
version
;
189
string
build_date
;
190
string
build_directory
;
191
};
192
193
194
/** \brief show_threads display the information about vpp
195
threads running on system along with their process id,
196
cpu id, physical core and cpu socket.
197
*/
198
define show_threads
199
{
200
u32
client_index
;
201
u32
context
;
202
};
203
204
/** \brief thread data
205
@param id - thread index
206
@param name - thread name i.e. vpp_main or vpp_wk_0
207
@param type - thread type i.e. workers or stats
208
@param pid - thread Process Id
209
@param cpu_id - thread pinned to cpu.
210
"CPUs or Logical cores are the number of physical cores times
211
the number of threads that can run on each core through
212
the use of hyperthreading." (from unix.stackexchange.com)
213
@param core - thread pinned to actual physical core.
214
@param cpu_socket - thread is running on which cpu socket.
215
*/
216
typeonly define
thread_data
217
{
218
u32
id
;
219
u8
name
[64];
220
u8
type[64];
221
u32
pid
;
222
u32
cpu_id
;
223
u32
core
;
224
u32
cpu_socket
;
225
};
226
227
/** \brief show_threads_reply
228
@param context - returned sender context, to match reply w/ request
229
@param retval - return code
230
@param count - number of threads in thread_data array
231
@param thread_data - array of thread data
232
*/
233
define show_threads_reply
234
{
235
u32
context
;
236
i32
retval
;
237
u32
count
;
238
vl_api_thread_data_t
thread_data
[
count
];
239
};
240
241
define get_node_graph
242
{
243
u32
client_index
;
244
u32
context
;
245
};
246
247
/** \brief get_node_graph_reply
248
@param context - returned sender context, to match reply w/ request
249
@param retval - return code
250
@param reply_in_shmem - result from vlib_node_serialize, in shared
251
memory. Process with vlib_node_unserialize, remember to switch
252
heaps and free the result.
253
*/
254
255
define get_node_graph_reply
256
{
257
u32
context
;
258
i32
retval
;
259
u64
reply_in_shmem
;
260
};
261
262
/** \brief Query relative index via node names
263
@param client_index - opaque cookie to identify the sender
264
@param context - sender context, to match reply w/ request
265
@param node_name - name of node to find relative index from
266
@param next_name - next node from node_name to find relative index of
267
*/
268
define get_next_index
269
{
270
u32
client_index
;
271
u32
context
;
272
u8
node_name[64];
273
u8
next_name[64];
274
};
275
276
/** \brief Reply for get next node index
277
@param context - sender context which was passed in the request
278
@param retval - return value
279
@param next_index - index of the next_node
280
*/
281
define get_next_index_reply
282
{
283
u32
context
;
284
i32
retval
;
285
u32
next_index
;
286
};
287
288
/*
289
* Local Variables:
290
* eval: (c-set-style "gnu")
291
* End:
292
*/
vl_api_add_node_next_reply_t::retval
i32 retval
Definition:
vpe.api:162
vl_api_cli_reply_t::context
u32 context
Definition:
vpe.api:105
vl_api_show_threads_reply_t::count
u32 count
Definition:
vpe.api:237
vl_api_show_version_reply_t::program
string program
Definition:
vpe.api:187
vl_api_add_node_next_t::client_index
u32 client_index
Definition:
vpe.api:148
vl_api_show_threads_reply_t::context
u32 context
Definition:
vpe.api:235
vl_api_thread_data_t::cpu_id
u32 cpu_id
Definition:
vpe.api:222
vl_api_add_node_next_reply_t::next_index
u32 next_index
Definition:
vpe.api:163
vl_api_get_node_graph_reply_t::context
u32 context
Definition:
vpe.api:257
vl_api_show_version_t::client_index
u32 client_index
Definition:
vpe.api:172
u64
unsigned long u64
Definition:
types.h:89
vl_api_get_node_index_t::client_index
u32 client_index
Definition:
vpe.api:123
vl_api_get_next_index_reply_t::context
u32 context
Definition:
vpe.api:283
vl_api_thread_data_t::core
u32 core
Definition:
vpe.api:223
vl_api_show_version_t::context
u32 context
Definition:
vpe.api:173
thread_data
memif_thread_data_t thread_data[MAX_THREADS]
Definition:
main.c:109
vl_api_control_ping_t::client_index
u32 client_index
Definition:
vpe.api:62
vl_api_get_next_index_t::client_index
u32 client_index
Definition:
vpe.api:270
vl_api_get_next_index_reply_t::retval
i32 retval
Definition:
vpe.api:284
u8
unsigned char u8
Definition:
types.h:56
vl_api_cli_inband_reply_t::context
u32 context
Definition:
vpe.api:111
vl_api_cli_inband_t::client_index
u32 client_index
Definition:
vpe.api:93
vl_api_control_ping_reply_t::retval
i32 retval
Definition:
vpe.api:75
vl_api_control_ping_t::context
u32 context
Definition:
vpe.api:63
vl_api_show_version_reply_t::context
u32 context
Definition:
vpe.api:185
vl_api_thread_data_t::cpu_socket
u32 cpu_socket
Definition:
vpe.api:224
vl_api_cli_t::context
u32 context
Definition:
vpe.api:88
vl_api_control_ping_reply_t::vpe_pid
u32 vpe_pid
Definition:
vpe.api:77
u32
unsigned int u32
Definition:
types.h:88
vl_api_show_threads_t::context
u32 context
Definition:
vpe.api:201
vl_api_get_next_index_reply_t::next_index
u32 next_index
Definition:
vpe.api:285
vl_api_cli_t::cmd_in_shmem
u64 cmd_in_shmem
Definition:
vpe.api:89
vl_api_cli_reply_t::retval
i32 retval
Definition:
vpe.api:106
vl_api_control_ping_reply_t::client_index
u32 client_index
Definition:
vpe.api:76
vl_api_show_version_reply_t::version
string version
Definition:
vpe.api:188
vl_api_get_next_index_t::context
u32 context
Definition:
vpe.api:271
vl_api_get_node_index_reply_t::node_index
u32 node_index
Definition:
vpe.api:137
vl_api_get_node_index_reply_t::context
u32 context
Definition:
vpe.api:135
vl_api_cli_inband_reply_t::reply
string reply
Definition:
vpe.api:113
name
u8 name[64]
Definition:
memclnt.api:152
vl_api_cli_t::client_index
u32 client_index
Definition:
vpe.api:87
vl_api_thread_data_t::id
u32 id
Definition:
vpe.api:218
vl_api_add_node_next_t::context
u32 context
Definition:
vpe.api:149
vl_api_cli_inband_reply_t::retval
i32 retval
Definition:
vpe.api:112
vl_api_show_threads_t::client_index
u32 client_index
Definition:
vpe.api:200
vl_api_get_node_graph_t::client_index
u32 client_index
Definition:
vpe.api:243
vl_api_show_version_reply_t::build_date
string build_date
Definition:
vpe.api:189
vl_api_thread_data_t
thread data
Definition:
vpe.api:216
vl_api_show_threads_reply_t::retval
i32 retval
Definition:
vpe.api:236
i32
signed int i32
Definition:
types.h:77
version
option version
Definition:
vpe.api:22
vl_api_add_node_next_reply_t::context
u32 context
Definition:
vpe.api:161
vl_api_control_ping_reply_t::context
u32 context
Definition:
vpe.api:74
count
size_t count
Definition:
vapi.c:47
vl_api_get_node_graph_reply_t::retval
i32 retval
Definition:
vpe.api:258
vl_api_cli_reply_t::reply_in_shmem
u64 reply_in_shmem
Definition:
vpe.api:107
vl_api_cli_inband_t::context
u32 context
Definition:
vpe.api:94
vl_api_show_version_reply_t::build_directory
string build_directory
Definition:
vpe.api:190
vl_api_get_node_index_t::context
u32 context
Definition:
vpe.api:124
vl_api_get_node_graph_t::context
u32 context
Definition:
vpe.api:244
vl_api_get_node_index_reply_t::retval
i32 retval
Definition:
vpe.api:136
vl_api_show_version_reply_t::retval
i32 retval
Definition:
vpe.api:186
vl_api_thread_data_t::pid
u32 pid
Definition:
vpe.api:221
vl_api_get_node_graph_reply_t::reply_in_shmem
u64 reply_in_shmem
Definition:
vpe.api:259
vl_api_cli_inband_t::cmd
string cmd
Definition:
vpe.api:95
src
vpp
api
vpe.api
Generated on Mon Nov 25 2019 16:01:31 for FD.io VPP by
1.8.13