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.

-- 
Russell Bryant
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to