On 4/4/06, Robert <[EMAIL PROTECTED]> wrote:
>
> mi-a spus cineva ca altq+hfsc nu suporta mai mult de 1000 de cozi.
> eu as vrea sa am 6-7 cozi mari de 6-7 mb cu cate 400-500 de subcozi
> de 384kb maxim.
> poate suporta atat ?


Raspuns scurt: nu.

Raspuns lung: da. Se poate defini in altq_hfsc.h numarul de cozi. Din
pacate insa, ele sint tinute intr-un array, ceea ce inseamna o viteza
deplorabila a clasificarii pachetelor. In urma cu ceva timp am scris
la repezeala un patch care inlocuieste array-ul cu un hash table. Il
gasesti la http://night.rdslink.ro/dudu/misc/altq/altq_hfschash.diff.
Atentie insa, nu e foarte mult testat. Din cite tin eu minte, nu
functioneaza decit daca ai ALTQ atasat unei singure interfete. La un
moment dat n-am mai avut nevoie de el si nu mi-am mai batut capul. Pe
testele de-atunci a aratat o crestere enorma a vitezei de clasificare,
insa tot insuficienta. Celalalt bottleneck provine din parcurgerea
liniara a regulilor pf care fac clasificarea. Dupa o conversatie cu
Max Laier am decis ca singura solutie este sa fac un packet filter
specializat, care sa tina intr-un radix tree toate subneturile pentru
care se face shaping, urmind ca in fiecare nod sa existe un pointer
catre coada ALTQ corespunzatoare. Insa nici de asta nu m-am apucat,
din lipsa de timp. Daca exista doritori, pot incepe in tandem cu
cineva sa lucrez la asta. Framework-ul e simplut. Nu e greu deloc de
lucrat cu pfil_hooks. Pina acum, insa, ENOTIME.



--
If it's there, and you can see it, it's real.
If it's not there, and you can see it, it's virtual.
If it's there, and you can't see it, it's transparent.
If it's not there, and you can't see it, you erased it.

________________________________________________________
To unsubscribe send a mail to [EMAIL PROTECTED]

Raspunde prin e-mail lui