This patch is aimed at achieving Fastpath Service Assurance in OVS-DPDK deployments. This commit adds support for monitoring the packet processing cores(pmd thread cores) by dispatching heartbeats at regular intervals. Incase of heartbeat miss the failure shall be detected & reported to higher level fault management systems/frameworks.
The implementation uses POSIX shared memory object for storing the events that will be read by monitoring framework. keep-alive feature can be enabled through below OVSDB settings. keepalive=true - Keepalive feature is disabled by default keepalive-interval="50" - Timer interval in milliseconds for monitoring the packet processing cores. keepalive-shm-name="/dpdk_keepalive_shm_name" - Shared memory block name where the events shall be updated. When KA is enabled, 'ovs-keepalive' thread shall be spawned that wakes up at regular intervals to update the timestamp and status of pmd cores in shared memory region. An external monitoring framework like collectd(with dpdk plugin support) can read the status updates from shared memory. On a missing heartbeat, the collectd shall relay the status to ceilometer service running in the controller. Below is the high level overview of deployment model. Compute Node Controller Collectd <-----------------> Ceilometer OVS DPDK +-----+ | VM | +--+--+ \---+---/ | +--+---+ +------------+----------+ +------+-------+ | OVS |-----> | dpdkevents plugin | --> | collectd | +--+---+ +------------+----------+ +------+-------+ +------+-----+ +---------------+------------+ | Ceilometer | <-- | collectd ceilometer plugin | <---- +------+-----+ +---------------+------------+ Bhanuprakash Bodireddy (7): dpdk: Add helper functions for DPDK keepalive. dpif-netdev: Register packet processing cores for keepalive. netdev-dpdk: Add support for keepalive functionality. process: Retrieve process status. utils: Introduce xusleep for subsecond granularity. vswitch.xml: Add keepalive support. Documentation: Update DPDK doc with Keepalive feature. Documentation/howto/dpdk.rst | 95 ++++++++++++++++++ lib/dpdk-stub.c | 30 ++++++ lib/dpdk.c | 92 +++++++++++++++++ lib/dpdk.h | 11 ++- lib/dpif-netdev.c | 19 ++++ lib/netdev-dpdk.c | 231 ++++++++++++++++++++++++++++++++++++++++++- lib/netdev-dpdk.h | 7 +- lib/process.c | 60 +++++++++++ lib/process.h | 10 ++ lib/util.c | 12 +++ lib/util.h | 1 + vswitchd/vswitch.xml | 38 +++++++ 12 files changed, 603 insertions(+), 3 deletions(-) -- 2.4.11 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev