How about this version~, If you think it is good, I'll apply the first 5 patches~
Thanks, Alex Wang, On Fri, Aug 7, 2015 at 11:58 PM, Alex Wang <al...@nicira.com> wrote: > 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 <al...@nicira.com> > > --- > V5->V6: > - delay the documentation to later commit. > > V4->V5: > - rebase on top of master. > - change "vtep_logical_switches" to a set of strings storing all logical > switch names. > - require user to specify "vtep_physical_switch" and "vtep_logical_switch" > in options. > > V3->V4: > - change the column name to "vtep_logical_switches". > - adopt Ben's refinement of ovn-sb schema manual. > > ->V3: > - Realize that the Gateway table is not needed. > --- > ovn/ovn-sb.ovsschema | 16 +++------------- > ovn/ovn-sb.xml | 44 ++++++++++++-------------------------------- > 2 files changed, 15 insertions(+), 45 deletions(-) > > diff --git a/ovn/ovn-sb.ovsschema b/ovn/ovn-sb.ovsschema > index 40a29e9..9ee7431 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 baced61..ce7d8f7 100644 > --- a/ovn/ovn-sb.xml > +++ b/ovn/ovn-sb.xml > @@ -35,8 +35,7 @@ > </p> > > <p> > - The <ref table="Chassis"/> and <ref table="Gateway"/> tables comprise > the > - PN tables. > + The <ref table="Chassis"/> table comprises the PN tables. > </p> > > <h3>Logical Network (LN) data</h3> > @@ -165,16 +164,15 @@ > > <group title="Gateway Configuration"> > <p> > - A <dfn>gateway</dfn> 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 <dfn>gateway</dfn> 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. > </p> > > - <column name="gateway_ports"> > - 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 > <ref > - table="Gateway"/> record that describes the details of the > gatewaying > - function. > + <column name="vtep_logical_switches"> > + Stores all vtep logical switch names connected by this gateway > + chassis. > </column> > </group> > </table> > @@ -206,23 +204,6 @@ > </column> > </table> > > - <table name="Gateway" title="Physical Network Gateway Ports"> > - <p> > - The <ref column="gateway_ports" table="Chassis"/> column in the <ref > - table="Chassis"/> 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 > - <code>ovn-controller</code>(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. > - </p> > - > - <column name="vlan_map"> > - Maps from a VLAN ID to a logical port name. Thus, each named > logical > - port corresponds to one VLAN on the gateway port. > - </column> > - </table> > - > <table name="Logical_Flow" title="Logical Network Flows"> > <p> > 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 > <code>inport</code> > and <code>outport</code> have string type. <code>inport</code> > names a > logical port. Thus, its value is a <ref column="logical_port"/> > name > - from the <ref table="Port_Binding"/> or <ref table="Gateway"/> > tables. > - <code>outport</code> may name a logical port, as > <code>inport</code>, > - or a logical multicast group defined in the <ref > - table="Multicast_Group"/> table. For both symbols, only names > within > - the flow's logical datapath may be used. > + from the <ref table="Port_Binding"/> table. <code>outport</code> > may > + name a logical port, as <code>inport</code>, or a logical > multicast > + group defined in the <ref table="Multicast_Group"/> table. For > both > + symbols, only names within the flow's logical datapath may be > used. > </p> > > <ul> > -- > 1.7.9.5 > > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev