> Probably, both my PCI modems still had big buffers beyond the ppp that I
> shaped on. Even if nas0 did only accept traffic when it had finished
> transmitting I don't think you could do what you want above.


The problem is that DSL sync rates are ATM rates so there are quite alot
> of overheads. A small eg. ack packet may be seen as 40 bytes by HTB on
> nas0, but will use 106 bytes (2 cells) on the wire. If you connection is
> highly asymmetric acks can eat a fair chunk of upload bandwidth. It
> affects bigger packets aswell 1500 = 32 cells = 1696 bytes ATM level.


Thank you for so technical answer, I suppose that this explains why the
saturation speed (the one the line reaches with no shaping), is always
85%~95% of the negotiated speed that I see in the router configuration page.
About the buffer size... is the same as the txqueuelength value shown in
ifconfig?, it is set at 100 (packets I suppose), but it can be changed. I
have no ppp encapsulation, it's a bridged connection, so the packets go
directly to this interface...

There is a solution, but you'll need to patch your kernel and
> iproute2(tc), and find out what your overheads are - it depends how you
> connect to your ISP, see -
>
> http://ace-host.stuart.id.au/russell/files/tc/tc-atm/
>
> To handle your varying sync rate you would need to make a script to
> check periodically and restart your script with the new rate.
>
> If you patch you can run almost at sync rate - back off a few kbit to
> allow for modem rounding down to whole cells/sec for it's own aal0/5 QOS
> and if ppp lcp pings can eat a a few bits/sec if used. Also to cover
> yourself for restarting the script when active so any backlog can slowly
> drain.
>

Very interesting information, anyway I think that I'll not need to do this,
(I don't even think I can, patching the kernel and the iproute2 that run on
the embedded system in the router, bufff...)
Hopefully, I have found a simple solution that can achive the proposed
goals... It still need further testing, but I think it'll work. I post it
here, maybe someone else could be interested.

This is what I've tested so far:

  prio qdisc
     |
     --------------------------
     |                        |
lower prio              higher prio
     |                        |
   pfifo                     htb*
     |                   limit 60KB/s
     |                        |
    p2p                      ftp

*(tbf could also have been used for this simple test)

The results of this test were succesfull. I mean, with only the p2p the line
was running al full saturation speed, when I started to use the ftp it
reached the 60KB/s limit without problems with p2p taking the rest of the
line, wich never stopped working at full speed.
Given this results, I think that the following scheme will work like a
charm...

 prio qdisc
     |
     ------------------------------------------------------
        |                  |                              |
 low priority        medium priority                high priority
        |                  |                              |
       sfq                htb                           pfifo
        |            dynamic limit                        |
        |                  |                              |
      p2p           ftp, web, mail...          small ACK's, ICMP, ssh...
 As you told me, I think that I can make a script that constantly checks the
top speed on the prio (which will allways be saturated due to the p2p), and
adjust the htb limit to some % of it, or substracting a fixed quantity (the
quantity that will rest for the p2p when running ftp at full speed, which is
what I wated to achieve in the beginning). I hope it'll work...
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

Reply via email to