HTB(8) Linux HTB(8) NUME HTB -ierarhia galeilor de jetoane (Hierarchy Token Bucket) SINOPSIS tc qdisc ... dev dispozitiv ( parent classid | root) [ handle major: ] htb [ default minor-id ] [ r2q divizor ] [ offload ] tc class ... dev dispozitiv parent major:[minor] [ classid major:minor ] htb rate rata [ ceil rata ] burst octei [ cburst octei ] [ prio prioritate ] [ quantum octei ] DESCRIERE HTB permite controlul laimii de banda de ieire pe o anumita legatura. Permite simularea mai multor legaturi mai lente i trimiterea diferitelor tipuri de trafic pe diferite legaturi simulate. In ambele cazuri, trebuie sa specificai modul in care se imparte legatura fizica in legaturi simulate i modul in care se decide ce legatura simulata se utilizeaza pentru un anumit pachet care urmeaza sa fie trimis. HTB modeleaza traficul pe baza algoritmului Token Bucket Filter, care nu depinde de caracteristicile interfeei i, prin urmare, nu este necesar sa cunoasca laimea de banda subiacenta a interfeei de ieire. ALGORITM DE MODELARE Modelarea funcioneaza conform documentaiei din tc-tbf (8). CLASIFICARE In cadrul unei singure instane HTB pot exista mai multe clase. Fiecare dintre aceste clase conine un alt qdisc, implicit tc-pfifo(8). Cand se pune un pachet in coada, HTB incepe de la radacina i utilizeaza diverse metode pentru a determina ce clasa ar trebui sa primeasca datele. In absena unor opiuni de configurare neobinuite, procesul este destul de simplu. La fiecare nod cautam o instruciune, apoi mergem la clasa la care ne trimite instruciunea. Daca clasa gasita este un nod frunza sterp (fara copii), punem pachetul in coada acolo. Daca nu este inca un nod frunza, repetam intregul proces incepand de la acel nod. Urmatoarele aciuni sunt efectuate, in ordine, la fiecare nod pe care il vizitam, pana cand unul ne trimite la un alt nod sau termina procesul. (i) Consulta filtrele ataate clasei. Daca sunt trimise la un nod final, am terminat. In caz contrar, reincepe. (ii) Daca niciuna dintre cele de mai sus nu a returnat o instruciune, pune in coada la acest nod. Acest algoritm se asigura ca un pachet ajunge intotdeauna undeva, chiar i in timp ce suntei ocupat cu configurarea. ALGORITM DE PARTAJARE A LEGATURILOR FIXME QDISC Radacina unui arbore de clase HTB qdisc are urmatorii parametri: parent major:minor | root Acest parametru obligatoriu determina locul instanei HTB, fie la radacina root unei interfee, fie in cadrul unei clase existente. handle major: Ca toate celelalte qdisc-uri, HTB poate primi un identificator. Acesta trebuie sa consiste doar dintr-un numar major, urmat de doua puncte. Opional, dar foarte util daca se vor genera clase in cadrul acestui qdisc. default minor-id Traficul neclasificat este trimis catre clasa cu acest minor-id. r2q divisor Divizor utilizat pentru calcularea valorilor quantum pentru clase. Clasele impart rata rate la acest numar. Valoarea implicita este 10. offload Descarca algoritmul HTB pe hardware (necesita suport pentru controlor i dispozitiv). CLASE Clasele au o serie de parametri pentru configurarea funcionarii lor. parent major:minor Locul acestei clase in ierarhie. Daca este ataata direct la un qdisc i nu la o alta clasa, minor poate fi omis. Obligatoriu. classid major:minor La fel ca qdisc-urile, clasele pot fi denumite. Numarul principal trebuie sa fie egal cu numarul principal al qdisc-ului caruia ii aparine. Opional, dar necesar daca aceasta clasa va avea copii. prio prioritate In procesul circular (round-robin), clasele cu campul de prioritate cel mai scazut sunt incercate mai intai pentru pachete. rate rata Rata maxima pentru aceasta clasa i toate subclasele sale este garantata. Obligatoriu. ceil rata Viteza maxima la care o clasa poate trimite, daca parintele sau are laime de banda disponibila. Implicit, viteza configurata, ceea ce inseamna ca nu se imprumuta nimic. burst octei Numarul de octei care pot fi transmii in rafale (creteri brute) la viteza ceil, depaind viteza configurata rate. Ar trebui sa fie cel puin la fel de mare ca cea mai mare rafala(cretere brusca) dintre toate cele ale copiilor. cburst octei Numarul de octei care pot fi transmisi la viteza ,,infinita", cu alte cuvinte, la viteza maxima la care interfaa ii poate transmite. Pentru o uniformizare perfecta, ar trebui sa fie egal cu cel mult un pachet mediu. Ar trebui sa fie cel puin la fel de mare ca cel mai mare cburst dintre toate cele ale copiilor. quantum octei Numarul de octei care trebuie servii din aceasta clasa inainte ca planificatorul sa treaca la clasa urmatoare. Valoarea implicita este rate imparita la parametrul qdisc r2q. Daca este specificat, r2q este ignorat. NOTE Datorita constrangerilor de sincronizare Unix, rata maxima ceil nu este infinita i poate fi, de fapt, destul de scazuta. Pe Intel, exista 100 de evenimente de temporizare pe secunda, rata maxima fiind rata la care sunt trimii octeii ,,burst" la fiecare tic de temporizare. Din aceasta, se poate calcula dimensiunea minima a burst-ului pentru o rata specificata. Pentru i386, o rata de 10 mbit necesita un burst de 12 kilooctei, deoarece 100*12kb*8 este egal cu 10 mbit. CONSULTAI I tc(8) Pagina principala a HTB: http://luxik.cdi.cz/~devik/qos/htb/ AUTOR Martin Devera . Aceasta pagina de manual este intreinuta de bert hubert TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . iproute2 10 ianuarie 2002 HTB(8)