api: API trace improvements
[vpp.git] / src / vlibmemory / memclnt.api
index 6d6a1fe..a5194cd 100644 (file)
  * limitations under the License.
  */
 
-vl_api_version 1.0.0
+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 */
 };
 
 /*
  * Delete a client registration 
  */
-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 {
@@ -81,7 +90,8 @@ autoreply define rpc_call {
     u8 multicast;
     u8 need_barrier_sync;
     u8 send_reply;
-    u8 data[0];
+    u32 data_len;
+    u8 data[data_len];
 };
 
 /*
@@ -90,11 +100,10 @@ autoreply define rpc_call {
 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;
@@ -103,18 +112,17 @@ define get_first_msg_id_reply {
 /*
  * Get API version table (includes built-in and plugins)
  */
-typeonly define module_version {
+typedef module_version {
   u32 major;
   u32 minor;
   u32 patch;
-  u8 name[64];
+  string name[64];
 };
 define api_versions {
   u32 client_index;
   u32 context;
 };
 define api_versions_reply {
-  u32 client_index;
   u32 context;
   i32 retval;
   u32 count;
@@ -127,61 +135,68 @@ define api_versions_reply {
  * at api trace replay time
  */
 
-manual_print define trace_plugin_msg_ids
+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 {
-    u8 name[64];                /* for show, find by name, whatever */
     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 */
-    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 */
+    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 */
 };
 
 /*
- * Ask vpp for a memfd shared segment
+ * Initialize shm api over socket api
  */
-define memfd_segment_create {
+autoreply define sock_init_shm {
     u32 client_index;
     u32 context;
-    u64 requested_size;
+    u32 requested_size;
+    u8 nitems;
+    u64 configs[nitems];
 };
 
-/*
- * Reply
- */
-define memfd_segment_create_reply 
-{
-  u32 context;
-  i32 retval;
-  u32 master_fd;
-};
+/* define sock_init_shm_reply {
+    u32 client_index;
+    u32 context;
+    i32 retval;
+}; */
 
 /*
  * Memory client ping / response