Re: IPMARK

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

 



So CLASSIFY can do it too...
Are you aware of any performance difference between MARK/tc filter and
CLASSIFY ?


2008/9/19 Michal Soltys <nozo@xxxxxxxx>:
> Jason Cosby wrote:
>>
>> All,
>>
>> I see using IPMARK as the way to go, but am not clear how to put it
>> together. The documentation doesn't quite clear it up for me. Can anyone
>> help me get together a simple down and dirty script to do as I
>>  described? Once I get the network under control a bit I will
>> continue implementing proper QOS. If I don't get a handle on this
>> soon I will be tarred, feathered, and thrown in the desert to rot
>> (almost), so any help is GREATLY appreciated.
>>
>
> You can as well use CLASSIFY target, instead of MARK+tc filter.
>
> Example (pretty crude and simplified - there're many factors to consider
> after all) of what you have in mind:
>
>
> #adjust queue lengths in "pfifo" to your needs
> #adjust interface name
> eth=eth1
>
> tc qdisc add dev $eth root handle 1:0 hfsc default 101
> tc class add dev $eth parent 1:0 classid 1:1 hfsc ls m2 512kbps \
>        ul m2 512kbps
>
> #default queue
> tc class add dev $eth parent 1:1 classid 1:101 hfsc rt m2 60kbps \
>        ls m2 200kbps
> tc qdisc add dev $eth handle 101:0 parent 1:101 pfifo limit 10
>
> #client queues
> tc class add dev $eth parent 1:1 classid 1:102 hfsc rt m2 400kbps \
>        ls m2 400kbps
> tc qdisc add dev $eth handle 102:0 parent 1:102 sfq limit 20 \
>        perturb 10 quantum 1
>
> iptables -t mangle -A FORWARD -o $eth -m iprange --src-range \
>        192.168.1.6-192.168.1.40 -j CLASSIFY --set-class 1:102
>
>
> The above will guarantee 60kbps for all the other traffic, 400kbps for
> the clients, and divide any unused bandwidth in 1:2 ratio (in hfsc -
> realtime guerantees use actual values, but linkshare criterion based on
> ratios of values - 200:400 here). SFQ will take care of distributing the
> bandwidth across all the clients. Check out recently added flow classifier
> to extend SFQ functionality similary to what was possible with ESFQ (
> http://marc.info/?l=linux-netdev&m=120180241422360&w=2 ).
>
> Alternatively - you could create 35 hfsc leaf classes in a loop, but
> getting sizes of the leaf queues can become tricky (there may be
> something I'm not aware of though), and SFQ seems like a much better thing
> (especially with mentioned above functionality extended by 'flow').
>
> E.g. something along the lines of:
>
> for i in `seq -w 6 1 40` ; do
>        iptables -t mangle -A MARKCHAIN -s 192.168.1.1${i} \
>                -j CLASSIFY --set-class 1:1${i}
>        tc class add dev $eth parent 1:1 classid 1:1${i} \
>                hfsc sc m2 10000
>        tc qdisc add dev $eth handle 1${i}:0 parent 1:1${i} \
>                pfifo limit 3
> done
>
> If you gonna read about traffic shaping, be sure to check out:
>
> http://ace-host.stuart.id.au/russell/files/tc/doc/
>
> It's the very good source of info for u32 filter, among other things (old
> lartc faq is very innacurate here).
>
> --
> To unsubscribe from this list: send the line "unsubscribe netfilter" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe netfilter" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux