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