'validvals': ['yes', 'no'],
'default' : 'no',
'example' : ['mpls-enable yes']},
+ 'ipv6-addrgen': {
+ 'help': 'enable disable ipv6 link addrgenmode',
+ 'validvals': ['on', 'off'],
+ 'default': 'on',
+ 'example': [
+ 'ipv6-addrgen on',
+ 'ipv6-addrgen off'
+ ]
+ }
}}
def __init__(self, *args, **kargs):
self._process_mtu_config(ifaceobj, ifaceobj_getfunc, mtu)
+ def up_ipv6_addrgen(self, ifaceobj):
+ ipv6_addrgen = ifaceobj.get_attr_value_first('ipv6-addrgen')
+ if ipv6_addrgen:
+ self.ipcmd.ipv6_addrgen(ifaceobj.name, utils.get_boolean_from_string(ipv6_addrgen))
+
def _up(self, ifaceobj, ifaceobj_getfunc=None):
if not self.ipcmd.link_exists(ifaceobj.name):
return
pass
self.ipcmd.batch_start()
+ self.up_ipv6_addrgen(ifaceobj)
+
if addr_method != "dhcp":
self._inet_address_config(ifaceobj, ifaceobj_getfunc,
force_reapply)
return os.listdir('/sys/class/net/%s/brif/' % bridgename)
except:
return []
+
+ def ipv6_addrgen(self, ifname, addrgen):
+ cmd = 'link set dev %s addrgenmode %s' % (ifname, 'eui64' if addrgen else 'none')
+
+ is_link_up = self.is_link_up(ifname)
+
+ if is_link_up:
+ self.link_down(ifname)
+
+ if LinkUtils.ipbatch:
+ self.add_to_batch(cmd)
+ else:
+ utils.exec_command('%s %s' % (utils.ip_cmd, cmd))
+
+ if is_link_up:
+ self.link_up(ifname)