mac80211: add unified BSS configuration
This patch (based on Ron Rindjunsky's) creates a framework for a unified way to pass BSS configuration to drivers that require the information, e.g. for implementing power save mode. This patch introduces new ieee80211_bss_conf structure that is passed to the driver via the new bss_info_changed() callback when the BSS configuration changes. This new BSS configuration infrastructure adds the following new features: * drivers are notified of their association AID * drivers are notified of association status and replaces the erp_ie_changed() callback. The patch also does the relevant driver updates for the latter change. Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
David S. Miller
parent
2bc454b0b3
commit
471b3efdfc
@ -312,8 +312,8 @@ __le16 ieee80211_generic_frame_duration(struct ieee80211_hw *hw,
|
||||
int erp;
|
||||
|
||||
erp = ieee80211_is_erp_rate(hw->conf.phymode, rate);
|
||||
dur = ieee80211_frame_duration(local, frame_len, rate,
|
||||
erp, sdata->flags & IEEE80211_SDATA_SHORT_PREAMBLE);
|
||||
dur = ieee80211_frame_duration(local, frame_len, rate, erp,
|
||||
sdata->bss_conf.use_short_preamble);
|
||||
|
||||
return cpu_to_le16(dur);
|
||||
}
|
||||
@ -326,11 +326,11 @@ __le16 ieee80211_rts_duration(struct ieee80211_hw *hw,
|
||||
struct ieee80211_local *local = hw_to_local(hw);
|
||||
struct ieee80211_rate *rate;
|
||||
struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
|
||||
int short_preamble;
|
||||
bool short_preamble;
|
||||
int erp;
|
||||
u16 dur;
|
||||
|
||||
short_preamble = sdata->flags & IEEE80211_SDATA_SHORT_PREAMBLE;
|
||||
short_preamble = sdata->bss_conf.use_short_preamble;
|
||||
|
||||
rate = frame_txctl->rts_rate;
|
||||
erp = !!(rate->flags & IEEE80211_RATE_ERP);
|
||||
@ -357,11 +357,11 @@ __le16 ieee80211_ctstoself_duration(struct ieee80211_hw *hw,
|
||||
struct ieee80211_local *local = hw_to_local(hw);
|
||||
struct ieee80211_rate *rate;
|
||||
struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
|
||||
int short_preamble;
|
||||
bool short_preamble;
|
||||
int erp;
|
||||
u16 dur;
|
||||
|
||||
short_preamble = sdata->flags & IEEE80211_SDATA_SHORT_PREAMBLE;
|
||||
short_preamble = sdata->bss_conf.use_short_preamble;
|
||||
|
||||
rate = frame_txctl->rts_rate;
|
||||
erp = !!(rate->flags & IEEE80211_RATE_ERP);
|
||||
|
Reference in New Issue
Block a user