On 2013-03-11 7:20 PM, abhinav narain wrote: > > Is this being recorded on transmit, or transmit completion? I'm > guessing this is transmit completion on the transmit side. > > Is this information coming from the driver, or from some completion > status going up to mac80211? > > Partly from the driver (timestamp and tx aggr flag) and partly from the > status going to mac80211 (the bitrate array, retx count) and partly from > the mac header ( sequence number) > All of them are stored in the radiotap or mac header for each frame > delivered in userspace in monitor mode. > > The data is recorded from transmit status(You might be referring to it > as transmit complete) > i.e net/mac80211/status.c > > The *attempted rates *array is extracted from *struct ieee80211_tx_info * > which is part of skb control buffer.I don't really get how is this > populated/copied from. > The*timestamp* is got from *ath_tx_status*, which is later stored in the > ieee80211_tx_info struct to be given to mac80211. Population of > timestamp is done in driver (ath_tx_complete_buf() ) > The *aggr flag *is populated using struct ath_buf > field bf->bf_state.bf_type. One reason I told you to look into rate control is these lines in minstrel_ht_tx_status:
/* This packet was aggregated but doesn't carry status info */ if ((info->flags & IEEE80211_TX_CTL_AMPDU) && !(info->flags & IEEE80211_TX_STAT_AMPDU)) return; Any packet with IEEE80211_TX_CTL_AMPDU and not IEEE80211_TX_STAT_AMPDU does not carry valid rate/retry information. Did you filter your debug stuff accordingly? - Felix _______________________________________________ ath9k-devel mailing list ath9k-devel@lists.ath9k.org https://lists.ath9k.org/mailman/listinfo/ath9k-devel