[LARTC] wondershaper + htb prio + qdisc prio

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey there,

> hello,
>
> a friend of mine have this configuration:
>
> 10 x PC -- router/linux/rh8 -- ADSL Modem -- ISP
>
> let's say that the bandwidth is: 5M and 800K
>
> he does dc++ and counter-strike, so let's say the UP is full, and the
> ping from the counter server is 300ms, the server cut the connection, and
> no more game, the player is unhappy. The normal ping is 50ms.
>
> so he thinks to put some prio on the ping-echo packets to make the ping
> be extra small, he try the wondershapper from the lartc, don't work, make
> a simplified script just for icmp with is:
>
> $tc qdisc del $IF_EXT root
> $tc qdisc add $IF_EXT handle 1: root htb default 2
> $tc class add $IF_EXT parent 1: classid 1:9 htb rate 500kbit burst 6k
> $tc class add $IF_EXT parent 1:9 classid 1:1 htb rate 500kbit ceil
> 500kbit burst 6k prio 1
> $tc class add $IF_EXT parent 1:9 classid 1:2 htb rate 64kbit ceil 500kbit
> burst 6k prio 2
>
> $tc filter add $IF_EXT protocol ip prio 2 parent 1: u32 \
>         match ip protocol 1 0xff flowid 1:1
>
> first tryed it with ceil 800kbit, after with a smaller value, the "real"
> bandwidth was somewhere around 700kbit, at that moment.
>
> didn't work
>
[ -- SNIP --]

> still with no result the ping from the counter server is always 300ms,
> what's wrong????

Maybe I'm misunderstanding you, maybe not - but what exactly do you mean by
"the ping from the server is always 300ms"?

Is it the ICMP ping (generated by the 'ping' tool), or do you mean when you
play Counter-Strike, and you look at the players tab, that shows you're
lagged with 300ms?

Have you tried to ping the counter-strike server direct from the shell using
the 'ping' tool? If this results in very low ping replies, your tc setup is
correctly set up.

The only thing you're missing now, is to prioritize counter-strike specific
traffic. Usually the portnumbers used by Couter-Strike servers are 27015 and
some numbers up, so this is what you have to prioritize.

An example (class id is from your first script, using htb) - this will put
the packets leaving your $IF_EXT to port 27015, 27016 and 27017 to any hosts
in the class 1:1:

for cs_p in 27015 27016 27017; do
  tc filter add dev $IF_EXT parent 1:0 protocol ip prio 10 u32 \
     match ip dport $cs_p 0xffff flowid 1:1
done

You may need to modify the above example to fit your script.


--
Theepan


PS: I'm sorry if you receive this mail twice. I forgot to CC it the list the
first time.





[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux