FD.io VPP  v18.10-34-gcce845e
Vector Packet Processing
memclnt.api
Go to the documentation of this file.
1 /* Hey Emacs use -*- mode: C -*- */
2 /*
3  * Copyright (c) 2015 Cisco and/or its affiliates.
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 option version = "2.0.0";
18 
19 /*
20  * Define services not following the normal conventions here
21  */
23  rpc memclnt_rx_thread_suspend returns null;
24  rpc memclnt_read_timeout returns null;
25  rpc rx_thread_exit returns null;
26  rpc trace_plugin_msg_ids returns null;
27 };
28 
29 /*
30  * Create a client registration
31  */
32 manual_print
33 define memclnt_create {
34  u32 context; /* opaque value to be returned in the reply */
35  i32 ctx_quota; /* requested punt context quota */
36  u64 input_queue; /* client's queue */
37  u8 name[64]; /* for show, find by name, whatever */
38  u32 api_versions[8]; /* client-server pairs use as desired */
39 };
40 
41 define memclnt_create_reply {
42  u32 context; /* opaque value from the create request */
43  i32 response; /* Non-negative = success */
44  u64 handle; /* handle by which vlib knows this client */
45  u32 index; /* index, used e.g. by API trace replay */
46  u64 message_table; /* serialized message table in shmem */
47 };
48 
49 /*
50  * Delete a client registration
51  */
52 manual_print
53 define memclnt_delete {
54  u32 index; /* index, used e.g. by API trace replay */
55  u64 handle; /* handle by which vlib knows this client */
56 };
57 
58 define memclnt_delete_reply {
59  i32 response; /* Non-negative = success */
60  u64 handle; /* in case the client wonders */
61 };
62 
63 /*
64  * Client RX thread exit
65  */
66 define rx_thread_exit {
68 };
69 
70 /*
71  * Client RX thread suspend
72  */
73 define memclnt_rx_thread_suspend {
75 };
76 
77 /*
78  * Client read timeout
79  */
80 define memclnt_read_timeout {
82 };
83 
84 /*
85  * RPC
86  */
87 autoreply define rpc_call {
90  u64 function;
95  u8 data[data_len];
96 };
97 
98 /*
99  * Lookup message-ID base by name
100  */
101 define get_first_msg_id {
104  u8 name[64];
105 };
106 
107 define get_first_msg_id_reply {
111 };
112 
113 /*
114  * Get API version table (includes built-in and plugins)
115  */
116 typeonly define module_version {
120  u8 name[64];
121 };
122 define api_versions {
125 };
126 define api_versions_reply {
131 };
132 
133 /*
134  * Trace the plugin message-id allocator
135  * so we stand a chance of dealing with different sets of plugins
136  * at api trace replay time
137  */
138 
139 manual_print define trace_plugin_msg_ids
140 {
143  u8 plugin_name[128];
146 };
147 
148 typedef message_table_entry
149 {
150  u16 index;
151  u8 name[64];
152 };
153 
154 /*
155  * Create a socket client registration.
156  */
157 define sockclnt_create {
158  u32 context; /* opaque value to be returned in the reply */
159  u8 name[64]; /* for show, find by name, whatever */
160 };
161 
162 define sockclnt_create_reply {
164  u32 context; /* opaque value from the create request */
165  i32 response; /* Non-negative = success */
166  u32 index; /* index, used e.g. by API trace replay */
168  vl_api_message_table_entry_t message_table[count];
169 };
170 
171 /*
172  * Delete a client registration
173  */
174 define sockclnt_delete {
177  u32 index; /* index, used e.g. by API trace replay */
178 };
179 
180 define sockclnt_delete_reply {
182  i32 response; /* Non-negative = success */
183 };
184 
185 /*
186  * Initialize shm api over socket api
187  */
188 autoreply define sock_init_shm {
193  u64 configs[nitems];
194 };
195 
196 /* define sock_init_shm_reply {
197  u32 client_index;
198  u32 context;
199  i32 retval;
200 }; */
201 
202 /*
203  * Memory client ping / response
204  * Only sent on inactive connections
205  */
206 autoreply define memclnt_keepalive
207 {
210 };
service
Definition: memclnt.api:22
typedef message_table_entry
Definition: memclnt.api:149
unsigned long u64
Definition: types.h:89
unsigned char u8
Definition: types.h:56
rpc memclnt_read_timeout returns null
Definition: memclnt.api:24
unsigned int u32
Definition: types.h:88
unsigned short u16
Definition: types.h:57
u8 name[64]
Definition: memclnt.api:151
signed int i32
Definition: types.h:77
option version
Definition: memclnt.api:17
size_t count
Definition: vapi.c:46