| /* |
| * |
| * Wireless daemon for Linux |
| * |
| * Copyright (C) 2019 Intel Corporation. All rights reserved. |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| * |
| */ |
| |
| #ifdef HAVE_CONFIG_H |
| #include <config.h> |
| #endif |
| |
| #include <stdint.h> |
| |
| #include "linux/nl80211.h" |
| #include "src/nl80211cmd.h" |
| |
| static const struct { |
| uint8_t cmd; |
| const char *str; |
| } cmd_table[] = { |
| { NL80211_CMD_GET_WIPHY, "Get Wiphy" }, |
| { NL80211_CMD_SET_WIPHY, "Set Wiphy" }, |
| { NL80211_CMD_NEW_WIPHY, "New Wiphy" }, |
| { NL80211_CMD_DEL_WIPHY, "Del Wiphy" }, |
| { NL80211_CMD_GET_INTERFACE, "Get Interface" }, |
| { NL80211_CMD_SET_INTERFACE, "Set Interface" }, |
| { NL80211_CMD_NEW_INTERFACE, "New Interface" }, |
| { NL80211_CMD_DEL_INTERFACE, "Del Interface" }, |
| { NL80211_CMD_GET_KEY, "Get Key" }, |
| { NL80211_CMD_SET_KEY, "Set Key" }, |
| { NL80211_CMD_NEW_KEY, "New Key" }, |
| { NL80211_CMD_DEL_KEY, "Del Key" }, |
| { NL80211_CMD_GET_BEACON, "Get Beacon" }, |
| { NL80211_CMD_SET_BEACON, "Set Beacon" }, |
| { NL80211_CMD_START_AP, "Start AP" }, |
| { NL80211_CMD_STOP_AP, "Stop AP" }, |
| { NL80211_CMD_GET_STATION, "Get Station" }, |
| { NL80211_CMD_SET_STATION, "Set Station" }, |
| { NL80211_CMD_NEW_STATION, "New Station" }, |
| { NL80211_CMD_DEL_STATION, "Del Station" }, |
| { NL80211_CMD_GET_MPATH, "Get Mesh Path" }, |
| { NL80211_CMD_SET_MPATH, "Set Mesh Path" }, |
| { NL80211_CMD_NEW_MPATH, "New Mesh Path" }, |
| { NL80211_CMD_DEL_MPATH, "Del Mesh Path" }, |
| { NL80211_CMD_SET_BSS, "Set BSS" }, |
| { NL80211_CMD_SET_REG, "Set Reg" }, |
| { NL80211_CMD_REQ_SET_REG, "Req Set Reg" }, |
| { NL80211_CMD_GET_MESH_CONFIG, "Get Mesh Config" }, |
| { NL80211_CMD_SET_MESH_CONFIG, "Set Mesh Config" }, |
| { NL80211_CMD_SET_MGMT_EXTRA_IE, "Mgmt Extra IE" }, |
| { NL80211_CMD_GET_REG, "Get Reg" }, |
| { NL80211_CMD_GET_SCAN, "Get Scan" }, |
| { NL80211_CMD_TRIGGER_SCAN, "Trigger Scan" }, |
| { NL80211_CMD_NEW_SCAN_RESULTS, "New Scan Results" }, |
| { NL80211_CMD_SCAN_ABORTED, "Scan Aborted" }, |
| { NL80211_CMD_REG_CHANGE, "Reg Change" }, |
| { NL80211_CMD_AUTHENTICATE, "Authenticate" }, |
| { NL80211_CMD_ASSOCIATE, "Associate" }, |
| { NL80211_CMD_DEAUTHENTICATE, "Deauthenticate" }, |
| { NL80211_CMD_DISASSOCIATE, "Disassociate" }, |
| { NL80211_CMD_MICHAEL_MIC_FAILURE, "Michael MIC Failure" }, |
| { NL80211_CMD_REG_BEACON_HINT, "Reg Beacon Hint" }, |
| { NL80211_CMD_JOIN_IBSS, "Join IBSS" }, |
| { NL80211_CMD_LEAVE_IBSS, "Leave IBSS" }, |
| { NL80211_CMD_TESTMODE, "Test Mode" }, |
| { NL80211_CMD_CONNECT, "Connect" }, |
| { NL80211_CMD_ROAM, "Roam" }, |
| { NL80211_CMD_DISCONNECT, "Disconnect" }, |
| { NL80211_CMD_SET_WIPHY_NETNS, "Set Wiphy Netns" }, |
| { NL80211_CMD_GET_SURVEY, "Get Survey" }, |
| { NL80211_CMD_NEW_SURVEY_RESULTS, "New Survey Results" }, |
| { NL80211_CMD_SET_PMKSA, "Set PMKSA" }, |
| { NL80211_CMD_DEL_PMKSA, "Del PMKSA" }, |
| { NL80211_CMD_FLUSH_PMKSA, "Flush PMKSA" }, |
| { NL80211_CMD_REMAIN_ON_CHANNEL, "Remain on Channel" }, |
| { NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, "Cancel Remain on Channel"}, |
| { NL80211_CMD_SET_TX_BITRATE_MASK, "Set TX Bitrate Mask" }, |
| { NL80211_CMD_REGISTER_FRAME, "Register Frame" }, |
| { NL80211_CMD_FRAME, "Frame" }, |
| { NL80211_CMD_FRAME_TX_STATUS, "Frame TX Status" }, |
| { NL80211_CMD_SET_POWER_SAVE, "Set Power Save" }, |
| { NL80211_CMD_GET_POWER_SAVE, "Get Power Save" }, |
| { NL80211_CMD_SET_CQM, "Set CQM" }, |
| { NL80211_CMD_NOTIFY_CQM, "Notify CQM" }, |
| { NL80211_CMD_SET_CHANNEL, "Set Channel" }, |
| { NL80211_CMD_SET_WDS_PEER, "Set WDS Peer" }, |
| { NL80211_CMD_FRAME_WAIT_CANCEL, "Frame Wait Cancel" }, |
| { NL80211_CMD_JOIN_MESH, "Join Mesh" }, |
| { NL80211_CMD_LEAVE_MESH, "Leave Mesh" }, |
| { NL80211_CMD_UNPROT_DEAUTHENTICATE, "Unprot Deauthenticate" }, |
| { NL80211_CMD_UNPROT_DISASSOCIATE, "Unprot Disassociate" }, |
| { NL80211_CMD_NEW_PEER_CANDIDATE, "New Peer Candidate" }, |
| { NL80211_CMD_GET_WOWLAN, "Get WoWLAN" }, |
| { NL80211_CMD_SET_WOWLAN, "Set WoWLAN" }, |
| { NL80211_CMD_START_SCHED_SCAN, "Start Sched Scan" }, |
| { NL80211_CMD_STOP_SCHED_SCAN, "Stop Sched Scan" }, |
| { NL80211_CMD_SCHED_SCAN_RESULTS, "Sched Scan Results" }, |
| { NL80211_CMD_SCHED_SCAN_STOPPED, "Sched Scan Stopped" }, |
| { NL80211_CMD_SET_REKEY_OFFLOAD, "Set Rekey Offload" }, |
| { NL80211_CMD_PMKSA_CANDIDATE, "PMKSA Candidate" }, |
| { NL80211_CMD_TDLS_OPER, "TDLS Oper" }, |
| { NL80211_CMD_TDLS_MGMT, "TDLS Mgmt" }, |
| { NL80211_CMD_UNEXPECTED_FRAME, "Unexpected Frame" }, |
| { NL80211_CMD_PROBE_CLIENT, "Probe Client" }, |
| { NL80211_CMD_REGISTER_BEACONS, "Register Beacons" }, |
| { NL80211_CMD_UNEXPECTED_4ADDR_FRAME, "Unexpected 4addr Frame"}, |
| { NL80211_CMD_SET_NOACK_MAP, "Set NoAck Map" }, |
| { NL80211_CMD_CH_SWITCH_NOTIFY, "Channel Switch Notify" }, |
| { NL80211_CMD_START_P2P_DEVICE, "Start P2P Device" }, |
| { NL80211_CMD_STOP_P2P_DEVICE, "Stop P2P Device" }, |
| { NL80211_CMD_CONN_FAILED, "Conn Failed" }, |
| { NL80211_CMD_SET_MCAST_RATE, "Set Mcast Rate" }, |
| { NL80211_CMD_SET_MAC_ACL, "Set MAC ACL" }, |
| { NL80211_CMD_RADAR_DETECT, "Radar Detect" }, |
| { NL80211_CMD_GET_PROTOCOL_FEATURES, "Get Protocol Features" }, |
| { NL80211_CMD_UPDATE_FT_IES, "Update FT IEs" }, |
| { NL80211_CMD_FT_EVENT, "FT Event" }, |
| { NL80211_CMD_CRIT_PROTOCOL_START, "Crit Protocol Start" }, |
| { NL80211_CMD_CRIT_PROTOCOL_STOP, "Crit Protocol Stop" }, |
| { NL80211_CMD_GET_COALESCE, "Get Coalesce" }, |
| { NL80211_CMD_SET_COALESCE, "Set Coalesce" }, |
| { NL80211_CMD_CHANNEL_SWITCH, "Channel Switch" }, |
| { NL80211_CMD_VENDOR, "Vendor" }, |
| { NL80211_CMD_SET_QOS_MAP, "Set QoS Map" }, |
| { NL80211_CMD_ADD_TX_TS, "Add Traffic Stream" }, |
| { NL80211_CMD_DEL_TX_TS, "Delete Traffic Stream" }, |
| { NL80211_CMD_GET_MPP, "Get Mesh Proxy Path" }, |
| { NL80211_CMD_JOIN_OCB, "Join OCB Network" }, |
| { NL80211_CMD_LEAVE_OCB, "Leave OCB Network" }, |
| { NL80211_CMD_CH_SWITCH_STARTED_NOTIFY, "Channel Switch Notify" }, |
| { NL80211_CMD_TDLS_CHANNEL_SWITCH, "TDLS Channel Switch" }, |
| { NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, |
| "Cancel TLDS Channel Switch" }, |
| { NL80211_CMD_WIPHY_REG_CHANGE, "Wiphy Reg Change" }, |
| { NL80211_CMD_ABORT_SCAN, "Abort Scan" }, |
| { NL80211_CMD_START_NAN, "Start NAN" }, |
| { NL80211_CMD_STOP_NAN, "Stop NAN" }, |
| { NL80211_CMD_ADD_NAN_FUNCTION, "Add NAN Function" }, |
| { NL80211_CMD_DEL_NAN_FUNCTION, "Delete NAN Function" }, |
| { NL80211_CMD_CHANGE_NAN_CONFIG, "Change NAN Config" }, |
| { NL80211_CMD_NAN_MATCH, "NAN Match" }, |
| { NL80211_CMD_SET_MULTICAST_TO_UNICAST, "Set Multicast to Unicast" }, |
| { NL80211_CMD_UPDATE_CONNECT_PARAMS, "Update Connect Params" }, |
| { NL80211_CMD_SET_PMK, "Set PMK" }, |
| { NL80211_CMD_DEL_PMK, "Delete PMK" }, |
| { NL80211_CMD_PORT_AUTHORIZED, "Port Authorized" }, |
| { NL80211_CMD_RELOAD_REGDB, "Reload Reg Database" }, |
| { NL80211_CMD_EXTERNAL_AUTH, "External Auth" }, |
| { NL80211_CMD_STA_OPMODE_CHANGED, "STA Opmode Changed" }, |
| { NL80211_CMD_CONTROL_PORT_FRAME, "Control Port Frame" }, |
| { NL80211_CMD_GET_FTM_RESPONDER_STATS, "Get FTM Responder Stats" }, |
| { } |
| }; |
| |
| const char *nl80211cmd_to_string(uint32_t cmd) |
| { |
| unsigned int i; |
| |
| for (i = 0; cmd_table[i].str; i++) { |
| if (cmd_table[i].cmd != cmd) |
| continue; |
| |
| return cmd_table[i].str; |
| } |
| |
| return "Unknown"; |
| } |