summaryrefslogtreecommitdiff
path: root/python/vyos
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2024-01-18 17:11:23 +0100
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2024-01-21 19:05:23 +0000
commit31ba9f00628da7da4339b4cdc2d208e06d686092 (patch)
tree50451707b7fc206a27534d6f7bd49326fa28ce02 /python/vyos
parent31c03bef52a01591b16a6bc71286dbd13e2bd6f4 (diff)
downloadvyos-1x-31ba9f00628da7da4339b4cdc2d208e06d686092.tar.gz
vyos-1x-31ba9f00628da7da4339b4cdc2d208e06d686092.zip
ethernet: T4638: deleting parent interface does not delete underlying VIFs
(cherry picked from commit 7ba47f027f3a9441125c13a927eb23cee2de041b)
Diffstat (limited to 'python/vyos')
-rw-r--r--python/vyos/ifconfig/ethernet.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/python/vyos/ifconfig/ethernet.py b/python/vyos/ifconfig/ethernet.py
index c9fa6ea8b..3fe54d7bf 100644
--- a/python/vyos/ifconfig/ethernet.py
+++ b/python/vyos/ifconfig/ethernet.py
@@ -19,6 +19,7 @@ import re
from glob import glob
from vyos.ethtool import Ethtool
+from vyos.ifconfig import Section
from vyos.ifconfig.interface import Interface
from vyos.util import run
from vyos.util import dict_search
@@ -91,6 +92,10 @@ class EthernetIf(Interface):
# will remain visible for the operating system.
self.set_admin_state('down')
+ # Remove all VLAN subinterfaces - filter with the VLAN dot
+ for vlan in [x for x in Section.interfaces(self.iftype) if x.startswith(f'{self.ifname}.')]:
+ Interface(vlan).remove()
+
super().remove()
def set_flow_control(self, enable):