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/vppinfra | |
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/vppinfra')
-rw-r--r-- | src/vppinfra/elog.h | 8 | ||||
-rw-r--r-- | src/vppinfra/file.h | 4 | ||||
-rw-r--r-- | src/vppinfra/format.h | 2 | ||||
-rw-r--r-- | src/vppinfra/serialize.c | 28 | ||||
-rw-r--r-- | src/vppinfra/serialize.h | 8 | ||||
-rw-r--r-- | src/vppinfra/test_serialize.c | 4 | ||||
-rw-r--r-- | src/vppinfra/time.c | 4 | ||||
-rw-r--r-- | src/vppinfra/unformat.c | 6 | ||||
-rw-r--r-- | src/vppinfra/unix-misc.c | 10 | ||||
-rw-r--r-- | src/vppinfra/unix.h | 6 |
10 files changed, 40 insertions, 40 deletions
diff --git a/src/vppinfra/elog.h b/src/vppinfra/elog.h index 05085b264df..d50c9a6500d 100644 --- a/src/vppinfra/elog.h +++ b/src/vppinfra/elog.h @@ -525,12 +525,12 @@ void elog_alloc (elog_main_t * em, u32 n_events); #ifdef CLIB_UNIX always_inline clib_error_t * -elog_write_file (elog_main_t * em, char *unix_file, int flush_ring) +elog_write_file (elog_main_t * em, char *clib_file, int flush_ring) { serialize_main_t m; clib_error_t *error; - error = serialize_open_unix_file (&m, unix_file); + error = serialize_open_clib_file (&m, clib_file); if (error) return error; error = serialize (&m, serialize_elog_main, em, flush_ring); @@ -540,12 +540,12 @@ elog_write_file (elog_main_t * em, char *unix_file, int flush_ring) } always_inline clib_error_t * -elog_read_file (elog_main_t * em, char *unix_file) +elog_read_file (elog_main_t * em, char *clib_file) { serialize_main_t m; clib_error_t *error; - error = unserialize_open_unix_file (&m, unix_file); + error = unserialize_open_clib_file (&m, clib_file); if (error) return error; error = unserialize (&m, unserialize_elog_main, em); diff --git a/src/vppinfra/file.h b/src/vppinfra/file.h index 69facea9993..6ebf5122567 100644 --- a/src/vppinfra/file.h +++ b/src/vppinfra/file.h @@ -68,7 +68,7 @@ typedef enum UNIX_FILE_UPDATE_ADD, UNIX_FILE_UPDATE_MODIFY, UNIX_FILE_UPDATE_DELETE, -} unix_file_update_type_t; +} clib_file_update_type_t; typedef struct { @@ -76,7 +76,7 @@ typedef struct clib_file_t *file_pool; void (*file_update) (clib_file_t * file, - unix_file_update_type_t update_type); + clib_file_update_type_t update_type); } clib_file_main_t; diff --git a/src/vppinfra/format.h b/src/vppinfra/format.h index 5b7023a3023..3c4aec99c2b 100644 --- a/src/vppinfra/format.h +++ b/src/vppinfra/format.h @@ -305,7 +305,7 @@ u8 *format_hexdump (u8 * s, va_list * va); /* Unix specific formats. */ #ifdef CLIB_UNIX /* Setup input from Unix file. */ -void unformat_init_unix_file (unformat_input_t * input, int file_descriptor); +void unformat_init_clib_file (unformat_input_t * input, int file_descriptor); /* Take input from Unix environment variable; returns 1 if variable exists zero otherwise. */ diff --git a/src/vppinfra/serialize.c b/src/vppinfra/serialize.c index 5d401a080c1..fe2146a1e64 100644 --- a/src/vppinfra/serialize.c +++ b/src/vppinfra/serialize.c @@ -1147,7 +1147,7 @@ unserialize_multiple_4 (serialize_main_t * m, #include <fcntl.h> static void -unix_file_write (serialize_main_header_t * m, serialize_stream_t * s) +clib_file_write (serialize_main_header_t * m, serialize_stream_t * s) { int fd, n; @@ -1168,7 +1168,7 @@ unix_file_write (serialize_main_header_t * m, serialize_stream_t * s) } static void -unix_file_read (serialize_main_header_t * m, serialize_stream_t * s) +clib_file_read (serialize_main_header_t * m, serialize_stream_t * s) { int fd, n; @@ -1188,7 +1188,7 @@ unix_file_read (serialize_main_header_t * m, serialize_stream_t * s) } static void -serialize_open_unix_file_descriptor_helper (serialize_main_t * m, int fd, +serialize_open_clib_file_descriptor_helper (serialize_main_t * m, int fd, uword is_read) { memset (m, 0, sizeof (m[0])); @@ -1200,24 +1200,24 @@ serialize_open_unix_file_descriptor_helper (serialize_main_t * m, int fd, _vec_len (m->stream.buffer) = 0; } - m->header.data_function = is_read ? unix_file_read : unix_file_write; + m->header.data_function = is_read ? clib_file_read : clib_file_write; m->stream.data_function_opaque = fd; } void -serialize_open_unix_file_descriptor (serialize_main_t * m, int fd) +serialize_open_clib_file_descriptor (serialize_main_t * m, int fd) { - serialize_open_unix_file_descriptor_helper (m, fd, /* is_read */ 0); + serialize_open_clib_file_descriptor_helper (m, fd, /* is_read */ 0); } void -unserialize_open_unix_file_descriptor (serialize_main_t * m, int fd) +unserialize_open_clib_file_descriptor (serialize_main_t * m, int fd) { - serialize_open_unix_file_descriptor_helper (m, fd, /* is_read */ 1); + serialize_open_clib_file_descriptor_helper (m, fd, /* is_read */ 1); } static clib_error_t * -serialize_open_unix_file_helper (serialize_main_t * m, char *file, +serialize_open_clib_file_helper (serialize_main_t * m, char *file, uword is_read) { int fd, mode; @@ -1227,20 +1227,20 @@ serialize_open_unix_file_helper (serialize_main_t * m, char *file, if (fd < 0) return clib_error_return_unix (0, "open `%s'", file); - serialize_open_unix_file_descriptor_helper (m, fd, is_read); + serialize_open_clib_file_descriptor_helper (m, fd, is_read); return 0; } clib_error_t * -serialize_open_unix_file (serialize_main_t * m, char *file) +serialize_open_clib_file (serialize_main_t * m, char *file) { - return serialize_open_unix_file_helper (m, file, /* is_read */ 0); + return serialize_open_clib_file_helper (m, file, /* is_read */ 0); } clib_error_t * -unserialize_open_unix_file (serialize_main_t * m, char *file) +unserialize_open_clib_file (serialize_main_t * m, char *file) { - return serialize_open_unix_file_helper (m, file, /* is_read */ 1); + return serialize_open_clib_file_helper (m, file, /* is_read */ 1); } #endif /* CLIB_UNIX */ diff --git a/src/vppinfra/serialize.h b/src/vppinfra/serialize.h index 6cc2372e6ab..90d615f60a4 100644 --- a/src/vppinfra/serialize.h +++ b/src/vppinfra/serialize.h @@ -416,11 +416,11 @@ void *serialize_close_vector (serialize_main_t * m); void unserialize_open_vector (serialize_main_t * m, u8 * vector); #ifdef CLIB_UNIX -clib_error_t *serialize_open_unix_file (serialize_main_t * m, char *file); -clib_error_t *unserialize_open_unix_file (serialize_main_t * m, char *file); +clib_error_t *serialize_open_clib_file (serialize_main_t * m, char *file); +clib_error_t *unserialize_open_clib_file (serialize_main_t * m, char *file); -void serialize_open_unix_file_descriptor (serialize_main_t * m, int fd); -void unserialize_open_unix_file_descriptor (serialize_main_t * m, int fd); +void serialize_open_clib_file_descriptor (serialize_main_t * m, int fd); +void unserialize_open_clib_file_descriptor (serialize_main_t * m, int fd); #endif /* CLIB_UNIX */ /* Main routines. */ diff --git a/src/vppinfra/test_serialize.c b/src/vppinfra/test_serialize.c index e00eec3268f..6351b050c6c 100644 --- a/src/vppinfra/test_serialize.c +++ b/src/vppinfra/test_serialize.c @@ -184,7 +184,7 @@ test_serialize_main (unformat_input_t * input) #ifdef CLIB_UNIX if (tm->dump_file) - serialize_open_unix_file (sm, tm->dump_file); + serialize_open_clib_file (sm, tm->dump_file); else #endif serialize_open_vector (sm, 0); @@ -217,7 +217,7 @@ test_serialize_main (unformat_input_t * input) #ifdef CLIB_UNIX if (tm->dump_file) { - if ((error = unserialize_open_unix_file (um, tm->dump_file))) + if ((error = unserialize_open_clib_file (um, tm->dump_file))) goto done; } else diff --git a/src/vppinfra/time.c b/src/vppinfra/time.c index 168d7375915..770ed8b6807 100644 --- a/src/vppinfra/time.c +++ b/src/vppinfra/time.c @@ -91,7 +91,7 @@ clock_frequency_from_proc_filesystem (void) if (fd < 0) return cpu_freq; - unformat_init_unix_file (&input, fd); + unformat_init_clib_file (&input, fd); ppc_timebase = 0; while (unformat_check_input (&input) != UNFORMAT_END_OF_INPUT) @@ -130,7 +130,7 @@ clock_frequency_from_sys_filesystem (void) if (fd < 0) goto done; - unformat_init_unix_file (&input, fd); + unformat_init_clib_file (&input, fd); unformat (&input, "%f", &cpu_freq); cpu_freq *= 1e3; /* measured in kHz */ unformat_free (&input); diff --git a/src/vppinfra/unformat.c b/src/vppinfra/unformat.c index 5b17562f359..e30c6d34c22 100644 --- a/src/vppinfra/unformat.c +++ b/src/vppinfra/unformat.c @@ -1037,7 +1037,7 @@ unformat_init_vector (unformat_input_t * input, u8 * vector_string) #ifdef CLIB_UNIX static uword -unix_file_fill_buffer (unformat_input_t * input) +clib_file_fill_buffer (unformat_input_t * input) { int fd = pointer_to_uword (input->fill_buffer_arg); uword l, n; @@ -1055,9 +1055,9 @@ unix_file_fill_buffer (unformat_input_t * input) } void -unformat_init_unix_file (unformat_input_t * input, int file_descriptor) +unformat_init_clib_file (unformat_input_t * input, int file_descriptor) { - unformat_init (input, unix_file_fill_buffer, + unformat_init (input, clib_file_fill_buffer, uword_to_pointer (file_descriptor, void *)); } diff --git a/src/vppinfra/unix-misc.c b/src/vppinfra/unix-misc.c index 361015b4f67..f693102c65a 100644 --- a/src/vppinfra/unix-misc.c +++ b/src/vppinfra/unix-misc.c @@ -48,7 +48,7 @@ __thread uword __os_thread_index = 0; clib_error_t * -unix_file_n_bytes (char *file, uword * result) +clib_file_n_bytes (char *file, uword * result) { struct stat s; @@ -64,7 +64,7 @@ unix_file_n_bytes (char *file, uword * result) } clib_error_t * -unix_file_read_contents (char *file, u8 * result, uword n_bytes) +clib_file_read_contents (char *file, u8 * result, uword n_bytes) { int fd = -1; uword n_done, n_left; @@ -108,19 +108,19 @@ done: } clib_error_t * -unix_file_contents (char *file, u8 ** result) +clib_file_contents (char *file, u8 ** result) { uword n_bytes; clib_error_t *error = 0; u8 *v; - if ((error = unix_file_n_bytes (file, &n_bytes))) + if ((error = clib_file_n_bytes (file, &n_bytes))) return error; v = 0; vec_resize (v, n_bytes); - error = unix_file_read_contents (file, v, n_bytes); + error = clib_file_read_contents (file, v, n_bytes); if (error) vec_free (v); diff --git a/src/vppinfra/unix.h b/src/vppinfra/unix.h index 29114cfece6..5b82c23a3c0 100644 --- a/src/vppinfra/unix.h +++ b/src/vppinfra/unix.h @@ -41,14 +41,14 @@ #include <vppinfra/error.h> /* Number of bytes in a Unix file. */ -clib_error_t *unix_file_n_bytes (char *file, uword * result); +clib_error_t *clib_file_n_bytes (char *file, uword * result); /* Read file contents into given buffer. */ -clib_error_t *unix_file_read_contents (char *file, u8 * result, +clib_error_t *clib_file_read_contents (char *file, u8 * result, uword n_bytes); /* Read and return contents of Unix file. */ -clib_error_t *unix_file_contents (char *file, u8 ** result); +clib_error_t *clib_file_contents (char *file, u8 ** result); /* As above but for /proc file system on Linux. */ clib_error_t *unix_proc_file_contents (char *file, u8 ** result); |