diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2022-03-11 11:01:04 -0500 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2022-03-11 19:12:16 +0100 |
commit | cfa98d3e281f258e733664bbf375d3633ffe0205 (patch) | |
tree | 5dfed7e70cb14ac1cde3d49fe56f0aee43e61ff5 /python/vyos/ethtool.py | |
parent | 71307ab2a126d3c9086a9b6f3aba6be202a52139 (diff) | |
download | vyos-1x-cfa98d3e281f258e733664bbf375d3633ffe0205.tar.gz vyos-1x-cfa98d3e281f258e733664bbf375d3633ffe0205.zip |
Ethtool: T4297: Update drivers supporting speed/flow/duplex
The iavf, ice, and i40e drivers do not support speed, flow, or duplex control
using ethtool. As a result, interface configuration changes fail to commit when
using those drivers. This patch fixes that by correctly marking those drivers
as not supporting those controls.
(cherry picked from commit 2894b52454311f8e011bed910704064be7471275)
Diffstat (limited to 'python/vyos/ethtool.py')
-rw-r--r-- | python/vyos/ethtool.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/python/vyos/ethtool.py b/python/vyos/ethtool.py index 80d44eee6..672ee2cc9 100644 --- a/python/vyos/ethtool.py +++ b/python/vyos/ethtool.py @@ -18,6 +18,9 @@ import re from vyos.util import popen +# These drivers do not support using ethtool to change the speed, duplex, or flow control settings +_drivers_without_speed_duplex_flow = ['vmxnet3', 'virtio_net', 'xen_netfront', 'iavf', 'ice', 'i40e'] + class Ethtool: """ Class is used to retrive and cache information about an ethernet adapter @@ -188,7 +191,7 @@ class Ethtool: if duplex not in ['auto', 'full', 'half']: raise ValueError(f'Value "{duplex}" for duplex is invalid!') - if self.get_driver_name() in ['vmxnet3', 'virtio_net', 'xen_netfront']: + if self.get_driver_name() in _drivers_without_speed_duplex_flow: return False if speed in self._speed_duplex: @@ -198,7 +201,7 @@ class Ethtool: def check_flow_control(self): """ Check if the NIC supports flow-control """ - if self.get_driver_name() in ['vmxnet3', 'virtio_net', 'xen_netfront']: + if self.get_driver_name() in _drivers_without_speed_duplex_flow: return False return self._flow_control |