diff options
author | Arik Nemtsov <arik@wizery.com> | 2014-11-09 11:50:19 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-11-19 12:45:21 -0500 |
commit | a7a6bdd0670feb8bfc26d41cda32b6064dbca50e (patch) | |
tree | d343591f508af2d1a15f5b265e7ddaf182e34129 /net/mac80211/trace.h | |
parent | 53837584438f8899e061ada4663ae1d09b49b96a (diff) |
mac80211: introduce TDLS channel switch ops
Implement the cfg80211 TDLS channel switch ops and introduce new mac80211
ones for low-level drivers.
Verify low-level driver support for the new ops when using the relevant
wiphy feature bit. Also verify the peer supports channel switching before
passing the command down.
Add a new STA flag to track the off-channel state with the TDLS peer and
make sure to cancel the channel-switch if the peer STA is unexpectedly
removed.
Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/trace.h')
-rw-r--r-- | net/mac80211/trace.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h index 96847e788488..c0c0fcace9d8 100644 --- a/net/mac80211/trace.h +++ b/net/mac80211/trace.h | |||
@@ -2196,6 +2196,63 @@ TRACE_EVENT(drv_get_txpower, | |||
2196 | ) | 2196 | ) |
2197 | ); | 2197 | ); |
2198 | 2198 | ||
2199 | TRACE_EVENT(drv_tdls_channel_switch, | ||
2200 | TP_PROTO(struct ieee80211_local *local, | ||
2201 | struct ieee80211_sub_if_data *sdata, | ||
2202 | struct ieee80211_sta *sta, u8 oper_class, | ||
2203 | struct cfg80211_chan_def *chandef), | ||
2204 | |||
2205 | TP_ARGS(local, sdata, sta, oper_class, chandef), | ||
2206 | |||
2207 | TP_STRUCT__entry( | ||
2208 | LOCAL_ENTRY | ||
2209 | VIF_ENTRY | ||
2210 | STA_ENTRY | ||
2211 | __field(u8, oper_class) | ||
2212 | CHANDEF_ENTRY | ||
2213 | ), | ||
2214 | |||
2215 | TP_fast_assign( | ||
2216 | LOCAL_ASSIGN; | ||
2217 | VIF_ASSIGN; | ||
2218 | STA_ASSIGN; | ||
2219 | __entry->oper_class = oper_class; | ||
2220 | CHANDEF_ASSIGN(chandef) | ||
2221 | ), | ||
2222 | |||
2223 | TP_printk( | ||
2224 | LOCAL_PR_FMT VIF_PR_FMT " tdls channel switch to" | ||
2225 | CHANDEF_PR_FMT " oper_class:%d " STA_PR_FMT, | ||
2226 | LOCAL_PR_ARG, VIF_PR_ARG, CHANDEF_PR_ARG, __entry->oper_class, | ||
2227 | STA_PR_ARG | ||
2228 | ) | ||
2229 | ); | ||
2230 | |||
2231 | TRACE_EVENT(drv_tdls_cancel_channel_switch, | ||
2232 | TP_PROTO(struct ieee80211_local *local, | ||
2233 | struct ieee80211_sub_if_data *sdata, | ||
2234 | struct ieee80211_sta *sta), | ||
2235 | |||
2236 | TP_ARGS(local, sdata, sta), | ||
2237 | |||
2238 | TP_STRUCT__entry( | ||
2239 | LOCAL_ENTRY | ||
2240 | VIF_ENTRY | ||
2241 | STA_ENTRY | ||
2242 | ), | ||
2243 | |||
2244 | TP_fast_assign( | ||
2245 | LOCAL_ASSIGN; | ||
2246 | VIF_ASSIGN; | ||
2247 | STA_ASSIGN; | ||
2248 | ), | ||
2249 | |||
2250 | TP_printk( | ||
2251 | LOCAL_PR_FMT VIF_PR_FMT | ||
2252 | " tdls cancel channel switch with " STA_PR_FMT, | ||
2253 | LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG | ||
2254 | ) | ||
2255 | ); | ||
2199 | 2256 | ||
2200 | #ifdef CONFIG_MAC80211_MESSAGE_TRACING | 2257 | #ifdef CONFIG_MAC80211_MESSAGE_TRACING |
2201 | #undef TRACE_SYSTEM | 2258 | #undef TRACE_SYSTEM |