On 24 October 2012 15:08, Thomas Pedersen <thomas@xxxxxxxxxxx> wrote: >> Also, we should check to see whether the MAC is paying attention to >> any beacon frames > > How? For mesh mode support we currently just reuse the WDS AP firmware vif > opmode. > >> and updating _its_ timestamp using that beacon frame timer. That's >> one of the mesh-and-sta-and-ap-at-the-same-time problems - in >> STA mode, the TSF gets fudged based on the AP TSF. In other modes this >> doesn't necessarily hold. > > OK, but the TSF for AP shouldn't be automatically updated on other > beacons, right? Right but look at those AP macs, there's multiple overlapping TSFs there, right? * Each MAC AP has an incrementing TSF; * Multiple APs have different TSF spaces, they're not synchronised at all; * There's one RX TSF namespace - if the vif is in AP mode then it's free-running and not synchronising against any other TSF; * Thus the above makes sense to me. So far the beacon frames look correct and they're increasing; you're not obviously synchronising TSF against anything. Going back to the original question - you fetch TSF after you receive the packet, and sometimes the TSF in the frame is greater than the TSF read back by the ath9k TSF get method. The ath9k_htc tsf read is just 'tsf = ath9k_hw_gettsf64(priv->ah);', so it's doing direct register reads. That should be immediate, but it's USB so it may take a while. So hm, now you've made me open the ath9k_htc firmware source. I hate you. Let me look. Adrian -- 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