Add REGISTER_FRAME hostapd control interface command for testing purposes
This can be used to register reception of new types of Management frames through nl80211. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
60974eb3f6
commit
b8673baeab
4 changed files with 70 additions and 0 deletions
|
@ -4553,6 +4553,12 @@ struct wpa_driver_ops {
|
|||
* explicitly allow reception of broadcast Public Action frames.
|
||||
*/
|
||||
int (*dpp_listen)(void *priv, bool enable);
|
||||
|
||||
#ifdef CONFIG_TESTING_OPTIONS
|
||||
int (*register_frame)(void *priv, u16 type,
|
||||
const u8 *match, size_t match_len,
|
||||
bool multicast);
|
||||
#endif /* CONFIG_TESTING_OPTIONS */
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -12035,6 +12035,23 @@ static int nl80211_dpp_listen(void *priv, bool enable)
|
|||
#endif /* CONFIG_DPP */
|
||||
|
||||
|
||||
#ifdef CONFIG_TESTING_OPTIONS
|
||||
static int testing_nl80211_register_frame(void *priv, u16 type,
|
||||
const u8 *match, size_t match_len,
|
||||
bool multicast)
|
||||
{
|
||||
struct i802_bss *bss = priv;
|
||||
struct nl_sock *handle;
|
||||
|
||||
if (!bss->nl_mgmt)
|
||||
return -1;
|
||||
handle = (void *) (((intptr_t) bss->nl_mgmt) ^ ELOOP_SOCKET_INVALID);
|
||||
return nl80211_register_frame(bss, handle, type, match, match_len,
|
||||
multicast);
|
||||
}
|
||||
#endif /* CONFIG_TESTING_OPTIONS */
|
||||
|
||||
|
||||
const struct wpa_driver_ops wpa_driver_nl80211_ops = {
|
||||
.name = "nl80211",
|
||||
.desc = "Linux nl80211/cfg80211",
|
||||
|
@ -12173,4 +12190,7 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
|
|||
#ifdef CONFIG_DPP
|
||||
.dpp_listen = nl80211_dpp_listen,
|
||||
#endif /* CONFIG_DPP */
|
||||
#ifdef CONFIG_TESTING_OPTIONS
|
||||
.register_frame = testing_nl80211_register_frame,
|
||||
#endif /* CONFIG_TESTING_OPTIONS */
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue