Hi, During my rate control work I noticed that the band handling there is somewhat awkward, and I wanted to collect opinions. Currently, much of the code assumes that neither we nor station in our bSS change bands; the PID algorithm even says: /* We can safely assume that sband won't change unless we get * reinitialized. */ which doesn't really seem true. For the rate control algorithms, I was just thinking about removing the rate_init() callback because this can just as well be done when allocating the station. However, currently we don't pass the band to the alloc_sta function, so that isn't possible right now. It seems like it's well possible that say in an IBSS we have two stations both dual-band capable and one manually switches them to a different channel on a different band. This seems to totally throw off everything we do, it'll be beaconing with an entirely bogus supported rate set etc. However, it seems that it might also crash the rate control algorithms. Any ideas? Should we remove the rate_init function entirely and require the RC algorithm to initialise for bands the hardware supports? (Those can be checked via the 'hw' pointer argument we give to the alloc() callback on the RC API.) I'm currently leaning towards that, but what about HT stuff? Will that change between bands? Is there anything band-specific? Why doesn't anybody but me think about these corner cases? johannes
Attachment:
signature.asc
Description: This is a digitally signed message part