bapi: add options to have vpp cleanup client registration
[vpp.git] / src / vlibmemory / memclnt.api
index 923df69..4802732 100644 (file)
  * limitations under the License.
  */
 
-option version = "1.0.0";
+option version = "2.1.0";
 
 /*
- * Define services not following the normal convetions here
+ * Define services not following the normal conventions here
  */
 service {
   rpc memclnt_rx_thread_suspend returns null;
@@ -53,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 */
+    u8 do_cleanup;                             /* vlib to cleanup the registration */
 };
 
 define memclnt_delete_reply {
@@ -91,7 +92,8 @@ autoreply define rpc_call {
     u8 multicast;
     u8 need_barrier_sync;
     u8 send_reply;
-    u8 data[0];
+    u32 data_len;
+    u8 data[data_len];
 };
 
 /*
@@ -104,7 +106,6 @@ define get_first_msg_id {
 };
 
 define get_first_msg_id_reply {
-    u32 client_index;
     u32 context;
     i32 retval;
     u16 first_msg_id;
@@ -124,7 +125,6 @@ define api_versions {
   u32 context;
 };
 define api_versions_reply {
-  u32 client_index;
   u32 context;
   i32 retval;
   u32 count;
@@ -146,6 +146,12 @@ manual_print define trace_plugin_msg_ids
     u16 last_msg_id;
 };
 
+typedef message_table_entry
+{
+  u16 index;
+  u8 name[64];
+};
+
 /*
  * Create a socket client registration. 
  */
@@ -155,23 +161,26 @@ define sockclnt_create {
 };
 
 define sockclnt_create_reply {
+    u32 client_index;
     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 */
+    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 */
-    u64 handle;                /* handle by which vlib knows this client */
 };
 
 define sockclnt_delete_reply {
+    u32 context;
     i32 response;               /* Non-negative = success */
-    u64 handle;                /* in case the client wonders */
 };
 
 /*