Files
usteer/event.h
David Bauer bbf133ff46 policy: fix not selecting better candidate on request
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>
2021-12-25 17:40:04 +01:00

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