Repair vlib API socket server 69/8369/50
authorDave Barach <dave@barachs.net>
Sun, 10 Sep 2017 19:04:27 +0000 (15:04 -0400)
committerDamjan Marion <dmarion.lists@gmail.com>
Tue, 3 Oct 2017 11:03:47 +0000 (11:03 +0000)
commit59b2565cd91a67ced650739f36129650830211ac
tree1ae3b8d69d7952500b07186169fb31e0f72ae04e
parent35ffa3e8f6b032f6e324234d495f769049d8feea
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>
89 files changed:
extras/emacs/plugin-main-skel.el
extras/emacs/plugin-test-skel.el
src/examples/sample-plugin/sample/sample.c
src/examples/sample-plugin/sample/sample_test.c
src/examples/srv6-sample-localsid/srv6_localsid_sample.c
src/plugins/acl/acl.c
src/plugins/acl/acl_test.c
src/plugins/acl/hash_lookup.c
src/plugins/dpdk/api/dpdk_test.c
src/plugins/flowprobe/flowprobe.c
src/plugins/flowprobe/flowprobe_test.c
src/plugins/gtpu/gtpu_api.c
src/plugins/gtpu/gtpu_test.c
src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.c
src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_test.c
src/plugins/ioam/export/ioam_export.c
src/plugins/ioam/export/ioam_export_test.c
src/plugins/ioam/ip6/ioam_cache.c
src/plugins/ioam/lib-pot/pot_api.c
src/plugins/ioam/lib-pot/pot_test.c
src/plugins/ioam/lib-trace/trace_api.c
src/plugins/ioam/lib-trace/trace_test.c
src/plugins/ioam/lib-vxlan-gpe/vxlan_gpe_api.c
src/plugins/ioam/lib-vxlan-gpe/vxlan_gpe_test.c
src/plugins/ioam/udp-ping/udp_ping_api.c
src/plugins/ioam/udp-ping/udp_ping_node.c
src/plugins/ioam/udp-ping/udp_ping_test.c
src/plugins/lb/api.c
src/plugins/lb/lb_test.c
src/plugins/memif/memif_api.c
src/plugins/memif/memif_test.c
src/plugins/nat/nat_api.c
src/plugins/nat/nat_test.c
src/plugins/pppoe/pppoe_api.c
src/plugins/pppoe/pppoe_test.c
src/svm.am
src/svm/memfd.c [new file with mode: 0644]
src/svm/memfd.h [new file with mode: 0644]
src/svm/svm.c
src/svm/svm_common.h
src/svm/svmdb.c
src/uri/vppcom.c
src/vat/api_format.c
src/vat/main.c
src/vat/vat.h
src/vlib-api.am
src/vlib/unix/cli.c
src/vlib/unix/input.c
src/vlibapi/api_common.h
src/vlibapi/api_helper_macros.h
src/vlibapi/vat_helper_macros.h
src/vlibmemory/api.h
src/vlibmemory/api_common.h
src/vlibmemory/memclnt.api
src/vlibmemory/memory_client.c
src/vlibmemory/memory_shared.c
src/vlibmemory/memory_vlib.c
src/vlibmemory/socket_client.c [new file with mode: 0644]
src/vlibmemory/socksvr_vlib.c [moved from src/vlibsocket/socksvr_vlib.c with 58% similarity]
src/vlibsocket/sock_test.c
src/vlibsocket/sockclnt.api [deleted file]
src/vlibsocket/sockclnt_vlib.c
src/vlibsocket/vl_socket_api_h.h [deleted file]
src/vlibsocket/vl_socket_msg_enum.h [deleted file]
src/vnet/ethernet/arp.c
src/vnet/fib/fib_table.c
src/vnet/interface_api.c
src/vnet/ip/ip4_forward.c
src/vnet/ip/ip6_forward.c
src/vnet/ip/ip6_neighbor.c
src/vnet/l2/l2_fib.c
src/vnet/lisp-cp/control.c
src/vnet/lisp-cp/lisp_api.c
src/vnet/tcp/builtin_client.c
src/vpp-api/client/client.c
src/vpp-api/vapi/vapi.c
src/vpp/api/api.c
src/vpp/api/api_main.c
src/vpp/api/custom_dump.c
src/vppinfra/elog.h
src/vppinfra/file.h
src/vppinfra/format.h
src/vppinfra/serialize.c
src/vppinfra/serialize.h
src/vppinfra/test_serialize.c
src/vppinfra/time.c
src/vppinfra/unformat.c
src/vppinfra/unix-misc.c
src/vppinfra/unix.h