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
