hostap/src/fst/fst_defs.h
Jouni Malinen 82c734c28c FST: Fix byte order of couple of fields on big endian hosts
Couple of fsts_id and llt fields were not properly swapped from host
byte order to little endian byte order used in the frames. Fix this and
use the le32 type to make this more consistent and verifiable with
sparse.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
2016-06-23 17:46:40 +03:00

88 lines
1.8 KiB
C

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