From patchwork Sat Nov 14 07:56:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 1400234 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.137; helo=fraxinus.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ovn.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CY73J3WJxz9sTv for ; Sat, 14 Nov 2020 18:57:15 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 8AE1F8764F; Sat, 14 Nov 2020 07:57:11 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 54PeipfOivTm; Sat, 14 Nov 2020 07:57:09 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by fraxinus.osuosl.org (Postfix) with ESMTP id ED6E4875AD; Sat, 14 Nov 2020 07:57:08 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id D362FC0891; Sat, 14 Nov 2020 07:57:08 +0000 (UTC) X-Original-To: ovs-dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 13FC7C0891 for ; Sat, 14 Nov 2020 07:57:07 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id D9EE187984 for ; Sat, 14 Nov 2020 07:57:06 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id n-SFCHVKC5fh for ; Sat, 14 Nov 2020 07:57:05 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by hemlock.osuosl.org (Postfix) with ESMTPS id 3F24E87946 for ; Sat, 14 Nov 2020 07:57:05 +0000 (UTC) X-Originating-IP: 78.45.89.65 Received: from im-t490s.redhat.com (ip-78-45-89-65.net.upcbroadband.cz [78.45.89.65]) (Authenticated sender: i.maximets@ovn.org) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 508E1FF804; Sat, 14 Nov 2020 07:57:03 +0000 (UTC) From: Ilya Maximets To: ovs-dev@openvswitch.org Date: Sat, 14 Nov 2020 08:56:49 +0100 Message-Id: <20201114075653.9142-3-i.maximets@ovn.org> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20201114075653.9142-1-i.maximets@ovn.org> References: <20201114075653.9142-1-i.maximets@ovn.org> MIME-Version: 1.0 Cc: Ilya Maximets Subject: [ovs-dev] [PATCH ovn 2/6] ovn-sb.ovsschema: Add Logical Datapath Groups. 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" New table 'Logical_Datapath_Group'. Each row of this table will store a set of logical datapaths. Each logical flow now has a reference to a logical datapath group, so the same logical flow could be applied to many different logical datapaths in a group. Signed-off-by: Ilya Maximets --- ovn-sb.ovsschema | 22 ++++++++++++++++++---- ovn-sb.xml | 42 +++++++++++++++++++++++++++++++----------- 2 files changed, 49 insertions(+), 15 deletions(-) diff --git a/ovn-sb.ovsschema b/ovn-sb.ovsschema index d1c506a22..71574261e 100644 --- a/ovn-sb.ovsschema +++ b/ovn-sb.ovsschema @@ -1,7 +1,7 @@ { "name": "OVN_Southbound", - "version": "2.10.0", - "cksum": "2548342632 22615", + "version": "20.12.0", + "cksum": "2311403201 23260", "tables": { "SB_Global": { "columns": { @@ -90,8 +90,14 @@ "isRoot": true}, "Logical_Flow": { "columns": { - "logical_datapath": {"type": {"key": {"type": "uuid", - "refTable": "Datapath_Binding"}}}, + "logical_datapath": + {"type": {"key": {"type": "uuid", + "refTable": "Datapath_Binding"}, + "min": 0, "max": 1}}, + "logical_datapath_group": + {"type": {"key": {"type": "uuid", + "refTable": "Logical_Datapath_Group"}, + "min": 0, "max": 1}}, "pipeline": {"type": {"key": {"type": "string", "enum": ["set", ["ingress", "egress"]]}}}, @@ -107,6 +113,14 @@ "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}}}, "isRoot": true}, + "Logical_Datapath_Group": { + "columns": { + "datapaths": + {"type": {"key": {"type": "uuid", + "refTable": "Datapath_Binding", + "refType": "weak"}, + "min": 0, "max": "unlimited"}}}, + "isRoot": false}, "Multicast_Group": { "columns": { "datapath": {"type": {"key": {"type": "uuid", diff --git a/ovn-sb.xml b/ovn-sb.xml index ebe2893e3..b70f5aa64 100644 --- a/ovn-sb.xml +++ b/ovn-sb.xml @@ -579,11 +579,12 @@

In more detail, to start, OVN searches the - table for a row with correct , a of ingress, a - of 0, and a that is true for the packet. If none - is found, OVN drops the packet. If OVN finds more than one, it chooses - the match with the highest . Then OVN executes + table for a row with correct or a + , a of + ingress, a of 0, and a that is true for the packet. If none is found, OVN + drops the packet. If OVN finds more than one, it chooses the match with + the highest . Then OVN executes each of the actions specified in the row's column, in the order specified. Some actions, such as those to modify packet headers, require no further details. The next and @@ -616,12 +617,12 @@

To execute the egress pipeline, OVN again searches the table for a row with correct , a of 0, a that is true for the packet, but now looking for a of egress. If no matching row is found, - the output becomes a no-op. Otherwise, OVN executes the actions for the - matching flow (which is chosen from multiple, if necessary, as already - described). + column="logical_datapath"/> or a , + a of 0, a that is true for + the packet, but now looking for a of + egress. If no matching row is found, the output becomes a + no-op. Otherwise, OVN executes the actions for the matching flow (which + is chosen from multiple, if necessary, as already described).

@@ -652,6 +653,11 @@ The logical datapath to which the logical flow belongs. + + The group of logical datapaths to which the logical flow belongs. This + means that the same logical flow belongs to all datapaths in a group. + +

The primary flows used for deciding on a packet's destination are the @@ -2354,6 +2360,20 @@ tcp.flags = RST; + +

+ Each row in this table represents a group of logical datapaths referenced + by the column + in the table. +

+ + +

+ List of entries. +

+
+
+

The rows in this table define multicast groups of logical ports.