From 3fee068a676e7585750789c7e2ccf5fbf8344049 Mon Sep 17 00:00:00 2001 From: Alexandre Derumier Date: Thu, 20 Apr 2023 11:48:11 +0200 Subject: [PATCH] vlan: query_check: check vlan-protocol for not dotted interface /etc/network/interfaces ----------------------- auto eth0.100 iface eth0.100 vlan-protocol 802.1ad current ------- ifquery -a -c auto eth0.100 iface eth0.100 [pass] new --- ifquery -a -c auto eth0.100 iface eth0.100 [pass] vlan-protocol 802.1ad [pass] --- ifupdown2/addons/vlan.py | 44 +++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/ifupdown2/addons/vlan.py b/ifupdown2/addons/vlan.py index 584fe6e..3b045dc 100644 --- a/ifupdown2/addons/vlan.py +++ b/ifupdown2/addons/vlan.py @@ -224,10 +224,13 @@ class vlan(Addon, moduleBase): def _query_check(self, ifaceobj, ifaceobjcurr): if not self.cache.link_exists(ifaceobj.name): return + + ifname = ifaceobj.name + cached_vlan_info_data = self.cache.get_link_info_data(ifname) + if '.' not in ifaceobj.name: # if vlan name is not in the dot format, check its running state - ifname = ifaceobj.name cached_vlan_raw_device = self.cache.get_lower_device_ifname(ifname) # @@ -239,8 +242,6 @@ class vlan(Addon, moduleBase): cached_vlan_raw_device != ifaceobj.get_attr_value_first('vlan-raw-device') ) - cached_vlan_info_data = self.cache.get_link_info_data(ifname) - # # vlan-id # @@ -252,27 +253,28 @@ class vlan(Addon, moduleBase): cached_vlan_id_str = str(cached_vlan_id) ifaceobjcurr.update_config_with_status('vlan-id', cached_vlan_id_str, vlanid_config != cached_vlan_id_str) - # - # vlan-protocol - # - protocol_config = ifaceobj.get_attr_value_first('vlan-protocol') - if protocol_config: + # + # vlan-protocol (dot or not dot format) + # + protocol_config = ifaceobj.get_attr_value_first('vlan-protocol') + if protocol_config: - cached_vlan_protocol = cached_vlan_info_data.get(Link.IFLA_VLAN_PROTOCOL) + cached_vlan_protocol = cached_vlan_info_data.get(Link.IFLA_VLAN_PROTOCOL) - if protocol_config.upper() != cached_vlan_protocol.upper(): - ifaceobjcurr.update_config_with_status( - 'vlan-protocol', - cached_vlan_protocol, - 1 - ) - else: - ifaceobjcurr.update_config_with_status( - 'vlan-protocol', - protocol_config, - 0 - ) + if protocol_config.upper() != cached_vlan_protocol.upper(): + ifaceobjcurr.update_config_with_status( + 'vlan-protocol', + cached_vlan_protocol, + 1 + ) + else: + ifaceobjcurr.update_config_with_status( + 'vlan-protocol', + protocol_config, + 0 + ) + if '.' not in ifaceobj.name: # # vlan-bridge-binding #