next up previous contents
Następny: Program proxy Nadrzędny: Wykonawca Poprzedni: Tablica priorytetów   Spis rzeczy


Biblioteka q_ep.so

Algorytmy obsługi kolejek pakietów są konfigurowane przy pomocy programu tc, będącego częścią pakietu iproute2. Jego autor zadbał o możliwość poszerzania jego funkcjonalności bez konieczności zmian kodu źródłowego - poprzez biblioteki dynamiczne.

Ogólna składnia polecenia dodania, zmiany lub usunięcia algorytmu wygląda następująco:


\begin{Code}
tc qdisc [ add \vert del \vert replace \vert change \vert get ] dev...
...r INTERVAL TIME_CONSTANT ]
[ [ QDISC_KIND ] [ help \vert OPTIONS ] ]
\end{Code}

Słowo kluczowe qdisc oznacza, że polecenie jest operacją na algorytmach obsługi kolejek; po nim następują:

Ostatni z tych elementów może mieć dowolną postać; jego wczytywaniem zajmują się funkcje zdefiniowane niezależnie dla każdego z dostępnych algorytmów w strukturach struct qdisc_util <nazwa>_util. Jeśli jako QDISC_KIND podana zostanie nazwa nie rozpoznawana przez tc jako nazwa jednego z algorytmów, których obsługa została wkompilowana, program spróbuje wczytać kod funkcji i zawartość struktury qdisc_util z biblioteki dynamicznej o nazwie q_<nazwa>.so. W przypadku sch_ep jest to więc q_ep.so.


Tablica 3.4: Funkcje biblioteki q_ep.so
Nazwa Rola
ep_parse_opt wczytuje opcje podane przez użytkownika
  do struktury tc_ep_opt
ep_print_opt wypisuje zawartość tc_ep_opt


Biblioteka ta zawiera definicje wymaganych przez tc funkcji (wymienionych w tabelce 3.4); po jej dołączeniu polecenie tc pozwala na podanie (w części OPTIONS) parametrów opisujących zachowanie algorytmu sch_ep:


\begin{Code}
ep priorities PRIORITIES [ default_priority DEFAULT_PRIORITY ]
[ s...
...1 ... VP ds_maskmap M1 ... MP ]
[ set_fwmark fw_valuemap V1 ... VP ]
\end{Code}

Po słowie kluczowym ep można podać liczbę priorytetów (PRIORITIES), priorytet domyślny (DEFAULT_PRIORITY) oraz zdefiniować sposób modyfikacji pakietów (lub informacji o nim). Możliwe akcje to:

We wszystkich trzech przypadkach wykorzystywane są elementy wpisane w odpowiednich listach na pozycjach o numerze równym priorytetowi zmienianego pakietu.


next up previous contents
Następny: Program proxy Nadrzędny: Wykonawca Poprzedni: Tablica priorytetów   Spis rzeczy
Marcin Kaszyński, Krzysztof Lorek