for setting in settings:
settingname = setting[name_key].upper()
- if settingname in ('IFNAME','ALIAS','CFGOPTIONS','DRIVER'):
+ if settingname in ('IFNAME','ALIAS','CFGOPTIONS','DRIVER','VLAN'):
details[settingname]=setting['value']
+ # IPv6 support on IPv4 interface
+ elif settingname in ('IPV6ADDR','IPV6_DEFAULTGW','IPV6ADDR_SECONDARIES'):
+ details[settingname]=setting['value']
+ details['IPV6INIT']='yes'
# wireless settings
elif settingname in \
[ "MODE", "ESSID", "NW", "FREQ", "CHANNEL", "SENS", "RATE",
# Bridge setting
elif settingname in [ 'BRIDGE' ]:
details['BRIDGE'] = setting['value']
+ elif settingname in [ 'OVS_BRIDGE' ]:
+ details['OVS_BRIDGE'] = setting['value']
+ details['TYPE'] = "OVSPort"
+ details['DEVICETYPE'] = "ovs"
else:
logger.log("net:InitInterfaces WARNING: ignored setting named %s"%setting[name_key])
else:
logger.log("net:InitInterfaces WARNING: interface alias (%s) not matched to an interface"% details['ALIAS'])
device_id -= 1
- elif 'BRIDGE' in details:
- #The bridge inherits the mac of the first attached interface.
- if 'IFNAME' in details:
- ifname = details['IFNAME']
- device_id -= 1
- else:
- ifname = 'eth0'
- device_id -= 1
+ elif 'BRIDGE' in details and 'IFNAME' in details:
+ # The bridge inherits the mac of the first attached interface.
+ ifname = details['IFNAME']
+ device_id -= 1
logger.log('net:InitInterfaces: Bridge detected. Adding %s to devices_map' % ifname)
devices_map[ifname] = removeBridgedIfaceDetails(details)
bridgeName = details['BRIDGE']
bridgeDevices.append(bridgeName)
bridgeDetails['TYPE'] = 'Bridge'
devices_map[bridgeName] = bridgeDetails
+ elif 'OVS_BRIDGE' in details and 'IFNAME' in details:
+ # Can probably collapse most of this with previous, just prototyping now...
+ ifname = details['IFNAME']
+ device_id -= 1
+ logger.log('net:InitInterfaces: OVS Bridge detected. Adding %s to devices_map' % ifname)
+ devices_map[ifname] = removeBridgedIfaceDetails(details)
+ bridgeName = details['OVS_BRIDGE']
+
+ logger.log('net:InitInterfaces: Adding bridge %s' % bridgeName)
+ bridgeDetails = prepDetails(interface)
+ bridgeDevices.append(bridgeName)
+ bridgeDetails['TYPE'] = 'OVSBridge'
+ bridgeDetails['DEVICETYPE'] = 'ovs'
+ # Fix up details for DHCP if required
+ devices_map[bridgeName] = bridgeDetails
else:
if 'IFNAME' in details:
ifname = details['IFNAME']
parser.add_option("-p", "--program", action="store", type="string",
dest="program", default="plnet")
(options, args) = parser.parse_args()
- options.root = ''
- options.verbose = True
if len(args) != 1 or options.root is None:
print sys.argv
print >>sys.stderr, "Missing root or node_id"