diff options
author | James Slagle <jslagle@redhat.com> | 2016-06-14 11:40:55 -0400 |
---|---|---|
committer | James Slagle <jslagle@redhat.com> | 2016-06-14 17:50:56 -0400 |
commit | 789bd1ea089314b49db02ddd517809a82c380cf1 (patch) | |
tree | 828cbac57e63232bedb2910609835a5f3eed0ef9 /os_net_config/impl_ifcfg.py | |
parent | 4d88e7f349f725704c707093c8b44d7409eae481 (diff) |
Add support for OVS patch ports
OVS patch ports are used to connect two OVS bridges so traffic can flow
between them. This is generally useful for various cases.
Specifically it could be used to connect the bridges created by TripleO
networking configurations (br-ex, etc) to the bridge created by the
multinode networking setup in infra's nodepool (br_pub). This allows the
nodes in a multinode deployment to have connectivity across private
subnets where such traffic is typically firewalled off in public clouds.
Change-Id: I11404106cb3f53734f6fc9a35c22f905a0770245
Diffstat (limited to 'os_net_config/impl_ifcfg.py')
-rw-r--r-- | os_net_config/impl_ifcfg.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/os_net_config/impl_ifcfg.py b/os_net_config/impl_ifcfg.py index f6b4617..fbd1c3a 100644 --- a/os_net_config/impl_ifcfg.py +++ b/os_net_config/impl_ifcfg.py @@ -185,11 +185,18 @@ class IfcfgNetConfig(os_net_config.NetConfig): data += "OVS_TUNNEL_TYPE=%s\n" % base_opt.tunnel_type data += "OVS_TUNNEL_OPTIONS=\"%s\"\n" % \ ' '.join(base_opt.ovs_options) + elif isinstance(base_opt, objects.OvsPatchPort): + ovs_extra.extend(base_opt.ovs_extra) + data += "DEVICETYPE=ovs\n" + data += "TYPE=OVSPatchPort\n" + data += "OVS_BRIDGE=%s\n" % base_opt.bridge_name + data += "OVS_PATCH_PEER=%s\n" % base_opt.peer else: if base_opt.use_dhcp: data += "BOOTPROTO=dhcp\n" elif not base_opt.addresses: data += "BOOTPROTO=none\n" + if base_opt.mtu: data += "MTU=%i\n" % base_opt.mtu if base_opt.use_dhcpv6 or base_opt.v6_addresses(): @@ -374,6 +381,16 @@ class IfcfgNetConfig(os_net_config.NetConfig): logger.debug('ovs tunnel data: %s' % data) self.interface_data[tunnel.name] = data + def add_ovs_patch_port(self, ovs_patch_port): + """Add a OvsPatchPort object to the net config object. + + :param ovs_patch_port: The OvsPatchPort object to add. + """ + logger.info('adding ovs patch port: %s' % ovs_patch_port.name) + data = self._add_common(ovs_patch_port) + logger.debug('ovs patch port data: %s' % data) + self.interface_data[ovs_patch_port.name] = data + def generate_ivs_config(self, ivs_uplinks, ivs_interfaces): """Generate configuration content for ivs.""" |