On Wed, Jul 5, 2017 at 9:45 AM, Miguel Angel Ajo <[email protected]> wrote:
> This commit introduces the north and south db changes necessary for
> the l3ha router implementation.
>
> It defines a new Table in both NBDB and SBDB.
>
> The Gateway_Chassis table is created, with a tiny difference between
> NBDB and SBDB, NBDB references the chassis via it's name (chassis_name)
> and SBDB references the chassis via reference (chassis) to the Chassis table.
>
> In NBDB a new column (gateway_chassis) is added to Logical_Router_Ports
> with a list of Gateway_Chassis which can be empty.
>
> In SBDB a new column (gateway_chassis) is added to Port_Binding with
> the same list, this column will be used for ports of type chassis-redirect.
>
> Signed-off-by: Miguel Angel Ajo <[email protected]>
> ---
>  ovn/ovn-nb.ovsschema | 28 +++++++++++++++++++++++++---
>  ovn/ovn-nb.xml       | 39 +++++++++++++++++++++++++++++++++++++++
>  ovn/ovn-sb.ovsschema | 30 +++++++++++++++++++++++++++---
>  ovn/ovn-sb.xml       | 38 ++++++++++++++++++++++++++++++++++++++
>  4 files changed, 129 insertions(+), 6 deletions(-)
>

A couple of patches in this series introduce whitespace errors.  I'll
fix them as I go through, but FYI:

Applying: ovn: l3ha, NBDB and SBDB changes and documentation
Applying: ovn: l3ha, ovn-northd gateway chassis propagation
.git/rebase-apply/patch:539: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Applying: ovn: l3ha, handling of multiple gateway chassis
Applying: ovn: l3ha, enable bfd between tunnel endpoints
Applying: ovn: l3ha, make is_chassis_active aware of gateway_chassis
Applying: ovn: l3ha, gratuitous ARP for HA router
.git/rebase-apply/patch:311: new blank line at EOF.
+
warning: 1 line adds whitespace errors.


Also, here's a patch you can squash into this one that adjusts the
schema version numbers and adds a bit to the docs.  I'll collect my
suggestions in this branch for now:

https://github.com/russellb/ovs/tree/l3ha



commit 26c1347bfe8faa96a4218e363281ee7154e8d5f4
Author: Russell Bryant <[email protected]>
Date:   Thu Jul 6 08:58:27 2017 -0400

    ovn: Update schema versions and docs.

    Bump minor version since we've added new backwards compatible features.

    Also add some additional content and tweaks to schema documentation.

    Signed-off-by: Russell Bryant <[email protected]>

diff --git a/ovn/ovn-nb.ovsschema b/ovn/ovn-nb.ovsschema
index 6a96704..d85a3fe 100644
--- a/ovn/ovn-nb.ovsschema
+++ b/ovn/ovn-nb.ovsschema
@@ -1,7 +1,7 @@
 {
     "name": "OVN_Northbound",
-    "version": "5.6.2",
-    "cksum": "3482049799 16164",
+    "version": "5.7.0",
+    "cksum": "3754583060 16164",
     "tables": {
         "NB_Global": {
             "columns": {
diff --git a/ovn/ovn-nb.xml b/ovn/ovn-nb.xml
index 6061114..1e73465 100644
--- a/ovn/ovn-nb.xml
+++ b/ovn/ovn-nb.xml
@@ -179,7 +179,7 @@
       <column name="other_config" key="subnet">
         Set this to an IPv4 subnet, e.g. <code>192.168.0.0/24</code>, to enable
         <code>ovn-northd</code> to automatically assign IP addresses within
-        that subnet.
+        that subnet.
       </column>

       <column name="other_config" key="exclude_ips">
@@ -1251,8 +1251,31 @@
     </column>

     <column name="gateway_chassis">
-      Several <ref table="Gateway_Chassis"/> can be referenced for a given
-      logical router port.
+      <p>
+        If set, this indicates that this logical router port represents
+        a distributed gateway port that connects this router to a logical
+        switch with a localnet port.  There may be at most one such
+        logical router port on each logical router.
+      </p>
+
+      <p>
+        Several <ref table="Gateway_Chassis"/> can be referenced for a given
+        logical router port.  A single <ref table="Gateway_Chassis"/> is
+        functionally equivalent to setting
+        <ref column="options" key="redirect-chassis"/>.  Refer to the
+        description of <ref column="options" key="redirect-chassis"/>
+        for additional details on gateway handling.
+      </p>
+
+      <p>
+        Defining more than one <ref table="Gateway_Chassis"/> will enable
+        gateway high availability.  Only one gateway will be active at a
+        time.  OVN chassis will use BFD to monitor connectivity to a
+        gateway.  If connectivity to the active gateway is interrupted,
+        another gateway will become active.
+        The <ref column="priority" table="Gateway_Chassis"/> column
+        specifies the order that gateways will be chosen by OVN.
+      </p>
     </column>

     <column name="networks">
@@ -1324,6 +1347,14 @@
           table="Logical_Switch_Port"/> should be set to
           <code>router</code>.
         </p>
+
+        <p>
+          While <ref column="options" key="redirect-chassis"/> is still
+          supported for backwards compatibility, it is now preferred to
+          specify one or more <ref column="gateway_chassis"/> instead.
+          It is functionally equivalent, but allows you to specify multiple
+          chassis to enable high availability.
+        </p>
       </column>
     </group>

@@ -2117,26 +2148,42 @@
     </group>
   </table>
   <table name="Gateway_Chassis">
-    Association of chassis to logical router port. The traffic
-    going out through an specific router port will be redirected to a
-    chassis, or a set of them in high availability configurations.
-    This is the equivalent of option:redirect-chassis for Logical
-    Router ports, but allowing the association and prioritize multiple
-    Chassis to a single port.
+    <p>
+      Association of one or more chassis to a logical router port. The traffic
+      going out through an specific router port will be redirected to a
+      chassis, or a set of them in high availability configurations.
+      A single <ref table="Gateway_Chassis"/> is equivalent to setting
+      <ref column="options" key="redirect-chassis"/>.  Using
+      <ref table="Gateway_Chassis"/> allows associating multiple prioritized
+      chassis with a single logical router port.
+    </p>

     <column name="name">
-      Name of the Gateway Chassis element, a recommendation
-      is using ${port_name}_${chassis_name}
+      <p>
+        Name of the <ref table="Gateway_Chassis"/>.
+      </p>
+      <p>
+        A suggested, but not required naming convention is
+        <code>${port_name}_${chassis_name}</code>.
+      </p>
     </column>

     <column name="chassis_name">
-      Name of the chassis that we want to use to traffic going
-      through an specific logical router port
+      <p>
+        Name of the chassis that we want to redirect traffic through for the
+        associated logical router port.  The value must match the
+        <ref db="OVN_Southbound" table="Chassis" column="name"/> column
+        of the <ref db="OVN_Southbound" table="Chassis"/> table in the
+        <ref db="OVN_Southbound"/> database.
+      </p>
     </column>

     <column name="priority">
-      This is the priority of a chassis among all Gateway_Chassis belonging
-      to the same logical router port.
+      <p>
+        This is the priority of a chassis among all
+        <ref table="Gateway_Chassis"/> belonging to the same logical router
+        port.
+      </p>
     </column>

     <column name="options">
@@ -2144,9 +2191,9 @@
     </column>

     <group title="Common Columns">
-      The overall purpose of these columns is described under <code>Common
-      Columns</code> at the beginning of this document.
-      <column name="external_ids"/>
+      <column name="external_ids">
+        See <em>External IDs</em> at the beginning of this document.
+      </column>
     </group>
   </table>

diff --git a/ovn/ovn-sb.ovsschema b/ovn/ovn-sb.ovsschema
index 5c7a001..2643640 100644
--- a/ovn/ovn-sb.ovsschema
+++ b/ovn/ovn-sb.ovsschema
@@ -1,7 +1,7 @@
 {
     "name": "OVN_Southbound",
-    "version": "1.13.1",
-    "cksum": "1200651109 13275",
+    "version": "1.14.0",
+    "cksum": "3613553908 13275",
     "tables": {
         "SB_Global": {
             "columns": {
diff --git a/ovn/ovn-sb.xml b/ovn/ovn-sb.xml
index 04f3d76..d9b6e36 100644
--- a/ovn/ovn-sb.xml
+++ b/ovn/ovn-sb.xml
@@ -1838,10 +1838,15 @@ tcp.flags = RST;
       </column>

       <column name="gateway_chassis">
-        The list of <ref table="Gateway_Chassis"/> should only be populated for
-        ports of type <code>chassisredirect</code>. And defines the list
-        of chassis which outgoing traffic of the port will be redirected
-        through.
+        <p>
+          A list of <ref table="Gateway_Chassis"/>.
+        </p>
+        <p>
+          This should only be populated for ports with
+          <ref column="type"/> set to <code>chassisredirect</code>.
+          This column defines the list of chassis used as gateways
where traffic
+          will be redirected through.
+        </p>
       </column>

       <column name="tunnel_key">
@@ -2891,14 +2896,22 @@ tcp.flags = RST;
     </column>
   </table>
   <table name="Gateway_Chassis">
-    Association of Port_Binding of type <code>chassisredirect</code> to
-    a Chassis. The traffic going out through an specific chassisredirect
-    port will be redirected to a chassis, or a set of them in high
-    availability configurations.
+    <p>
+      Association of <ref table="Port_Binding"/> rows of
+      <ref table="Port_Binding" column="type"/> <code>chassisredirect</code> to
+      a <ref table="Chassis"/>. The traffic going out through a specific
+      <code>chassisredirect</code> port will be redirected to a chassis,
+      or a set of them in high availability configurations.
+    </p>

     <column name="name">
-      Name of the Gateway Chassis element, a recommendation
-      is using ${port_name}_${chassis_name}
+      <p>
+        Name of the <ref table="Gateway_Chassis"/>.
+      </p>
+      <p>
+        A suggested, but not required naming convention is
+        <code>${port_name}_${chassis_name}</code>.
+      </p>
     </column>

     <column name="chassis">
@@ -2907,7 +2920,7 @@ tcp.flags = RST;

     <column name="priority">
       This is the priority the specific <ref table="Chassis"/> among all
-      Gateway_Chassis belonging to the same logical router port.
+      Gateway_Chassis belonging to the same <ref table="Port_Binding"/>.
     </column>

     <column name="options">
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to