[Cerowrt-devel] some kernel updates
Sebastian Moeller
moeller0 at gmx.de
Sun Aug 25 10:53:50 PDT 2013
Hi Fred,
On Aug 25, 2013, at 16:26 , Fred Stratton <fredstratton at imap.cc> wrote:
> Thank you.
>
> This is an initial response.
>
> Am using 3.10.2-1 currently, with the standard AQM interface. This does not have the pull down menu of your interface, which is why I ask if both are active.
I have seen your follow-up mail that you actually used 3.10.9-2. I think that has the first cut of the script modifications that still allow to select both. Since I have not tested it any other way I would recommend to enable just one of them at the same time. Since the implementation of both is somewhat orthogonal and htb_private actually works in 3.10.9, best case you might actually get the link layer adjustments (LLA) and the overhead applied twice, wasting bandwidth. So please either use the last set of modified files I send around or wait for Dave to include them in ceropackages...
> On 25 Aug 2013, at 14:59, Sebastian Moeller <moeller0 at gmx.de> wrote:
>
>> Hi Fred,
>>
>>
>> On Aug 25, 2013, at 12:17 , Fred Stratton <fredstratton at imap.cc> wrote:
>>
>>>
>>> On 25 Aug 2013, at 10:21, Fred Stratton <fredstratton at imap.cc> wrote:
>>>
>>>> As the person with the most flaky ADSL link, I point out that None of these recent, welcome, changes, are having any effect here, with an uplink sped of circa 950 kbits/s.
>>
>> Okay, how flaky is you link? What rate of Errors do you have while testing? I am especially interested in CRC errors and ES SES and HEC, just to get an idea how flaky the line is...
>>
>>>>
>>>> The reason I mention this is that it is still impossible to watch iPlayer Flash streaming video and download at the same time, The iPlayer stream fails. The point of the exercise was to achieve this.
>>>>
>>>> The uplink delay is consistently around 650ms, which appears to be too high for effective streaming. In addition, the uplink stream has multiple breaks, presumably outages, if the uplink rate is capped at, say, 700 kbits/s.
>>
>> Well, watching video is going to stress your downlink so the uplink should not saturate by the ACKs and the concurrent downloads also do not stress your uplink except for the ACKs, so this points to downlink errors as far as I can tell from the data you have given. If the up link has repeated outages however, your problems might be unfixable because these, if long enough, will cause lost ACKs and will probably trigger retransmission, independent of whether the link layer adjustments work or not. (You could test this by shaping you up and downlink to <= 50% of the link rates and disable all link layer adjustments, 50% is larger than the ATM worst case so should have you covered. Well unless you del link has an excessive number of tones reserved for forward error correction (FEC)).
>
> Uptime 100655
> downstream 12162 kbits/s
> CRC errors 10154
> FEC Errors 464
> hEC Errors 758
>
> upstream 1122 kbits/s
> no errors in period.
Ah, I think you told me in the past that "Target snr upped to 12 deciBel. Line can sustain 10 megabits/s with repeated loss of sync.at lower snr. " so sync at 12162 might be too aggressive, no? But the point is that as I understand iPlayer works fine without competing download traffic? To my eye the error numbers look small enough to not be concerned about. Do you know how long the error correction period is?
>
>> Could you perform the following test by any chance: state iPlayer and yor typical downloads and then have a look at http://gw.home.lan:81und the following tab chain Status -> Realtime Graphs -> Traffic -> Realtime Traffic. If during your test the Outbound rate stays well below you shaped limit and you still encounter the stream failure I would say it is save to ignore the link layer adjustments as cause of your issues.
>
> Am happy reducing rate to fifty per cent, but the uplink appears to have difficulty operating below circa 500 kbits/s. This should not be so. I shall try a fourth time.
That sounds weird, if you shape to below 500 upload stops working or just gets choppier? Looking at your sync data 561 would fit the ~50% and above 500 requirements.
>>
>>
>>>>
>>>> YouTube has no problems.
>>>>
>>>> I remain unclear whether the use of tc-stab and htb are mutually exclusive options, using the present stock interface.
>>
>> Well, depending on the version of the cerowrt you use, <3.10.9-1 I believe lacks a functional HTB link layer adjustment mechanism, so you should select tc_stab. My most recent modifications to Toke and Dave's AQM package does only allow you to select one or the other. In any case selecting BOTH is not a reasonable thing to do, because best case it will only apply overhead twice, worst case it would also do the (link layer adjustments) LLA twice
>
>
>> See initial comments.
>>
>>>>
>>>> The current ISP connection is IPoA LLC.
>>>
>>> Correction - Bridged LLC.
>>
>> Well, I think you should try to figure out your overhead empirically and check the encapsulation. I would recommend you run the following script on you r link over night and send me the log file it produces:
>>
>> #! /bin/bash
>> # TODO use seq or bash to generate a list of the requested sizes (to alow for non-equdistantly spaced sizes)
>>
>> # Telekom Tuebingen Moltkestrasse 6
>> TECH=ADSL2
>> # finding a proper target IP is somewhat of an art, just traceroute a remote site
>> # and find the nearest host reliably responding to pings showing the smallet variation of pingtimes
>> TARGET=87.186.197.70 # T
>> DATESTR=`date +%Y%m%d_%H%M%S` # to allow multiple sequential records
>> LOG=ping_sweep_${TECH}_${DATESTR}.txt
>>
>>
>> # by default non-root ping will only end one packet per second, so work around that by calling ping independently for each package
>> # empirically figure out the shortest period still giving the standard ping time (to avoid being slow-pathed by our host)
>> PINGPERIOD=0.01 # in seconds
>> PINGSPERSIZE=10000
>>
>> # Start, needed to find the per packet overhead dependent on the ATM encapsulation
>> # to reliably show ATM quantization one would like to see at least two steps, so cover a range > 2 ATM cells (so > 96 bytes)
>> SWEEPMINSIZE=16 # 64bit systems seem to require 16 bytes of payload to include a timestamp...
>> SWEEPMAXSIZE=116
>>
>>
>> n_SWEEPS=`expr ${SWEEPMAXSIZE} - ${SWEEPMINSIZE}`
>>
>>
>> i_sweep=0
>> i_size=0
>>
>> while [ ${i_sweep} -lt ${PINGSPERSIZE} ]
>> do
>> (( i_sweep++ ))
>> echo "Current iteration: ${i_sweep}"
>> # now loop from sweepmin to sweepmax
>> i_size=${SWEEPMINSIZE}
>> while [ ${i_size} -le ${SWEEPMAXSIZE} ]
>> do
>> echo "${i_sweep}. repetition of ping size ${i_size}"
>> ping -c 1 -s ${i_size} ${TARGET} >> ${LOG} &
>> (( i_size++ ))
>> # we need a sleep binary that allows non integer times (GNU sleep is fine as is sleep of macosx 10.8.4)
>> sleep ${PINGPERIOD}
>> done
>> done
>>
>> #tail -f ${LOG}
>>
>> echo "Done... ($0)"
>>
>>
>> Please set TARGET to the closest IP host on the ISP side of your link that gives reliable ping RTTs (using "ping -c 100 -s 16 your.best.host.ip"). Also test whether the RTTs are in the same ballpark when you reduce the ping period to 0.01 (you might have to increase the period until the RTTs are close to the standard 1 ping per second case). I can then run this through my matlab code to detect the actual overhead. (I am happy to share the code as well, if you have matlab available; it might even run under octave but I have not tested that since the last major changes).
>
> To follow at some point.
Oh, I failed to mention at the given parameters the script takes almost 3 hours, during which the link should be otherwise idle...
>>
>>
>>>
>>>> Whatever byte value is used for tc-stab makes no change.
>>
>> I assume you talk about the overhead? Missing link layer adjustment will eat between 50% and 10% of your link bandwidth, while missing overhead values will be more benign. The only advise I can give is to pick the overhead that actually describes your link. I am willing to help you figure this out.
>
> The link is bridged LLC. Have been using 18 and 32 for test purposes. I shall move to PPPoA VC-MUX in 4 months.
I guess figuring out you exact overhead empirically is going to be fun.
>>
>>>>
>>>> I have applied the ingress modification to simple.qos, keeping the original version., and tested both.
>>
>> For which cerowrt version? It is only expected to do something for 3.10.9-1 and upwards, before that the HTB lionklayer adjustment did NOT work.
>
> Using 3.10.9-2
Yeah as stated above, I would recommend to use either or, not both. If you took RRUL data you might be able to compare the three conditions. I would estimate the most interesting part would be in the sustained ravager up and download rates here.
>
>>
>>>>
>>>> I have changed the Powerline adaptors I use to ones with known smaller buffers, though this is unlikely to be a ate-limiting step.
>>>>
>>>> I have changed the 2Wire gateway, known to be heavily buffered, with a bridged Huawei HG612, with a Broadcom 6368 SoC.
>>>>
>>>> This device has a permanently on telnet interface, with a simple password, which cannot be changed other than by firmware recompilation…
>>>>
>>>> Telnet, however, allows txqueuelen to be reduced from 1000 to 0.
>>>>
>>>> None of these changes affect the problematic uplink delay.
>>
>> So how did you measure the uplink delay? The RRUL plots you sent me show an increase in ping RTT from around 50ms to 80ms with tc_stab and fq_codel on simplest.qos, how does that reconcile with 650ms uplink delay, netalyzr?
>
> Max Planck and Netalyzr produce the same figure. I use both, but Max Planck gives you circa 3 tries per IP address per 24 hours.
Well, both use the same method which is not to meaningful if you use fq_codel on a shaped link (unless you want to optimize your system for UDP floods :) )
[snipp]
Best Regards
Sebastian
More information about the Cerowrt-devel
mailing list