summaryrefslogtreecommitdiff
path: root/python/vyos/ifconfig/ethernet.py
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-09-10 16:46:55 +0200
committerChristian Poessinger <christian@poessinger.com>2021-09-10 17:01:25 +0200
commit2abf6711e880463b9d9276b2fa9ea7b4ebcdc179 (patch)
treeb9780e2a64c3fed4530eb49353b78968ee1e116f /python/vyos/ifconfig/ethernet.py
parentcc313b32ef26141c2c027e8543f78da1231cada2 (diff)
downloadvyos-1x-2abf6711e880463b9d9276b2fa9ea7b4ebcdc179.tar.gz
vyos-1x-2abf6711e880463b9d9276b2fa9ea7b4ebcdc179.zip
ethernet: T3802: use only one implementation for get_driver_name()
Move the two implementations to get the driver name of a NIC from ethernet.py and ethtool.py to only ethtool.py. (cherry picked from commit 07840977834816b69fa3b366817d90f44b5dc7a7)
Diffstat (limited to 'python/vyos/ifconfig/ethernet.py')
-rw-r--r--python/vyos/ifconfig/ethernet.py28
1 files changed, 3 insertions, 25 deletions
diff --git a/python/vyos/ifconfig/ethernet.py b/python/vyos/ifconfig/ethernet.py
index c4dfc7198..78fec1fa2 100644
--- a/python/vyos/ifconfig/ethernet.py
+++ b/python/vyos/ifconfig/ethernet.py
@@ -80,25 +80,6 @@ class EthernetIf(Interface):
super().__init__(ifname, **kargs)
self.ethtool = Ethtool(ifname)
- def get_driver_name(self):
- """
- Return the driver name used by NIC. Some NICs don't support all
- features e.g. changing link-speed, duplex
-
- Example:
- >>> from vyos.ifconfig import EthernetIf
- >>> i = EthernetIf('eth0')
- >>> i.get_driver_name()
- 'vmxnet3'
- """
- ifname = self.config['ifname']
- sysfs_file = f'/sys/class/net/{ifname}/device/driver/module'
- if os.path.exists(sysfs_file):
- link = os.readlink(sysfs_file)
- return os.path.basename(link)
- else:
- return None
-
def set_flow_control(self, enable):
"""
Changes the pause parameters of the specified Ethernet device.
@@ -116,8 +97,7 @@ class EthernetIf(Interface):
raise ValueError("Value out of range")
if not self.ethtool.check_flow_control():
- self._debug_msg(f'{driver_name} driver does not support changing '\
- 'flow control settings!')
+ self._debug_msg(f'NIC driver does not support changing flow control settings!')
return False
current = self.ethtool.get_flow_control()
@@ -151,10 +131,8 @@ class EthernetIf(Interface):
if duplex not in ['auto', 'full', 'half']:
raise ValueError("Value out of range (duplex)")
- driver_name = self.get_driver_name()
- if driver_name in ['vmxnet3', 'virtio_net', 'xen_netfront']:
- self._debug_msg(f'{driver_name} driver does not support changing '\
- 'speed/duplex settings!')
+ if not self.ethtool.check_speed_duplex(speed, duplex):
+ self._debug_msg(f'NIC driver does not support changing speed/duplex settings!')
return
# Get current speed and duplex settings: