summaryrefslogtreecommitdiff
path: root/src/migration-scripts
diff options
context:
space:
mode:
authorNataliia Solomko <natalirs1985@gmail.com>2026-07-30 11:10:24 +0300
committerNataliia Solomko <natalirs1985@gmail.com>2026-08-03 13:51:08 +0300
commit562f7131d0c822a94c3b2bdb1f5fd70bfe8b3036 (patch)
tree2f43914d27826d15e5a7bf4825312a835a812b5d /src/migration-scripts
parentb81e435210f499b225b5d27fd16c370c0095da3a (diff)
downloadvyos-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')
0 files changed, 0 insertions, 0 deletions