diff options
author | Daniil Baturin <daniil@vyos.io> | 2022-04-11 04:44:19 -0400 |
---|---|---|
committer | Daniil Baturin <daniil@vyos.io> | 2022-04-11 04:44:19 -0400 |
commit | 7dd917def1e250e63b097f6fd8958b9b07a7d57e (patch) | |
tree | 120a17a35bff6eb1a34465bba6c78cc2b7b42064 | |
parent | 4dc4bbc6ce6ab4a3a531b16619b5c34816366afc (diff) | |
download | vyos-1x-7dd917def1e250e63b097f6fd8958b9b07a7d57e.tar.gz vyos-1x-7dd917def1e250e63b097f6fd8958b9b07a7d57e.zip |
T4327: ignore PermissionError caused by ethtool spee/duplex/autoneg setting
Certain NICs seem to fail to report that they don't support speed/duplex setting,
so they look as if it's supported, but the command fails in practice.
It's probably better to preserve a working config in that case.
-rw-r--r-- | python/vyos/ifconfig/ethernet.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/python/vyos/ifconfig/ethernet.py b/python/vyos/ifconfig/ethernet.py index 9d54dc78e..1280fc238 100644 --- a/python/vyos/ifconfig/ethernet.py +++ b/python/vyos/ifconfig/ethernet.py @@ -170,11 +170,18 @@ class EthernetIf(Interface): return cmd = f'ethtool --change {ifname}' - if speed == 'auto' or duplex == 'auto': - cmd += ' autoneg on' - else: - cmd += f' speed {speed} duplex {duplex} autoneg off' - return self._cmd(cmd) + try: + if speed == 'auto' or duplex == 'auto': + cmd += ' autoneg on' + else: + cmd += f' speed {speed} duplex {duplex} autoneg off' + return self._cmd(cmd) + except PermissionError: + # Some NICs do not tell that they don't suppport settings speed/duplex, + # but they do not actually support it either. + # In that case it's probably better to ignore the error + # than end up with a broken config. + print('Warning: could not set speed/duplex settings: operation not permitted!') def set_gro(self, state): """ |