summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViacheslav Hletenko <v.gletenko@vyos.io>2024-11-05 20:25:18 +0200
committerGitHub <noreply@github.com>2024-11-05 20:25:18 +0200
commit09ca8e2a01fcef509d6f39e0abbe7a65fa1eb5b8 (patch)
tree7d0aca6b334360505b7dc810d3dd5eeb69bc9670
parent47aa697fd646accc2f333f6409885640a9631e2e (diff)
downloadvyos-1x-09ca8e2a01fcef509d6f39e0abbe7a65fa1eb5b8.tar.gz
vyos-1x-09ca8e2a01fcef509d6f39e0abbe7a65fa1eb5b8.zip
T6764: Fix unhandled exception on ethtool output parsing for Xen NICs (#4182)
Not all NICs could provide ring-buffers info requested by ethtool in JSON format For example 'vif' Xen/XCP-NG interfaces Fix it
-rw-r--r--python/vyos/ethtool.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/python/vyos/ethtool.py b/python/vyos/ethtool.py
index 21272cc5b..4710a5d40 100644
--- a/python/vyos/ethtool.py
+++ b/python/vyos/ethtool.py
@@ -23,7 +23,7 @@ from vyos.utils.process import popen
# flow control settings
_drivers_without_speed_duplex_flow = ['vmxnet3', 'virtio_net', 'xen_netfront',
'iavf', 'ice', 'i40e', 'hv_netvsc', 'veth', 'ixgbevf',
- 'tun']
+ 'tun', 'vif']
class Ethtool:
"""
@@ -101,8 +101,9 @@ class Ethtool:
self._features = loads(out)[0]
# Get information about NIC ring buffers
- out, _ = popen(f'ethtool --json --show-ring {ifname}')
- self._ring_buffer = loads(out)[0]
+ out, err = popen(f'ethtool --json --show-ring {ifname}')
+ if not bool(err):
+ self._ring_buffer = loads(out)[0]
# Get current flow control settings, but this is not supported by
# all NICs (e.g. vmxnet3 does not support is)