On Tue, 2008-05-13 at 15:03 +0200, Ivo van Doorn wrote: > All interfaces should set the IEEE80211_TXPD_REQ_TX_STATUS flag for all TX frames > which will force the master interface to set the IEEE80211_TX_CTL_REQ_TX_STATUS > flag. This in turn will allow drivers to check for that flag before reporting > the TX status to mac80211. > > This is very usefull when frames (like beacons, RTS and CTS-to-self) should not > be reported back to mac80211. Later we could add more extensive checks to > exclude more frames from being reported, or let mac80211 decide if it wants > the frame for status reporting or not. > > v2: Monitor interfaces should also set IEEE80211_TXPD_REQ_TX_STATUS > > Signed-off-by: Ivo van Doorn <IvDoorn@xxxxxxxxx> Looks good, thanks. Acked-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> > --- > diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c > index f35eaea..472dab0 100644 > --- a/net/mac80211/tx.c > +++ b/net/mac80211/tx.c > @@ -1336,6 +1336,8 @@ int ieee80211_monitor_start_xmit(struct sk_buff *skb, > pkt_data->ifindex = dev->ifindex; > > pkt_data->flags |= IEEE80211_TXPD_DO_NOT_ENCRYPT; > + /* Interfaces should always request a status report */ > + pkt_data->flags |= IEEE80211_TXPD_REQ_TX_STATUS; > > /* > * fix up the pointers accounting for the radiotap > @@ -1617,6 +1619,9 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb, > if (ethertype == ETH_P_PAE) > pkt_data->flags |= IEEE80211_TXPD_EAPOL_FRAME; > > + /* Interfaces should always request a status report */ > + pkt_data->flags |= IEEE80211_TXPD_REQ_TX_STATUS; > + > skb->dev = local->mdev; > dev->stats.tx_packets++; > dev->stats.tx_bytes += skb->len; >
Attachment:
signature.asc
Description: This is a digitally signed message part