/* * 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 */