From: Andy Furniss <andy.furniss@dsl.pipex.com>
To: hadi@cyberus.ca
Cc: netdev@oss.sgi.com, Nguyen Dinh Nam <nguyendinhnam@gmail.com>,
Remus <rmocius@auste.elnet.lt>, Andre Tomt <andre@tomt.net>,
syrius.ml@no-log.org, Damion de Soto <damion@snapgear.com>
Subject: Re: dummy as IMQ replacement
Date: Fri, 04 Feb 2005 00:33:54 +0000 [thread overview]
Message-ID: <4202C2F2.2050500@dsl.pipex.com> (raw)
In-Reply-To: <1107353106.1098.65.camel@jzny.localdomain>
jamal wrote:
> On Tue, 2005-02-01 at 09:53, Andy Furniss wrote:
>
>>jamal wrote:
>>
>>>I know for a while the Bart howto was mislabeling the meaning of
>>>policing - not sure about shaping.
>>>Shaping has a precise definition that involves a queue and a
>>>non-working-conserving scheduler in order to rate control. This doesnt
>>>matter where it happens (egress or ingress). Policing on the other hand
>>>is work conserving etc.
>>
>>Ok, but shaping to LARTC posters means being able to classify traffic
>>and set up sharing/priorotising of classes.
>>
>>This is the reason most need
>>to be able to queue - they want to use htb/hfsc for complicated setups
>
>
> Close - but you are missing the rate control requirement.
> You can do the above with prio qdisc for example but that does not
> equate to shaping. Understood about Lartc users definitions. However,
> note that they are influenced by what people tell them or what people
> write in docs. Help in making sure the redefinition doesnt propagate.
> Theres a very precise meaning to shaping and it is _exactly_ the way i
> described it above. Clue people who ask questions.
I see your point.
>
>
>>and until now were not aware that it was even possible to replicate this
>>in policers
>
>
> I am sure i have written about 50 emails on this topic over the last 5
> years;-> look at the archives. I even joked about it here:
> http://www.cyberus.ca/~hadi/patches/action/README over 2 years ago.
> look at the text reading "it must be the summer heat again; weve had
> someone doing that every year around summer"
> Unfortunately people who are writting docs havent picked it up for
> whatever reasons. I am hoping we finaly get this documented somewhere.
> Can you help fix this?
I could write up some what I did type stuff. Once I work out what to do
and how to do it :-)
>
>
>>and if it becomes feasable it will probably appear daunting
>>to do compared with HTB and all the existing docs/scripts.
>>
>
>
>>From a usability perspective i agree with you.
> Its still doable is all i can say ;-> (but you are correct in that it
> may not be for the weak hearts)
> As a reminder of some of the big discussions on shared and hierachical
> policing - look at the many many discussions I had with devik on this
> topic a few years back.
> It resulted in the birth of HTB (which is essentially a hierachy of the
> same token bucket meters used in policers; hierachical shared policers
> are doable - look at iproute2/examples/diffserv). HTB otoh has proven
> useful due to simplicty - so it stands on its own merit now.
> I think there may be peculiar occasions where you may need to have
> queues to shape traffic to a local app - but thats peculiar.
>
I'll have to read up abit.
>
>>For me, I think queuing and dropping is better than just dropping, you
>>can affect tcp by delaying eg. 1 ack per packet rather than delayed acks
>>and clocking out the packets helps smooth burstiness,
>
>
> True - but i question the usefulness of localy terminating TCP packets
> being shaped. For packets being forwarded, the shaping happens on
> egress.
I know it's a bit odd, but then if I had just one PC I would want to
rather than police for reasons below.
>
>
>>which hurts
>>latency if you are doing traffic control from the wrong end of the
>>bottleneck.
>>
>
>
> Not sure i followed the latency connection.
I am shaping a relativly slow link from the wrong end. My objective is
to avoid the 600ms buffer at ISP/Teleco getting filled as it adds
latency for my interactive traffic. If I have a dozen bulk tcp
connections running then policing encourages each to send data in bursts
at link speed, because delayed acks will pair packets and say a group of
four passes without dropping it causes another group of four from that
connection at link speed. Add to that the different or variable rtts of
the 12 connections it means that there will be times when large bunches
of big packets arrive together and delay the interactive traffic.
If I shape and dequeue each connection round robin and the aggeragate
rate is below link speed then the aggregate flow is smoothed better. If
the rates are low enough I will delay longer than delayed ack timers and
get one packet per ack aswell. It's still not perfect of course.
>
>
>>As long as I could use netfilter to mark/classify connections then I
>>think I can sort my setup, don't know about others.
>>
>>
>
>
> Great. yes, you can.
>
>
>>>Are pre/post routing sufficient as netfilter hooks for your case?
>>
>>Yes but depends on where in pre/postrouting. For me after/before nat, as
>>I say above though I could workaround if I classify connections with
>>netfilter. For others as long as they can filter on a mark/classify set
>>in forward, then I think it will be OK for them.
>>
>
>
> You can mark in netfilter or even in tc and use those marks in both
> places.
Great.
>
>
>
>>I am not sure what exactly can can't be done in your example:
>>
>> ># redirect all IP packets arriving in eth0 to dummy0
>> ># use mark 1 --> puts them onto class 1:1
>> >$TC filter add dev eth0 parent ffff: protocol ip prio 10 u32 \
>> >match u32 0 0 flowid 1:1 \
>>
>>What I can do here depends where it hooks packets.
>>
>> >action ipt -j MARK --set-mark 1 \
>>
>>I don't know what table I am using - may be OK as long as I can test for
>>a mark I made earlier in the egress dummy case or test connmark/state I
>>set for that connection in the ingress case.
>>
>
>
> That would be doable. Thanks for taking the time Andy.
Glad I can help.
Andy.
>
> cheers,
> jamal
>
>
next prev parent reply other threads:[~2005-02-04 0:33 UTC|newest]
Thread overview: 126+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-30 22:12 dummy as IMQ replacement Jamal Hadi Salim
2005-01-31 8:20 ` Hasso Tepper
2005-01-31 12:25 ` jamal
2005-01-31 12:38 ` Hasso Tepper
2005-01-31 12:47 ` jamal
2005-01-31 13:02 ` Hasso Tepper
2005-01-31 13:28 ` Thomas Graf
2005-01-31 13:45 ` jamal
2005-01-31 14:06 ` Thomas Graf
2005-01-31 14:29 ` jamal
2005-01-31 13:39 ` jamal
2005-01-31 14:14 ` Hasso Tepper
2005-01-31 14:25 ` jamal
2005-01-31 14:46 ` Hasso Tepper
2005-01-31 15:34 ` jamal
2005-01-31 18:00 ` Lennert Buytenhek
2005-01-31 20:08 ` jamal
2005-01-31 13:58 ` Thomas Graf
2005-01-31 14:19 ` jamal
2005-01-31 15:15 ` Thomas Graf
2005-01-31 15:40 ` jamal
2005-01-31 15:59 ` Thomas Graf
2005-01-31 16:40 ` jamal
2005-01-31 18:15 ` Thomas Graf
2005-01-31 20:18 ` jamal
2005-01-31 22:53 ` Thomas Graf
2005-02-01 12:02 ` jamal
2005-02-01 12:51 ` Thomas Graf
2005-02-01 13:13 ` jamal
2005-02-01 22:44 ` Thomas Graf
2005-02-02 14:24 ` jamal
2005-02-02 15:40 ` Thomas Graf
2005-02-02 15:55 ` Thomas Graf
2005-01-31 20:28 ` David S. Miller
2005-02-01 1:02 ` Andy Furniss
2005-02-01 13:31 ` Thomas Graf
2005-02-01 15:03 ` Andy Furniss
2005-02-02 13:28 ` Thomas Graf
2005-01-31 16:27 ` Andre Correa
2005-01-31 16:51 ` Jamal Hadi Salim
2005-01-31 22:39 ` Andy Furniss
2005-02-01 11:49 ` jamal
2005-02-01 14:53 ` Andy Furniss
2005-02-02 14:05 ` jamal
2005-02-04 0:33 ` Andy Furniss [this message]
2005-02-01 11:32 ` Andy Furniss
[not found] ` <0fcf01c5077f$579e4b80$6e69690a@RIMAS>
[not found] ` <1107174142.8021.121.camel@jzny.localdomain>
2005-03-09 14:30 ` Remus
2005-03-09 14:38 ` jamal
2005-03-10 1:06 ` Jamal Hadi Salim
2005-03-10 9:18 ` Remus
2005-03-10 11:22 ` jamal
2005-03-19 1:09 ` Andy Furniss
2005-03-19 1:45 ` jamal
2005-03-19 10:23 ` Andy Furniss
2005-03-20 13:20 ` jamal
2005-03-20 13:55 ` jamal
2005-03-20 18:31 ` jamal
2005-03-21 22:08 ` Andy Furniss
2005-03-21 13:14 ` iptables breakage WAS(Re: " jamal
2005-03-21 21:50 ` Andy Furniss
2005-03-21 22:41 ` jamal
2005-03-22 1:15 ` Andy Furniss
2005-03-22 3:31 ` jamal
2005-03-22 21:09 ` Andy Furniss
2005-03-23 3:57 ` jamal
2005-03-23 19:33 ` Andy Furniss
2005-03-23 19:45 ` jamal
2005-03-23 20:53 ` Andy Furniss
2005-03-23 21:07 ` jamal
2005-03-23 22:46 ` Andy Furniss
2005-03-23 23:12 ` Andy Furniss
2005-03-24 0:34 ` jamal
2005-03-24 1:00 ` Andy Furniss
2005-03-24 0:53 ` jamal
2005-03-24 1:08 ` Andy Furniss
2005-03-24 11:32 ` jamal
2005-03-24 11:57 ` jamal
2005-03-24 15:41 ` Andy Furniss
2005-03-25 11:13 ` jamal
2005-03-25 12:39 ` jamal
2005-03-25 17:27 ` Patrick McHardy
2005-03-25 18:34 ` jamal
2005-03-25 19:01 ` Patrick McHardy
2005-03-25 20:07 ` Patrick McHardy
2005-03-25 20:31 ` jamal
2005-03-25 20:37 ` Patrick McHardy
2005-03-25 20:54 ` jamal
2005-03-25 21:23 ` Patrick McHardy
2005-03-25 19:08 ` jamal
2005-03-25 19:22 ` jamal
2005-03-25 19:59 ` Andy Furniss
2005-03-25 20:09 ` Patrick McHardy
2005-03-25 20:42 ` Andy Furniss
2005-03-25 20:10 ` jamal
2005-03-25 20:18 ` Patrick McHardy
2005-03-25 20:45 ` jamal
2005-03-25 21:10 ` Patrick McHardy
2005-03-25 21:57 ` jamal
2005-03-25 20:20 ` Thomas Graf
2005-03-25 20:48 ` jamal
2005-03-25 21:01 ` Thomas Graf
2005-03-25 21:48 ` jamal
2005-03-25 22:03 ` Thomas Graf
2005-03-25 22:20 ` jamal
2005-03-25 20:39 ` Patrick McHardy
2005-03-25 20:55 ` jamal
2005-03-25 21:00 ` Patrick McHardy
2005-03-25 21:44 ` jamal
2005-03-25 21:18 ` Andy Furniss
2005-03-25 22:12 ` IMQ again WAS(Re: " jamal
2005-03-25 23:26 ` Andy Furniss
2005-03-27 19:35 ` Andy Furniss
2005-03-28 13:39 ` Andy Furniss
2005-03-28 13:45 ` jamal
2005-03-28 13:55 ` Andy Furniss
2005-03-28 14:08 ` jamal
2005-03-28 13:57 ` jamal
2005-03-28 14:12 ` Andy Furniss
2005-03-28 14:20 ` jamal
2005-03-28 14:28 ` Andy Furniss
2005-03-28 14:36 ` Andy Furniss
2005-03-28 15:24 ` Andy Furniss
2005-03-28 19:27 ` jamal
2005-03-28 20:13 ` Andy Furniss
2005-03-23 1:31 ` Patrick McHardy
2005-03-23 4:01 ` jamal
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=4202C2F2.2050500@dsl.pipex.com \
--to=andy.furniss@dsl.pipex.com \
--cc=andre@tomt.net \
--cc=damion@snapgear.com \
--cc=hadi@cyberus.ca \
--cc=netdev@oss.sgi.com \
--cc=nguyendinhnam@gmail.com \
--cc=rmocius@auste.elnet.lt \
--cc=syrius.ml@no-log.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;
as well as URLs for NNTP newsgroup(s).