fateshare: a plugin for managing child processes 38/35638/23
authorAndrew Yourtchenko <ayourtch@gmail.com>
Mon, 14 Mar 2022 09:49:15 +0000 (09:49 +0000)
committerOle Tr�an <otroan@employees.org>
Thu, 31 Aug 2023 09:50:00 +0000 (09:50 +0000)
commitf234b0d4626d7e686422cc9dfd25958584f4931e
treee1cddfd754d952134e72dfd03522c5ea4fb6008e
parent1765f014bc7fcc3b924019ec96350eb50bef629f
fateshare: a plugin for managing child processes

For the reasons of modularity and security, it is useful
to have various functionality split into processes different from VPP.
However, this approach presents the challenges of managing those processes,
and is markedly different from simply running everything within VPP process.

This plugin is an experiment in having the VPP itself start off a monitor
process which in turn starts the child processes, and restarts them if they
quit.

If the VPP process ceases to exist, the monitor process terminates all
the descendant processes and quits itself.

This allows to preserve the "single entity to manage" approach of
simply running a barebones VPP.

An example of running it:

export DPDK_CONFIG=""
export DISABLED_PLUGINS=dpdk
export EXTRA_VPP_CONFIG="fateshare { monitor ./build-root/install-vpp_debug-native/vpp/bin/vpp_fateshare_monitor command ./test1 }"
make run

Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: I66221fd7403f220d9652fe76958ca499cfd070a7
Type: feature
MAINTAINERS
Makefile
docs/spelling_wordlist.txt
src/plugins/fateshare/CMakeLists.txt [new file with mode: 0644]
src/plugins/fateshare/fateshare.c [new file with mode: 0644]
src/plugins/fateshare/fateshare.h [new file with mode: 0644]
src/plugins/fateshare/vpp_fateshare_monitor.c [new file with mode: 0644]