blob: 8ddcc61376b2d2f9be46716781dd02070183b0ac [file] [log] [blame]
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001/*
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
16enum 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 */
34struct session_transition_ie {
35 u8 element_id;
36 u8 length;
37 u32 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
47struct fst_setup_req {
48 u8 action;
49 u8 dialog_token;
50 u32 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
58struct 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
70struct fst_ack_req {
71 u8 action;
72 u8 dialog_token;
73 u32 fsts_id;
74} STRUCT_PACKED;
75
76struct fst_ack_res {
77 u8 action;
78 u8 dialog_token;
79 u32 fsts_id;
80} STRUCT_PACKED;
81
82struct fst_tear_down {
83 u8 action;
84 u32 fsts_id;
85} STRUCT_PACKED;
86
87#endif /* IEEE_80211_FST_DEFS_H */