aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2008-05-13 09:03:02 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-05-14 16:29:49 -0400
commitb0a6717994a4e00ee19372e1bdaab53572ae025c (patch)
treebb6934e572c540f55ac50c7b62cef4eac8ad6456
parent7a1d65235da829e6dc8938b82c991e40e278fc50 (diff)
mac80211: Set IEEE80211_TXPD_REQ_TX_STATUS for all TX frames
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@gmail.com> Acked-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--net/mac80211/tx.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 5f31a6233e13..4c25fd5d76a7 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1337,6 +1337,8 @@ int ieee80211_monitor_start_xmit(struct sk_buff *skb,
1337 pkt_data->ifindex = dev->ifindex; 1337 pkt_data->ifindex = dev->ifindex;
1338 1338
1339 pkt_data->flags |= IEEE80211_TXPD_DO_NOT_ENCRYPT; 1339 pkt_data->flags |= IEEE80211_TXPD_DO_NOT_ENCRYPT;
1340 /* Interfaces should always request a status report */
1341 pkt_data->flags |= IEEE80211_TXPD_REQ_TX_STATUS;
1340 1342
1341 /* 1343 /*
1342 * fix up the pointers accounting for the radiotap 1344 * fix up the pointers accounting for the radiotap
@@ -1618,6 +1620,9 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb,
1618 if (ethertype == ETH_P_PAE) 1620 if (ethertype == ETH_P_PAE)
1619 pkt_data->flags |= IEEE80211_TXPD_EAPOL_FRAME; 1621 pkt_data->flags |= IEEE80211_TXPD_EAPOL_FRAME;
1620 1622
1623 /* Interfaces should always request a status report */
1624 pkt_data->flags |= IEEE80211_TXPD_REQ_TX_STATUS;
1625
1621 skb->dev = local->mdev; 1626 skb->dev = local->mdev;
1622 dev->stats.tx_packets++; 1627 dev->stats.tx_packets++;
1623 dev->stats.tx_bytes += skb->len; 1628 dev->stats.tx_bytes += skb->len;