Felix is the better person to speak to, as he coded up minstrel (and I guess you're using that, right?)
Felix, is your thesis online? Adrian On 28 April 2011 17:36, Andreas Hofmann <andreas.hofm...@corscience.de> wrote: > > Hello folks, > > I am currently running wireless video transmissions over RTP, using 2 > embedded linux devices with kernel 2.6.37 and AR9280 wireless-cards. The > link was not reliable enough and I found out that a small change to the > ratecontrol-algorithm improves the situation. Now I want to notice other > people, who might have the same problem and request for comments on > that change. > > I noticed that the connection was rather error-prone, when the slightest > change to the wireless-channel was made (e.g. waving around in the area > around the antennas) picture errors were becoming visible. Also tests > with iperf over UDP confirmed that the PER on the wireless link was > quite high (sometimes over 3%). > > When looking at the debugfs-output, my suspicion was that the packet > errors were caused due to frequent switching between different > MCSs. Here is an example iperf result with at -64 dBm signal strength: > > # iperf -c 192.168.50.2 -u -b 50m -n 100m > ------------------------------------------------------------ > Client connecting to 192.168.50.2, UDP port 5001 > Sending 1470 byte datagrams > UDP buffer size: 124 KByte (default) > ------------------------------------------------------------ > [ 3] local 192.168.50.1 port 47997 connected with 192.168.50.2 port 5001 > [ ID] Interval Transfer Bandwidth > [ 3] 0.0-22.3 sec 100 MBytes 37.6 Mbits/sec > [ 3] Sent 71332 datagrams > [ 3] Server Report: > [ 3] 0.0-22.3 sec 98.4 MBytes 37.0 Mbits/sec 0.450 ms 1128/71331 (1.6%) > [ 3] 0.0-22.3 sec 1 datagrams received out-of-order > > Here is also the debugfs rc_stats output: > > HT40 0 13.5: 0 0 0 0 > HT40 1 27.5: 0 0 0 0 > HT40 2 40.5: 0 0 0 0 > HT40 3 54.0: 0 0 0 0 > HT40 4 81.5: 1 0 0 0 > HT40 5 108.0: 0 0 0 0 > HT40 6 121.5: 0 0 0 0 > HT40 7 135.0: 0 0 0 0 > HT40 7 150.0: 0 0 0 0 > HT40 8 27.0: 0 0 0 0 > HT40 9 54.0: 0 0 0 0 > HT40 10 81.0: 0 0 0 0 > HT40 11 108.0: 980 16 2 7 > HT40 12 162.0: 9040 499 20 13 > HT40 13 216.0: 14386 1131 196 4 > HT40 14 243.0: 17058 1685 220 10 > HT40 15 270.0: 12355 1589 235 2 > > > > I noticed in the ath-ratecontrol-implementation, that a rather short > interval for MCS probing is used by default, other MCSs are probed > every 50 ms. Changing that interval in the rate-table to a higher value > (2000 ms) did lower the PER. Video errors were significantly reduced and > iperf-tests confirmed a PER constantly under 1%. However, on links with > lower quality/signal strength, the overall achieved data rate was > lowered as well, since the algorithm does not try to go for higher rates > as agressively. On good links the maximum rate is reached nevertheless. > > Here is a corresponding iperf result at -64 dBm signal strength (exactly the > same setup as with the previous test, only different poll-interval): > > # iperf -c 192.168.50.2 -u -b 50m -n 100m > ------------------------------------------------------------ > Client connecting to 192.168.50.2, UDP port 5001 > Sending 1470 byte datagrams > UDP buffer size: 124 KByte (default) > ------------------------------------------------------------ > [ 3] local 192.168.50.1 port 50212 connected with 192.168.50.2 port 5001 > [ ID] Interval Transfer Bandwidth > [ 3] 0.0-24.5 sec 100 MBytes 34.2 Mbits/sec > [ 3] Sent 71332 datagrams > [ 3] Server Report: > [ 3] 0.0-24.4 sec 99.3 MBytes 34.1 Mbits/sec 0.512 ms 476/71331 (0.67%) > [ 3] 0.0-24.4 sec 1 datagrams received out-of-order > > Debugfs rc_stats output: > > HT40 0 13.5: 0 0 0 0 > HT40 1 27.5: 0 0 0 0 > HT40 2 40.5: 0 0 0 0 > HT40 3 54.0: 0 0 0 0 > HT40 4 81.5: 1 0 0 0 > HT40 5 108.0: 0 0 0 0 > HT40 6 121.5: 0 0 0 0 > HT40 7 135.0: 0 0 0 0 > HT40 7 150.0: 0 0 0 0 > HT40 8 27.0: 0 0 0 0 > HT40 9 54.0: 0 0 0 0 > HT40 10 81.0: 0 0 0 0 > HT40 11 108.0: 0 4 2 12 > HT40 12 162.0: 1 4 2 11 > HT40 13 216.0: 7274 10 2 5 > HT40 14 243.0: 22383 147 14 6 > HT40 15 270.0: 37154 1024 88 6 > > > Is this an elegant solution or does the short default-interval have some > deeper > purpose which I am missing? > > Kind regards, > Andreas > _______________________________________________ > ath9k-devel mailing list > ath9k-devel@lists.ath9k.org > https://lists.ath9k.org/mailman/listinfo/ath9k-devel > _______________________________________________ ath9k-devel mailing list ath9k-devel@lists.ath9k.org https://lists.ath9k.org/mailman/listinfo/ath9k-devel