nl80211: Add prints for kernel events
Add prints for kernel event, including the event ID and event string. Signed-hostap: David Spinadel <david.spinadel@intel.com> Signed-hostap: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
parent
87436760a2
commit
2090a0b42e
1 changed files with 130 additions and 8 deletions
|
@ -345,6 +345,117 @@ static int wpa_driver_nl80211_authenticate_retry(
|
||||||
struct wpa_driver_nl80211_data *drv);
|
struct wpa_driver_nl80211_data *drv);
|
||||||
|
|
||||||
|
|
||||||
|
static const char * nl80211_command_to_string(enum nl80211_commands cmd)
|
||||||
|
{
|
||||||
|
#define C2S(x) case x: return #x;
|
||||||
|
switch (cmd) {
|
||||||
|
C2S(NL80211_CMD_UNSPEC)
|
||||||
|
C2S(NL80211_CMD_GET_WIPHY)
|
||||||
|
C2S(NL80211_CMD_SET_WIPHY)
|
||||||
|
C2S(NL80211_CMD_NEW_WIPHY)
|
||||||
|
C2S(NL80211_CMD_DEL_WIPHY)
|
||||||
|
C2S(NL80211_CMD_GET_INTERFACE)
|
||||||
|
C2S(NL80211_CMD_SET_INTERFACE)
|
||||||
|
C2S(NL80211_CMD_NEW_INTERFACE)
|
||||||
|
C2S(NL80211_CMD_DEL_INTERFACE)
|
||||||
|
C2S(NL80211_CMD_GET_KEY)
|
||||||
|
C2S(NL80211_CMD_SET_KEY)
|
||||||
|
C2S(NL80211_CMD_NEW_KEY)
|
||||||
|
C2S(NL80211_CMD_DEL_KEY)
|
||||||
|
C2S(NL80211_CMD_GET_BEACON)
|
||||||
|
C2S(NL80211_CMD_SET_BEACON)
|
||||||
|
C2S(NL80211_CMD_START_AP)
|
||||||
|
C2S(NL80211_CMD_STOP_AP)
|
||||||
|
C2S(NL80211_CMD_GET_STATION)
|
||||||
|
C2S(NL80211_CMD_SET_STATION)
|
||||||
|
C2S(NL80211_CMD_NEW_STATION)
|
||||||
|
C2S(NL80211_CMD_DEL_STATION)
|
||||||
|
C2S(NL80211_CMD_GET_MPATH)
|
||||||
|
C2S(NL80211_CMD_SET_MPATH)
|
||||||
|
C2S(NL80211_CMD_NEW_MPATH)
|
||||||
|
C2S(NL80211_CMD_DEL_MPATH)
|
||||||
|
C2S(NL80211_CMD_SET_BSS)
|
||||||
|
C2S(NL80211_CMD_SET_REG)
|
||||||
|
C2S(NL80211_CMD_REQ_SET_REG)
|
||||||
|
C2S(NL80211_CMD_GET_MESH_CONFIG)
|
||||||
|
C2S(NL80211_CMD_SET_MESH_CONFIG)
|
||||||
|
C2S(NL80211_CMD_SET_MGMT_EXTRA_IE)
|
||||||
|
C2S(NL80211_CMD_GET_REG)
|
||||||
|
C2S(NL80211_CMD_GET_SCAN)
|
||||||
|
C2S(NL80211_CMD_TRIGGER_SCAN)
|
||||||
|
C2S(NL80211_CMD_NEW_SCAN_RESULTS)
|
||||||
|
C2S(NL80211_CMD_SCAN_ABORTED)
|
||||||
|
C2S(NL80211_CMD_REG_CHANGE)
|
||||||
|
C2S(NL80211_CMD_AUTHENTICATE)
|
||||||
|
C2S(NL80211_CMD_ASSOCIATE)
|
||||||
|
C2S(NL80211_CMD_DEAUTHENTICATE)
|
||||||
|
C2S(NL80211_CMD_DISASSOCIATE)
|
||||||
|
C2S(NL80211_CMD_MICHAEL_MIC_FAILURE)
|
||||||
|
C2S(NL80211_CMD_REG_BEACON_HINT)
|
||||||
|
C2S(NL80211_CMD_JOIN_IBSS)
|
||||||
|
C2S(NL80211_CMD_LEAVE_IBSS)
|
||||||
|
C2S(NL80211_CMD_TESTMODE)
|
||||||
|
C2S(NL80211_CMD_CONNECT)
|
||||||
|
C2S(NL80211_CMD_ROAM)
|
||||||
|
C2S(NL80211_CMD_DISCONNECT)
|
||||||
|
C2S(NL80211_CMD_SET_WIPHY_NETNS)
|
||||||
|
C2S(NL80211_CMD_GET_SURVEY)
|
||||||
|
C2S(NL80211_CMD_NEW_SURVEY_RESULTS)
|
||||||
|
C2S(NL80211_CMD_SET_PMKSA)
|
||||||
|
C2S(NL80211_CMD_DEL_PMKSA)
|
||||||
|
C2S(NL80211_CMD_FLUSH_PMKSA)
|
||||||
|
C2S(NL80211_CMD_REMAIN_ON_CHANNEL)
|
||||||
|
C2S(NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL)
|
||||||
|
C2S(NL80211_CMD_SET_TX_BITRATE_MASK)
|
||||||
|
C2S(NL80211_CMD_REGISTER_FRAME)
|
||||||
|
C2S(NL80211_CMD_FRAME)
|
||||||
|
C2S(NL80211_CMD_FRAME_TX_STATUS)
|
||||||
|
C2S(NL80211_CMD_SET_POWER_SAVE)
|
||||||
|
C2S(NL80211_CMD_GET_POWER_SAVE)
|
||||||
|
C2S(NL80211_CMD_SET_CQM)
|
||||||
|
C2S(NL80211_CMD_NOTIFY_CQM)
|
||||||
|
C2S(NL80211_CMD_SET_CHANNEL)
|
||||||
|
C2S(NL80211_CMD_SET_WDS_PEER)
|
||||||
|
C2S(NL80211_CMD_FRAME_WAIT_CANCEL)
|
||||||
|
C2S(NL80211_CMD_JOIN_MESH)
|
||||||
|
C2S(NL80211_CMD_LEAVE_MESH)
|
||||||
|
C2S(NL80211_CMD_UNPROT_DEAUTHENTICATE)
|
||||||
|
C2S(NL80211_CMD_UNPROT_DISASSOCIATE)
|
||||||
|
C2S(NL80211_CMD_NEW_PEER_CANDIDATE)
|
||||||
|
C2S(NL80211_CMD_GET_WOWLAN)
|
||||||
|
C2S(NL80211_CMD_SET_WOWLAN)
|
||||||
|
C2S(NL80211_CMD_START_SCHED_SCAN)
|
||||||
|
C2S(NL80211_CMD_STOP_SCHED_SCAN)
|
||||||
|
C2S(NL80211_CMD_SCHED_SCAN_RESULTS)
|
||||||
|
C2S(NL80211_CMD_SCHED_SCAN_STOPPED)
|
||||||
|
C2S(NL80211_CMD_SET_REKEY_OFFLOAD)
|
||||||
|
C2S(NL80211_CMD_PMKSA_CANDIDATE)
|
||||||
|
C2S(NL80211_CMD_TDLS_OPER)
|
||||||
|
C2S(NL80211_CMD_TDLS_MGMT)
|
||||||
|
C2S(NL80211_CMD_UNEXPECTED_FRAME)
|
||||||
|
C2S(NL80211_CMD_PROBE_CLIENT)
|
||||||
|
C2S(NL80211_CMD_REGISTER_BEACONS)
|
||||||
|
C2S(NL80211_CMD_UNEXPECTED_4ADDR_FRAME)
|
||||||
|
C2S(NL80211_CMD_SET_NOACK_MAP)
|
||||||
|
C2S(NL80211_CMD_CH_SWITCH_NOTIFY)
|
||||||
|
C2S(NL80211_CMD_START_P2P_DEVICE)
|
||||||
|
C2S(NL80211_CMD_STOP_P2P_DEVICE)
|
||||||
|
C2S(NL80211_CMD_CONN_FAILED)
|
||||||
|
C2S(NL80211_CMD_SET_MCAST_RATE)
|
||||||
|
C2S(NL80211_CMD_SET_MAC_ACL)
|
||||||
|
C2S(NL80211_CMD_RADAR_DETECT)
|
||||||
|
C2S(NL80211_CMD_GET_PROTOCOL_FEATURES)
|
||||||
|
C2S(NL80211_CMD_UPDATE_FT_IES)
|
||||||
|
C2S(NL80211_CMD_FT_EVENT)
|
||||||
|
C2S(NL80211_CMD_CRIT_PROTOCOL_START)
|
||||||
|
C2S(NL80211_CMD_CRIT_PROTOCOL_STOP)
|
||||||
|
default:
|
||||||
|
return "NL80211_CMD_UNKNOWN";
|
||||||
|
}
|
||||||
|
#undef C2S
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int is_ap_interface(enum nl80211_iftype nlmode)
|
static int is_ap_interface(enum nl80211_iftype nlmode)
|
||||||
{
|
{
|
||||||
return (nlmode == NL80211_IFTYPE_AP ||
|
return (nlmode == NL80211_IFTYPE_AP ||
|
||||||
|
@ -1517,22 +1628,26 @@ static void mlme_event(struct i802_bss *bss,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (frame == NULL) {
|
if (frame == NULL) {
|
||||||
wpa_printf(MSG_DEBUG, "nl80211: MLME event %d without frame "
|
wpa_printf(MSG_DEBUG,
|
||||||
"data", cmd);
|
"nl80211: MLME event %d (%s) without frame data",
|
||||||
|
cmd, nl80211_command_to_string(cmd));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
data = nla_data(frame);
|
data = nla_data(frame);
|
||||||
len = nla_len(frame);
|
len = nla_len(frame);
|
||||||
if (len < 4 + 2 * ETH_ALEN) {
|
if (len < 4 + 2 * ETH_ALEN) {
|
||||||
wpa_printf(MSG_MSGDUMP, "nl80211: MLME event %d on %s(" MACSTR
|
wpa_printf(MSG_MSGDUMP, "nl80211: MLME event %d (%s) on %s("
|
||||||
") - too short",
|
MACSTR ") - too short",
|
||||||
cmd, bss->ifname, MAC2STR(bss->addr));
|
cmd, nl80211_command_to_string(cmd), bss->ifname,
|
||||||
|
MAC2STR(bss->addr));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
wpa_printf(MSG_MSGDUMP, "nl80211: MLME event %d on %s(" MACSTR ") A1="
|
wpa_printf(MSG_MSGDUMP, "nl80211: MLME event %d (%s) on %s(" MACSTR
|
||||||
MACSTR " A2=" MACSTR, cmd, bss->ifname, MAC2STR(bss->addr),
|
") A1=" MACSTR " A2=" MACSTR, cmd,
|
||||||
MAC2STR(data + 4), MAC2STR(data + 4 + ETH_ALEN));
|
nl80211_command_to_string(cmd), bss->ifname,
|
||||||
|
MAC2STR(bss->addr), MAC2STR(data + 4),
|
||||||
|
MAC2STR(data + 4 + ETH_ALEN));
|
||||||
if (cmd != NL80211_CMD_FRAME_TX_STATUS && !(data[4] & 0x01) &&
|
if (cmd != NL80211_CMD_FRAME_TX_STATUS && !(data[4] & 0x01) &&
|
||||||
os_memcmp(bss->addr, data + 4, ETH_ALEN) != 0 &&
|
os_memcmp(bss->addr, data + 4, ETH_ALEN) != 0 &&
|
||||||
os_memcmp(bss->addr, data + 4 + ETH_ALEN, ETH_ALEN) != 0) {
|
os_memcmp(bss->addr, data + 4 + ETH_ALEN, ETH_ALEN) != 0) {
|
||||||
|
@ -2326,6 +2441,9 @@ static void do_process_drv_event(struct i802_bss *bss, int cmd,
|
||||||
{
|
{
|
||||||
struct wpa_driver_nl80211_data *drv = bss->drv;
|
struct wpa_driver_nl80211_data *drv = bss->drv;
|
||||||
|
|
||||||
|
wpa_printf(MSG_DEBUG, "nl80211: Drv Event %d (%s) received for %s",
|
||||||
|
cmd, nl80211_command_to_string(cmd), bss->ifname);
|
||||||
|
|
||||||
if (drv->ap_scan_as_station != NL80211_IFTYPE_UNSPECIFIED &&
|
if (drv->ap_scan_as_station != NL80211_IFTYPE_UNSPECIFIED &&
|
||||||
(cmd == NL80211_CMD_NEW_SCAN_RESULTS ||
|
(cmd == NL80211_CMD_NEW_SCAN_RESULTS ||
|
||||||
cmd == NL80211_CMD_SCAN_ABORTED)) {
|
cmd == NL80211_CMD_SCAN_ABORTED)) {
|
||||||
|
@ -2524,6 +2642,10 @@ static int process_bss_event(struct nl_msg *msg, void *arg)
|
||||||
nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
|
nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
|
||||||
genlmsg_attrlen(gnlh, 0), NULL);
|
genlmsg_attrlen(gnlh, 0), NULL);
|
||||||
|
|
||||||
|
wpa_printf(MSG_DEBUG, "nl80211: BSS Event %d (%s) received for %s",
|
||||||
|
gnlh->cmd, nl80211_command_to_string(gnlh->cmd),
|
||||||
|
bss->ifname);
|
||||||
|
|
||||||
switch (gnlh->cmd) {
|
switch (gnlh->cmd) {
|
||||||
case NL80211_CMD_FRAME:
|
case NL80211_CMD_FRAME:
|
||||||
case NL80211_CMD_FRAME_TX_STATUS:
|
case NL80211_CMD_FRAME_TX_STATUS:
|
||||||
|
|
Loading…
Reference in a new issue