remote: close file on usteer_init_local_id fread fail
[project/usteer.git] / event.h
1 #ifndef __USTEER_EVENT_H
2 #define __USTEER_EVENT_H
3
4 enum uevent_type {
5 UEV_PROBE_REQ_ACCEPT,
6 UEV_PROBE_REQ_DENY,
7 UEV_AUTH_REQ_ACCEPT,
8 UEV_AUTH_REQ_DENY,
9 UEV_ASSOC_REQ_ACCEPT,
10 UEV_ASSOC_REQ_DENY,
11 UEV_LOAD_KICK_TRIGGER,
12 UEV_LOAD_KICK_RESET,
13 UEV_LOAD_KICK_MIN_CLIENTS,
14 UEV_LOAD_KICK_NO_CLIENT,
15 UEV_LOAD_KICK_CLIENT,
16 UEV_SIGNAL_KICK,
17 };
18
19 enum uevent_reason {
20 UEV_REASON_NONE,
21 UEV_REASON_RETRY_EXCEEDED,
22 UEV_REASON_LOW_SIGNAL,
23 UEV_REASON_CONNECT_DELAY,
24 UEV_REASON_BETTER_CANDIDATE,
25 };
26
27 enum uevent_select_reason {
28 UEV_SELECT_REASON_NUM_ASSOC,
29 UEV_SELECT_REASON_SIGNAL,
30 UEV_SELECT_REASON_LOAD,
31 };
32
33 #define UEV_SELECT_REASON_ALL ((1 << UEV_SELECT_REASON_NUM_ASSOC) | (1 << UEV_SELECT_REASON_SIGNAL) | (1 << UEV_SELECT_REASON_LOAD))
34
35 struct uevent {
36 enum uevent_type type;
37 enum uevent_reason reason;
38 uint32_t select_reasons;
39
40 struct usteer_node *node_local;
41 struct sta *sta;
42
43 struct sta_info *si_cur;
44 struct sta_info *si_other;
45
46 struct usteer_node *node_cur;
47 struct usteer_node *node_other;
48
49 unsigned int count;
50
51 struct {
52 int cur;
53 int ref;
54 } threshold;
55 };
56
57 void usteer_event(struct uevent *ev);
58 void config_set_event_log_types(struct blob_attr *attr);
59 void config_get_event_log_types(struct blob_buf *buf);
60
61 #endif