summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2023-03-06 08:39:30 +0100
committerChristian Breunig <christian@breunig.cc>2023-03-06 08:39:32 +0100
commit248e77aad6ca2ab663112240790bf38f48def1fb (patch)
treea0063bd68872712e846b23bcaec6d2d5f1d88a34
parent493af3f3417cef5c9898f242a2b885e63e3bdeef (diff)
downloadvyos-1x-248e77aad6ca2ab663112240790bf38f48def1fb.tar.gz
vyos-1x-248e77aad6ca2ab663112240790bf38f48def1fb.zip
qos: T4989: bugfix dialer interface - speed detection
Not all interfaces have valid entries in the speed file. PPPoE interfaces have the appropriate speed file, but you can not read it: cat: /sys/class/net/pppoe7/speed: Invalid argument
-rw-r--r--python/vyos/qos/base.py21
1 files changed, 14 insertions, 7 deletions
diff --git a/python/vyos/qos/base.py b/python/vyos/qos/base.py
index 378e11acf..33bb8ae28 100644
--- a/python/vyos/qos/base.py
+++ b/python/vyos/qos/base.py
@@ -121,13 +121,20 @@ class QoSBase:
}
if rate == 'auto' or rate.endswith('%'):
- speed = read_file(f'/sys/class/net/{self._interface}/speed')
- if not speed.isnumeric():
- Warning('Interface speed cannot be determined (assuming 10 Mbit/s)')
- speed = 10
- if rate.endswith('%'):
- percent = rate.rstrip('%')
- speed = int(speed) * int(percent) // 100
+ speed = 10
+ # Not all interfaces have valid entries in the speed file. PPPoE
+ # interfaces have the appropriate speed file, but you can not read it:
+ # cat: /sys/class/net/pppoe7/speed: Invalid argument
+ try:
+ speed = read_file(f'/sys/class/net/{self._interface}/speed')
+ if not speed.isnumeric():
+ Warning('Interface speed cannot be determined (assuming 10 Mbit/s)')
+ if rate.endswith('%'):
+ percent = rate.rstrip('%')
+ speed = int(speed) * int(percent) // 100
+ except:
+ pass
+
return int(speed) *1000000 # convert to MBit/s
rate_numeric = int(''.join([n for n in rate if n.isdigit()]))