summaryrefslogtreecommitdiffstats
path: root/src/vlibapi/api_common.h
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2017-09-10 15:04:27 -0400
committerDamjan Marion <dmarion.lists@gmail.com>2017-10-03 11:03:47 +0000
commit59b2565cd91a67ced650739f36129650830211ac (patch)
tree1ae3b8d69d7952500b07186169fb31e0f72ae04e /src/vlibapi/api_common.h
parent35ffa3e8f6b032f6e324234d495f769049d8feea (diff)
Repair vlib API socket server
- Teach vpp_api_test to send/receive API messages over sockets - Add memfd-based shared memory - Add api messages to create memfd-based shared memory segments - vpp_api_test supports both socket and shared memory segment connections - vpp_api_test pivot from socket to shared memory API messaging - add socket client support to libvlibclient.so - dead client reaper sends ping messages, container-friendly - dead client reaper falls back to kill (<pid>, 0) live checking if e.g. a python app goes silent for tens of seconds - handle ping messages in python client support code - teach show api ring about pairwise shared-memory segments - fix ip probing of already resolved destinations (VPP-998) We'll need this work to implement proper host-stack client isolation Change-Id: Ic23b65f75c854d0393d9a2e9d6b122a9551be769 Signed-off-by: Dave Barach <dave@barachs.net> Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vlibapi/api_common.h')
-rw-r--r--src/vlibapi/api_common.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/vlibapi/api_common.h b/src/vlibapi/api_common.h
index 8e6ab0ff094..324b260ecc6 100644
--- a/src/vlibapi/api_common.h
+++ b/src/vlibapi/api_common.h
@@ -50,14 +50,22 @@ typedef struct vl_api_registration_
u8 *name; /**< Client name */
+ /* Zombie apocalypse checking */
+ f64 last_heard;
+ int last_queue_head;
+ int unanswered_pings;
+
/** shared memory only: pointer to client input queue */
unix_shared_memory_queue_t *vl_input_queue;
+ svm_region_t *vlib_rp;
+ void *shmem_hdr;
/* socket server and client */
u32 clib_file_index; /**< Socket only: file index */
i8 *unprocessed_input; /**< Socket only: pending input */
u32 unprocessed_msg_length; /**< Socket only: unprocssed length */
u8 *output_vector; /**< Socket only: output vecto */
+ int *additional_fds_to_close;
/* socket client only */
u32 server_handle; /**< Socket client only: server handle */
@@ -235,6 +243,7 @@ typedef struct
svm_region_t *vlib_rp;
/** Vector of all mapped shared-VM segments */
+ svm_region_t **vlib_private_rps;
svm_region_t **mapped_shmem_regions;
/** Binary API shared-memory segment header pointer */