From: RYAN D. MOATS <rmo...@us.ibm.com> Change ovn-controller to use incremental processing in encaps_run, binding_run, lflow_run and physical_run where easily feasible (patch_run and the mutlicast group processing in physical_run remain as complete rebuilds every cycle). This patch includes all v7 comments.
Scale testing of this patch was done by deploying 2000 copies of the following pattern via openstack neutron: n1 --- r1 --- n2 where n1 and n2 are openstack private networks using DHCP for addressing, and r1 is an openstack router onto four VMs, each with 4 cores and 16 GB of RAM+16 GB of swap space. As scale elements are added, ovn-controller cycle time increases linearly (as expected), but after all elements have been added, ovn-controller cycle time clocks in at around 1.1 seconds and uses a negligible amount of CPU (also as expected). RYAN D. MOATS (10): Add useful information to ovn E2E tests Present tracked changes in increasing change number order Make flow table persistent in ovn controller Persist ports simap in logical_datapath Persist local_datapaths Add incremental proessing to lflow_run Change encaps_run to work incrementally Convert binding_run to incremental processing. Reset lflow processing when adding/removing patch ports Change physical_run to incremental processing lib/ofp-actions.c | 12 ++ lib/ofp-actions.h | 3 +- lib/ovsdb-idl.c | 9 +- ovn/controller/binding.c | 92 ++++++++++-- ovn/controller/binding.h | 1 + ovn/controller/encaps.c | 123 ++++++++------- ovn/controller/lflow.c | 201 ++++++++++++++++++++++--- ovn/controller/lflow.h | 6 +- ovn/controller/ofctrl.c | 318 +++++++++++++++++++++++++++++--------- ovn/controller/ofctrl.h | 15 ++- ovn/controller/ovn-controller.c | 30 ++-- ovn/controller/ovn-controller.h | 1 + ovn/controller/patch.c | 7 +- ovn/controller/physical.c | 206 ++++++++++++++++++++------ ovn/controller/physical.h | 4 +- tests/ovn.at | 14 ++ 16 files changed, 801 insertions(+), 241 deletions(-) _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev