diff options
author | Dave Barach <dave@barachs.net> | 2017-09-10 15:04:27 -0400 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2017-10-03 11:03:47 +0000 |
commit | 59b2565cd91a67ced650739f36129650830211ac (patch) | |
tree | 1ae3b8d69d7952500b07186169fb31e0f72ae04e /src/vat/vat.h | |
parent | 35ffa3e8f6b032f6e324234d495f769049d8feea (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/vat/vat.h')
-rw-r--r-- | src/vat/vat.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/vat/vat.h b/src/vat/vat.h index 233a1c41820..1ae46f30a7e 100644 --- a/src/vat/vat.h +++ b/src/vat/vat.h @@ -15,13 +15,18 @@ #ifndef __included_vat_h__ #define __included_vat_h__ +#define _GNU_SOURCE #include <stdio.h> #include <setjmp.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <sys/un.h> #include <vppinfra/clib.h> #include <vppinfra/format.h> #include <vppinfra/error.h> #include <vppinfra/time.h> #include <vppinfra/macros.h> +#include <vppinfra/socket.h> #include <vnet/vnet.h> #include <vlib/vlib.h> #include <vlib/unix/unix.h> @@ -147,7 +152,6 @@ typedef struct /* Errors by number */ uword *error_string_by_error_number; - /* Main thread can spin (w/ timeout) here if needed */ u32 async_mode; u32 async_errors; @@ -155,10 +159,11 @@ typedef struct volatile i32 retval; volatile u32 sw_if_index; volatile u8 *shmem_result; - volatile u8 *cmd_reply; + u8 *cmd_reply; /* our client index */ u32 my_client_index; + int client_index_invalid; /* Time is of the essence... */ clib_time_t clib_time; @@ -204,6 +209,9 @@ typedef struct ip4_nbr_counter_t **ip4_nbr_counters; ip6_nbr_counter_t **ip6_nbr_counters; + socket_client_main_t socket_client_main; + u8 *socket_name; + /* Convenience */ vlib_main_t *vlib_main; } vat_main_t; @@ -233,6 +241,8 @@ u8 *format_ip6_address (u8 * s, va_list * args); u8 *format_ip46_address (u8 * s, va_list * args); u8 *format_ethernet_address (u8 * s, va_list * args); +int vat_socket_connect (vat_main_t * vam); + #if VPP_API_TEST_BUILTIN #define print api_cli_output void api_cli_output (void *, const char *fmt, ...); |