Linux Advanced Routing and Traffic Control list
 help / color / mirror / Atom feed
From: "Mark Williams (MWP)" <mwp@internode.on.net>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] Weighted packet shaping?
Date: Thu, 23 Dec 2004 10:56:11 +0000	[thread overview]
Message-ID: <20041223105418.GA19364@linux.comp> (raw)
In-Reply-To: <20041221034303.GB27656@linux.comp>

> Mark Williams (MWP) wrote:
> >Ok.
> >
> >My Linux (which is connected to the ADLS modem) box runs HTTP, FTP, etc 
> >services and also runs bittorrent, edonkey,
> >etc.
> >I have two other PCs (both windows) which connect to the internet via the 
> >Linux
> >box (MASQ).
> >
> >Now, i want data like SSH, ICMP, DNS from any source to ppp0 to get top 
> >priority.
> >I want the two windows PCs to get 2nd priority.
> >I want services to get 3rd, and the rest (torrents, etc) to get the lowest
> >priority.
> >
> >I have this setup atm using HTB and SFQ.
> >
> >Now this is what happens:
> >I have bittorrent going as fast as possible outbound.
> >I then use my linux box to send FTP data over the same link.
> >
> >Im finding that packet shaping is splitting the outbound bandwidth 
> >(256kbit)
> >equally between the two.
> >
> >This is not what im after...  want the windows box to take more bandwidth 
> >off
> >bittorrent than 50% like it is atm.
> >
> >Does this explain my problem better?
> 
> Yes, you can do this with htb.
> 
> You'll need to back off a bit from 256kbit to allow for overheads - this 
> is tweakable with patch Ed posted to the list - you could also shape 
> incoming, but you would need IMQ which involves patching/doing new kernel.
> 
> For now try making a parent with rate and ceil 220kbit.
> Have 4 child/leaf classes like - (assuming 1 is highest priority)
> 
> class 1 rate 120 ceil 220 prio 0
> class 2 rate 50 ceil 220 prio 1
> class 3 rate 25 ceil 220 prio 2
> class 4 rate 25 ceil 220 prio 3
> 
> There are other tweaks you can try, it depends how much you care about 
> latency. You could also share the windows boxes bandwidth by IP.
> 
> I don't do it quite like the above - so if it doesn't work, say and I'll 
> think again.

Well im currently using:

    #root device
    $TC qdisc add dev $INTERFACE root handle 1: htb default 25

    #root class
    $TC class add dev $INTERFACE parent 1: classid 1:1 htb rate 256kbit

    #20 - ICMP, DNS, SYN, SSH
    $TC class add dev $INTERFACE parent 1:1 classid 1:20 htb rate 128kbit ceil 256kbit prio 1
    $TC qdisc add dev $INTERFACE parent 1:20 handle 20: sfq perturb 10
    $TC filter add dev $INTERFACE parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:20

    #21 - HTTP/FTP out
    $TC class add dev $INTERFACE parent 1:1 classid 1:21 htb rate 128kbit ceil 256kbit prio 2
    $TC qdisc add dev $INTERFACE parent 1:21 handle 21: sfq perturb 10
    $TC filter add dev $INTERFACE parent 1:0 prio 0 protocol ip handle 21 fw flowid 1:21

    #22 - All cool.comp traffic
    $TC class add dev $INTERFACE parent 1:1 classid 1:22 htb rate 128kbit ceil 256kbit prio 3
    $TC qdisc add dev $INTERFACE parent 1:22 handle 22: sfq perturb 10
    $TC filter add dev $INTERFACE parent 1:0 prio 0 protocol ip handle 22 fw flowid 1:22

    #23 - All ian.comp traffic
    $TC class add dev $INTERFACE parent 1:1 classid 1:23 htb rate 64kbit ceil 256kbit prio 4
    $TC qdisc add dev $INTERFACE parent 1:23 handle 23: sfq perturb 10
    $TC filter add dev $INTERFACE parent 1:0 prio 0 protocol ip handle 23 fw flowid 1:23

    #24 - HTTP/FTP in
    $TC class add dev $INTERFACE parent 1:1 classid 1:24 htb rate 64kbit ceil 256kbit prio 5
    $TC qdisc add dev $INTERFACE parent 1:24 handle 24: sfq perturb 10
    $TC filter add dev $INTERFACE parent 1:0 prio 0 protocol ip handle 24 fw flowid 1:24

    #25 - Everything else
    $TC class add dev $INTERFACE parent 1:1 classid 1:25 htb rate 20kbit ceil 64kbit prio 8
    $TC qdisc add dev $INTERFACE parent 1:25 handle 25: sfq perturb 10
    $TC filter add dev $INTERFACE parent 1:0 prio 0 protocol ip handle 25 fw flowid 1:25

Ill do some more tests and link to a rates graph when done.
It should illustrate the problem.

Thanks again,
 Mark.
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

  parent reply	other threads:[~2004-12-23 10:56 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-21  3:55 [LARTC] Weighted packet shaping? Mark Williams (MWP)
2004-12-22  4:53 ` Mark Williams (MWP)
2004-12-22  9:07 ` Ed Wildgoose
2004-12-22 13:49 ` Andy Furniss
2004-12-22 15:48 ` Mark Williams (MWP)
2004-12-22 22:54 ` Andy Furniss
2004-12-23 10:56 ` Mark Williams (MWP) [this message]
2004-12-24 14:08 ` Andy Furniss
2004-12-24 15:19 ` Mark Williams (MWP)
2004-12-24 16:36 ` Andy Furniss
2004-12-26  4:38 ` Mark Williams (MWP)
2004-12-26 13:09 ` Andy Furniss
2004-12-28  9:35 ` Mark Williams (MWP)
2004-12-29  2:46 ` Andy Furniss
2004-12-29  6:52 ` Mark Williams (MWP)
2004-12-29 13:26 ` Francisco Pereira
2004-12-30  0:05 ` Andy Furniss
2005-01-03 11:22 ` marco ghidinelli
2005-01-04 13:57 ` Andy Furniss

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20041223105418.GA19364@linux.comp \
    --to=mwp@internode.on.net \
    --cc=lartc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox