All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Furniss <andy.furniss@dsl.pipex.com>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] PRIO / CBQ / HTB queue drop algorithm
Date: Tue, 08 Feb 2005 01:34:00 +0000	[thread overview]
Message-ID: <42081708.9060402@dsl.pipex.com> (raw)
In-Reply-To: <OFEBF02D93.73CCED77-ON86256F9C.007D0374-86256F9C.007F7DF3@edapt.us>

rsenykoff@harrislogic.com wrote:
> Hello all.
> 
> I've been struggling to QoS VoIP at our site and have a successful 
> implementation at this point. Basically I had to set aside enough 
> bandwidth for VoIP by placing all other traffic behind an HTB (multiple 
> classes and queues behind it). Everything is fine. Here's the diagram:
> 
>          -------
>          | eth |
>          -------
>             |
>          --------
>          | PRIO |
>          --------
>        /          \
>     1/             2\
> ---------             \
> | PFIFO |       ---------------------
> | VoIP  |       | Hier. Token Bucket | <-- throttled so it + VoIP won't 
> overrun
> ---------       ----------------------     the ethernet link (we know how 
> many
>               /     2|        3|       \   phones we have so this is 
> possible
>            1/    --------- ---------    4\ until you get into conferencing 
> etc)
>       ---------  | PFIFO | | PFIFO |   --------- 
>       | PFIFO |  | video | | inst. |   | fair  |
>       |citrix |  --------- | msgr  |   | SFQ   | 
>       ---------            ---------   | bulk  |
>                                        ---------
> 
> I tried using CBQ and HTB as the higher level queues, but it seems that 
> with lending of traffic out, there is a delay (waiting for space in the 
> queue) where packets from VoIP will get dropped until there's space. I'm 
> guessing that the queues all use a basic tail-drop algorithm.
> 
> Have I been doing something wrong? It sure would be cool to be able to 
> provide immediate bandwidth to VoIP (and other interactive applications) 
> while still letting those interactive traffic  classes lend out bandwidth. 
> For example, an option on PRIO that lets you specify random drop, and what 
> bands to drop from. Thus, if a VoIP packet arrives and the queue is full, 
> rather than dropping the VoIP packet, randomly drop a packet from the bulk 
> traffic band of the PRIO queue.
> 
> Any thoughts on this are very welcome. 
> 
> TIA!
> -Ron S.

HFSC may be the best solution, but there aren't many examples/much 
support for it yet.

You can lend out unused interactive bandwidth with HTB and keep latency 
low, the trick is to give interactive class much more bandwidth (rate) 
than it needs and make bulk classes have low rates. Give interactive 
prio 0 which is highest priority.

Andy.



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

      reply	other threads:[~2005-02-08  1:34 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-02 23:12 [LARTC] PRIO / CBQ / HTB queue drop algorithm rsenykoff
2005-02-08  1:34 ` Andy Furniss [this message]

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=42081708.9060402@dsl.pipex.com \
    --to=andy.furniss@dsl.pipex.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.