On 22.06.21 20:54, Petrosilius wrote:
On 22.06.21 14:03, Koen Vandeputte wrote:
Thanks for confirming that.
What would really help is a small table showing this:
Real physical distance? (in m)
ack_to reported while stressing the link:
20MHz: xx
10 MHz: yy
5 MHz: zz
I'll try to simulate the issue somewhere in the next days.
Please do note that ongoing effort is currently going on to improve
dynack on lower distances.
It was observed and reported by me to Lorenzo that ack_to was way
higher than fixed settings when
real distance is <6km
Some testing patches were cooked and tested in the field last month
covering long and short distances (1km up to 24km)
and these are matching fixed distance ack_to very close now. (speeds
using dynack were also higher than fixed settings)
It's not finalized yet.
Also do note that dynack only shows (any) benefit when having links >3km
Below that, timing jitter and processing time seems to have more
influence on ack_to than actual distance.
Regards,
Koen
Here the testresults
real physical distance: 1m
BW: 20mhz
ackto: 50
iperf3
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 86.4 MBytes 72.4 Mbits/sec 0 sender
[ 5] 0.00-10.01 sec 86.0 MBytes 72.0 Mbits/sec
receiver
BW: 5mhz
ackto: 50
iperf3
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.01 sec 45.2 KBytes 37.0 Kbits/sec 14 sender
[ 5] 0.00-10.07 sec 5.66 KBytes 4.60 Kbits/sec
receiver
BW: 10mhz
ackto: 50
iperf3
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 127 KBytes 104 Kbits/sec 30 sender
[ 5] 0.00-14.10 sec 107 KBytes 62.4 Kbits/sec
receiver
Also longer iperf3 tests didnt change anything on this behaviour.
After this test we were actually able to get the ack_to doing something
for 5mhz (ack_to 641 - ~12MBit iperf3) and 10mhz (ack_to 258 - ~14MBit
iperf3) by doing some random wifi-restarts (using openwrt 'wifi'
command) and reboots, but this is not really reproducible.
We got the gutfeeling that there might be some issue reseting of the
dynack part when changing the bandwidths. This might explain, why for
the test above the ack_to doesnt change at all from the 50 of the 20Mhz
BW. Or is this normal behaviour that the ack_to doesnt change after a
bandwidth change?
Another observation: Is it normal that 'iw dev' doesnt show 5 & 10 MHz,
but always 20 MHz? (We verified that we actually get 5/10MHz Channels by
checking visibility of the AP with other clients).
To rule out a hardware problem: We used the same hardware successfully
on a 8km/20MHz link with dynack.
Regards,
Julian
I can simulate the issue.
The problem is that IBSS starts at the highest value (to guarantee
connection), but it takes forever to get enough valid samples to
actually reach the optimal value through EWMA:
[ 48.060768] ath: phy0: ACK timeout 600 slottime 298
[ 51.155507] wlan0: Trigger new scan to find an IBSS to join
[ 53.104609] wlan0: Selected IBSS BSSID ac:c5:2a:a3:61:c9 based on
configured SSID
[ 53.160471] ath: phy0: rx sample 46297 [h 0-t 1]
[ 53.160522] ath: phy0: {74:4d:28:14:d9:94} tx sample 46163 [dur 72][h
0-t 1]
[ 53.160533] ath: phy0: ack_ts 46297 st_ts 46163 st_dur 72 [0-0]
[ 53.160542] ath: phy0: 74:4d:28:14:d9:94 to 465 [62]
[ 53.160550] ath: phy0: ACK timeout 465 slottime 231
[ 53.165973] ath: phy0: rx sample 51368 [h 1-t 2]
[ 53.166027] ath: phy0: {74:4d:28:14:d9:94} tx sample 51098 [dur
208][h 1-t 2]
[ 53.166038] ath: phy0: ack_ts 51368 st_ts 51098 st_dur 208 [1-1]
[ 53.166047] ath: phy0: 74:4d:28:14:d9:94 to 364 [62]
[ 53.170739] ath: phy0: rx sample 56568 [h 2-t 3]
[ 53.170791] ath: phy0: {74:4d:28:14:d9:94} tx sample 56222 [dur
284][h 2-t 3]
[ 53.170801] ath: phy0: ack_ts 56568 st_ts 56222 st_dur 284 [2-2]
[ 53.170811] ath: phy0: 74:4d:28:14:d9:94 to 288 [62]
[ 54.169095] ath: phy0: rx sample 1054919 [h 3-t 4]
[ 54.169148] ath: phy0: {74:4d:28:14:d9:94} tx sample 1054598 [dur
260][h 3-t 4]
[ 54.169159] ath: phy0: ack_ts 1054919 st_ts 1054598 st_dur 260 [3-3]
[ 54.169169] ath: phy0: 74:4d:28:14:d9:94 to 231 [61]
[ 54.173970] ath: phy0: rx sample 1059800 [h 4-t 5]
[ 54.174024] ath: phy0: {74:4d:28:14:d9:94} tx sample 1059511 [dur
228][h 4-t 5]
[ 54.174035] ath: phy0: ack_ts 1059800 st_ts 1059511 st_dur 228 [4-4]
[ 54.174044] ath: phy0: 74:4d:28:14:d9:94 to 188 [61]
...
[ 326.925123] ath: phy0: ACK timeout 156 slottime 76
...
[ 653.145142] ath: phy0: ACK timeout 132 slottime 64
...
[ 926.928758] ath: phy0: ACK timeout 114 slottime 55
(static optimal value is 28 .. so it will take a lot longer ..)
Above log is with an iperf session running in the background. :-s
Will look further into this ..
Regards,
Koen