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
[email protected]
https://lists.bufferbloat.net/listinfo/cerowrt-devel