Dear All
I am trying a very simple set up: (a bit long message follows)
#Flush previous definitions
$TC qdisc del dev $VVNET root >&/dev/null
$TC qdisc del dev $INTERNET root >&/dev/null
$IPT -t mangle -D PREROUTING -i $INTERNET -d 200.231.56.0/24 -j IMQ --todev 0
# Mothers off all disciplines
$TC qdisc add dev $VVNET root handle 1: htb default FFFF r2q 1
$TC qdisc add dev $INTERNET root handle 1: htb default FFFF r2q 1
#Master Class - outputs to local radio network and internet
$TC class add dev $VVNET parent 1: classid 1:1 htb rate 256Kbit ceil 256Kbit
$TC class add dev $INTERNET parent 1: classid 1:1 htb rate 256Kbit ceil 256Kbit
#Everything coming from internet to the clients goes thru IMQ
$IPT -t mangle -A PREROUTING -i $INTERNET -d 1.2.3.0/24 -j IMQ --todev 0
$IP link set imq0 up
#Ping classes
$TC class add dev $INTERNET parent 1:1 classid 1:22 htb \
rate 100Kbit ceil 100Kbit
$TC class add dev $VVNET parent 1:1 classid 1:22 htb \
rate 100Kbit ceil 100Kbit
So far no news! Let try some filtering:
$TC filter add dev $VVNET protocol ip \
parent 1:0 prio 2 u32 \
match ip icmp_type 0 0xff flowid 1:22
$TC filter add dev $VVNET protocol ip \
parent 1:0 prio 2 u32 \
match ip icmp_type 8 0xff flowid 1:22
$TC filter add dev $INTERNET protocol ip \
parent 1:0 prio 2 u32 \
match ip icmp_type 0 0xff flowid 1:22
$TC filter add dev $INTERNET protocol ip \
parent 1:0 prio 2 u32 \
match ip icmp_type 8 0xff flowid 1:22
What do I mean!? Every single icmp (request or reply) goes thru
its own class.
But if I ping interface $INTERNET address (from outside)
''tc -s class show dev $INTERNET'' counter for class 1:22
doesn''t increment!
(pings do get replyed). There is sometimes something passing thru 1:22 but it
is certainly not icmp packets I am filtering.
For the records: default class 1:ffff counter is NOT incrementing as well.
What is wrong with my setup??
# tc filter ls dev eth3 ($INTERNET is eth3)
filter parent 1: protocol ip pref 2 u32
filter parent 1: protocol ip pref 2 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 2 u32 fh 800::800 order 2048 key ht 800 \
bkt 0 flowid 1:22 match 00000000/ff000000 at 20
filter parent 1: protocol ip pref 2 u32 fh 800::801 order 2049 key ht 800 \
bkt 0 flowid 1:22 match 08000000/ff000000 at 20
(BTW this offset ''at 20'' is it decimal or hex???
''tc add filter'' put it there, not me.))
# tc -s class show dev eth3 |head -5 ; echo sleeping 5 seconds; \
sleep 5 ;tc -s class show dev eth3 |head -5
class htb 1:22 parent 1:1 prio 0 rate 100Kbit ceil 100Kbit\
burst 1727b cburst 1727b
Sent 44408169 bytes 58800 pkts (dropped 0, overlimits 0)
lended: 58800 borrowed: 0 giants: 0
tokens: 105984 ctokens: 105984
sleeping 5 seconds
class htb 1:22 parent 1:1 prio 0 rate 100Kbit ceil 100Kbit\
burst 1727b cburst 1727b
Sent 44408169 bytes 58800 pkts (dropped 0, overlimits 0)
lended: 58800 borrowed: 0 giants: 0
tokens: 105984 ctokens: 105984
#
Thanx for your time
Regards
--
Ethy H. Brito /"\
InterNexo Ltda. \ / CAMPANHA DA FITA ASCII - CONTRA MAIL HTML
+55 (12) 3941-6860 X ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
S.J.Campos - Brasil / \