From 4a4e2b6386b4c036bbf4486a8a7ac7002d08158b Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 31 Jan 2020 18:05:18 +0100 Subject: ifconfig: T2002: only admin up interfaces if parent interface is up On an A/D (administrative down) interface the VLAN code tries to still admin up the interface. This won't work and the kernel will complain with: RTNETLINK answers: Operation not permitted With this change the VLAN interface is only enabled when the parent interface is administrative up, too. --- python/vyos/ifconfig.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'python/vyos/ifconfig.py') diff --git a/python/vyos/ifconfig.py b/python/vyos/ifconfig.py index 90b8fc169..12ab4548d 100644 --- a/python/vyos/ifconfig.py +++ b/python/vyos/ifconfig.py @@ -1060,6 +1060,17 @@ class VLANIf(Interface): super().remove() + def set_state(self, state): + """ + Change individual VLAN interface state. + + It makes only sense to change the state of an individual VLAN if the + parent interface is up + """ + parent_state = self.get_state() + if parent_state == 'up': + super().set_state(state) + def add_vlan(self, vlan_id, ethertype='', ingress_qos='', egress_qos=''): """ A virtual LAN (VLAN) is any broadcast domain that is partitioned and -- cgit v1.2.3