1d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt/* 2d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt * FST module - FST related definitions 3d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt * Copyright (c) 2014, Qualcomm Atheros, Inc. 4d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt * 5d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 6d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt * See README for more details. 7d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt */ 8d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 9d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt#ifndef IEEE_80211_FST_DEFS_H 10d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt#define IEEE_80211_FST_DEFS_H 11d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 12d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt/* IEEE Std 802.11ad */ 13d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 14d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt#define MB_STA_CHANNEL_ALL 0 15d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 16d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidtenum session_type { 17d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt SESSION_TYPE_BSS = 0, /* Infrastructure BSS */ 18d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt SESSION_TYPE_IBSS = 1, 19d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt SESSION_TYPE_DLS = 2, 20d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt SESSION_TYPE_TDLS = 3, 21d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt SESSION_TYPE_PBSS = 4 22d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt}; 23d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 24d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt#define SESSION_CONTROL(session_type, switch_intent) \ 25d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt (((u8) ((session_type) & 0x7)) | ((switch_intent) ? 0x10 : 0x00)) 26d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 27d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt#define GET_SESSION_CONTROL_TYPE(session_control) \ 28d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt ((u8) ((session_control) & 0x7)) 29d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 30d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt#define GET_SESSION_CONTROL_SWITCH_INTENT(session_control) \ 31d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt (((session_control) & 0x10) >> 4) 32d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 33d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt/* 8.4.2.147 Session Transition element */ 34d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidtstruct session_transition_ie { 35d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 element_id; 36d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 length; 37d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u32 fsts_id; 38d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 session_control; 39d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 new_band_id; 40d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 new_band_setup; 41d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 new_band_op; 42d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 old_band_id; 43d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 old_band_setup; 44d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 old_band_op; 45d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt} STRUCT_PACKED; 46d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 47d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidtstruct fst_setup_req { 48d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 action; 49d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 dialog_token; 50d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u32 llt; 51d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt struct session_transition_ie stie; 52d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt /* Multi-band (optional) */ 53d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt /* Wakeup Schedule (optional) */ 54d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt /* Awake Window (optional) */ 55d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt /* Switching Stream (optional) */ 56d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt} STRUCT_PACKED; 57d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 58d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidtstruct fst_setup_res { 59d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 action; 60d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 dialog_token; 61d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 status_code; 62d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt struct session_transition_ie stie; 63d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt /* Multi-band (optional) */ 64d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt /* Wakeup Schedule (optional) */ 65d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt /* Awake Window (optional) */ 66d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt /* Switching Stream (optional) */ 67d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt /* Timeout Interval (optional) */ 68d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt} STRUCT_PACKED; 69d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 70d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidtstruct fst_ack_req { 71d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 action; 72d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 dialog_token; 73d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u32 fsts_id; 74d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt} STRUCT_PACKED; 75d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 76d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidtstruct fst_ack_res { 77d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 action; 78d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 dialog_token; 79d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u32 fsts_id; 80d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt} STRUCT_PACKED; 81d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 82d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidtstruct fst_tear_down { 83d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u8 action; 84d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt u32 fsts_id; 85d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt} STRUCT_PACKED; 86d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt 87d80a401aed31d06f261efd19223cf55d1a2a8228Dmitry Shmidt#endif /* IEEE_80211_FST_DEFS_H */ 88