diff options
Diffstat (limited to 'python')
-rw-r--r-- | python/vyos/ifconfig.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/python/vyos/ifconfig.py b/python/vyos/ifconfig.py index 084339408..c5d3e447b 100644 --- a/python/vyos/ifconfig.py +++ b/python/vyos/ifconfig.py @@ -14,6 +14,7 @@ # License along with this library. If not, see <http://www.gnu.org/licenses/>. import os +import re import subprocess import jinja2 @@ -97,6 +98,18 @@ class Interface: >>> i.remove() """ + # do we have sub interfaces (VLANs)? + # we apply a regex matching subinterfaces (indicated by a .) of a + # parent interface. 'bond0(?:\.\d+){1,2}' will match vif and vif-s/vif-c + # subinterfaces + vlan_ifs = [f for f in os.listdir(r'/sys/class/net') \ + if re.match(self._ifname + r'(?:\.\d+){1,2}', f)] + + for vlan in vlan_ifs: + Interface(vlan).remove() + + # All subinterfaces are now removed, continue on the physical interface + # stop DHCP(v6) if running self.del_dhcp() self.del_dhcpv6() |