| /* |
| * FST module - FST related definitions |
| * Copyright (c) 2014, Qualcomm Atheros, Inc. |
| * |
| * This software may be distributed under the terms of the BSD license. |
| * See README for more details. |
| */ |
| |
| #ifndef IEEE_80211_FST_DEFS_H |
| #define IEEE_80211_FST_DEFS_H |
| |
| /* IEEE Std 802.11ad */ |
| |
| #define MB_STA_CHANNEL_ALL 0 |
| |
| enum session_type { |
| SESSION_TYPE_BSS = 0, /* Infrastructure BSS */ |
| SESSION_TYPE_IBSS = 1, |
| SESSION_TYPE_DLS = 2, |
| SESSION_TYPE_TDLS = 3, |
| SESSION_TYPE_PBSS = 4 |
| }; |
| |
| #define SESSION_CONTROL(session_type, switch_intent) \ |
| (((u8) ((session_type) & 0x7)) | ((switch_intent) ? 0x10 : 0x00)) |
| |
| #define GET_SESSION_CONTROL_TYPE(session_control) \ |
| ((u8) ((session_control) & 0x7)) |
| |
| #define GET_SESSION_CONTROL_SWITCH_INTENT(session_control) \ |
| (((session_control) & 0x10) >> 4) |
| |
| /* 8.4.2.147 Session Transition element */ |
| struct session_transition_ie { |
| u8 element_id; |
| u8 length; |
| le32 fsts_id; |
| u8 session_control; |
| u8 new_band_id; |
| u8 new_band_setup; |
| u8 new_band_op; |
| u8 old_band_id; |
| u8 old_band_setup; |
| u8 old_band_op; |
| } STRUCT_PACKED; |
| |
| struct fst_setup_req { |
| u8 action; |
| u8 dialog_token; |
| le32 llt; |
| struct session_transition_ie stie; |
| /* Multi-band (optional) */ |
| /* Wakeup Schedule (optional) */ |
| /* Awake Window (optional) */ |
| /* Switching Stream (optional) */ |
| } STRUCT_PACKED; |
| |
| struct fst_setup_res { |
| u8 action; |
| u8 dialog_token; |
| u8 status_code; |
| struct session_transition_ie stie; |
| /* Multi-band (optional) */ |
| /* Wakeup Schedule (optional) */ |
| /* Awake Window (optional) */ |
| /* Switching Stream (optional) */ |
| /* Timeout Interval (optional) */ |
| } STRUCT_PACKED; |
| |
| struct fst_ack_req { |
| u8 action; |
| u8 dialog_token; |
| le32 fsts_id; |
| } STRUCT_PACKED; |
| |
| struct fst_ack_res { |
| u8 action; |
| u8 dialog_token; |
| le32 fsts_id; |
| } STRUCT_PACKED; |
| |
| struct fst_tear_down { |
| u8 action; |
| le32 fsts_id; |
| } STRUCT_PACKED; |
| |
| #endif /* IEEE_80211_FST_DEFS_H */ |