From: Ofer Ben Yacov Date: Fri, 5 Feb 2016 20:54:57 +0000 (-0800) Subject: vtep: Support per-tunnel tunnel key in schema. X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fovs.git;a=commitdiff_plain;h=c2cd19020ccbeb683ab90aeae94ddf65e310b593 vtep: Support per-tunnel tunnel key in schema. Currently the scenario of single logical bridge that use multiple locators with different tunnel key on each of the locators is not supported. In order to support much more flexibility in the tunnel settings, we need to add tunnel key column to the Physical_Locator table. This patch is needed to support the usage of neutron L2GW as an inter-cloud gateway. The tunnel key that is set in the logical bridge will be used 'internally' to connect the L2GW to the compute hosts and the key that is set in the physical locator will be used to connect the L2GW to a remote L2GW to form a tunnel between 2 clouds. In this case, the 'external' connection will use single 'dst_ip' on all the locators with different tunnel key for each L2 domain. The Neutron spec is available here: https://review.openstack.org/#/c/270786/ The new code depend on the ability to use different keys in multiple tunnels in the same logical switch. Signed-off-by: Ofer Ben-Yacov [blp@ovn.org added and clarified documentation] Signed-off-by: Ben Pfaff --- diff --git a/AUTHORS b/AUTHORS index 3539e55b2..936394d51 100644 --- a/AUTHORS +++ b/AUTHORS @@ -147,6 +147,7 @@ Neil Zhu zhuj@centecnetworks.com Nithin Raju nithin@vmware.com Niti Rohilla niti.rohilla@tcs.com Numan Siddique nusiddiq@redhat.com +Ofer Ben-Yacov ofer.benyacov@gmail.com Padmanabhan Krishnan kprad1@yahoo.com Panu Matilainen pmatilai@redhat.com Paraneetharan Chandrasekaran paraneetharanc@gmail.com diff --git a/vtep/vtep.ovsschema b/vtep/vtep.ovsschema index 137517375..cf3538f3e 100644 --- a/vtep/vtep.ovsschema +++ b/vtep/vtep.ovsschema @@ -1,6 +1,6 @@ { "name": "hardware_vtep", - "cksum": "2177247725 10499", + "cksum": "1621458335 10585", "tables": { "Global": { "columns": { @@ -188,8 +188,9 @@ "enum": ["set", ["vxlan_over_ipv4"]], "type": "string"}}, "mutable": false}, - "dst_ip": {"type": "string", "mutable": false}}, - "indexes": [["encapsulation_type", "dst_ip"]]}, + "dst_ip": {"type": "string", "mutable": false}, + "tunnel_key": {"type": {"key": "integer", "min": 0, "max": 1}}}, + "indexes": [["encapsulation_type", "dst_ip", "tunnel_key"]]}, "ACL_entry": { "columns": { "sequence": {"type": "integer"}, @@ -283,4 +284,4 @@ "ephemeral": true}}, "indexes": [["target"]], "isRoot": false}}, - "version": "1.4.1"} + "version": "1.5.0"} diff --git a/vtep/vtep.xml b/vtep/vtep.xml index 6c49e06e9..7112111b1 100644 --- a/vtep/vtep.xml +++ b/vtep/vtep.xml @@ -689,9 +689,10 @@

- For vxlan_over_ipv4 encapsulation, this column - is the VXLAN VNI that identifies a logical switch. It must - be in the range 0 to 16,777,215. + For vxlan_over_ipv4 encapsulation, when the tunnel key + per model is in use, this column is the + VXLAN VNI that identifies a logical switch. It must be in the range + 0 to 16,777,215.

@@ -993,24 +994,17 @@

- For the vxlan_over_ipv4 encapsulation, the only - encapsulation defined so far, all endpoints associated with a given must use a common tunnel key, which is carried - in the column of . -

- -

- For some encapsulations yet to be defined, we expect to identify both an endpoint and a tunnel key. - When the first such encapsulation is defined, we expect to add a - ``tunnel_key'' column to to allow the - tunnel key to be defined. -

- -

- See the ``Per Logical-Switch Tunnel Key'' section in the table for further discussion of the model. + The vxlan_over_ipv4 encapsulation, the only encapsulation + defined so far, can use either tunnel key model described in the ``Per + Logical-Switch Tunnel Key'' section in the + table. When the tunnel key per model is in + use, the column in the + table is filled with a VNI and the column in this table is empty; in the + key-per-tunnel model, the opposite is true. The former model is older, + and thus likely to be more widely supported. See the ``Per + Logical-Switch Tunnel Key'' section in the + table for further discussion of the model.

@@ -1029,6 +1023,21 @@

+ +

+ This column is used only in the tunnel key per + model (see + above). +

+ +

+ For vxlan_over_ipv4 encapsulation, when the + model is in + use, this column is the VXLAN VNI. It must be in the range 0 to + 16,777,215. +

+
+