Age | Commit message (Collapse) | Author |
|
|
|
Fix tc qdisc command that use 'limit None' if limit is not
in config
Limit xx sould be used only if it exists in the config
|
|
* T5195: move run, cmd, call, rc_cmd helper to vyos.utils.process
* T5195: use read_file and write_file implementation from vyos.utils.file
Changed code automatically using:
find . -type f -not -path '*/\.*' -exec sed -i 's/^from vyos.util import read_file$/from vyos.utils.file import read_file/g' {} +
find . -type f -not -path '*/\.*' -exec sed -i 's/^from vyos.util import write_file$/from vyos.utils.file import write_file/g' {} +
* T5195: move chmod* helpers to vyos.utils.permission
* T5195: use colon_separated_to_dict from vyos.utils.dict
* T5195: move is_systemd_service_* to vyos.utils.process
* T5195: fix boot issues with missing imports
* T5195: move dict_search_* helpers to vyos.utils.dict
* T5195: move network helpers to vyos.utils.network
* T5195: move commit_* helpers to vyos.utils.commit
* T5195: move user I/O helpers to vyos.utils.io
|
|
|
|
Prevent duplicatte prio fot tc command
|
|
QoS index priority should be used only for qostype 'shaper'
otherwise we set priority 2 times, that is incorrect.
OSError: [Errno 255] failed to run command:
tc filter add dev eth2 parent 1: prio 5 protocol all prio 1 u32 match ip src 10.1.1.0/24 flowid 1:1e
exit code: 255
Fix it
|
|
Fix QoS tc class with multiple matches generates one rule but
expects multiple filter rules:
set qos policy shaper test class 23 match one ip protocol 'tcp'
set qos policy shaper test class 23 match two ip protocol 'udp'
tc filter add dev eth0 parent 1: protocol all prio 1 u32 match ip protocol 6 0xff flowid 1:17
tc filter add dev eth0 parent 1: protocol all prio 2 u32 match ip protocol 17 0xff flowid 1:17
|
|
tc filter rate limit should be used only if qostype is 'limiter'
and not 'shaper'
|
|
QoS DSCP match is skipped
Add it
set qos policy shaper test class 23 match 10 ip dscp 'network'
tc filter replace dev eth0 parent 1: protocol all u32 match ip dsfield 224 0xff flowid 1:17
|
|
T5296: Fix QoS class bandwidth calculation for auto and percent
|
|
tc filter exepcts protocol number for match instead of protocol name
|
|
There are wrong bandwidth calculations for the class
We shouldn't rely on interface speed but we should get this value
from 'shaper <tag> bandwidth xxx' if configured 'auto' or
bandwidth with '%'
Otherwise we can get unexpected rate for the class
% sudo cat /sys/class/net/eth0/speed
% -1
generated rate:
classid 1:17 htb rate -1000000
Fix this
|
|
Do not handle rate via 'tc filter' directly but rather set the
'tc filter' to direct traffic to the correct tc class flow.
As it in 1.3.
It fixes random unexpected shapes, when you set for example 300mbit
but get 3-11mbit
Current implementation seems not correct as it uses rate limits
two times (in class and in filter):
tc class replace dev eth0 parent 1:1 classid 1:17 htb rate 250000000 \
burst 15k quantum 1514
tc filter replace dev eth0 parent 1: protocol all u32 match \
ip dst 192.168.122.11 action police rate 250000000 burst 15k flowid 1:17
The correct way after fix:
tc class replace dev eth0 parent 1:1 classid 1:17 htb rate 250000000 \
burst 15k quantum 1514
tc filter replace dev eth0 parent 1: protocol all u32 match \
ip dst 192.168.122.11 flowid 1:17
|
|
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
|
|
|
|
|
|
This makes transitions/updates faster and less error prone
|
|
|
|
|