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

Reply via email to