Begin teaching ath_rate_sample about aggregate packets.
I'm hoping to (just) teach ath_rate_sample about the multiple packet
attempt/success/failure as if the rate completion routine was called
for each packet. (Which seems a bit over the top.)
This still doesn't choose/stick to the fastest throughput, primarily because:
- there's no probe/sounding frame support yet - ie, if ath_rate_sample decides to sample a higher rate to see if it's better, the aggregate code still aggregates;
- .. and the rate API doesn't really get anywhere enough info to make aggregate decisions - primarily because the rate API gets called before any aggregate is formed. So it can't do things like choose a rate based on how long the potential aggregate is (eg, if higher MCS rates work fine for short bursts, but not for longer bursts); and
- Rate assignment is only done once, it isn't recalculated in the software retry path. I think that'll be one of my next things to refactor out.