Filtr u32 i priorytety
Krzysztof Mościcki
stivi w elomza.pl
Czw, 15 Kwi 2004, 12:49:37 CEST
Witam wszystkich.
Mam pewien problem z priorytetami w filtrze u32, a mianowicie chodzi o
to, że regółki dublują się.
Tutaj podaję przykładzik jak wpisuję rególki:
#Tutaj z prio 5
tc filter add dev eth0 parent 1:0 prio 5 protocol ip u32
tc filter add dev eth0 parent 1:0 prio 5 handle 2: protocol ip \
u32 divisor 16
tc filter add dev eth0 protocol ip parent 1:0 prio 5 u32 \
ht 2:0: match ip dst 192.168.0.0 flowid 1:10
tc filter add dev eth0 protocol ip parent 1:0 prio 5 u32 \
ht 2:1: match ip dst 192.168.0.1 flowid 1:11
--------------------------------------------------------------
tc filter add dev eth0 protocol ip parent 1:0 prio 5 u32 \
ht 2:f: match ip dst 192.168.0.15 flowid 1:1f
tc filter add dev eth0 protocol ip parent 1:0 prio 5 u32 ht 800:: \
match ip dst 192.168.0.0/28 hashkey mask 0x0000000f at 16 link 2:
# a tutaj z prio 3
tc filter add dev eth0 parent 1:0 prio 3 protocol ip u32
tc filter add dev eth0 parent 1:0 prio 3 handle 3: protocol ip \
u32 divisor 1
tc filter add dev eth0 parent 1:0 protocol ip prio 3 u32 ht 3:0 \
match ip src 172.17.0.1 match ip sport 80 0xffff match ip \
tos 0x00 0xff flowid 1:20
Oczywiście to tylko przykład bo regółek z prio 5 będzie "trochę" więcej,
oddzielna dla każdego użytkownika (sprawiedliwy podział łącza), ze
względu na to zastosowałem filtr mieszający. Regółki z prio 3 mają iść z
pełna przepustowością łącza i aby to działało muszą być sprawdzane
wcześniej.
A oto co wyrzuca tc filter ls dev eth0:
filter parent 1: protocol ip pref 3 u32
filter parent 1: protocol ip pref 3 u32 fh 3: ht divisor 1
filter parent 1: protocol ip pref 3 u32 fh 3::800 order 2048 key ht 3
bkt 0 flowid 1:20
match c0a80001/ffffffff at 12
match 00500000/ffff0000 at 20
match 00000000/00ff0000 at 0
filter parent 1: protocol ip pref 3 u32 fh 801: ht divisor 1
filter parent 1: protocol ip pref 3 u32 fh 2: ht divisor 16
filter parent 1: protocol ip pref 3 u32 fh 2::800 order 2048 key ht 2
bkt 0 flowid 1:10
match c0a80000/ffffffff at 16
filter parent 1: protocol ip pref 3 u32 fh 2:1:800 order 2048 key ht 2
bkt 1 flowid 1:11
match c0a80001/ffffffff at 16
-------------------------------------------------------------------
filter parent 1: protocol ip pref 3 u32 fh 2:f:800 order 2048 key ht 2
bkt f flowid 1:1f
match c0a8000f/ffffffff at 16
filter parent 1: protocol ip pref 3 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 3 u32 fh 800::800 order 2048 key ht
800 bkt 0 link 2:
match c0a80000/fffffff0 at 16
hash mask 0000000f at 16
filter parent 1: protocol ip pref 5 u32
filter parent 1: protocol ip pref 5 u32 fh 3: ht divisor 1
filter parent 1: protocol ip pref 5 u32 fh 3::800 order 2048 key ht 3
bkt 0 flowid 1:20
match c0a80001/ffffffff at 12
match 00500000/ffff0000 at 20
match 00000000/00ff0000 at 0
filter parent 1: protocol ip pref 5 u32 fh 801: ht divisor 1
filter parent 1: protocol ip pref 5 u32 fh 2: ht divisor 16
filter parent 1: protocol ip pref 5 u32 fh 2::800 order 2048 key ht 2
bkt 0 flowid 1:10
match c0a80000/ffffffff at 16
filter parent 1: protocol ip pref 5 u32 fh 2:1:800 order 2048 key ht 2
bkt 1 flowid 1:11
------------------------------------------------------------------
filter parent 1: protocol ip pref 5 u32 fh 2:f:800 order 2048 key ht 2
bkt f flowid 1:1f
match c0a8000f/ffffffff at 16
filter parent 1: protocol ip pref 5 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 5 u32 fh 800::800 order 2048 key ht
800 bkt 0 link 2:
match c0a80000/fffffff0 at 16
hash mask 0000000f at 16
Wszystkei regółki występują dwa razy jedne dla pref 3 drugie dla pref 5.
Mam PLD Ra
kernel-2.4.20-13
iproute2-2.4.7.ss020116-13 w 2.4.20_13
tak samo na Ac
kernel-2.4.20-10
iproute2-2.4.7.ss020116-16.
Nie sprawdzałęm na innych dystrybucjach daltego nie wiem czy to ja coś
źle robię czy to błąd w oprogramowaniu. Jeśli to mój błąd to może macie
jakieś namiary gdzie mógłbym o tym poczytać.
Pozdrawiam
Krzysztof Mościcki
Więcej informacji o liście dyskusyjnej pld-users-pl