18#ifndef PROTOCORE_WIFI_SNIFFER_H
19#define PROTOCORE_WIFI_SNIFFER_H
23#if PROTOCORE_ENABLE_WIFI_SNIFFER
32#define WIFI_TYPE_MGMT 0
33#define WIFI_TYPE_CTRL 1
34#define WIFI_TYPE_DATA 2
35#define WIFI_TYPE_EXT 3
38#define PROTOCORE_WIFI_RSSI_NONE (-128)
82 uint8_t best_bssid[6];
99} WifiSnifferParseArgs;
105} WifiSnifferStatsResetArgs;
112} WifiSnifferStatsAddArgs;
119 uint8_t hysteresis_db;
120} WifiSnifferShouldRoamArgs;
130} WifiSnifferScanInitArgs;
137} WifiSnifferScanDueArgs;
144} WifiSnifferScanNextArgs;
152} WifiSnifferSurveyResetArgs;
161} WifiSnifferSurveyAddArgs;
168} WifiSnifferSurveyGetArgs;
174 uint8_t exclude_channel;
175 uint8_t *out_channel;
177} WifiSnifferSurveyBestArgs;
185} WifiSnifferBeginArgs;
240 WifiSnifferParseArgs parse_args;
241 WifiSnifferStatsResetArgs stats_reset_args;
242 WifiSnifferStatsAddArgs stats_add_args;
243 WifiSnifferShouldRoamArgs should_roam_args;
244 WifiSnifferScanInitArgs scan_init_args;
245 WifiSnifferScanDueArgs scan_due_args;
246 WifiSnifferScanNextArgs scan_next_args;
247 WifiSnifferSurveyResetArgs survey_reset_args;
248 WifiSnifferSurveyAddArgs survey_add_args;
249 WifiSnifferSurveyGetArgs survey_get_args;
250 WifiSnifferSurveyBestArgs survey_best_args;
251 WifiSnifferBeginArgs begin_args;
254 const WifiChannelSurvey *ptr;
255 const WifiStats *stats_out;
256 const WifiSurvey *survey_out;
257 const WifiScan *scan_out;
261extern WifiSnifferVars WifiSnifferV;
266 void (*
const parse)(uint8_t *work);
267 void (*
const stats_reset)(uint8_t *work);
268 void (*
const stats_add)(uint8_t *work);
269 void (*
const should_roam)(uint8_t *work);
270 void (*
const scan_init)(uint8_t *work);
271 void (*
const scan_due)(uint8_t *work);
272 void (*
const scan_next)(uint8_t *work);
273 void (*
const survey_reset)(uint8_t *work);
274 void (*
const survey_add)(uint8_t *work);
275 void (*
const survey_get)(uint8_t *work);
276 void (*
const survey_best)(uint8_t *work);
277 void (*
const begin)(uint8_t *work);
278 void (*
const tick)(uint8_t *work);
279 void (*
const end)(uint8_t *work);
280 void (*
const stats)(uint8_t *work);
281 void (*
const survey)(uint8_t *work);
282 void (*
const scan)(uint8_t *work);
287void protocore_wifi_sniffer_parse(uint8_t *work);
288void protocore_wifi_sniffer_stats_reset(uint8_t *work);
289void protocore_wifi_sniffer_stats_add(uint8_t *work);
290void protocore_wifi_sniffer_should_roam(uint8_t *work);
291void protocore_wifi_sniffer_scan_init(uint8_t *work);
292void protocore_wifi_sniffer_scan_due(uint8_t *work);
293void protocore_wifi_sniffer_scan_next(uint8_t *work);
294void protocore_wifi_sniffer_survey_reset(uint8_t *work);
295void protocore_wifi_sniffer_survey_add(uint8_t *work);
296void protocore_wifi_sniffer_survey_get(uint8_t *work);
297void protocore_wifi_sniffer_survey_best(uint8_t *work);
298void protocore_wifi_sniffer_begin(uint8_t *work);
299void protocore_wifi_sniffer_tick(uint8_t *work);
300void protocore_wifi_sniffer_end(uint8_t *work);
301void protocore_wifi_sniffer_stats(uint8_t *work);
302void protocore_wifi_sniffer_survey(uint8_t *work);
303void protocore_wifi_sniffer_scan(uint8_t *work);
309static const WifiSnifferNs WifiSniffer __attribute__((unused)) = {
310 .parse = protocore_wifi_sniffer_parse,
311 .stats_reset = protocore_wifi_sniffer_stats_reset,
312 .stats_add = protocore_wifi_sniffer_stats_add,
313 .should_roam = protocore_wifi_sniffer_should_roam,
314 .scan_init = protocore_wifi_sniffer_scan_init,
315 .scan_due = protocore_wifi_sniffer_scan_due,
316 .scan_next = protocore_wifi_sniffer_scan_next,
317 .survey_reset = protocore_wifi_sniffer_survey_reset,
318 .survey_add = protocore_wifi_sniffer_survey_add,
319 .survey_get = protocore_wifi_sniffer_survey_get,
320 .survey_best = protocore_wifi_sniffer_survey_best,
321 .begin = protocore_wifi_sniffer_begin,
322 .tick = protocore_wifi_sniffer_tick,
323 .end = protocore_wifi_sniffer_end,
324 .stats = protocore_wifi_sniffer_stats,
325 .survey = protocore_wifi_sniffer_survey,
326 .scan = protocore_wifi_sniffer_scan,
338uint8_t *protocore_wifi_sniffer_span(
void);
#define PROTOCORE_WIFI_SNIFFER_MAX_CHANNELS
Channels tracked by the WiFi sniffer's per-channel survey (PROTOCORE_WIFI_SNIFFER_MAX_CHANNELS).
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS