On Wed, Nov 5, 2008 at 12:10 PM, Luis R. Rodriguez <lrodriguez@xxxxxxxxxxx> wrote: > On Wed, Nov 5, 2008 at 11:52 AM, Johannes Berg > <johannes@xxxxxxxxxxxxxxxx> wrote: >> On Wed, 2008-11-05 at 11:24 -0800, Luis R. Rodriguez wrote: >>> On Wed, Nov 5, 2008 at 10:10 AM, Johannes Berg >>> <johannes@xxxxxxxxxxxxxxxx> wrote: > >>> >> > When I suggested to use a checksum I was thinking of an easy way to >>> >> > debounce. But a checksum is never perfect. Hence, the WARN_ON you added >>> >> > might trigger despite the debounce checksum. Or we might fail to follow >>> >> > changes. >>> >> >>> >> Let me know what you think about the alpha2 + BSSID thing above. I >>> >> guess it should also consider the environment (I, O, ' ') in case the >>> >> AP is reconfigured to be outdoor (without being moved). I don't think >>> >> we should care about supporting these cases on the fly but we should >>> >> ensure the change won't break things. >>> > >>> > Well I haven't checked in detail which things you care about in the IE >>> > now, but shouldn't you check if those changed? >>> >>> We only care about the channel triplet and that has: >>> >>> a. Channel start >>> b. Number of channels >>> c. Power >>> >>> But I think that if the alpha2+environment is the same that's enough >>> for the STA to assume the BSSID has not changed the IE. At least with >>> openwrt I need to bring down the interface of the AP to change 11d. >>> I'd guess most home APs act the same way as in that they require a >>> reboot or something. On some APs I use I use iwpriv to change it but I >>> haven't checked to see internally what that will do while its on. >>> >>> The checksum really only should be useful if a secondary device tries >>> to associate to an AP and it gets a country IE. It needs a way to know >>> if the IE is different than the one an already-present device is >>> using. What I'm suggesting is that if these things are the same we can >>> assume it doesn't change: BSSID+alpha2+environment. >> >> Ok, checksums are nice to avoid having to memcmp large things, but >> afaict we're talking about maybe 12 bytes, right? > > Depends on the number of triplets, but since we only support 32 reg > rules this means we only support 32 triplets and therefore we only > support a max IE of size of 99 bytes (32 * 3 + 3). Realistically in JP > I expect there to be around 3, 4, or 5 or maybe even 6 triplets which > is 21 bytes. > >> If so, why don't we >> just keep a copy of the country IE and compare it fully every time? > > Eh. I'm inclined to leave the checksum then. We'd then have to bother > with freeing yet another thing later. > >> The way I see it, driver/mac80211 calls cfg80211's >> regulatory_11d(wiphy, ie, ie_length) >> function and that sorts out whether to do anything at all, ignore it >> because it already knows etc. So regardless of what we do we can just do >> it all in here and not bother anything elsewhere with checksums, >> debouncing etc, and will be free to change it easily. > > You have sold on this. I meant you have *me* sold on this. :) Luis -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html