]>
Commit | Line | Data |
---|---|---|
717333f4 AN |
1 | /* |
2 | * FST module - miscellaneous 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 FST_CTRL_AUX_H | |
10 | #define FST_CTRL_AUX_H | |
11 | ||
12 | #include "common/defs.h" | |
13 | ||
14 | /* FST module control interface API */ | |
15 | #define FST_INVALID_SESSION_ID ((u32) -1) | |
16 | #define FST_MAX_GROUP_ID_SIZE 32 | |
17 | #define FST_MAX_INTERFACE_SIZE 32 | |
18 | ||
19 | enum fst_session_state { | |
20 | FST_SESSION_STATE_INITIAL, | |
21 | FST_SESSION_STATE_SETUP_COMPLETION, | |
22 | FST_SESSION_STATE_TRANSITION_DONE, | |
23 | FST_SESSION_STATE_TRANSITION_CONFIRMED, | |
24 | FST_SESSION_STATE_LAST | |
25 | }; | |
26 | ||
27 | enum fst_event_type { | |
28 | EVENT_FST_IFACE_STATE_CHANGED, /* An interface has been either attached | |
29 | * to or detached from an FST group */ | |
30 | EVENT_FST_ESTABLISHED, /* FST Session has been established */ | |
31 | EVENT_FST_SETUP, /* FST Session request received */ | |
32 | EVENT_FST_SESSION_STATE_CHANGED,/* FST Session state has been changed */ | |
33 | EVENT_PEER_STATE_CHANGED /* FST related generic event occurred, | |
34 | * see struct fst_hostap_event_data for | |
35 | * more info */ | |
36 | }; | |
37 | ||
91db940f LD |
38 | enum fst_reason { |
39 | REASON_TEARDOWN, | |
40 | REASON_SETUP, | |
41 | REASON_SWITCH, | |
42 | REASON_STT, | |
43 | REASON_REJECT, | |
44 | REASON_ERROR_PARAMS, | |
45 | REASON_RESET, | |
46 | REASON_DETACH_IFACE, | |
47 | }; | |
48 | ||
717333f4 AN |
49 | enum fst_initiator { |
50 | FST_INITIATOR_UNDEFINED, | |
51 | FST_INITIATOR_LOCAL, | |
52 | FST_INITIATOR_REMOTE, | |
53 | }; | |
54 | ||
55 | union fst_event_extra { | |
56 | struct fst_event_extra_iface_state { | |
57 | Boolean attached; | |
58 | char ifname[FST_MAX_INTERFACE_SIZE]; | |
59 | char group_id[FST_MAX_GROUP_ID_SIZE]; | |
60 | } iface_state; /* for EVENT_FST_IFACE_STATE_CHANGED */ | |
61 | struct fst_event_extra_peer_state { | |
62 | Boolean connected; | |
63 | char ifname[FST_MAX_INTERFACE_SIZE]; | |
64 | u8 addr[ETH_ALEN]; | |
65 | } peer_state; /* for EVENT_PEER_STATE_CHANGED */ | |
66 | struct fst_event_extra_session_state { | |
67 | enum fst_session_state old_state; | |
68 | enum fst_session_state new_state; | |
69 | union fst_session_state_switch_extra { | |
70 | struct { | |
91db940f | 71 | enum fst_reason reason; |
717333f4 AN |
72 | u8 reject_code; /* REASON_REJECT */ |
73 | /* REASON_SWITCH, | |
74 | * REASON_TEARDOWN, | |
75 | * REASON_REJECT | |
76 | */ | |
77 | enum fst_initiator initiator; | |
78 | } to_initial; | |
79 | } extra; | |
80 | } session_state; /* for EVENT_FST_SESSION_STATE_CHANGED */ | |
81 | }; | |
82 | ||
83 | /* helpers - prints enum in string form */ | |
84 | #define FST_NAME_UNKNOWN "UNKNOWN" | |
85 | ||
86 | const char * fst_get_str_name(unsigned index, const char *names[], | |
87 | size_t names_size); | |
88 | ||
89 | const char * fst_session_event_type_name(enum fst_event_type); | |
90 | const char * fst_reason_name(enum fst_reason reason); | |
91 | const char * fst_session_state_name(enum fst_session_state state); | |
92 | ||
93 | #endif /* FST_CTRL_AUX_H */ |