Incremental processing has been implementation in ovn-controller, but we were still doing full comparison between desired flow table and installed flow table every time to figure out the changes need to be pushed to OVS. This series is mainly to utilize the incremental processing information to figure out flow changes to OVS without full table scanning, to further reduce CPU of ovn-controller. In a scale environment of 1200 HVs and 12k lports, the CPU is reduced by ~39% for port binding operation on local chassis.
Another important change of this series is the fix of the conjunction handling problem. Han Zhou (9): ofctrl: change ofctrl_dup_flow to module internal function ovn.at: Fix AT for conjunction case. lflow.c: No need to remove flows for adding new datapath. ovn-controller: Fix conjunction handling with incremental processing. ovn.at: Add test case for duplicated flow handling. ofctrl.c: Maintain references between installed flows and desired flows. ofctrl.c: Refactor - move openflow msg construction to functions. ofctrl: Incremental processing for flow installation by tracking. ofctrl.c: Merge opposite changes of tracked flows before installing. controller/lflow.c | 106 ++++--- controller/ofctrl.c | 865 +++++++++++++++++++++++++++++++++++++++++++--------- controller/ofctrl.h | 39 ++- tests/ovn.at | 225 +++++++++++++- 4 files changed, 1036 insertions(+), 199 deletions(-) -- 2.1.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
