2009-09-08 11:56:07 +02:00
|
|
|
/*
|
|
|
|
* Control interface for shared AP commands
|
2013-11-03 17:13:14 +01:00
|
|
|
* Copyright (c) 2004-2013, Jouni Malinen <j@w1.fi>
|
2009-09-08 11:56:07 +02:00
|
|
|
*
|
2012-02-11 15:46:35 +01:00
|
|
|
* This software may be distributed under the terms of the BSD license.
|
|
|
|
* See README for more details.
|
2009-09-08 11:56:07 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CTRL_IFACE_AP_H
|
|
|
|
#define CTRL_IFACE_AP_H
|
|
|
|
|
|
|
|
int hostapd_ctrl_iface_sta_first(struct hostapd_data *hapd,
|
|
|
|
char *buf, size_t buflen);
|
|
|
|
int hostapd_ctrl_iface_sta(struct hostapd_data *hapd, const char *txtaddr,
|
|
|
|
char *buf, size_t buflen);
|
|
|
|
int hostapd_ctrl_iface_sta_next(struct hostapd_data *hapd, const char *txtaddr,
|
|
|
|
char *buf, size_t buflen);
|
2012-02-25 16:22:48 +01:00
|
|
|
int hostapd_ctrl_iface_deauthenticate(struct hostapd_data *hapd,
|
|
|
|
const char *txtaddr);
|
|
|
|
int hostapd_ctrl_iface_disassociate(struct hostapd_data *hapd,
|
|
|
|
const char *txtaddr);
|
Passive Client Taxonomy
Implement the signature mechanism described in the paper
"Passive Taxonomy of Wifi Clients using MLME Frame Contents"
published by Denton Gentry and Avery Pennarun.
http://research.google.com/pubs/pub45429.html
https://arxiv.org/abs/1608.01725
This involves:
1. Add a CONFIG_TAXONOMY compile option. Enabling taxonomy incurs
a memory overhead of up to several kilobytes per associated
station.
2. If enabled, store the Probe Request and (Re)Associate Request frame in
struct sta_info.
3. Implement code to extract the ID of each Information Element,
plus selected fields and bitmasks from certain IEs, into a
descriptive text string. This is done in a new source file,
src/ap/taxonomy.c.
4. Implement a "signature qq:rr:ss:tt:uu:vv" command
in hostapd_cli to retrieve the signature.
Signatures take the form of a text string. For example, a signature
for the Nexus 5X is:
wifi4|probe:0,1,127,45,191,htcap:01ef,htagg:03,htmcs:0000ffff,vhtcap:338061b2,
vhtrxmcs:030cfffa,vhttxmcs:030cfffa,extcap:00000a0201000040|assoc:0,1,48,45,
221(0050f2,2),191,127,htcap:01ef,htagg:03,htmcs:0000ffff,vhtcap:339071b2,
vhtrxmcs:030cfffa,vhttxmcs:030cfffa,extcap:0000000000000040
Signed-off-by: dgentry@google.com (Denton Gentry)
Signed-off-by: denny@geekhold.com (Denton Gentry)
Signed-off-by: rofrankel@google.com (Richard Frankel)
Signed-off-by: richard@frankel.tv (Richard Frankel)
2016-08-15 06:42:48 +02:00
|
|
|
int hostapd_ctrl_iface_signature(struct hostapd_data *hapd,
|
|
|
|
const char *txtaddr,
|
|
|
|
char *buf, size_t buflen);
|
2016-04-08 18:37:08 +02:00
|
|
|
int hostapd_ctrl_iface_poll_sta(struct hostapd_data *hapd,
|
|
|
|
const char *txtaddr);
|
2013-11-03 17:13:14 +01:00
|
|
|
int hostapd_ctrl_iface_status(struct hostapd_data *hapd, char *buf,
|
|
|
|
size_t buflen);
|
2013-11-14 11:28:32 +01:00
|
|
|
int hostapd_parse_csa_settings(const char *pos,
|
|
|
|
struct csa_settings *settings);
|
2015-02-08 11:16:13 +01:00
|
|
|
int hostapd_ctrl_iface_stop_ap(struct hostapd_data *hapd);
|
2016-03-09 10:16:12 +01:00
|
|
|
int hostapd_ctrl_iface_pmksa_list(struct hostapd_data *hapd, char *buf,
|
|
|
|
size_t len);
|
2016-03-09 10:16:13 +01:00
|
|
|
void hostapd_ctrl_iface_pmksa_flush(struct hostapd_data *hapd);
|
2017-06-18 13:14:18 +02:00
|
|
|
int hostapd_ctrl_iface_pmksa_add(struct hostapd_data *hapd, char *cmd);
|
2017-01-02 11:32:07 +01:00
|
|
|
int hostapd_ctrl_iface_pmksa_list_mesh(struct hostapd_data *hapd,
|
|
|
|
const u8 *addr, char *buf, size_t len);
|
|
|
|
void * hostapd_ctrl_iface_pmksa_create_entry(const u8 *aa, char *cmd);
|
2009-09-08 11:56:07 +02:00
|
|
|
|
|
|
|
#endif /* CTRL_IFACE_AP_H */
|