Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fireqos: class priority is not respected when interface has many classes #9

Closed
ktsaou opened this issue Oct 20, 2013 · 0 comments
Closed

Comments

@ktsaou
Copy link
Member

ktsaou commented Oct 20, 2013

When an interface has more than 10 classes (1 the parent, + 9 user classes), class priorities are not respected so strictly. The classes that should get all spare bandwidth are not getting it all.

In this example that there is traffic not matched by the match statement that fills the interface.

Then, while the interface is full, we start a download which is matched by the match statement.

If the input interface has up to 9 classes, the default class will be shaped to its committed rate as soon as the download starts.

If the input interface has more than 9 classes, the spare bandwidth will be spread among the default class the class having the download.

DEVICE=dsl0
INPUT_SPEED=8Mbit
OUTPUT_SPEED=800kbit
LINKTYPE="adsl local pppoe-llc"

interface $DEVICE world-in input rate $INPUT_SPEED $LINKTYPE
        for x in 1 2 3 4 5 6 7 8 9 10 11 12 13 14
        do
                class C$x
        done

        class default

       # add the download to the last class we added (just before the default)
        match sports 0:1023 class C$x



interface $DEVICE world-out output rate $OUTPUT_SPEED $LINKTYPE
        class C1
                match dports 0:1023

        class default

To make things oven more complicated, if the match statement classifies to class C1, instead of class C$x, traffc in the C1 class always shapes the default class to its committed rate.

Reading the manual of HTB (http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm#prio) does not help to figure out what is happening.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant