diff options
| author | Nataliia Solomko <natalirs1985@gmail.com> | 2026-07-30 11:10:24 +0300 |
|---|---|---|
| committer | Nataliia Solomko <natalirs1985@gmail.com> | 2026-08-03 13:51:08 +0300 |
| commit | 562f7131d0c822a94c3b2bdb1f5fd70bfe8b3036 (patch) | |
| tree | 2f43914d27826d15e5a7bf4825312a835a812b5d /src/migration-scripts/https | |
| parent | b81e435210f499b225b5d27fd16c370c0095da3a (diff) | |
| download | vyos-1x-562f7131d0c822a94c3b2bdb1f5fd70bfe8b3036.tar.gz vyos-1x-562f7131d0c822a94c3b2bdb1f5fd70bfe8b3036.zip | |
qos: T9134: Fix commit crash when classes match different protocols
Every class match is installed as its own tc filter, and tc binds a
filter priority ("prio"/"pref") to a single protocol. Two filters with
the same priority but different protocols are rejected by the kernel, so
the commit crashes - e.g. one class matching "ether protocol arp" and
another matching IP. The filter priority came from the class id, the
class "priority" (which the limiter defaults to 20 for every class),
or the per-class match index - none of which is unique across classes.
Assign every match a unique tc filter priority by ranking the matches in
evaluation order (class id, an explicit or default class "priority", or
the per-class match index) and numbering them 1, 2, 3, ... This keeps the
match evaluation order unchanged across all class-based policies (shaper,
shaper-hfsc, limiter, round-robin, priority-queue). The class "priority"
still drives the HTB class scheduling priority on the shaper; the tc
filter priority is an internal evaluation-order rank, not the CLI
"priority" value.
Add smoketests for mixed-protocol classes (shaper and limiter) and for
match evaluation order.
Diffstat (limited to 'src/migration-scripts/https')
0 files changed, 0 insertions, 0 deletions
