X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvlibmemory%2Fmemclnt.api;h=07c6d47b9fc31059f32811c328eeb5b4de2a77ba;hb=573f44c2f5c883753bc9880eead1bd662586521d;hp=0532d7b6a85734208caaf1b3d509c22fdcfe57a9;hpb=987e11dffecc4ec3f55ae3d2fa5d2cc40dcf91f0;p=vpp.git diff --git a/src/vlibmemory/memclnt.api b/src/vlibmemory/memclnt.api index 0532d7b6a85..07c6d47b9fc 100644 --- a/src/vlibmemory/memclnt.api +++ b/src/vlibmemory/memclnt.api @@ -14,23 +14,35 @@ * limitations under the License. */ +option version = "2.1.0"; + +/* + * Define services not following the normal conventions here + */ +service { + rpc memclnt_rx_thread_suspend returns null; + rpc memclnt_read_timeout returns null; + rpc rx_thread_exit returns null; + rpc trace_plugin_msg_ids returns null; +}; + /* * Create a client registration */ manual_print define memclnt_create { - i32 ctx_quota; /* requested punt context quota */ u32 context; /* opaque value to be returned in the reply */ + i32 ctx_quota; /* requested punt context quota */ u64 input_queue; /* client's queue */ - u8 name[64]; /* for show, find by name, whatever */ + string name[64]; /* for show, find by name, whatever */ u32 api_versions[8]; /* client-server pairs use as desired */ }; define memclnt_create_reply { + u32 context; /* opaque value from the create request */ i32 response; /* Non-negative = success */ u64 handle; /* handle by which vlib knows this client */ u32 index; /* index, used e.g. by API trace replay */ - u32 context; /* opaque value from the create request */ u64 message_table; /* serialized message table in shmem */ }; @@ -41,6 +53,7 @@ manual_print define memclnt_delete { u32 index; /* index, used e.g. by API trace replay */ u64 handle; /* handle by which vlib knows this client */ + bool do_cleanup; /* vlib to cleanup the registration */ }; define memclnt_delete_reply { @@ -48,30 +61,39 @@ define memclnt_delete_reply { u64 handle; /* in case the client wonders */ }; -/* +/* * Client RX thread exit */ - define rx_thread_exit { u8 dummy; }; +/* + * Client RX thread suspend + */ +define memclnt_rx_thread_suspend { + u8 dummy; +}; + +/* + * Client read timeout + */ +define memclnt_read_timeout { + u8 dummy; +}; + /* * RPC */ -define rpc_call { +autoreply define rpc_call { u32 client_index; u32 context; u64 function; u8 multicast; u8 need_barrier_sync; u8 send_reply; - u8 data[0]; -}; - -define rpc_reply { - i32 retval; - u32 context; + u32 data_len; + u8 data[data_len]; }; /* @@ -80,16 +102,35 @@ define rpc_reply { define get_first_msg_id { u32 client_index; u32 context; - u8 name[64]; + string name[64]; }; define get_first_msg_id_reply { - u32 client_index; u32 context; i32 retval; u16 first_msg_id; }; +/* + * Get API version table (includes built-in and plugins) + */ +typedef module_version { + u32 major; + u32 minor; + u32 patch; + string name[64]; +}; +define api_versions { + u32 client_index; + u32 context; +}; +define api_versions_reply { + u32 context; + i32 retval; + u32 count; + vl_api_module_version_t api_versions[count]; +}; + /* * Trace the plugin message-id allocator * so we stand a chance of dealing with different sets of plugins @@ -100,7 +141,71 @@ manual_print define trace_plugin_msg_ids { u32 client_index; u32 context; - u8 plugin_name[128]; + string plugin_name[128]; u16 first_msg_id; u16 last_msg_id; }; + +typedef message_table_entry +{ + u16 index; + string name[64]; +}; + +/* + * Create a socket client registration. + */ +define sockclnt_create { + u32 context; /* opaque value to be returned in the reply */ + string name[64]; /* for show, find by name, whatever */ +}; + +define sockclnt_create_reply { + u32 client_index; + u32 context; /* opaque value from the create request */ + i32 response; /* Non-negative = success */ + u32 index; /* index, used e.g. by API trace replay */ + u16 count; + vl_api_message_table_entry_t message_table[count]; +}; + +/* + * Delete a client registration + */ +define sockclnt_delete { + u32 client_index; + u32 context; + u32 index; /* index, used e.g. by API trace replay */ +}; + +define sockclnt_delete_reply { + u32 context; + i32 response; /* Non-negative = success */ +}; + +/* + * Initialize shm api over socket api + */ +autoreply define sock_init_shm { + u32 client_index; + u32 context; + u32 requested_size; + u8 nitems; + u64 configs[nitems]; +}; + +/* define sock_init_shm_reply { + u32 client_index; + u32 context; + i32 retval; +}; */ + +/* + * Memory client ping / response + * Only sent on inactive connections + */ +autoreply define memclnt_keepalive +{ + u32 client_index; + u32 context; +};