Hi Dave, hi group

so finally I am getting around to repeat a few test with cerowrt on a rather 
typical ADSL line. Using simple_qos.sh did not result in nice ping time 
behavior under up- and downlink saturating loads, as I had seen with earlier 
versions (like 1.5 years ago when I switched to an docsis carrier). Even though 
I had actives the scripts provisions for ATM and my PPPOE overhead. Still the 
occasional ping was delayed for 400+ milliseconds (with unloaded ping time to 
the host of ~24 ms). The following two changes to (the old) simple_qos.sh 
script helped a lot (by somehow bounding the worst case ping at around 105 ms, 
still not great, but so much better than before…). Anyway here are the two 
additions:
Note: I have no linux machine at home ATM so I do my measurements under macosx 
and I have not managed to get netsurf-wrapper to work for me, so all data are 
quite inscientifcly recorded (start a long ping train against the nearest 
ISP-side host that reliably responds to my ping probes and shows robust timing 
without load, then adding a big link saturating file transfer to the net, then 
opening 99 browser tabs at once). Finally my encapsulation ends up in a per 
packet overhead of 40 bytes per packet (in addition to the ip header and all 
the rest).


EGRESS_STAB_STRING="stab mtu 2048 tsize 128 overhead 26 linklayer atm"
INGRESS_STAB_STRING="stab mtu 2048 tsize 128 overhead 40 linklayer atm"

(NOTE: mtu here is not MTU but an stab specific way of setting an upper limit 
for the size table to be built and used)

and here is where I put them:
1) in egress()
c qdisc add dev $IFACE root handle 1: ${EGRESS_STAB_STRING} htb ${RTQ} default 
12 
2) in ingress()
tc qdisc add dev $DEV root handle 1: ${INGRESS_STAB_STRING} htb ${RTQ} default 
12 
and in addition I set:

UPLINK=2400     #2558
DOWNLINK=15582  #16402
DEV=ifb0
QDISC=nfq_codel # nfq_codel is higher over head than fq_codel but does better 
on quantums. I hope.
IFACE=ge00
DEPTH=42
TC=/usr/sbin/tc
FLOWS=8000
PERTURB="perturb 0" # Permutation is costly, disable
FLOWS=16000 # 
BQL_MAX=3000 # it is important to factor this into the RED calc

CEIL=$UPLINK
MTU=1500
ADSLL=""
PPOE=""

(using the same setting with empty [E|IN]GRESS_STAB_STRING variables but PPOE=1 
yielded the quite miserable maximal ping times of > 400ms).

So my hunch is that the more general stab mechanism (which to this layman seems 
to work not by fudging the rate in the kernel, but by telling the kernel the 
actually sizes of the data packets (in the linklayer) so the kernel shapes 
correctly) seems to have taken less damage the original HTB internal mechanism 
of the same spirit. I will, once I get round to it, that is, try to repeat 
these measurement with the most recent cerowrt alpha build. I encourage 
everyone on an ATM link to test the described modifications and report back 
success or failure. 
        Don't know whether your XDSL line uses ATM as link layer, don't know 
your overhead? just let me know I might be able to help :). Most VDSLs 
hopefully use packet transfer mode (PTM) which did away with the ATM cell 
quantization voodoo, so only ADSL, ADSL2 and ADSL2+ user need to worry about 
the link layer. The overhead however might also be an issue with VDSL…


Best
        Sebastian


_______________________________________________
Cerowrt-devel mailing list
Cerowrt-devel@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cerowrt-devel

Reply via email to