Bugzilla – Bug 2656
Minstrel and MinstrelHt provide different results for 802.11a/b/g
Last modified: 2018-01-31 14:18:41 UTC
MinstrelHt should behave the same as Minstrel for 802.11a/b/g. This is apparently not the case, when I run them with exactly same configuration, same stepTime and same stepSize.
Created attachment 2780 [details] 802.11a minstrel results
Created attachment 2781 [details] 802.11a minstrelht results
Matias, do you have an idea for this one?
(In reply to sebastien.deronne from comment #3) > Matias, do you have an idea for this one? I haven't been able to look at it. I'll do it for next week.
I found that Minstrel was not initialized at the lowest rate in some cases. My understanding is that it should always be initialized at index 0. With this change the result is as shown in the figure. I'll dig a bit more to explain the small differences that still persist.
Created attachment 2790 [details] Remove rate initialization at "half way"
Created attachment 2791 [details] Results after the patch
Created attachment 2792 [details] Results after the patch
(In reply to Matías Richart from comment #6) > Created attachment 2790 [details] > Remove rate initialization at "half way" Thanks Matias. Any update since then?
(In reply to sebastien.deronne from comment #9) > (In reply to Matías Richart from comment #6) > > Created attachment 2790 [details] > > Remove rate initialization at "half way" > > Thanks Matias. > Any update since then? The differences are because different random sample rates are selected in both cases. Those rates are obtained using the random number generator. I'm still investigating where is the difference in the usage of the generator, as in both cases the same code is executed.
Matias, any updates on this? Maybe you need to set the seed to have control on the randomness.
Hello. I've revised the code and the logs in detail. I have corrected some discrepancies between both codes, however small differences still appear in the rate observed. I attach the patch. The changes are: - in Minstrel initialize rate at 0 - in Minstrel, do not trace sampling rates - in Minstrel, stop retries when the counter reaches the max value. - setting seed in Minstrel and MinstrelHt - Also, for both codes I improve the logging so as to make comparison easier. My opinion, after revising the logs for many hours, is that the differences in the rate observed are generated because of the differences in timing. In the logs can be seen that in the 100ms between updates Minstrel sends more frames than MinstrelHt. I think this is because it is not exactly the same code, MinstrelHt calls Minstrel functions, but it also executes its own code.
Created attachment 3012 [details] Correct several bugs and improve logging
Created attachment 3013 [details] Results after the patch
Matias, thanks a lot for your support, it looks quite the same now, I agree to push those changes and close this bug.
pushed in changeset 13270:f074a6ada683