diff options
| author | Christian Poessinger <christian@poessinger.com> | 2019-12-31 13:04:59 +0100 | 
|---|---|---|
| committer | Christian Poessinger <christian@poessinger.com> | 2019-12-31 13:04:59 +0100 | 
| commit | 4ebe0e002208b67dd4720a3fa8569557232df7e5 (patch) | |
| tree | de56f2b01410f39948f1edccbab1cdfac51adcd7 /python | |
| parent | db658825c7bb17e3221474e22b78306dc3edd2df (diff) | |
| download | vyos-1x-4ebe0e002208b67dd4720a3fa8569557232df7e5.tar.gz vyos-1x-4ebe0e002208b67dd4720a3fa8569557232df7e5.zip  | |
l2tpv3: T1923: support interface deletion
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/ifconfig.py | 14 | 
1 files changed, 10 insertions, 4 deletions
diff --git a/python/vyos/ifconfig.py b/python/vyos/ifconfig.py index 1c5a7cd14..36bd8c57c 100644 --- a/python/vyos/ifconfig.py +++ b/python/vyos/ifconfig.py @@ -1714,8 +1714,10 @@ class L2TPv3If(Interface):      monitoring may be performed.      """      def __init__(self, ifname, config=''): +        self._config = {}          if config:              self._ifname = ifname +            self._config = config              if not os.path.exists('/sys/class/net/{}'.format(self._ifname)):                  # create tunnel interface                  cmd = 'ip l2tp add tunnel tunnel_id {} '.format(config['tunnel_id']) @@ -1729,7 +1731,7 @@ class L2TPv3If(Interface):                  # setup session                  cmd = 'ip l2tp add session name {} '.format(self._ifname) -                cmd += 'tunnel_id  {} '.format(config['tunnel_id']) +                cmd += 'tunnel_id {} '.format(config['tunnel_id'])                  cmd += 'session_id {} '.format(config['session_id'])                  cmd += 'peer_session_id  {} '.format(config['peer_session_id'])                  self._cmd(cmd) @@ -1753,10 +1755,14 @@ class L2TPv3If(Interface):              # interface is always A/D down. It needs to be enabled explicitly              self.set_state('down') -            #cmd = 'ip l2tp add tunnel tunnel_id {} '.format(config['tunnel_id']) +            if self._config['tunnel_id'] and self._config['session_id']: +                cmd = 'ip l2tp del session tunnel_id {} '.format(self._config['tunnel_id']) +                cmd += 'session_id {} '.format(self._config['session_id']) +                self._cmd(cmd) -        # call remove of parent class -        super().remove() +            if self._config['tunnel_id']: +                cmd = 'ip l2tp del tunnel tunnel_id {} '.format(self._config['tunnel_id']) +                self._cmd(cmd)      @staticmethod      def get_config():  | 
