From 62fdd819efe859cb35ae0e4292c0b1cdad330f64 Mon Sep 17 00:00:00 2001 From: Alex Wang Date: Fri, 7 Aug 2015 15:55:32 -0700 Subject: [PATCH] ovn-sb: Remove the "Gateway" table from the ovn-sb schema. In a gateway like the VTEP L2 gateway, physical vlans belonging to the same logical network form a "logical switch". Each logical switch has a dedicated tunnel key and will keep records of all MACs learned from the owned vlans. So user can just send packet to a "logical switch" and the gateway will figure out the output port and vlan tag automatically. Therefore, it is really not necessary to keep record of the vlan map for each gateway physical port in the OVN_Southbound database using "gateway_ports" and to map each vlan to a unique ovn logical port. Instead, we should simply map each logical switch to a ovn logical port. Thusly, this commit removes the "Gateway" table from the OVN_Southbound database. In the "Chassis" table, the "gateway_ports" column is replaced by "vtep_logical_switches" column which stores all vtep logical switch names. The use of this column will be documented in later commit. Signed-off-by: Alex Wang Acked-by: Russell Bryant --- ovn/ovn-sb.ovsschema | 16 +++----------- ovn/ovn-sb.xml | 50 +++++++++++++------------------------------- 2 files changed, 18 insertions(+), 48 deletions(-) diff --git a/ovn/ovn-sb.ovsschema b/ovn/ovn-sb.ovsschema index 40a29e9c5..9ee7431cb 100644 --- a/ovn/ovn-sb.ovsschema +++ b/ovn/ovn-sb.ovsschema @@ -7,12 +7,9 @@ "encaps": {"type": {"key": {"type": "uuid", "refTable": "Encap"}, "min": 1, "max": "unlimited"}}, - "gateway_ports": {"type": {"key": "string", - "value": {"type": "uuid", - "refTable": "Gateway", - "refType": "strong"}, - "min": 0, - "max": "unlimited"}}}, + "vtep_logical_switches" : {"type": {"key": "string", + "min": 0, + "max": "unlimited"}}}, "isRoot": true, "indexes": [["name"]]}, "Encap": { @@ -25,13 +22,6 @@ "min": 0, "max": "unlimited"}}, "ip": {"type": "string"}}}, - "Gateway": { - "columns": {"vlan_map": {"type": {"key": {"type": "integer", - "minInteger": 0, - "maxInteger": 4095}, - "value": {"type": "string"}, - "min": 0, - "max": "unlimited"}}}}, "Logical_Flow": { "columns": { "logical_datapath": {"type": {"key": {"type": "uuid", diff --git a/ovn/ovn-sb.xml b/ovn/ovn-sb.xml index baced61fb..7defad9b5 100644 --- a/ovn/ovn-sb.xml +++ b/ovn/ovn-sb.xml @@ -35,8 +35,7 @@

- The and tables comprise the - PN tables. + The table comprises the PN tables.

Logical Network (LN) data

@@ -163,20 +162,19 @@ - -

- A gateway is a chassis that forwards traffic between a - logical network and a physical VLAN. Gateways are typically dedicated - nodes that do not host VMs. + +

+ A gateway is a chassis that forwards traffic between the + OVN-managed part of a logical network and a physical VLAN, extending a + tunnel-based logical network into a physical network. Gateways are + typically dedicated nodes that do not host VMs.

- - Maps from the name of a port attached to the OVN integration bridge - (typically a physical port or an Open vSwitch patch port) to a record that describes the details of the gatewaying - function. + + Stores all vtep logical switch names connected by this gateway + chassis. -
+ @@ -206,23 +204,6 @@
- -

- The column in the table refers to rows in this table to connect a chassis - port to a gateway function. Each row in this table describes the logical - networks to which a gateway port is attached. Each chassis, via - ovn-controller(8), adds and updates its own rows, if any - (since most chassis are not gateways), and keeps a copy of the remaining - rows to determine how to reach other chassis. -

- - - Maps from a VLAN ID to a logical port name. Thus, each named logical - port corresponds to one VLAN on the gateway port. - -
-

Each row in this table represents one logical flow. The cloud management @@ -642,11 +623,10 @@ Most of the symbols below have integer type. Only inport and outport have string type. inport names a logical port. Thus, its value is a name - from the or tables. - outport may name a logical port, as inport, - or a logical multicast group defined in the table. For both symbols, only names within - the flow's logical datapath may be used. + from the table. outport may + name a logical port, as inport, or a logical multicast + group defined in the table. For both + symbols, only names within the flow's logical datapath may be used.

    -- 2.20.1