* [PATCH 1/4] mac80211: don't start dynamic PS timer if not needed
@ 2016-03-17 13:02 Emmanuel Grumbach
2016-03-17 13:02 ` [PATCH 2/4] ieee80211: support parsing Fine Timing Measurement action frame Emmanuel Grumbach
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Emmanuel Grumbach @ 2016-03-17 13:02 UTC (permalink / raw)
To: johannes; +Cc: linux-wireless, Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
If the device implements dynamic PS itself, there's no need
to ever start the dynamic powersave timer on RX.
While at it, fix up some indentation in this code.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
net/mac80211/rx.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 9127957..3746ba5 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2456,14 +2456,14 @@ ieee80211_rx_h_data(struct ieee80211_rx_data *rx)
rx->skb->dev = dev;
- if (local->ps_sdata && local->hw.conf.dynamic_ps_timeout > 0 &&
+ if (!ieee80211_hw_check(&local->hw, SUPPORTS_DYNAMIC_PS) &&
+ local->ps_sdata && local->hw.conf.dynamic_ps_timeout > 0 &&
!is_multicast_ether_addr(
((struct ethhdr *)rx->skb->data)->h_dest) &&
(!local->scanning &&
- !test_bit(SDATA_STATE_OFFCHANNEL, &sdata->state))) {
- mod_timer(&local->dynamic_ps_timer, jiffies +
- msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout));
- }
+ !test_bit(SDATA_STATE_OFFCHANNEL, &sdata->state)))
+ mod_timer(&local->dynamic_ps_timer, jiffies +
+ msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout));
ieee80211_deliver_skb(rx);
--
2.5.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 2/4] ieee80211: support parsing Fine Timing Measurement action frame 2016-03-17 13:02 [PATCH 1/4] mac80211: don't start dynamic PS timer if not needed Emmanuel Grumbach @ 2016-03-17 13:02 ` Emmanuel Grumbach 2016-03-17 13:02 ` [PATCH 3/4] mac80211: clean up station flags debugfs Emmanuel Grumbach 2016-03-17 13:02 ` [PATCH 4/4] mac80211: fix cipher scheme function name Emmanuel Grumbach 2 siblings, 0 replies; 5+ messages in thread From: Emmanuel Grumbach @ 2016-03-17 13:02 UTC (permalink / raw) To: johannes; +Cc: linux-wireless, Avraham Stern, Emmanuel Grumbach From: Avraham Stern <avraham.stern@intel.com> Add definition for Fine Timing Measurement (FTM) frame format as defined in IEEE802.11-REVmcD5.0 section 9.6.8.33 Signed-off-by: Avraham Stern <avraham.stern@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> --- include/linux/ieee80211.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 3b1f6ce..bf9706c 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h @@ -7,6 +7,7 @@ * Copyright (c) 2005, Devicescape Software, Inc. * Copyright (c) 2006, Michael Wu <flamingice@sourmilk.net> * Copyright (c) 2013 - 2014 Intel Mobile Communications GmbH + * Copyright (c) 2016 Intel Deutschland GmbH * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -1011,6 +1012,16 @@ struct ieee80211_mgmt { u8 tpc_elem_length; struct ieee80211_tpc_report_ie tpc; } __packed tpc_report; + struct { + u8 action_code; + u8 dialog_token; + u8 follow_up; + u8 tod[6]; + u8 toa[6]; + __le16 tod_error; + __le16 toa_error; + u8 variable[0]; + } __packed ftm; } u; } __packed action; } u; -- 2.5.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/4] mac80211: clean up station flags debugfs 2016-03-17 13:02 [PATCH 1/4] mac80211: don't start dynamic PS timer if not needed Emmanuel Grumbach 2016-03-17 13:02 ` [PATCH 2/4] ieee80211: support parsing Fine Timing Measurement action frame Emmanuel Grumbach @ 2016-03-17 13:02 ` Emmanuel Grumbach 2016-03-17 13:02 ` [PATCH 4/4] mac80211: fix cipher scheme function name Emmanuel Grumbach 2 siblings, 0 replies; 5+ messages in thread From: Emmanuel Grumbach @ 2016-03-17 13:02 UTC (permalink / raw) To: johannes; +Cc: linux-wireless, Johannes Berg From: Johannes Berg <johannes.berg@intel.com> Avoid the really strange %s%s%s expression, use an array of flag names and check that all flags are present. Signed-off-by: Johannes Berg <johannes.berg@intel.com> --- net/mac80211/debugfs_sta.c | 63 +++++++++++++++++++++++++++++++--------------- net/mac80211/sta_info.h | 4 +++ 2 files changed, 47 insertions(+), 20 deletions(-) diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c index fbbd66c..6f89cd7 100644 --- a/net/mac80211/debugfs_sta.c +++ b/net/mac80211/debugfs_sta.c @@ -52,31 +52,54 @@ static const struct file_operations sta_ ##name## _ops = { \ STA_FILE(aid, sta.aid, D); +static const char * const sta_flag_names[] = { +#define FLAG(F) [WLAN_STA_##F] = #F + FLAG(AUTH), + FLAG(ASSOC), + FLAG(PS_STA), + FLAG(AUTHORIZED), + FLAG(SHORT_PREAMBLE), + FLAG(WDS), + FLAG(CLEAR_PS_FILT), + FLAG(MFP), + FLAG(BLOCK_BA), + FLAG(PS_DRIVER), + FLAG(PSPOLL), + FLAG(TDLS_PEER), + FLAG(TDLS_PEER_AUTH), + FLAG(TDLS_INITIATOR), + FLAG(TDLS_CHAN_SWITCH), + FLAG(TDLS_OFF_CHANNEL), + FLAG(TDLS_WIDER_BW), + FLAG(UAPSD), + FLAG(SP), + FLAG(4ADDR_EVENT), + FLAG(INSERTED), + FLAG(RATE_CONTROL), + FLAG(TOFFSET_KNOWN), + FLAG(MPSP_OWNER), + FLAG(MPSP_RECIPIENT), + FLAG(PS_DELIVER), +#undef FLAG +}; + static ssize_t sta_flags_read(struct file *file, char __user *userbuf, size_t count, loff_t *ppos) { - char buf[121]; + char buf[16 * NUM_WLAN_STA_FLAGS], *pos = buf; + char *end = buf + sizeof(buf) - 1; struct sta_info *sta = file->private_data; + unsigned int flg; + + BUILD_BUG_ON(ARRAY_SIZE(sta_flag_names) != NUM_WLAN_STA_FLAGS); + + for (flg = 0; flg < NUM_WLAN_STA_FLAGS; flg++) { + if (test_sta_flag(sta, flg)) + pos += scnprintf(pos, end - pos, "%s\n", + sta_flag_names[flg]); + } -#define TEST(flg) \ - test_sta_flag(sta, WLAN_STA_##flg) ? #flg "\n" : "" - - int res = scnprintf(buf, sizeof(buf), - "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", - TEST(AUTH), TEST(ASSOC), TEST(PS_STA), - TEST(PS_DRIVER), TEST(AUTHORIZED), - TEST(SHORT_PREAMBLE), - sta->sta.wme ? "WME\n" : "", - TEST(WDS), TEST(CLEAR_PS_FILT), - TEST(MFP), TEST(BLOCK_BA), TEST(PSPOLL), - TEST(UAPSD), TEST(SP), TEST(TDLS_PEER), - TEST(TDLS_PEER_AUTH), TEST(TDLS_INITIATOR), - TEST(TDLS_CHAN_SWITCH), TEST(TDLS_OFF_CHANNEL), - TEST(4ADDR_EVENT), TEST(INSERTED), - TEST(RATE_CONTROL), TEST(TOFFSET_KNOWN), - TEST(MPSP_OWNER), TEST(MPSP_RECIPIENT)); -#undef TEST - return simple_read_from_buffer(userbuf, count, ppos, buf, res); + return simple_read_from_buffer(userbuf, count, ppos, buf, strlen(buf)); } STA_OPS(flags); diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h index 053f5c4..fc91290 100644 --- a/net/mac80211/sta_info.h +++ b/net/mac80211/sta_info.h @@ -69,6 +69,8 @@ * @WLAN_STA_MPSP_RECIPIENT: local STA is recipient of a MPSP. * @WLAN_STA_PS_DELIVER: station woke up, but we're still blocking TX * until pending frames are delivered + * + * @NUM_WLAN_STA_FLAGS: number of defined flags */ enum ieee80211_sta_info_flags { WLAN_STA_AUTH, @@ -97,6 +99,8 @@ enum ieee80211_sta_info_flags { WLAN_STA_MPSP_OWNER, WLAN_STA_MPSP_RECIPIENT, WLAN_STA_PS_DELIVER, + + NUM_WLAN_STA_FLAGS, }; #define ADDBA_RESP_INTERVAL HZ -- 2.5.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 4/4] mac80211: fix cipher scheme function name 2016-03-17 13:02 [PATCH 1/4] mac80211: don't start dynamic PS timer if not needed Emmanuel Grumbach 2016-03-17 13:02 ` [PATCH 2/4] ieee80211: support parsing Fine Timing Measurement action frame Emmanuel Grumbach 2016-03-17 13:02 ` [PATCH 3/4] mac80211: clean up station flags debugfs Emmanuel Grumbach @ 2016-03-17 13:02 ` Emmanuel Grumbach 2016-04-05 10:13 ` Johannes Berg 2 siblings, 1 reply; 5+ messages in thread From: Emmanuel Grumbach @ 2016-03-17 13:02 UTC (permalink / raw) To: johannes; +Cc: linux-wireless, Johannes Berg From: Johannes Berg <johannes.berg@intel.com> The code is only used with iwlwifi, but still should have proper mac80211 naming scheme; fix that. Signed-off-by: Johannes Berg <johannes.berg@intel.com> --- net/mac80211/rx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 3746ba5..57a0ccd 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -722,8 +722,8 @@ static int ieee80211_get_mmie_keyidx(struct sk_buff *skb) return -1; } -static int iwl80211_get_cs_keyid(const struct ieee80211_cipher_scheme *cs, - struct sk_buff *skb) +static int ieee80211_get_cs_keyid(const struct ieee80211_cipher_scheme *cs, + struct sk_buff *skb) { struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; __le16 fc; @@ -1586,7 +1586,7 @@ ieee80211_rx_h_decrypt(struct ieee80211_rx_data *rx) if (ieee80211_has_protected(fc) && rx->sta->cipher_scheme) { cs = rx->sta->cipher_scheme; - keyid = iwl80211_get_cs_keyid(cs, rx->skb); + keyid = ieee80211_get_cs_keyid(cs, rx->skb); if (unlikely(keyid < 0)) return RX_DROP_UNUSABLE; } @@ -1670,7 +1670,7 @@ ieee80211_rx_h_decrypt(struct ieee80211_rx_data *rx) hdrlen = ieee80211_hdrlen(fc); if (cs) { - keyidx = iwl80211_get_cs_keyid(cs, rx->skb); + keyidx = ieee80211_get_cs_keyid(cs, rx->skb); if (unlikely(keyidx < 0)) return RX_DROP_UNUSABLE; -- 2.5.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 4/4] mac80211: fix cipher scheme function name 2016-03-17 13:02 ` [PATCH 4/4] mac80211: fix cipher scheme function name Emmanuel Grumbach @ 2016-04-05 10:13 ` Johannes Berg 0 siblings, 0 replies; 5+ messages in thread From: Johannes Berg @ 2016-04-05 10:13 UTC (permalink / raw) To: Emmanuel Grumbach; +Cc: linux-wireless On Thu, 2016-03-17 at 15:02 +0200, Emmanuel Grumbach wrote: > From: Johannes Berg <johannes.berg@intel.com> > > The code is only used with iwlwifi, but still should have proper > mac80211 naming scheme; fix that. > All 4 applied. johannes ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-04-05 10:13 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-03-17 13:02 [PATCH 1/4] mac80211: don't start dynamic PS timer if not needed Emmanuel Grumbach 2016-03-17 13:02 ` [PATCH 2/4] ieee80211: support parsing Fine Timing Measurement action frame Emmanuel Grumbach 2016-03-17 13:02 ` [PATCH 3/4] mac80211: clean up station flags debugfs Emmanuel Grumbach 2016-03-17 13:02 ` [PATCH 4/4] mac80211: fix cipher scheme function name Emmanuel Grumbach 2016-04-05 10:13 ` Johannes Berg
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).