nl80211: Report control port RX events
This allows EAPOL frames to be received over the separate controlled port once rest of the driver interface is ready for this. By itself, this commit does not actually change behavior since cfg80211 will not be delivering these events without them being explicitly requested. Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
This commit is contained in:
parent
a79ed06871
commit
d8252a9812
1 changed files with 15 additions and 0 deletions
|
@ -2448,6 +2448,18 @@ static void nl80211_sta_opmode_change_event(struct wpa_driver_nl80211_data *drv,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void nl80211_control_port_frame(struct wpa_driver_nl80211_data *drv,
|
||||||
|
struct nlattr **tb)
|
||||||
|
{
|
||||||
|
if (!tb[NL80211_ATTR_MAC] || !tb[NL80211_ATTR_FRAME])
|
||||||
|
return;
|
||||||
|
|
||||||
|
drv_event_eapol_rx(drv->ctx, nla_data(tb[NL80211_ATTR_MAC]),
|
||||||
|
nla_data(tb[NL80211_ATTR_FRAME]),
|
||||||
|
nla_len(tb[NL80211_ATTR_FRAME]));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void do_process_drv_event(struct i802_bss *bss, int cmd,
|
static void do_process_drv_event(struct i802_bss *bss, int cmd,
|
||||||
struct nlattr **tb)
|
struct nlattr **tb)
|
||||||
{
|
{
|
||||||
|
@ -2663,6 +2675,9 @@ static void do_process_drv_event(struct i802_bss *bss, int cmd,
|
||||||
case NL80211_CMD_UPDATE_OWE_INFO:
|
case NL80211_CMD_UPDATE_OWE_INFO:
|
||||||
mlme_event_dh_event(drv, bss, tb);
|
mlme_event_dh_event(drv, bss, tb);
|
||||||
break;
|
break;
|
||||||
|
case NL80211_CMD_CONTROL_PORT_FRAME:
|
||||||
|
nl80211_control_port_frame(drv, tb);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
wpa_dbg(drv->ctx, MSG_DEBUG, "nl80211: Ignored unknown event "
|
wpa_dbg(drv->ctx, MSG_DEBUG, "nl80211: Ignored unknown event "
|
||||||
"(cmd=%d)", cmd);
|
"(cmd=%d)", cmd);
|
||||||
|
|
Loading…
Reference in a new issue