From patchwork Mon Aug 2 20:48:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Numan Siddique X-Patchwork-Id: 1512563 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.133; helo=smtp2.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Gdqpy3BpJz9s1l for ; Tue, 3 Aug 2021 06:48:42 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 7B3AD404DB; Mon, 2 Aug 2021 20:48:40 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LNOmNKFh4c7V; Mon, 2 Aug 2021 20:48:39 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp2.osuosl.org (Postfix) with ESMTPS id 5CBAC400ED; Mon, 2 Aug 2021 20:48:38 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 2C85EC001A; Mon, 2 Aug 2021 20:48:38 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id D00F0C000E for ; Mon, 2 Aug 2021 20:48:36 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id C6AF640184 for ; Mon, 2 Aug 2021 20:48:36 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JaV_wMHd9Lba for ; Mon, 2 Aug 2021 20:48:35 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [217.70.183.201]) by smtp2.osuosl.org (Postfix) with ESMTPS id A298F400ED for ; Mon, 2 Aug 2021 20:48:35 +0000 (UTC) Received: (Authenticated sender: numans@ovn.org) by relay8-d.mail.gandi.net (Postfix) with ESMTPSA id 05EE81BF204; Mon, 2 Aug 2021 20:48:31 +0000 (UTC) From: numans@ovn.org To: dev@openvswitch.org Date: Mon, 2 Aug 2021 16:48:16 -0400 Message-Id: <20210802204816.2547744-1-numans@ovn.org> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [ovs-dev] [PATCH ovn v4 0/5] pflow_output and ct_zone engine improvements. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" From: Numan Siddique This patch series attempts to improve the handling of runtime_data changes in the engine nodes - ct_zones and pflow_output. It also attempts to improve the handling of ct_zones change in pflow_output engine. After this patch series, the amount of full recomputes of pflow_output engine is reduced drastically. This helps in scaled environments. For example with the simple ovn-scale-test which creates 20 logical ports (10 each in one logical switch) and binds it equally on two chassis, reduces the number of physical_run() calls from around 30 to around 8. v3 -> v4 ---- * Addressed the review comments from Han for patch 1 - Removed the callback function argument in 'local_datapath_add()'. v2 -> v3 ---- * Addressed review comments from Han. * Added a new engine now to store non-vif-data instead of storing in the runtime_data engine. v1 -> v2 ---- * Rebased to resolve the conflct. Numan Siddique (5): controller: Move 'struct local_datapath' to a separate file. binding: Add the localport port binding in the binding_lport information. binding: Track the changes of container lport when it's parent changes. I-P: Handle runtime data changes for pflow_output engine. controller: Improve ct zone handling. controller/automake.mk | 4 +- controller/binding.c | 598 +++++++++++++----------------------- controller/binding.h | 36 ++- controller/lflow.c | 6 +- controller/lflow.h | 1 + controller/local_data.c | 521 +++++++++++++++++++++++++++++++ controller/local_data.h | 150 +++++++++ controller/lport.c | 40 +++ controller/lport.h | 7 +- controller/ovn-controller.c | 376 +++++++++++++++++------ controller/ovn-controller.h | 38 --- controller/patch.c | 1 + controller/physical.c | 405 ++++++------------------ controller/physical.h | 15 +- controller/pinctrl.c | 1 + lib/inc-proc-eng.h | 4 + tests/ovn-controller.at | 35 ++- tests/ovn.at | 2 +- 18 files changed, 1375 insertions(+), 865 deletions(-) create mode 100644 controller/local_data.c create mode 100644 controller/local_data.h