diff options
| author | Christian Poessinger <christian@poessinger.com> | 2019-12-06 19:32:45 +0100 | 
|---|---|---|
| committer | Christian Poessinger <christian@poessinger.com> | 2019-12-06 19:32:52 +0100 | 
| commit | 6e2cf6e4515b2f143d1e2fdff6fe22fcc666ce18 (patch) | |
| tree | cc7b8f271acdcd6a876c974547594ce97c0cf19d | |
| parent | 3a16fb46a16f91557f6805e74aafb568f46fd1c0 (diff) | |
| download | vyos-1x-6e2cf6e4515b2f143d1e2fdff6fe22fcc666ce18.tar.gz vyos-1x-6e2cf6e4515b2f143d1e2fdff6fe22fcc666ce18.zip | |
ifconfig: T1849: fix DHCPv6 startup
| -rw-r--r-- | python/vyos/ifconfig.py | 53 | 
1 files changed, 26 insertions, 27 deletions
| diff --git a/python/vyos/ifconfig.py b/python/vyos/ifconfig.py index 2f2f05f74..72f11c04d 100644 --- a/python/vyos/ifconfig.py +++ b/python/vyos/ifconfig.py @@ -627,33 +627,32 @@ class Interface:          with open(self._dhcpv6_cfg_file, 'w') as f:              f.write(dhcpv6_text) -        if self.get_state() == 'up': -            # https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1447715 -            # -            # wee need to wait for IPv6 DAD to finish once and interface is added -            # this suxx :-( -            sleep(5) - -            # no longer accept router announcements on this interface -            self._write_sysfs('/proc/sys/net/ipv6/conf/{}/accept_ra' -                  .format(self._ifname), 0) - -            # assemble command-line to start DHCPv6 client (dhclient) -            cmd  = 'start-stop-daemon --start --quiet --pidfile ' + \ -                self._dhcpv6_pid_file -            cmd += ' --exec /sbin/dhclient --' -            # now pass arguments to dhclient binary -            cmd += ' -6 -nw -cf {} -pf {} -lf {}'.format( -                self._dhcpv6_cfg_file, self._dhcpv6_pid_file, self._dhcpv6_lease_file) - -            # add optional arguments -            if dhcpv6['dhcpv6_prm_only']: -                cmd += ' -S' -            if dhcpv6['dhcpv6_temporary']: -                cmd += ' -T' - -            cmd += ' {}'.format(self._ifname) -            return self._cmd(cmd) +        # https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1447715 +        # +        # wee need to wait for IPv6 DAD to finish once and interface is added +        # this suxx :-( +        sleep(5) + +        # no longer accept router announcements on this interface +        self._write_sysfs('/proc/sys/net/ipv6/conf/{}/accept_ra' +              .format(self._ifname), 0) + +        # assemble command-line to start DHCPv6 client (dhclient) +        cmd  = 'start-stop-daemon --start --quiet --pidfile ' + \ +            self._dhcpv6_pid_file +        cmd += ' --exec /sbin/dhclient --' +        # now pass arguments to dhclient binary +        cmd += ' -6 -nw -cf {} -pf {} -lf {}'.format( +            self._dhcpv6_cfg_file, self._dhcpv6_pid_file, self._dhcpv6_lease_file) + +        # add optional arguments +        if dhcpv6['dhcpv6_prm_only']: +            cmd += ' -S' +        if dhcpv6['dhcpv6_temporary']: +            cmd += ' -T' + +        cmd += ' {}'.format(self._ifname) +        return self._cmd(cmd)      def _del_dhcpv6(self): | 
