
A unset bitmask leads to the candidate selection always return no candidate, even if there is one. To select a better candidate regardless of it's classification, provide a bitmask containing all selection criteria. Signed-off-by: David Bauer <mail@david-bauer.net>
62 lines
1.2 KiB
C
62 lines
1.2 KiB
C
#ifndef __USTEER_EVENT_H
|
|
#define __USTEER_EVENT_H
|
|
|
|
enum uevent_type {
|
|
UEV_PROBE_REQ_ACCEPT,
|
|
UEV_PROBE_REQ_DENY,
|
|
UEV_AUTH_REQ_ACCEPT,
|
|
UEV_AUTH_REQ_DENY,
|
|
UEV_ASSOC_REQ_ACCEPT,
|
|
UEV_ASSOC_REQ_DENY,
|
|
UEV_LOAD_KICK_TRIGGER,
|
|
UEV_LOAD_KICK_RESET,
|
|
UEV_LOAD_KICK_MIN_CLIENTS,
|
|
UEV_LOAD_KICK_NO_CLIENT,
|
|
UEV_LOAD_KICK_CLIENT,
|
|
UEV_SIGNAL_KICK,
|
|
};
|
|
|
|
enum uevent_reason {
|
|
UEV_REASON_NONE,
|
|
UEV_REASON_RETRY_EXCEEDED,
|
|
UEV_REASON_LOW_SIGNAL,
|
|
UEV_REASON_CONNECT_DELAY,
|
|
UEV_REASON_BETTER_CANDIDATE,
|
|
};
|
|
|
|
enum uevent_select_reason {
|
|
UEV_SELECT_REASON_NUM_ASSOC,
|
|
UEV_SELECT_REASON_SIGNAL,
|
|
UEV_SELECT_REASON_LOAD,
|
|
};
|
|
|
|
#define UEV_SELECT_REASON_ALL ((1 << UEV_SELECT_REASON_NUM_ASSOC) | (1 << UEV_SELECT_REASON_SIGNAL) | (1 << UEV_SELECT_REASON_LOAD))
|
|
|
|
struct uevent {
|
|
enum uevent_type type;
|
|
enum uevent_reason reason;
|
|
uint32_t select_reasons;
|
|
|
|
struct usteer_node *node_local;
|
|
struct sta *sta;
|
|
|
|
struct sta_info *si_cur;
|
|
struct sta_info *si_other;
|
|
|
|
struct usteer_node *node_cur;
|
|
struct usteer_node *node_other;
|
|
|
|
unsigned int count;
|
|
|
|
struct {
|
|
int cur;
|
|
int ref;
|
|
} threshold;
|
|
};
|
|
|
|
void usteer_event(struct uevent *ev);
|
|
void config_set_event_log_types(struct blob_attr *attr);
|
|
void config_get_event_log_types(struct blob_buf *buf);
|
|
|
|
#endif
|