On Mon, Apr 20, 2015 at 03:45:09PM -0400, Russell Bryant wrote: > On 04/18/2015 01:04 PM, Ben Pfaff wrote: > > It's possible that we could implement all of the OVN concepts as a single > > collection of flow tables, but it makes more sense to me if we instead > > represent each logical switch and logical router separately. This also > > fits the model described in T. Koponen et al., "Network Virtualization in > > Multi-tenant Data Centers," NSDI '14, the model that OVN aspires to > > imitate. > > > > Signed-off-by: Ben Pfaff <b...@nicira.com> > > --- > > ovn/ovn-sb.ovsschema | 2 ++ > > ovn/ovn-sb.xml | 16 +++++++++++++++- > > 2 files changed, 17 insertions(+), 1 deletion(-) > > > > diff --git a/ovn/ovn-sb.ovsschema b/ovn/ovn-sb.ovsschema > > index 98662b8..5f2d1a4 100644 > > --- a/ovn/ovn-sb.ovsschema > > +++ b/ovn/ovn-sb.ovsschema > > @@ -33,6 +33,7 @@ > > "max": "unlimited"}}}}, > > "Pipeline": { > > "columns": { > > + "logical_datapath": {"type": "uuid"}, > > "table_id": {"type": {"key": {"type": "integer", > > "minInteger": 0, > > "maxInteger": 127}}}, > > @@ -44,6 +45,7 @@ > > "isRoot": true}, > > "Bindings": { > > "columns": { > > + "logical_datapath": {"type": "uuid"}, > > "logical_port": {"type": "string"}, > > "parent_port": {"type": {"key": "string", "min": 0, "max": > > 1}}, > > "tag": { > > diff --git a/ovn/ovn-sb.xml b/ovn/ovn-sb.xml > > index e4159db..45b8622 100644 > > --- a/ovn/ovn-sb.xml > > +++ b/ovn/ovn-sb.xml > > @@ -227,6 +227,13 @@ > > The default action when no flow matches is to drop packets. > > </p> > > > > + <column name="logical_datapath"> > > + The logical datapath to which the logical port belongs. A logical > > + datapath implements a logical pipeline among the ports in the <ref > > + table="Bindings"/> table associated with it. (No table represents a > > + logical datapath.) > > + </column> > > + > > <column name="table_id"> > > The stage in the logical pipeline, analogous to an OpenFlow table > > number. > > </column> > > @@ -446,7 +453,8 @@ > > they are Unicode strings). String constants are used for naming > > logical ports. Thus, the useful values are <ref > > column="logical_port"/> names from the <ref column="Bindings"/> and > > - <ref column="Gateway"/> table. > > + <ref column="Gateway"/> table in a logical flow's <ref > > + column="logical_datapath"/>. > > </p> > > > > <p> > > @@ -653,6 +661,12 @@ > > <code>chassis</code> column with new information. > > </p> > > > > + <column name="logical_datapath"> > > + The logical datapath to which the logical port belongs. A logical > > + datapath implements a logical pipeline via logical flows in the <ref > > + table="Pipeline"/> table. (No table represents a logical datapath.) > > + </column> > > + > > <column name="logical_port"> > > A logical port, taken from <ref table="Logical_Port" column="name" > > db="OVN_Northbound"/> in the OVN_Northbound database's > > > > This all looks good to me, so: > > Acked-by: Russell Bryant <rbry...@redhat.com> > > I wonder if it's worth specifically drawing the connection between the > logical datapath in ovn-sb and the logical switch in ovn-nb. I see in > the code later that it's set as the logical switch UUID from ovn-nb. > From a schema perspective, I get that it just needs to be a UUID. Maybe > an update to ovn-architecture could mention that ovn-northd creates > these entries using the logical switch's UUID to tie them together.
Thanks. I tried to do this, although I'm not sure I did a great job. See my reply to Justin for the diff. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev