aboutsummaryrefslogtreecommitdiffstats
path: root/os_net_config/impl_eni.py
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2014-07-02 15:11:50 -0400
committerDan Prince <dprince@redhat.com>2014-07-02 15:11:50 -0400
commit7d164efbc1f9636b172eae574370aad33c35d889 (patch)
tree1b2b1e30fc762ae344a1f0d14b36ebb82b1fae5c /os_net_config/impl_eni.py
parent1426396789cb23f15f2a0466effb655af4645740 (diff)
Add vlan support for the ENI implementation.
Diffstat (limited to 'os_net_config/impl_eni.py')
-rw-r--r--os_net_config/impl_eni.py37
1 files changed, 32 insertions, 5 deletions
diff --git a/os_net_config/impl_eni.py b/os_net_config/impl_eni.py
index 53d540c..6b88e85 100644
--- a/os_net_config/impl_eni.py
+++ b/os_net_config/impl_eni.py
@@ -57,7 +57,10 @@ class ENINetConfig(os_net_config.NetConfig):
if data:
return data
- _iface = "iface %s " % interface.name
+ if isinstance(interface, objects.Vlan):
+ _iface = "iface vlan%i " % interface.vlan_id
+ else:
+ _iface = "iface %s " % interface.name
if static_addr and static_addr.version == 6:
_iface += "inet6 "
else:
@@ -81,12 +84,29 @@ class ENINetConfig(os_net_config.NetConfig):
for i in interface.members:
data += " pre-up ip addr flush dev %s\n" % i.name
elif interface.ovs_port:
- data += "auto %s\n" % interface.name
- data += "allow-%s %s\n" % (interface.bridge_name, interface.name)
+ if isinstance(interface, objects.Vlan):
+ data += "auto vlan%i\n" % interface.vlan_id
+ data += "allow-%s vlan%i\n" % (interface.bridge_name,
+ interface.vlan_id)
+ data += _iface
+ data += address_data
+ data += " ovs_bridge %s\n" % interface.bridge_name
+ data += " ovs_type OVSIntPort\n"
+ data += " ovs_options tag=%s\n" % interface.vlan_id
+
+ else:
+ data += "auto %s\n" % interface.name
+ data += "allow-%s %s\n" % (interface.bridge_name,
+ interface.name)
+ data += _iface
+ data += address_data
+ data += " ovs_bridge %s\n" % interface.bridge_name
+ data += " ovs_type OVSPort\n"
+ elif isinstance(interface, objects.Vlan):
+ data += "auto vlan%i\n" % interface.vlan_id
data += _iface
data += address_data
- data += " ovs_bridge %s\n" % interface.bridge_name
- data += " ovs_type OVSPort\n"
+ data += " vlan-raw-device %s\n" % interface.device
else:
data += "auto %s\n" % interface.name
data += _iface
@@ -107,6 +127,13 @@ class ENINetConfig(os_net_config.NetConfig):
if bridge.routes:
self._addRoutes(bridge.name, bridge.routes)
+ def addVlan(self, vlan):
+ data = self._addCommon(vlan)
+
+ self.interfaces[vlan.name] = data
+ if vlan.routes:
+ self._addRoutes(vlan.name, vlan.routes)
+
def _addRoutes(self, interface_name, routes=[]):
data = ""
for route in routes: