Page MenuHomeVyOS Platform

QoS policy shaper-hfsc is not implemented
Closed, ResolvedPublicBUG

Description

QoS policy shaper-hfsc is not implemented. We have XML and CLI but it does not use the correct class.
Now it is using the class TrafficShaper that uses htb, but expects to use hfsc

https://man7.org/linux/man-pages/man7/tc-hfsc.7.html
https://man7.org/linux/man-pages/man8/tc-hfsc.8.html

Example of the oldest implementation (1.3.x):

set traffic-policy shaper-hfsc SHAPE bandwidth '400mbit'
set traffic-policy shaper-hfsc SHAPE class 10 linkshare m2 '200mbit'
set traffic-policy shaper-hfsc SHAPE class 10 match DST ip destination address '192.0.2.1/32'
set traffic-policy shaper-hfsc SHAPE default linkshare m2 '111mbit'

set interfaces ethernet eth1 traffic-policy out 'SHAPE'

That generates:

qdisc add dev eth1 root handle 1: hfsc default b

class add dev eth1 parent 1: classid 1:1 hfsc sc rate 400000000 ul rate 400000000
class add dev eth1 parent 1:1 classid 1:b hfsc ls m2 111000000
class add dev eth1 parent 1:1 classid 1:a hfsc ls m2 200000000

qdisc add dev eth1 parent 1:1 handle f1: sfq perturb 10
qdisc add dev eth1 parent 1:b handle fb: sfq perturb 10
qdisc add dev eth1 parent 1:a handle fa: sfq perturb 10

filter add dev eth1 parent 1: prio 1 protocol all u32 match ip dst 192.0.2.1/32 flowid 1:a

This also causes if this behaviour T5927

Details

Difficulty level
Hard (possibly days)
Version
VyOS 1.5-rolling-202401180024, 1.4.0-rc2
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)

Event Timeline

Viacheslav changed Difficulty level from Unknown (require assessment) to Hard (possibly days).

Expecting minimal working config:

set qos policy shaper-hfsc SHAPE bandwidth '400mbit'
set qos policy shaper-hfsc SHAPE class 10 linkshare m2 '200mbit'
set qos policy shaper-hfsc SHAPE class 10 match DST ip destination address '192.0.2.1/32'
set qos policy shaper-hfsc SHAPE default linkshare m2 '111mbit'

set qos interface eth1 egress SHAPE
Viacheslav changed the task status from Open to In progress.Jan 18 2024, 5:59 PM
Viacheslav claimed this task.
Viacheslav moved this task from Need Triage to Finished on the VyOS 1.5 Circinus board.
Viacheslav moved this task from Need Triage to Finished on the VyOS 1.4 Sagitta board.