diff options
author | Russell Bryant <russell@ovn.org> | 2016-03-28 19:05:40 -0400 |
---|---|---|
committer | Russell Bryant <russell@ovn.org> | 2016-07-01 16:59:27 -0400 |
commit | 184bc3cae8c8c63e6d5d1634f71ea24414ac7ea2 (patch) | |
tree | 8d3008476e5da5165e72dcf1695116c22bace0f1 /ovn/ovn-sb.xml | |
parent | 39a6542bb429d5d636c235ec552a7d6d198ccfc7 (diff) | |
download | openvswitch-184bc3cae8c8c63e6d5d1634f71ea24414ac7ea2.tar.gz |
ovn: Add software l2 gateway.
This patch implements one approach to using ovn-controller to implement
a software l2 gateway between logical and physical networks.
A new logical port type called "l2gateway" is introduced here. It is very
close to how localnet ports work, with the following exception:
- A localnet port makes OVN use the physical network as the
transport between hypervisors instead of tunnels. An l2gateway port still
uses tunnels between all hypervisors, and packets only go to/from the
specified physical network as needed via the chassis the l2gateway port
is bound to.
- An l2gateway port also gets bound to a chassis while a localnet port does
not. This binding is not done by ovn-controller. It is left as an
administrative function. In the case of OpenStack, the Neutron plugin
will do this.
Signed-off-by: Russell Bryant <russell@ovn.org>
Acked-by: Ryan Moats <rmoats@us.ibm.com>
Acked-by: Ben Pfaff <blp@ovn.org>
Acked-by: Justin Pettit <jpettit@ovn.org>
Diffstat (limited to 'ovn/ovn-sb.xml')
-rw-r--r-- | ovn/ovn-sb.xml | 88 |
1 files changed, 82 insertions, 6 deletions
diff --git a/ovn/ovn-sb.xml b/ovn/ovn-sb.xml index 3db846f25..4814b0a6c 100644 --- a/ovn/ovn-sb.xml +++ b/ovn/ovn-sb.xml @@ -1356,10 +1356,47 @@ tcp.flags = RST; </column> <column name="chassis"> - The physical location of the logical port. To successfully identify a - chassis, this column must be a <ref table="Chassis"/> record. This is - populated by - <code>ovn-controller</code>/<code>ovn-controller-vtep</code>. + The meaning of this column depends on the value of the <ref column="type"/> + column. This is the meaning for each <ref column="type"/> + + <dl> + <dt>(empty string)</dt> + <dd> + The physical location of the logical port. To successfully identify a + chassis, this column must be a <ref table="Chassis"/> record. This is + populated by <code>ovn-controller</code>. + </dd> + + <dt>vtep</dt> + <dd> + The physical location of the hardware_vtep gateway. To successfully + identify a chassis, this column must be a <ref table="Chassis"/> record. + This is populated by <code>ovn-controller-vtep</code>. + </dd> + + <dt>localnet</dt> + <dd> + Always empty. A localnet port is realized on every chassis that has + connectivity to the corresponding physical network. + </dd> + + <dt>gateway</dt> + <dd> + The physical location of the L3 gateway. To successfully identify a + chassis, this column must be a <ref table="Chassis"/> record. This is + populated by <code>ovn-controller</code> based on the value of + the <code>options:gateway-chassis</code> column in this table. + </dd> + + <dt>l2gateway</dt> + <dd> + The physical location of this L2 gateway. To successfully identify a + chassis, this column must be a <ref table="Chassis"/> record. + This is populated by an entity external to OVN, either manually or by + a CMS. + </dd> + </dl> + </column> <column name="tunnel_key"> @@ -1423,6 +1460,14 @@ tcp.flags = RST; to model direct connectivity to an existing network. </dd> + <dt><code>l2gateway</code></dt> + <dd> + An L2 connection to a physical network. The chassis this + <ref table="Port_Binding"/> is bound to will serve as + an L2 gateway to the network named by + <ref column="options" table="Port_Binding"/>:<code>network_name</code>. + </dd> + <dt><code>vtep</code></dt> <dd> A port to a logical switch on a VTEP gateway chassis. In order to @@ -1453,7 +1498,7 @@ tcp.flags = RST; </column> </group> - <group title="Gateway Options"> + <group title="L3 Gateway Options"> <p> These options apply to logical ports with <ref column="type"/> of <code>gateway</code>. @@ -1505,6 +1550,36 @@ tcp.flags = RST; </column> </group> + <group title="L2 Gateway Options"> + <p> + These options apply to logical ports with <ref column="type"/> of + <code>l2gateway</code>. + </p> + + <column name="options" key="network_name"> + Required. <code>ovn-controller</code> uses the configuration entry + <code>ovn-bridge-mappings</code> to determine how to connect to this + network. <code>ovn-bridge-mappings</code> is a list of network names + mapped to a local OVS bridge that provides access to that network. An + example of configuring <code>ovn-bridge-mappings</code> would be: + + <pre>$ ovs-vsctl set open . external-ids:ovn-bridge-mappings=physnet1:br-eth0,physnet2:br-eth1</pre> + + <p> + When a logical switch has a <code>l2gateway</code> port attached, + the chassis that the <code>l2gateway</code> port is bound to + must have a bridge mapping configured to reach the network + identified by <code>network_name</code>. + </p> + </column> + + <column name="tag"> + If set, indicates that the gateway is connected to a specific + VLAN on the physical network. The VLAN ID is used to match + incoming traffic and is also added to outgoing traffic. + </column> + </group> + <group title="VTEP Options"> <p> These options apply to logical ports with <ref column="type"/> of @@ -1562,7 +1637,8 @@ tcp.flags = RST; <p> This column is used for a different purpose when <ref column="type"/> - is <code>localnet</code> (see <code>Localnet Options</code>, above). + is <code>localnet</code> (see <code>Localnet Options</code>, above) + or <code>l2gateway</code> (see <code>L2 Gateway Options</code>, above). </p> </column> </group> |