Re: packet shaping bridge

Linux Advanced Routing and Traffic Control

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

 



Thanks! Adding the filter to the root was the trick. From the various documentation I was reading I had the impression that the filter needed to be added to the sub-classes - 1:1 and so forth. I presume that's only appropriate when you have leaves below 1:1.

Anyhow, the trick now is figuring out how I want to configure things with two of these bridges in mind. The topology would look like this:

Switch-bridge/filter-WAN router--Remote WAN router-bridge-remote switch

Now with 1.5Mbit/s with the potential for 2mbit/s I was thinking of limiting each bridge at 1Mbit/s. I didn't want to limit at 750kbit/s because if you're doing a big file transfer, you're going to suffer and besides, the ratio of download to upload is in favour of the download The streaming audio devices are set up for 128kbit/s MPEG-layer3. So we're looking at dedicating a minimum of 150kbit/s which can double or more if I'm having congestion problems.

Now here's an interesting idea. Let me know if it's possible or not. Is it possible for me to create a bridge between the two linux boxes so it physically looks like

eth0 eth1 --WAN--  eth1 eth0

but virtually you are going

eth0 ------- eth0

The reason I ask this is so I can create an awareness between the two bridges as to how much traffic is actually going through the pipe so I may optimize it to its fullest.

I suppose that it could be done via snmp or spanning-tree?


Thanks again.



Jason Bath
Network Administrator
CKUA Radio Network
780.428.2017


Andy Furniss wrote:
Jason Bath wrote:

I'm currently tweaking but this is what I have for now:
-----------------------
#!/bin/sh

DEV=eth0
#setup the root

#tc qdisc add dev $DEV root handle 1: htb default 11


Remember arp traffic will go to default unless you filter elsewhere.

tc class add dev $DEV parent 1: classid 1:1 htb rate 100kbps ceil 100kbps
#Tokyo class
tc class add dev $DEV parent 1:1 classid 1:10 htb rate 50kbps ceil 100kbps


I would use rate 90 ceil 100 prio 0

#Everything else
tc class add dev $DEV parent 1:1 classid 1:11 htb rate 50kbps ceil 100kbps


rate 10 ceil 100 prio 1 quantum 1500 (or your mtu) burst 10b cburst 10b


#filter for streaming
tc filter add dev $DEV parent 1:1 protocol ip prio 0 u32 match ip src 10.2.1.7 match ip dport 2001 0xffff flowid 1:10


Filters don't work as you need to add them to 1:0 also prio 0 is not highest for a filter - use 1

tc filter add dev $DEV protocol ip parent 1:1 prio 0 u32 match ip src 10.2.1.5 match ip dport 2001 0xffff flowid 1:10

#filter for my workstation
tc filter add dev $DEV protocol ip parent 1:1 prio 3 u32 match ip src 10.2.1.251 flowid 1:10


If your workstation generates bulk traffic don't put it with stream - make another class.


#all other traffic sent to the other queue
tc filter add dev $DEV protocol ip parent 1:1 prio 3 u32 match ip src 0.0.0.0/0 flowid 1:11


Not really needed if you use default 11 but remember arp - if you omit default 11 then leave this and arp will pass unshaped.


tc qdisc add dev $DEV parent 1:10 handle 10: pfifo limit 2


two packets seems a bit low - maybe use a short bfifo to limit to a couple big packets (3k) but still allow more small.

tc qdisc add dev $DEV parent 1:11 handle 11: sfq perturb 2


perturb causes packet reordering 2 is too low use min 10 or higher.

Andy.
_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

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