diff options
author | Christian Poessinger <christian@poessinger.com> | 2021-09-04 11:39:01 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2021-09-04 11:39:01 +0200 |
commit | 27e53fbcd843c3aad27db9e97f9060ae6dfcc5ee (patch) | |
tree | a146614f861e60d4cc6fe7055dd256b77754aa90 /src | |
parent | 5bde11aceffd3d7fca99e582b16555fc0c584410 (diff) | |
download | vyos-1x-27e53fbcd843c3aad27db9e97f9060ae6dfcc5ee.tar.gz vyos-1x-27e53fbcd843c3aad27db9e97f9060ae6dfcc5ee.zip |
op-mode: T3619: bugfix "show interfaces" for VLANs
Commit 31169fa8a7 ("vyos.ifconfig: T3619: only set offloading options if
supported by NIC") always instantiated an object of the Ethtool class for an
ethernet object - this is right as a real ethernet interface is managed by
Ethtool.
Unfortunately the script used for "show interface" determindes the "base class"
for an interface by its name, so eth0 -> Ethernet, eth0.10 -> Ethernet. This
assumption is incorrect as a VLAN interface can not have the physical parameters
changed of its underlaying interface. This can only be done for eth0.
There is no need for the op-mode script to determine the implementation class
for an interface at this level, as we are only interested in the state of the
interface and it's IP addresses - which is a common operation valid for every
interface on VyOS.
Diffstat (limited to 'src')
-rwxr-xr-x | src/op_mode/show_interfaces.py | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/op_mode/show_interfaces.py b/src/op_mode/show_interfaces.py index 2eaaa34f8..1707d8669 100755 --- a/src/op_mode/show_interfaces.py +++ b/src/op_mode/show_interfaces.py @@ -69,10 +69,9 @@ def filtered_interfaces(ifnames, iftypes, vif, vrrp): if ifnames and ifname not in ifnames: continue - # return the class which can handle this interface name - klass = Section.klass(ifname) - # connect to the interface - interface = klass(ifname, create=False, debug=False) + # As we are only "reading" from the interface - we must use the + # generic base class which exposes all the data via a common API + interface = Interface(ifname, create=False, debug=False) if iftypes and interface.definition['section'] not in iftypes: continue |