This series of patches implements the multi-threading bfd/cfm in ofproto-dpif-monitor module. This module is in charge of the execution of periodic functions (like bfd_run, cfm_run, bfd_send_packets).
With the ofproto-dpif-monitor module, the openvswitch can easily support more than 10,000 interface monitor sessions. Patches 1-6: The implementation of ofproto-dpif-monitor module. Patches 7-10: The optimization of ofproto-dpif-monitor module. Alex Wang (10): ofproto-dpif: Move send_packet() to ofproto-dpif-xlate module. ofproto-dpif: Make stats update thread safe. tests: Remove the unit test for "ovs-appctl coverage/show". timeval: Wake up all threads when time is warped. ofproto-dpif-monitor: Add ofproto-dpif-monitor module. ofproto-dpif-monitor: Run ofproto-dpif-monitor in a thread. heap: Change type of "priority" in "struct heap". bfd: Add bfd_wake_time() function. cfm: Add cfm_wake_time() function. ofproto-dpif-monitor: Use heap to order the mport wakeup time. lib/bfd.c | 23 +++ lib/bfd.h | 2 +- lib/cfm.c | 18 +++ lib/cfm.h | 1 + lib/heap.c | 6 +- lib/heap.h | 12 +- lib/poll-loop.c | 5 + lib/timeval.c | 28 ++++ lib/timeval.h | 2 + ofproto/automake.mk | 2 + ofproto/ofproto-dpif-monitor.c | 305 ++++++++++++++++++++++++++++++++++++++++ ofproto/ofproto-dpif-monitor.h | 29 ++++ ofproto/ofproto-dpif-xlate.c | 72 +++++++++- ofproto/ofproto-dpif-xlate.h | 2 + ofproto/ofproto-dpif.c | 137 ++++-------------- ofproto/ofproto-dpif.h | 1 + tests/bfd.at | 170 ++++++++-------------- tests/ofproto-dpif.at | 88 ++++++++---- 18 files changed, 642 insertions(+), 261 deletions(-) create mode 100644 ofproto/ofproto-dpif-monitor.c create mode 100644 ofproto/ofproto-dpif-monitor.h -- 1.7.9.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev