Message ID | CA+0q_PhUO2i7pjjsxBrKsQY3FZ3YgEZxOepq-K5qM+JoYBJFPg@mail.gmail.com |
---|---|
State | Not Applicable |
Headers | show |
Thanks a lot Russell, your help & review is really appreciated. On Thu, Jul 6, 2017 at 6:51 PM, Russell Bryant <russell@ovn.org> wrote: > On Wed, Jul 5, 2017 at 9:45 AM, Miguel Angel Ajo <majopela@redhat.com> > 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 <majopela@redhat.com> > > --- > > 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 <russell@ovn.org> > 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 <russell@ovn.org> > > 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"> >
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>