mac80211: add rx status flag for short preamble
PATCH 1/2 mac80211: add rx status flag for short preamble
and use it for the radiotap header
Signed-off-by Bruno Randolf <[email protected]>
---
include/net/mac80211.h | 2 ++ net/mac80211/rx.c | 2 ++ 2 files changed, 4 insertions(+), 0 deletions(-)
include/net/mac80211.h +2 -0
@@ -355,6 +355,7 @@ static inline struct ieee80211_tx_info *IEEE80211_SKB_CB(struct sk_buff *skb)* @RX_FLAG_TSFT: The timestamp passed in the RX status (@mactime field) * is valid. This is useful in monitor mode and necessary for beacon frames * to enable IBSS merging. +* @RX_FLAG_SHORTPRE: Short preamble was used for this frame */ enum mac80211_rx_flags {RX_FLAG_MMIC_ERROR =1 <<0 ,
@@ -365,6 +366,7 @@ enum mac80211_rx_flags {RX_FLAG_FAILED_FCS_CRC =1 <<5 ,RX_FLAG_FAILED_PLCP_CRC =1 <<6 ,RX_FLAG_TSFT =1 <<7 , + RX_FLAG_SHORTPRE = 1<<8 };/**
net/mac80211/rx.c +2 -0
@@ -143,6 +143,8 @@ ieee80211_add_rx_radiotap_header(struct ieee80211_local *local,/* IEEE80211_RADIOTAP_FLAGS */ if (local->hw.flags &IEEE80211_HW_RX_INCLUDES_FCS ) *pos |=IEEE80211_RADIOTAP_F_FCS ; +if (status->flag &RX_FLAG_SHORTPRE ) + *pos |=IEEE80211_RADIOTAP_F_SHORTPRE ; pos++;/* IEEE80211_RADIOTAP_RATE */
PATCH 2/2 mac80211: radiotap: assume modulation from rates
use the rates ERP flag to derive CCK or OFDM modulation for the radiotap header.
(it might be more correct to get this information from the hardware itself, but it seems safe to assume this in most practical cases.)
Signed-off-by Bruno Randolf <[email protected]>
---
net/mac80211/rx.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
net/mac80211/rx.c +4 -1
@@ -157,8 +157,11 @@ ieee80211_add_rx_radiotap_header(struct ieee80211_local *local,if (status->band ==IEEE80211_BAND_5GHZ ) *(__le16 *)pos =cpu_to_le16 (IEEE80211_CHAN_OFDM |IEEE80211_CHAN_5GHZ ); +else if (rate->flags &IEEE80211_RATE_ERP_G ) + *(__le16 *)pos =cpu_to_le16 (IEEE80211_CHAN_OFDM | +IEEE80211_CHAN_2GHZ );else - *(__le16 *)pos =cpu_to_le16 (IEEE80211_CHAN_DYN | + *(__le16 *)pos =cpu_to_le16 (IEEE80211_CHAN_CCK |IEEE80211_CHAN_2GHZ ); pos +=2 ;