TC(8)

NUME
tc - afișează / modifică parametrii de control al traficului

SINOPSIS
tc [ OPȚIUNI ] qdisc [ add | change | replace | link | delete ] dev DISPOZITIV [ parent id-qdisc | root ] [ handle id-qdisc ] [ ingress_block INDEX_BLOC ] [ egress_block INDEX_BLOC ] qdisc [ parametri specifici qdisc ]

tc [ OPȚIUNI ] class [ add | change | replace | delete | show ] dev DISPOZITIVV parent id-qdisc [ classid id-clasă ] qdisc [ parametri specifici qdisc ]

tc [ OPȚIUNI ] filter [ add | change | replace | delete | get ] dev DISPOZITIV [ parent id-qdisc | root ] [ handle id-filtru ] protocol protocol prio prioritate filtertype [ parametri specifici tipului de filtru ] flowid id-flow

tc [ OPȚIUNI ] filter [ add | change | replace | delete | get ] block INDEX_BLOC [ handle id-filtru ] protocol protocol prio prioritate filtertype [ parametri specifici tipului de filtru ] flowid id-flow

tc [ OPȚIUNI ] chain [ add | delete | get ] dev DISPOZITIVV [ parent id-qdisc | root ] filtertype [ parametri specifici tipului de filtru ]

tc [ OPȚIUNI ] chain [ add | delete | get ] block INDEX_BLOC filtertype [ parametri specifici tipului de filtru ]

tc [ OPȚIUNI ] [ FORMAT ] qdisc { show | list } [ dev DISPOZITIV ] [ root | ingress | handle QHANDLE | parent ID_CLASS ] [ invisible ]

tc [ OPȚIUNI ] [ FORMAT ] class show dev DISPOZITIV

tc [ OPȚIUNI ] filter show dev DISPOZITIV

tc [ OPȚINUI ] filter show block INDEX_BLOC

tc [ OPȚIUNI ] chain show dev DISPOZITIV

tc [ OPȚIUNI ] chain show block INDEX_BLOC

tc [ OPȚIUNI ] monitor [ file NUME_FIȘIER ]

OPȚIUNI := { [ -force ] -b[loturi] [ filename ] | [ -n[etns] name ] | [ -N[umeric] ] | [ -nm | -nam[nume] ] | [ { -cf | -c[onf] } [ filename ] ] [ -t[imestamp] ] | [ -t[short] | [ -o[neline] ] | [ -echo ] }

FORMAT := { -s[tatistici] | -d[etalii] | -r[brut] | -i[ec] | -g[rafic] | -j[son] | -p[formatat] | -col[culoare] }

DESCRIERE
Tc este utilizat pentru configurarea controlului traficului -- „Traffic Control” în nucleul Linux. Controlul traficului cuprinde următoarele:

MODELAREA
    Când traficul este modelat, viteza sa de transmisie este controlată. Modelarea nu se limitează doar la reducerea lățimii de bandă disponibile, ci este utilizată și pentru a uniformiza vârfurile de trafic, în vederea îmbunătățirii performanței rețelei. Modelarea are loc la ieșire.

PLANIFICAREA
    Prin planificarea transmiterii pachetelor, se poate îmbunătăți interactivitatea pentru traficul care necesită acest lucru, garantând în același timp lățimea de bandă necesară transferurilor de volum mare. Reordonarea este denumită și prioritizare și are loc doar la ieșire.

CONTROLAREA
    În timp ce dirijarea se ocupă de distribuirea traficului, controlarea se referă la traficul care sosește. Prin urmare, controlarea are loc la intrare.

RESPINGEREA
    Traficul care depășește o lățime de bandă prestabilită poate fi, de asemenea, respins imediat, atât la intrare, cât și la ieșire.

Procesarea traficului este controlată de trei tipuri de obiecte: qdisc-uri, clase și filtre.

QDISCS
qdisc este prescurtarea de la „queueing discipline” (disciplina de coadă) și reprezintă un concept fundamental pentru înțelegerea controlului traficului. Ori de câte ori nucleul trebuie să trimită un pachet către o interfață, acesta este pus în coadă (enqueued) în qdisc-ul configurat pentru acea interfață. Imediat după aceea, nucleul încearcă să preia cât mai multe pachete posibil din qdisc, pentru a le transmite controlorului adaptorului de rețea.

O disciplină de coadă QDISC simplă este cea de tip „pfifo”, care nu efectuează nicio prelucrare și funcționează exclusiv pe principiul „primul intrat, primul ieșit”. Cu toate acestea, ea stochează traficul atunci când interfața de rețea nu îl poate gestiona pe moment.

CLASE
Unele qdisc-uri pot conține clase, care la rândul lor conțin alte qdisc-uri – traficul poate fi astfel pus în coadă în oricare dintre qdisc-urile interne, care se află în cadrul claselor. Când nucleul încearcă să scoată un pachet dintr-un astfel de qdisc cu clase, acesta poate proveni din oricare dintre clase. Un qdisc poate, de exemplu, să acorde prioritate anumitor tipuri de trafic, încercând să scoată pachetele din anumite clase înaintea altora.

FILTRE
Un filtru este utilizat de un qdisc bazat pe clase pentru a determina în ce clasă va fi pus în coadă un pachet. Ori de câte ori traficul ajunge la o clasă care are subclase, acesta trebuie clasificat. Pentru aceasta pot fi folosite diverse metode, una dintre acestea fiind filtrele. Toate filtrele asociate clasei sunt apelate, până când unul dintre ele returnează un rezultat. Dacă nu se obține niciun rezultat, pot fi disponibile alte criterii. Acest lucru diferă de la un qdisc la altul.

Este important de reținut că filtrele se află în cadrul qdisc-urilor – ele nu controlează ceea ce se întâmplă.

Filtrele disponibile sunt:

basic
    Filtrează pachetele pe baza unei expresii ematch. Pentru detalii, consultați tc-ematch(8).

bpf Filtrează pachetele folosind (e)BPF; pentru detalii, consultă manualul de pagină tc-bpf(8).

cgroup
    Filtrează pachetele în funcție de grupul de control al procesului lor. Pentru detalii, consultați tc-cgroup(8).

flow, flower
    Clasificatoare bazate pe flux (flow), care filtrează pachetele în funcție de fluxul lor (identificat prin chei selectabile). Pentru detalii, consultați tc-flow(8) și tc-flower(8).

fw  Filtrează pe baza valorii fwmark. Asociază direct valoarea fwmark cu clasa de trafic. Consultați tc-fw(8) pentru detalii.

route
    Filtrează pachetele pe baza tabelului de direcționare. Pentru detalii, consultați tc-route(8).

u32 Filtrare generică a datelor din pachete arbitrare, asistată de sintaxă pentru abstractizarea operațiilor obișnuite. Pentru detalii, consultați tc-u32(8).

matchall
    Filtru de control al traficului care se potrivește cu fiecare pachet. Pentru detalii, consultați tc-matchall(8).

QEVENTS
Qdisc-urile pot declanșa acțiuni configurate de utilizator atunci când au loc anumite evenimente relevante în cadrul qdisc-ului. Fiecare qevent (eveniment în cadrul qdisc-ului) poate fi nefolosit sau poate avea un bloc atașat. La acest bloc se atașează apoi filtre folosind sintaxa „tc block BLOCK_IDX”. Blocul este executat atunci când are loc qevent-ul asociat cu punctul de atașare. De exemplu, pachetul ar putea fi abandonat sau întârziat etc., în funcție de qdisc și de qevent-ul în cauză.

De exemplu:

    tc qdisc add dev eth0 root handle 1: red limit 500K avpkt 1K \
       qevent early_drop block 10
    tc filter add block 10 matchall action mirred egress mirror dev eth1

QDISC-uri FĂRĂ CLASE
Qdisc-urile fără clase sunt:

choke
    CHOKe („CHOose and Keep” – alege și păstrează, pentru fluxurile receptive, „CHOose and Kill” – alege și elimină, pentru fluxurile nereceptive) este un qdisc fără clase conceput atât pentru a identifica, cât și pentru a penaliza fluxurile care monopolizează coada. CHOKe este o variantă a RED, iar configurația sa este similară cu cea a RED.

codel
    CoDel (pronunțat „coddle”) este un algoritm adaptativ de gestionare activă a cozilor de așteptare (AQM) fără parametri de reglare, conceput pentru a remedia deficiențele algoritmului RED și ale variantelor sale.

[p|b]fifo
    Cel mai simplu qdisc funcțional, cu comportament pur „First In, First Out”-- primul intrat, primul ieșit. Limitare în pachete sau în octeți.

fq  Fair Queue Scheduler asigură controlul ritmului (traficului) TCP și poate gestiona milioane de fluxuri simultane pe fiecare qdisc.

fq_codel
    Fair Queuing Controlled Delay este o disciplină de coadă care combină Fair Queuing cu schema CoDel AQM. FQ_Codel utilizează un model stocastic pentru a clasifica pachetele primite în diferite fluxuri și este folosit pentru a asigura o alocare echitabilă a lățimii de bandă tuturor fluxurilor care utilizează coada. Fiecare astfel de flux este gestionat de disciplina de coadă CoDel. Reordonarea în cadrul unui flux este evitată, deoarece CoDel utilizează intern o coadă FIFO.

fq_pie
    FQ-PIE (Flow Queuing with Proportional Integral controller Enhanced) este o disciplină de coadă care combină Flow Queuing cu schema PIE de gestionare a traficului (AQM). FQ-PIE utilizează o funcție hash Jenkins pentru a clasifica pachetele primite în diferite fluxuri și este folosit pentru a asigura o alocare echitabilă a lățimii de bandă tuturor fluxurilor care utilizează qdisc. Fiecare astfel de flux este gestionat de algoritmul PIE.

gred
    Detectarea aleatorie generalizată a pachetelor inițiale (Generalized Random Early Detection) combină mai multe cozi RED pentru a obține mai multe priorități de livrare. Acest lucru este necesar pentru implementarea transmiterii garantate „Assured Forwarding” (RFC 2597).

hhf Filtrul „Heavy-Hitter” face distincția între fluxurile mici și cele mari. Scopul este de a identifica fluxurile mari și de a le redirecționa către o coadă separată, cu prioritate mai mică, astfel încât traficul de volum mare să nu afecteze latența traficului critic.

ingress
    Acesta este un qdisc special, deoarece se aplică traficului de intrare pe o interfață, permițând filtrarea și controlul acestuia.

mqprio
    Qdisc-ul „Multiqueue Priority” este o disciplină de coadă simplă care permite asocierea fluxurilor de trafic cu intervale de cozi hardware folosind priorități și o asociere configurabilă între priorități și clase de trafic. În acest context, o clasă de trafic reprezintă un set de clase qdisc contigue care se asociază în raport de 1:1 cu un set de cozi expuse la nivel hardware.

multiq
    Multiqueue este un qdisc optimizat pentru dispozitive cu mai multe cozi de transmisie. Acesta a fost introdus pentru echipamentele care doresc să evite blocarea la capătul cozii. El va parcurge toate benzile și va verifica dacă coada hardware asociată cu banda respectivă nu este blocată înainte de a scoate un pachet din coadă.

netem
    Network Emulator este o extensie a funcționalităților de control al traficului din Linux, care permite adăugarea de întârzieri, pierderi de pachete, duplicări și alte caracteristici la pachetele transmise de o interfață de rețea selectată.

pfifo_fast
    Qdisc standard pentru nucleele cu opțiunea „Advanced Router” activată. Constă dintr-o coadă cu trei benzi care respectă fanioanele de tip de serviciu „Type of Service”, precum și prioritatea care poate fi atribuită unui pachet.

pie Controlorul proporțional-integral îmbunătățit („Integral controller-Enhanced”: PIE) este o schemă de gestionare activă a cozilor de așteptare bazată pe teoria controlului. Se bazează pe controlorul proporțional-integral, dar are ca obiectiv controlul întârzierii.

roșu
    Funcția „Random Early Detection” simulează congestia fizică prin eliminarea aleatorie a pachetelor atunci când se apropie de limita alocării de lățime de bandă configurată. Este potrivită pentru aplicațiile care necesită o lățime de bandă foarte mare.

sfb Stochastic Fair Blue este un qdisc fără clase care gestionează congestia pe baza istoricului pierderilor de pachete și al gradului de utilizare a legăturii, încercând în același timp să împiedice fluxurile care nu răspund (adică fluxurile care nu reacționează la marcarea de congestie sau la pachetele pierdute) să afecteze performanța fluxurilor care răspund. Spre deosebire de RED, unde probabilitatea de marcare trebuie configurată, BLUE încearcă să determine automat probabilitatea ideală de marcare.

sfq Algoritmul „Stochastic Fairness Queueing” reordonează traficul din coadă astfel încât fiecare „sesiune” să poată trimite un pachet pe rând.

tbf Filtrul Token Bucket este potrivit pentru limitarea traficului la o viteză configurată cu precizie. Se adaptează bine la lățimi de bandă mari.

CONFIGURAREA QDISC-urilor FĂRĂ CLASE
În absența qdisc-urilor cu clase, qdisc-urile fără clase pot fi atașate doar la rădăcina unui dispozitiv. Sintaxa completă:

tc qdisc add dev DISPOZITIV root QDISC PARAMETRI_QDISC

Pentru a elimina, efectuați

tc qdisc del dev DISPOZITIV root

Qdisc-ul pfifo_fast este opțiunea implicită automată în cazul în care nu este configurat niciun qdisc.

QDISC-uri CU CLASĂ
Qdisc-urile cu clasă sunt:

ATM Asociază fluxurile la circuitele virtuale ale unui dispozitiv de tip ATM (Asynchronous Transfer Mode) subiacent.

DRR Planificatorul „Deficit Round Robin” reprezintă o alternativă mai flexibilă la „Stochastic Fairness Queuing”. Spre deosebire de SFQ, nu există cozi integrate — trebuie să adăugați clase și apoi să configurați filtre pentru a clasifica pachetele în mod corespunzător. Acest lucru poate fi util, de exemplu, pentru utilizarea qdisc-urilor RED cu configurații diferite pentru anumite tipuri de trafic. Nu există o clasă implicită — dacă un pachet nu poate fi clasificat, acesta este respins.

ETS Qdisc-ul ETS este o disciplină de coadă care combină funcționalitățile qdisc-urilor PRIO și DRR într-un singur planificator. ETS facilitează configurarea unui set de benzi stricte și de partajare a lățimii de bandă pentru a implementa selecția transmisiilor descrisă în standardul 802.1Qaz.

HFSC
    Curba ierarhică de distribuție echitabilă a serviciilor (Hierarchical Fair Service Curve) garantează o alocare precisă a lățimii de bandă și a întârzierilor pentru clasele de tip „leaf” și alocă în mod echitabil lățimea de bandă excedentară. Spre deosebire de HTB, aceasta utilizează eliminarea pachetelor pentru a obține întârzieri reduse, de care beneficiază sesiunile interactive.

HTB Hierarchy Token Bucket implementează o ierarhie complexă de clase pentru partajarea legăturilor, punând accentul pe respectarea practicilor existente. HTB facilitează garantarea lățimii de bandă pentru clase, permițând în același timp specificarea unor limite maxime pentru partajarea între clase. Acesta conține elemente de modelare a traficului, bazate pe TBF, și poate stabili priorități între clase.

PRIO
    Qdisc-ul PRIO este un container fără modelare a traficului, destinat unui număr configurabil de clase, din care pachetele sunt eliberate din coadă în ordine. Acest lucru permite o prioritizare simplă a traficului, în care clasele inferioare pot transmite numai dacă cele superioare nu au pachete disponibile. Pentru a facilita configurarea, biții de tipul serviciului (Type Of Service) sunt respectați în mod implicit.

QFQ Quick Fair Queueing este un planificator O(1) care oferă garanții aproape optime și este primul care atinge acest obiectiv cu un cost constant, indiferent de numărul de grupuri și de lungimea pachetelor. Algoritmul QFQ nu conține bucle și utilizează instrucțiuni și structuri de date foarte simple, care se pretează foarte bine unei implementări hardware.

TEORIA FUNCȚIONĂRII
Clasele formează o structură arborescentă, în care fiecare clasă are un singur părinte. O clasă poate avea mai mulți descendenți. Unele qdisc-uri permit adăugarea de clase în timpul rulării (HTB), în timp ce altele (PRIO) sunt create cu un număr fix de descendenți.

Qdisc-urile care permit adăugarea dinamică de clase pot avea zero sau mai multe subclase în care traficul poate fi pus la coadă.

În plus, fiecare clasă conține un qdisc de nivel inferior (leaf qdisc) care, în mod implicit, are comportamentul unui qdisc pfifo, deși se poate atașa un alt qdisc în locul acestuia. Acest qdisc poate conține la rândul său clase, dar fiecare clasă poate avea un singur qdisc de nivel inferior.

Atunci când un pachet intră într-un qdisc bazat pe clase, acesta poate fi clasificat într-una dintre clasele din cadrul acestuia. Există trei criterii disponibile, deși nu toate qdisc-urile le utilizează pe toate trei:

filtre tc
    Dacă filtrele tc sunt asociate unei clase, acestea sunt consultate în primul rând pentru instrucțiuni relevante. Filtrele pot efectua potriviri pe toate câmpurile antetului unui pachet, precum și pe marcajul paravanului de protecție aplicat de iptables.

Tipul de serviciu (TOS)
    Unele qdisc-uri au reguli integrate pentru clasificarea pachetelor pe baza câmpului TOS.

skb->prioritate
    Programele din spațiul de utilizator pot codifica un id-clasă în câmpul „skb->prioritate” folosind opțiunea SO_PRIORITY.

Fiecare nod din arbore poate avea propriile filtre, dar filtrele de nivel superior pot indica, de asemenea, direct către clasele inferioare.

Dacă clasificarea nu a reușit, pachetele sunt plasate în coada qdisc-ului de nivel inferior asociat acelei clase. Pentru detalii, consultați însă paginile de manual specifice qdisc-ului respectiv.

DENUMIREA
Toate qdisc-urile, clasele și filtrele au ID-uri, care pot fi fie specificate, fie atribuite automat.

Identificatorii sunt compuși dintr-un număr major și un număr minor, despărțiți printr-o două puncte – major:minor. Atât major, cât și minor sunt numere hexazecimale și au o lungime de 16 biți. Există două valori speciale: „root” este reprezentat de major și minor alcătuite exclusiv din cifre de 1, iar „unspecified” este alcătuit exclusiv din cifre de 0.

QDISCS
    Unui qdisc, care poate avea descendenți, i se atribuie un număr major, denumit „handle”, lăsând spațiul de nume minor disponibil pentru clase. Handle-ul este exprimat sub forma „10:”. Se obișnuiește să se atribuie în mod explicit un handle qdisc-urilor despre care se preconizează că vor avea descendenți.

CLASE
    Clasele care aparțin unui qdisc au același număr major al qdisc-ului, dar fiecare are un număr minor separat, numit „classid”, care nu are nicio legătură cu clasele părinte, ci doar cu qdisc-ul părinte. Se aplică aceeași convenție de denumire ca și în cazul qdisc-urilor.

FILTRE
    Filtrele au un identificator format din trei părți, care este necesar doar atunci când se utilizează o ierarhie de filtre cu hash.

PARAMETRI
Următorii parametri sunt folosiți pe scară largă în TC. Pentru alți parametri, consultați paginile de manual ale fiecărui qdisc în parte.

RATE DE TRANSFER
    Lățimi de bandă sau rate de transfer. Acești parametri acceptă un număr cu virgulă mobilă, urmat eventual de o unitate de măsură (sunt acceptate atât unitățile SI, cât și cele IEC) sau de un număr cu virgulă mobilă urmat de caracterul „%” pentru a specifica rata de transfer ca procent din viteza dispozitivului (de exemplu, 5%, 99,5%). Avertisment: specificarea ratei de transfer ca procent înseamnă o fracțiune din viteza curentă; dacă viteza se modifică, valoarea nu va fi recalculată.

    biți sau o simplă cifră/număr
        Biți pe secundă

    kbit
        Kilobiți pe secundă

    mbit
        Megabiți pe secundă

    gbit
        Gigabiți pe secundă

    tbit
        Terabiți pe secundă

    bps Octeți pe secundă

    kbps
        Kiloocteți pe secundă

    mbps
        Megaocteți pe secundă

    gbps
        Gigaocteți pe secundă

    tbps
        Teraocteți pe secundă

    Pentru a exprima valorile în unități IEC, înlocuiți prefixele SI (k-, m-, g-, t-) cu prefixele IEC (ki-, mi-, gi- și ti-), respectiv.

    TC stochează rata de transfer intern sub forma unui număr întreg fără semn pe 32 de biți exprimat în bps, astfel încât putem specifica o rată maximă de 4294967295 bps.

DURATA
    Durata. Poate fi specificată sub forma unui număr zecimal urmat de o unitate opțională:

    s, sec sau secs
        Secunde întregi

    ms, msec sau msecs
        Millisecunde

    „us”, „usec”, „usecs” sau doar o simplă cifră/număr
        Microsecunde.

    TC a definit propria unitate de timp (echivalentă cu o microsecundă) și stochează valorile de timp sub forma unui număr întreg fără semn pe 32 de biți, astfel încât putem specifica o valoare maximă de timp de 4294967295 microsecunde.

DIMENSIUNI
    Volumul de date. Poate fi specificat sub forma unui număr zecimal urmat de o unitate opțională:

    b sau o simplă cifră/număr
        Octeți.

    kbit
        Kilobiți

    kb sau k
        Kiloocteți

    mbit
        Megabițits

    mb sau m
        Megaocteți

    gbit
        Gigabiți

    gb sau g
        Gigaocteți

    TC stochează dimensiunile intern sub forma unui număr întreg fără semn pe 32 de biți exprimat în octeți, astfel încât putem specifica o dimensiune maximă de 4294967295 de octeți.

VALORI
    Alte valori fără unitate de măsură. În mod implicit, acești parametri sunt interpretați ca valori zecimale, dar puteți indica programului TC să le interpreteze ca valori octale sau hexazecimale adăugând prefixul „0” sau, respectiv, „0x”.

COMENZI TC
Pentru qdisc-uri, clase și filtre sunt disponibile următoarele comenzi:

add Adaugă un qdisc, o clasă sau un filtru la un nod. Pentru toate entitățile, trebuie specificat un părintet, fie prin indicarea ID-ului acestuia, fie prin atașarea directă la rădăcina unui dispozitiv. La crearea unui qdisc sau a unui filtru, acesta poate fi denumit cu ajutorul parametrului handle. O clasă este denumită cu ajutorul parametrului classid.

delete
    Un qdisc poate fi șters prin specificarea identificatorului său, care poate fi și „root”. Toate subclasele și qdisc-urile lor de nivel inferior sunt șterse automat, la fel și orice filtre atașate acestora.

change
    Anumite entități pot fi modificate „pe loc”. Sintaxa este identică cu cea a comenzii „add”, cu excepția faptului că identificatorul (handle) nu poate fi modificat, la fel ca și elementul părinte. Cu alte cuvinte, change nu poate muta un nod.

replace
    Efectuează o operație de ștergere/adăugare aproape instantanee asupra unui ID de nod existent. Dacă nodul nu există încă, acesta este creat.

get Afișează un singur filtru pe baza interfeței DISPOZITIV, id-qdisc, prioritate, protocol și id-filtru.

show
    Afișează toate filtrele atașate la interfața specificată. Trebuie să se transmită un ID-părinte valid.

link
    Este disponibilă doar pentru qdisc-uri și efectuează o înlocuire numai dacă nodul există deja.

MONITOR
Instrumentul tc poate monitoriza evenimentele generate de nucleu, cum ar fi adăugarea/ștergerea qdisc-urilor, a filtrelor sau a acțiunilor, sau modificarea celor existente.

Următoarea comandă este disponibilă pentru monitor :

file
    Dacă se specifică opțiunea „file” (fișier), tc nu mai monitorizează evenimentele din nucleu, ci deschide fișierul indicat și afișează conținutul acestuia. Fișierul trebuie să fie în format binar și să conțină mesaje Netlink.

OPȚIUNI

-b, -b nume-fișier, -batch, -batch nume-fișier
    citește comenzile din fișierul furnizat sau de la intrarea standard și le execută. Prima eroare va determina închiderea programului tc.

-force
    nu termină tc în cazul apariției unor erori în modul pe loturi „batch”. Dacă au apărut erori în timpul executării comenzilor, codul de returnare al aplicației va fi diferit de zero.

-o, -oneline
    emite fiecare înregistrare pe o singură linie, înlocuind salturile de linie cu caracterul „\”. Acest lucru este convenabil atunci când doriți să numărați înregistrările cu wc(1) sau să găsiți cu grep(1) rezultatul.

-n, -net, -netns <NS_NET>
    comută tc în spațiul de nume de rețea specificat NS_NET. De fapt, aceasta doar simplifică executarea comenzii:

    ip netns exec NS_NETS tc [ OPȚIUNI ] OBIECT { COMANDĂ | help }

    la

    tc -n[etns] NS_NET [ OPȚIUNI ] OBIECT { COMANDĂ | help }

-N, -Numeric
    Afișează direct numărul protocolului, domeniul de aplicare, câmpul ds, etc. în loc să îl convertească în nume ușor de citit de către om.

-cf, -conf <NUME_FIȘIER>
    specifică ruta către fișierul de configurare. Această opțiune se utilizează împreună cu alte opțiuni (de exemplu, -nm).

-t, -timestamp
    Când tc monitor rulează, afișează data și ora înaintea mesajului de eveniment, în formatul:
       Timestamp: <Ziua> <Luna> <ZZ> <hh:mm:ss> <AAAA> <usecs> usec

-ts, -tshort
    Când tc monitor rulează, afișează o marcă temporală scurtă înaintea mesajului de eveniment, în formatul:
       [<AAAA>-<LL>-<ZZ>T<hh:mm:ss>.<ms>]

-echo
    Solicită nucleului să trimită înapoi configurația aplicată.

FORMAT
Comanda „show” are opțiuni suplimentare de formatare:

-s, -stats, -statistics
    afişează mai multe statistici privind utilizarea pachetelor.

-d, -details
    afișează informații mai detaliate despre rate și dimensiunile celulelor.

-r, -raw
    afișează valorile hexazecimale brute pentru gestionari(identificatori).

-p, -pretty
    pentru filtrul u32, decodifică valorile de offset și mască în comenzi de filtrare echivalente bazate pe TCP/IP. În ieșirea JSON, adaugă spații pentru a îmbunătăți lizibilitatea.

-iec
    afișează ratele în unități IEC (adică, 1K = 1024).

-g, -graph
    afișează clasele sub formă de grafic ASCII. Afișează informații statistice generale sub fiecare clasă dacă a fost specificată opțiunea -s. Clasele pot fi filtrate numai prin opțiunea dev.

-c[color][={always|auto|never}
    Configurează ieșirea color. Dacă parametrul este omis sau always, ieșirea color este activată indiferent de starea ieșirii standard. Dacă parametrul este auto, se verifică dacă ieșirea standard este un terminal înainte de a activa ieșirea color. Dacă parametrul este never, ieșirea color este dezactivată. Dacă este specificat de mai multe ori, ultimul are întâietate. Acest indicator este ignorat dacă se indică și -json.

-j, -json
    Afișează rezultatele în format JSON.

-nm, -name
    determină numele clasei din fișierul /etc/iproute2/tc_cls sau din fișierul specificat prin opțiunea -cf. Acest fișier reprezintă doar o corespondență între classid și numele clasei:

    # Acesta este un comentariu
    1:40 voip # Acesta este un alt comentariu
    1:50 web
    1:60 ftp
    1:2 home

    tc nu va genera o eroare dacă opțiunea -nm a fost specificată fără opțiunea -cf, dar fișierul /etc/iproute2/tc_cls nu există, ceea ce permite utilizarea opțiunii -nm pentru crearea de alias tc.

-br, -brief
    Afișează numai datele esențiale necesare pentru identificarea filtrului și a acțiunii (identificator, cookie etc.) și statisticile. În prezent, această opțiune este acceptată doar de comenzile tc filter show și tc actions ls.

EXEMPLE

tc -g class show dev eth0
    Afișează clasele sub formă de grafic ASCII pe interfața eth0.

tc -g -s class show dev eth0
    Afișează clasele sub forma unui grafic ASCII, cu informații statistice sub fiecare clasă.

ISTORIC
tc a fost scris de Alexey N. Kuznetsov și inclus în Linux 2.2.

CONSULTAȚI ȘI
tc-basic(8), tc-bfifo(8), tc-bpf(8), tc-cake(8), tc-cgroup(8), tc-choke(8), tc-codel(8), tc-drr(8), tc-ematch(8), tc-ets(8), tc-flow(8), tc-flower(8), tc-fq(8), tc-fq_codel(8), tc-fq_pie(8), tc-fw(8), tc-gact(8), tc-hfsc(7), tc-hfsc(8), tc-htb(8), tc-mqprio(8), tc-pfifo(8), tc-pfifo_fast(8), tc-pie(8), tc-red(8), tc-route(8), tc-sfb(8), tc-sfq(8), tc-stab(8), tc-tbf(8), tc-u32(8)
Documentația pentru utilizatori se găsește la adresa http://lartc.org/, dar vă rugăm să trimiteți rapoartele de erori și plasturii (corecțiile) la: <netdev@vger.kernel.org>

AUTOR
Această pagină de manual este întreținută de bert hubert (ahu@ds9a.nl)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.