[OpenWrt-Devel] ath9k: fix dynack in IBSS mode

Joe Ayers joe at ayerscasa.com
Tue Feb 26 00:28:48 EST 2019


On Mon, Feb 25, 2019 at 8:42 AM Koen Vandeputte
<koen.vandeputte at ncentric.com> wrote:
>
>
> On 25.02.19 17:33, Joe Ayers wrote:
> > On Mon, Feb 25, 2019 at 1:56 AM Lorenzo Bianconi
> > <lorenzo.bianconi at redhat.com> wrote:
> >>> On 24.02.19 21:32, Joe Ayers wrote:
> >> Hi Joe,
> Hi Joe,
> >>>> First of all, thanks for contributing this fix.   I've incorporated
> >>>> into the http://www.arednmesh.org project, just getting into our
> >>>> nightly builds now.   A comment and a couple questions...
> >>>>
> >>>> The MAX_DELAY was way too short for our community, had to increase
> >>>> that significantly.  We commonly have long distance links over 50km.
> >> according to ath9k max configurable value in AR_TIME_OUT for acktimeout
> >> is 0x3fff. The max ack_to we can configure (assuming clockrate set to
> >> ATH9K_CLOCK_RATE_2GHZ_OFDM) is ~372us (~55km).
> >> We can try to set MAX_DELAY to 360 (max distance ~54km). If you confirm it
> >> works properly I can post a patch (or you can take care of it, up to you)
> >>
> > I have a current link in Southern California with settings of:
> >
> > distance 60000m  ( "463 S" )
> > channel width = 10MHz
> > channel = 176 (5880) Amateur Radio licensing
> > Ubiquiti Rocket M w/ RocketDish
> > xmit power 27dBm
> >
> > It is rock solid and streams multiple HD videos and voip calls
> > (without drop outs in the call) achieving 30db SNR and MCS15 rates.
> > It's been live for a couple years in this mode.  I don't understand
> > how this link could operate with the performance we see if the  ack_to
> > max was 372 -- the voip quality would be terrible.
> >
> > I have tested (limited tests) dynack on a link showing upwards of
> > ~"400 A", but the real distance to farthest node was about ~20km.
> > Was wondering the discrepancy (fading, etc.?)?   I had changed the
> > starting point to 20km to work, otherwise it was stuck on the original
> > starting point, "96 A", and didn't move.
> >
> > I just loaded dynack on this 60km link and it doesn't move from my new
> > starting point of "196 A".   Something in the calculation somewhere
> > goes out of bound--to big a jump?   I'll do some testing to get the
> > dynack working on this 60km link, then lets see what it tunes to.
> > Based on my earlier results, I'm wondering if it will push past 500.
> >    Maybe the vendor specs are only to the limit of what was tested,
> > does not appear to be a true physical limit?
>
> Could you add some debug logs from Dynack?
>

Debug logs test case 1 --   Ubiquiti LHG5 <8km to Rocket M5:
https://drive.google.com/file/d/1PYXzjbq1DUIxdZxMm1W7g_0k5hpkKi4z/view?usp=sharing

Debug log test case 2 -- Ubiquiti Rocket M5 ~60km link to another Rocket M5:
https://drive.google.com/file/d/16DQSkEm0zcDCQHKuxOjM2yXlTp1QYYiE/view?usp=sharing

Test case 3 (no debug data) -- Ubiquiti NanoStation link to another
tower at 7.68km distance

Note:  test case 1, the auto distance is much higher than actual
(static set about 8km).
           test case 2, the auto distance does not change from initial
value, although I raised MAX_DELAY sufficiently high enough. What
dynack.c initial variable conditions would you recommend?
           test case 3, normally set as "115 S".  dynack  floated from
196 to 344, then back to 197 A when manually monitoring the ack_to
value in debugfs.  I've seen this behavior on 3 links now.

Joe AE6XE


>
> Thanks,
>
> Koen
>
> >
> >>>> One of our common scenarios is a P2MP -- tower or cell site with
> >>>> multiple clients. We're using adhoc mode with OLSR.   I see the ack_to
> >>>> calculation is based on the furthest station.  What happens when the
> >>>> furthest station is quiet for long periods of time, nothing but
> >>>> beacons and olsr 'broadcast' traffic.   In this case, there wouldn't
> >>>> be any acks received back?  Would it drop out of the ack_to
> >>>> calculation, until user data is active?  Thus, distance would tune to
> >>>> a shorter distance for another STA with user data being transferred?
> >>>> What is the behavior in this scenario?
> >> nope, we always take into account furthest station (even if it does not tx
> >> any data frame) otherwise it will be kicked out (we need to wait it leaves
> >> the network)
> >>
> > Possibly an option to further optimize?   For multi-point stations,
> > maybe it is possible to tune the time out based on the max distance
> > station actively sending user data.
> >
> >> Regards,
> >> Lorenzo
> >>
> >>>> I made a small change so that '0' in /etc/config/wireless distance
> >>>> setting ended up being auto for ath9k.  Did I miss an upstream patch
> >>>> to incorporate?
> >>>>
> >>>> Regards,
> >>>> Joe AE6XE
> >>>
> >>> Hi Lorenzo,
> >>>
> >>> Ensuring that Joe gets the best possible answer, could you please reply on
> >>> above comments/questions?
> >>>
> >>>
> >>> Highly appreciated,
> >>>
> >>> Koen
> >>>

_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list