Commit 707c1b4e authored by Sujith's avatar Sujith Committed by John W. Linville

mac80211: Update IBSS beacon timestamp properly

In IBSS mode, the beacon timestamp has to be filled with the
BSS's timestamp when joining, and set to zero when creating
a new BSS.
Signed-off-by: default avatarSujith <Sujith.Manoharan@atheros.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 0ad65bd7
...@@ -64,7 +64,7 @@ static int __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata, ...@@ -64,7 +64,7 @@ static int __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
const int freq, const int freq,
const size_t supp_rates_len, const size_t supp_rates_len,
const u8 *supp_rates, const u8 *supp_rates,
const u16 capability) const u16 capability, u64 tsf)
{ {
struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
struct ieee80211_local *local = sdata->local; struct ieee80211_local *local = sdata->local;
...@@ -127,6 +127,7 @@ static int __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata, ...@@ -127,6 +127,7 @@ static int __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
memcpy(mgmt->bssid, ifibss->bssid, ETH_ALEN); memcpy(mgmt->bssid, ifibss->bssid, ETH_ALEN);
mgmt->u.beacon.beacon_int = mgmt->u.beacon.beacon_int =
cpu_to_le16(local->hw.conf.beacon_int); cpu_to_le16(local->hw.conf.beacon_int);
mgmt->u.beacon.timestamp = cpu_to_le64(tsf);
mgmt->u.beacon.capab_info = cpu_to_le16(capability); mgmt->u.beacon.capab_info = cpu_to_le16(capability);
pos = skb_put(skb, 2 + ifibss->ssid_len); pos = skb_put(skb, 2 + ifibss->ssid_len);
...@@ -199,7 +200,8 @@ static int ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata, ...@@ -199,7 +200,8 @@ static int ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
bss->cbss.beacon_interval, bss->cbss.beacon_interval,
bss->cbss.channel->center_freq, bss->cbss.channel->center_freq,
bss->supp_rates_len, bss->supp_rates, bss->supp_rates_len, bss->supp_rates,
bss->cbss.capability); bss->cbss.capability,
bss->cbss.tsf);
} }
static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
...@@ -502,7 +504,7 @@ static int ieee80211_sta_create_ibss(struct ieee80211_sub_if_data *sdata) ...@@ -502,7 +504,7 @@ static int ieee80211_sta_create_ibss(struct ieee80211_sub_if_data *sdata)
bssid, local->hw.conf.beacon_int, bssid, local->hw.conf.beacon_int,
local->hw.conf.channel->center_freq, local->hw.conf.channel->center_freq,
sband->n_bitrates, supp_rates, sband->n_bitrates, supp_rates,
capability); capability, 0);
} }
static int ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata) static int ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment