Discussion:
HFSC and that ATM overhead problem (Another VOIP QoS post. Ahhhh)
Fog_Watch
2007-11-04 12:04:19 UTC
Permalink
G'Day

I would like to be able to use my VOIP telephone over a saturated
ADSL link whilst enjoying optimum audio quality and utilising all of the
bandwidth I pay for. It is about this situation that I write.

HFSC appears to be the queueing discipline of choice for VOIP. In order
for this to work, though, do I have to account for the ATM overhead in
the small VOIP packets by defining my maximum root class bit rate as
(measured max bit rate)*%50 (or some other awful percentage)?

If the answer is yes to the above, does that mean that the next best
solution would be HTB coupled with the newly updated
http://www.adsl-optimizer.dk/? Would Shorewall with patched kernel and
patched iproute2 be the most Luddite way of using adsl-optimizer?

Ah, so many questions, sorry. Have a nice day.

Regards

Fog_Watch.
--
Lose wait. Get Gentoo.
Gustavo Homem
2007-11-04 12:46:37 UTC
Permalink
Post by Fog_Watch
G'Day
I would like to be able to use my VOIP telephone over a saturated
ADSL link whilst enjoying optimum audio quality and utilising all of the
bandwidth I pay for. It is about this situation that I write.
HFSC appears to be the queueing discipline of choice for VOIP. In order
for this to work, though, do I have to account for the ATM overhead in
the small VOIP packets by defining my maximum root class bit rate as
(measured max bit rate)*%50 (or some other awful percentage)?
If the answer is yes to the above, does that mean that the next best
solution would be HTB coupled with the newly updated
http://www.adsl-optimizer.dk/?
Ah! Thanks for pointing to us that the kernel devs finnally accepted the
patches.

Does someone know if the patched TC will work for kernel versions >= 2.6.24?
Post by Fog_Watch
Would Shorewall with patched kernel and
patched iproute2 be the most Luddite way of using adsl-optimizer?
I don't use Shorewall, but rather an iptables script which works for most
scenarios:

http://downloads.angulosolido.pt/iptables/

If you don't use a patched kernel and if your system has only two network
interfaces, you can use a script like this one:

http://downloads.angulosolido.pt/QoS/HTB_shaper_basic.sh

and take the overhead into account empirically (this one is HTB based).

That is, start with the value the modem is synchronized for, fill the line
with the average traffic you expect and lower the values until is OK. As you
lower the upstream value you will find increasingly better latency values
(try with ping + voip app).

The best way is indeed patching the kernel and tc so that the overhead is
automatically taken into account. I haven't done it yet, since that process
doesn't scale for using across multiple systems of different versions.

Now that the kernel patches were accepted things may change :-)

Best regards
Gustavo
--
Angulo Sólido - Tecnologias de Informação
http://angulosolido.pt
Fog_Watch
2007-11-04 23:16:28 UTC
Permalink
On Sun, 4 Nov 2007 12:46:37 +0000
Post by Gustavo Homem
I don't use Shorewall, but rather an iptables script which works for
No disrespect, but that sounds too scary for me. I feel more
comfortable if something like Shorewall is holding my hand.
Post by Gustavo Homem
That is, start with the value the modem is synchronized for, fill the
line with the average traffic you expect and lower the values until
is OK. As you lower the upstream value you will find increasingly
better latency values (try with ping + voip app).
Thanks for the explanation.
Post by Gustavo Homem
doesn't scale for using across multiple systems of
different versions.
I didn't understand that bit. What are the "systems" and "versions"?

Regards

Fog_Watch.
--
Lose wait. Get Gentoo.
Gustavo Homem
2007-11-04 23:21:43 UTC
Permalink
Post by Fog_Watch
On Sun, 4 Nov 2007 12:46:37 +0000
Post by Gustavo Homem
I don't use Shorewall, but rather an iptables script which works for
No disrespect, but that sounds too scary for me. I feel more
comfortable if something like Shorewall is holding my hand.
Takes more time the first time and less time from then on.
Post by Fog_Watch
Post by Gustavo Homem
That is, start with the value the modem is synchronized for, fill the
line with the average traffic you expect and lower the values until
is OK. As you lower the upstream value you will find increasingly
better latency values (try with ping + voip app).
Thanks for the explanation.
Post by Gustavo Homem
doesn't scale for using across multiple systems of
different versions.
I didn't understand that bit. What are the "systems" and "versions"?
If you manage multiple Linux systems with different versions you realize that
patching the kernels for all, and retesting afterwards, takes quite some
time. Then if you need a kernel upgrade, there you go again praying that the
patches work.

The point was: the gain obtained from using those patches might not compensate
the time investment, on the scenarios I work with.

For a single setup, or multiple identical ones, it will pay off for sure.

Cheers
Gustavo
Post by Fog_Watch
Regards
Fog_Watch.
--
Angulo Sólido - Tecnologias de Informação
http://angulosolido.pt
Giovanni Bajo
2007-11-04 14:34:07 UTC
Permalink
Post by Fog_Watch
HFSC appears to be the queueing discipline of choice for VOIP.
Is it? Any pointers?
--
Giovanni Bajo
Michal Soltys
2007-11-04 22:01:52 UTC
Permalink
Post by Giovanni Bajo
Post by Fog_Watch
HFSC appears to be the queueing discipline of choice for VOIP.
Is it? Any pointers?
Well, it can decouple bandwidth and delay. And both are important here. Some
documentation pointers:

http://linux-ip.net/articles/hfsc.en/
http://www.cs.cmu.edu/~istoica/hfsc-tr.ps.gz (deep, but good read)
http://www.sonycsl.co.jp/~kjc/software/TIPS.txt (regarding implementation in
*BSD)
http://marc.info/?t=107799591400001&r=1&w=2
Ian
2007-11-04 22:54:45 UTC
Permalink
On Sun, 04 Nov 2007 15:34:07 +0100
Post by Giovanni Bajo
Post by Fog_Watch
HFSC appears to be the queueing discipline of choice for VOIP.
Is it? Any pointers?
I was going on gut instinct from vague information I read cruising
around. Michal Soltys has given the hard references.
--
Lose wait. Get Gentoo.
Fog_Watch
2007-11-06 10:14:39 UTC
Permalink
On Sun, 4 Nov 2007 23:04:19 +1100
Post by Fog_Watch
HFSC appears to be the queueing discipline of choice for VOIP.
In http://www.lartc.org/lartc.html it is stated that users of CBQ
might suffer from the 'sendmail effect' - "which teaches us that any
complex technology which doesn't come with documentation must be the
best available." Purhaps I was suffering from 'sendmail effect' when
considering HFSC.

At http://forum.openwrt.org/viewtopic.php?pid=27049#p27049 there is an
interesting passage that compares HTB and HFSC, and states how the
priority setting of HTB in effect decouples latency and bandwidth.
Based on this and the standard documentation
(http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm) I think I'll have
a crack at HTB first.
Post by Fog_Watch
does that mean that the next best
solution would be HTB coupled with the newly updated
http://www.adsl-optimizer.dk/?
In addition to the above I've looked at:
http://www.adsl-optimizer.dk/
http://ace-host.stuart.id.au/russell/files/tc/tc-atm/
http://edseek.com/archives/2006/03/13/linux-qos-tc-and-accounting-for-atm-overhead/

I am none the wiser about what I do to make adsl-optimizer go. What
I'm going to do is establish sub-optimal shaping (probably Shorewall)
and then maybe optimise later.

Interestingly, adsl-optimizer is now established under sourceforge
(https://sourceforge.net/projects/adsl-optimizer/)

Regards

Fog_Watch.
--
Lose wait. Get Gentoo.
Loading...