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(-) diff --git a/ovn/ovn-nb.ovsschema b/ovn/ovn-nb.ovsschema index c6a1417..6a96704 100644 --- a/ovn/ovn-nb.ovsschema +++ b/ovn/ovn-nb.ovsschema @@ -1,7 +1,7 @@ { "name": "OVN_Northbound", - "version": "5.6.0", - "cksum": "2552205612 15123", + "version": "5.6.2", + "cksum": "3482049799 16164", "tables": { "NB_Global": { "columns": { @@ -196,6 +196,12 @@ "Logical_Router_Port": { "columns": { "name": {"type": "string"}, + "gateway_chassis": { + "type": {"key": {"type": "uuid", + "refTable": "Gateway_Chassis", + "refType": "strong"}, + "min": 0, + "max": "unlimited"}}, "options": { "type": {"key": "string", "value": "string", @@ -293,4 +299,20 @@ "value": "string", "min": 0, "max": "unlimited"}}}, - "maxRows": 1}}} + "maxRows": 1}, + "Gateway_Chassis": { + "columns": { + "name": {"type": "string"}, + "chassis_name": {"type": "string"}, + "priority": {"type": {"key": {"type": "integer", + "minInteger": 0, + "maxInteger": 32767}}}, + "external_ids": { + "type": {"key": "string", "value": "string", + "min": 0, "max": "unlimited"}}, + "options": { + "type": {"key": "string", "value": "string", + "min": 0, "max": "unlimited"}}}, + "indexes": [["name"]], + "isRoot": false}} + } diff --git a/ovn/ovn-nb.xml b/ovn/ovn-nb.xml index 32c10c1..6061114 100644 --- a/ovn/ovn-nb.xml +++ b/ovn/ovn-nb.xml @@ -1250,6 +1250,11 @@ </p> </column> + <column name="gateway_chassis"> + Several <ref table="Gateway_Chassis"/> can be referenced for a given + logical router port. + </column> + <column name="networks"> <p> The IP addresses and netmasks of the router. For example, @@ -2111,4 +2116,38 @@ <column name="external_ids"/> </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. + + <column name="name"> + Name of the Gateway Chassis element, a recommendation + is using ${port_name}_${chassis_name} + </column> + + <column name="chassis_name"> + Name of the chassis that we want to use to traffic going + through an specific logical router port + </column> + + <column name="priority"> + This is the priority of a chassis among all Gateway_Chassis belonging + to the same logical router port. + </column> + + <column name="options"> + Reserved for future use. + </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"/> + </group> + </table> + </database> diff --git a/ovn/ovn-sb.ovsschema b/ovn/ovn-sb.ovsschema index 8a68e7c..5c7a001 100644 --- a/ovn/ovn-sb.ovsschema +++ b/ovn/ovn-sb.ovsschema @@ -1,7 +1,7 @@ { "name": "OVN_Southbound", - "version": "1.13.0", - "cksum": "3451836240 12038", + "version": "1.13.1", + "cksum": "1200651109 13275", "tables": { "SB_Global": { "columns": { @@ -104,6 +104,12 @@ "columns": { "logical_port": {"type": "string"}, "type": {"type": "string"}, + "gateway_chassis": { + "type": {"key": {"type": "uuid", + "refTable": "Gateway_Chassis", + "refType": "strong"}, + "min": 0, + "max": "unlimited"}}, "options": { "type": {"key": "string", "value": "string", @@ -244,4 +250,22 @@ "update" : {"type": {"key": "string", "min": 0, "max": "unlimited"}}}, - "isRoot": true}}} + "isRoot": true}, + "Gateway_Chassis": { + "columns": { + "name": {"type": "string"}, + "chassis": {"type": {"key": {"type": "uuid", + "refTable": "Chassis", + "refType": "weak"}, + "min": 0, "max": 1}}, + "priority": {"type": {"key": {"type": "integer", + "minInteger": 0, + "maxInteger": 32767}}}, + "external_ids": { + "type": {"key": "string", "value": "string", + "min": 0, "max": "unlimited"}}, + "options": { + "type": {"key": "string", "value": "string", + "min": 0, "max": "unlimited"}}}, + "indexes": [["name"]], + "isRoot": false}}} diff --git a/ovn/ovn-sb.xml b/ovn/ovn-sb.xml index b22d1ac..04f3d76 100644 --- a/ovn/ovn-sb.xml +++ b/ovn/ovn-sb.xml @@ -1837,6 +1837,13 @@ 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. + </column> + <column name="tunnel_key"> <p> A number that represents the logical port in the key (e.g. STT key or @@ -2883,4 +2890,35 @@ tcp.flags = RST; clients are allowed to modify. </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. + + <column name="name"> + Name of the Gateway Chassis element, a recommendation + is using ${port_name}_${chassis_name} + </column> + + <column name="chassis"> + The <ref table="Chassis"/> to which we send the traffic. + </column> + + <column name="priority"> + This is the priority the specific <ref table="Chassis"/> among all + Gateway_Chassis belonging to the same logical router port. + </column> + + <column name="options"> + Reserved for future use. + </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"/> + </group> + </table> </database> -- 1.8.3.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
