except:
timeout = 10
pass
+ dhcp6_duid = policymanager.policymanager_api.get_iface_default(module_name=self.__class__.__name__, \
+ ifname=ifaceobj.name, attr='dhcp6-duid')
vrf = ifaceobj.get_attr_value_first('vrf')
if (vrf and self.vrf_exec_cmd_prefix and
self.sysctl_set('net.ipv6.conf.%s' %ifaceobj.name +
'.autoconf', autoconf)
try:
- self.dhclientcmd.stop6(ifaceobj.name)
+ self.dhclientcmd.stop6(ifaceobj.name, duid=dhcp6_duid)
except:
pass
#add delay before starting IPv6 dhclient to
if r:
self.dhclientcmd.start6(ifaceobj.name,
wait=wait,
- cmd_prefix=dhclient_cmd_prefix)
+ cmd_prefix=dhclient_cmd_prefix, duid=dhcp6_duid)
return
timeout -= 1
if timeout:
if (vrf and self.vrf_exec_cmd_prefix and
self.ipcmd.link_exists(vrf)):
dhclient_cmd_prefix = '%s %s' %(self.vrf_exec_cmd_prefix, vrf)
+ dhcp6_duid = policymanager.policymanager_api.get_iface_default(module_name=self.__class__.__name__, \
+ ifname=ifaceobj.name, attr='dhcp6-duid')
if 'inet6' in ifaceobj.addr_family:
- self.dhclientcmd.release6(ifaceobj.name, dhclient_cmd_prefix)
+ self.dhclientcmd.release6(ifaceobj.name, dhclient_cmd_prefix, duid=dhcp6_duid)
if 'inet' in ifaceobj.addr_family:
self.dhclientcmd.release(ifaceobj.name, dhclient_cmd_prefix)
'%s' %ifacename]
self._run_dhclient_cmd(cmd, cmd_prefix)
- def start6(self, ifacename, wait=True, cmd_prefix=None):
+ def start6(self, ifacename, wait=True, cmd_prefix=None, duid=None):
cmd = ['/sbin/dhclient', '-6', '-pf',
'/run/dhclient6.%s.pid' %ifacename, '-lf',
'/var/lib/dhcp/dhclient6.%s.leases' % ifacename,
'%s' %ifacename]
if not wait:
cmd.append('-nw')
+ if duid is not None:
+ cmd.append('-D')
+ cmd.append(duid)
self._run_dhclient_cmd(cmd, cmd_prefix)
- def stop6(self, ifacename, cmd_prefix=None):
+ def stop6(self, ifacename, cmd_prefix=None, duid=None):
cmd = ['/sbin/dhclient', '-6', '-x', '-pf',
'/run/dhclient6.%s.pid' % ifacename, '-lf',
'/var/lib/dhcp/dhclient6.%s.leases' % ifacename,
'%s' %ifacename]
+ if duid is not None:
+ cmd.append('-D')
+ cmd.append(duid)
self._run_dhclient_cmd(cmd, cmd_prefix)
- def release6(self, ifacename, cmd_prefix=None):
+ def release6(self, ifacename, cmd_prefix=None, duid=None):
cmd = ['/sbin/dhclient', '-6', '-r', '-pf',
'/run/dhclient6.%s.pid' %ifacename,
'-lf', '/var/lib/dhcp/dhclient6.%s.leases' % ifacename,
'%s' %ifacename]
+ if duid is not None:
+ cmd.append('-D')
+ cmd.append(duid)
self._run_dhclient_cmd(cmd, cmd_prefix)