github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/linux/socket_netlink_generic_80211.txt (about) 1 # Copyright 2020 syzkaller project authors. All rights reserved. 2 # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4 include <linux/net.h> 5 include <uapi/linux/netlink.h> 6 include <uapi/linux/genetlink.h> 7 include <uapi/linux/nl80211.h> 8 include <linux/ieee80211.h> 9 include <net/cfg80211.h> 10 11 resource nl80211_family_id[int16] 12 resource nl80211_ifindex[int32] 13 14 nl80211_devnames = "wlan0", "wlan1" 15 16 type msg_nl80211_payload[CMD, PAYLOAD] { 17 genl_hdr genlmsghdr_t[CMD] 18 payload PAYLOAD 19 } [packed, align[4]] 20 21 type msghdr_nl80211[CMD, PAYLOAD, POLICY] msghdr_netlink[netlink_msg_t[nl80211_family_id, msg_nl80211_payload[CMD, PAYLOAD], POLICY]] 22 # For commands with NL80211_FLAG_NEED_WDEV or NL80211_FLAG_NEED_NETDEV 23 type msghdr_nl80211_wdev[CMD, POLICY] msghdr_nl80211[CMD, nl80211_wdev_payload, POLICY] 24 # For commands with NL80211_FLAG_NEED_WIPHY 25 type msghdr_nl80211_rdev[CMD, POLICY] msghdr_nl80211[CMD, nl80211_rdev_payload, POLICY] 26 27 # Wiphys are created for each wireless device, and they are identified by consequtive numbers (the counter is system-wide). 28 # TODO: fetch wiphy ids for devices created at executor initialization. Presently we're using small numbers in that hope that syzkaller will hit the right ones. 29 type nl80211_wiphy int32[0:128] 30 31 syz_genetlink_get_family_id$nl80211(name ptr[in, string["nl80211"]], fd sock_nl_generic) nl80211_family_id 32 ioctl$sock_SIOCGIFINDEX_80211(fd sock, cmd const[SIOCGIFINDEX], arg ptr[out, ifreq_dev_t[nl80211_devnames, nl80211_ifindex]]) 33 34 sendmsg$NL80211_CMD_GET_WIPHY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_GET_WIPHY, void]], f flags[send_flags]) 35 sendmsg$NL80211_CMD_SET_WIPHY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_WIPHY, void, nl80211_policy$wiphy]], f flags[send_flags]) 36 sendmsg$NL80211_CMD_SET_WIPHY_NETNS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_SET_WIPHY_NETNS, nl80211_policy$setns]], f flags[send_flags]) 37 sendmsg$NL80211_CMD_GET_INTERFACE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_INTERFACE, void]], f flags[send_flags]) 38 sendmsg$NL80211_CMD_SET_INTERFACE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_INTERFACE, nl80211_policy$set_interface]], f flags[send_flags]) 39 sendmsg$NL80211_CMD_NEW_INTERFACE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_NEW_INTERFACE, nl80211_policy$new_interface]], f flags[send_flags]) 40 sendmsg$NL80211_CMD_DEL_INTERFACE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_INTERFACE, void]], f flags[send_flags]) 41 sendmsg$NL80211_CMD_GET_KEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_KEY, nl80211_policy$cmd_key]], f flags[send_flags]) 42 sendmsg$NL80211_CMD_SET_KEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_KEY, nl80211_policy$cmd_key]], f flags[send_flags]) 43 sendmsg$NL80211_CMD_NEW_KEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_NEW_KEY, nl80211_policy$cmd_key]], f flags[send_flags]) 44 sendmsg$NL80211_CMD_DEL_KEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_KEY, nl80211_policy$cmd_key]], f flags[send_flags]) 45 sendmsg$NL80211_CMD_SET_BEACON(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_BEACON, nl80211_policy$beacon]], f flags[send_flags]) 46 sendmsg$NL80211_CMD_START_AP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_START_AP, nl80211_policy$start_ap]], f flags[send_flags]) 47 sendmsg$NL80211_CMD_STOP_AP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_STOP_AP, void]], f flags[send_flags]) 48 sendmsg$NL80211_CMD_GET_STATION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_STATION, nl80211_policy$station]], f flags[send_flags]) 49 sendmsg$NL80211_CMD_SET_STATION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_STATION, nl80211_policy$station]], f flags[send_flags]) 50 sendmsg$NL80211_CMD_NEW_STATION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_NEW_STATION, nl80211_policy$station]], f flags[send_flags]) 51 sendmsg$NL80211_CMD_DEL_STATION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_STATION, nl80211_policy$station]], f flags[send_flags]) 52 sendmsg$NL80211_CMD_GET_MPATH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_MPATH, nl80211_policy$mpath]], f flags[send_flags]) 53 sendmsg$NL80211_CMD_SET_MPATH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_MPATH, nl80211_policy$mpath]], f flags[send_flags]) 54 sendmsg$NL80211_CMD_NEW_MPATH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_NEW_MPATH, nl80211_policy$mpath]], f flags[send_flags]) 55 sendmsg$NL80211_CMD_DEL_MPATH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_MPATH, nl80211_policy$mpath]], f flags[send_flags]) 56 sendmsg$NL80211_CMD_GET_MPP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_MPP, nl80211_policy$mpath]], f flags[send_flags]) 57 sendmsg$NL80211_CMD_SET_BSS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_BSS, nl80211_policy$bss]], f flags[send_flags]) 58 sendmsg$NL80211_CMD_GET_REG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_REG, void, nl80211_policy$reg]], f flags[send_flags]) 59 sendmsg$NL80211_CMD_SET_REG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_REG, void, nl80211_policy$reg]], f flags[send_flags]) 60 sendmsg$NL80211_CMD_REQ_SET_REG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_REQ_SET_REG, void, nl80211_policy$reg]], f flags[send_flags]) 61 sendmsg$NL80211_CMD_GET_MESH_CONFIG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_MESH_CONFIG, void]], f flags[send_flags]) 62 sendmsg$NL80211_CMD_SET_MESH_CONFIG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_MESH_CONFIG, nl80211_policy$mesh]], f flags[send_flags]) 63 sendmsg$NL80211_CMD_JOIN_MESH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_JOIN_MESH, nl80211_policy$join_mesh]], f flags[send_flags]) 64 sendmsg$NL80211_CMD_LEAVE_MESH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_LEAVE_MESH, void]], f flags[send_flags]) 65 sendmsg$NL80211_CMD_TRIGGER_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_TRIGGER_SCAN, nl80211_policy$scan]], f flags[send_flags]) 66 sendmsg$NL80211_CMD_GET_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_SCAN, void]], f flags[send_flags]) 67 sendmsg$NL80211_CMD_START_SCHED_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_START_SCHED_SCAN, nl80211_policy$scan]], f flags[send_flags]) 68 sendmsg$NL80211_CMD_STOP_SCHED_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_STOP_SCHED_SCAN, nl80211_policy$cookie]], f flags[send_flags]) 69 sendmsg$NL80211_CMD_JOIN_IBSS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_JOIN_IBSS, nl80211_policy$join_ibss]], f flags[send_flags]) 70 sendmsg$NL80211_CMD_LEAVE_IBSS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_LEAVE_IBSS, void]], f flags[send_flags]) 71 sendmsg$NL80211_CMD_CONNECT(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CONNECT, nl80211_policy$connect]], f flags[send_flags]) 72 sendmsg$NL80211_CMD_DISCONNECT(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DISCONNECT, nl80211_policy$disconnect]], f flags[send_flags]) 73 sendmsg$NL80211_CMD_UNEXPECTED_FRAME(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_UNEXPECTED_FRAME, void]], f flags[send_flags]) 74 sendmsg$NL80211_CMD_NOTIFY_RADAR(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_NOTIFY_RADAR, nl80211_policy$chandef_params]], f flags[send_flags]) 75 sendmsg$NL80211_CMD_RADAR_DETECT(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_RADAR_DETECT, nl80211_policy$chandef_params]], f flags[send_flags]) 76 sendmsg$NL80211_CMD_PEER_MEASUREMENT_START(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_PEER_MEASUREMENT_START, nl80211_pmsr_attr_policy]], f flags[send_flags]) 77 sendmsg$NL80211_CMD_UPDATE_OWE_INFO(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_UPDATE_OWE_INFO, nl80211_policy$upd_owe_info]], f flags[send_flags]) 78 sendmsg$NL80211_CMD_GET_SURVEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_SURVEY, void]], f flags[send_flags]) 79 sendmsg$NL80211_CMD_GET_COALESCE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_GET_COALESCE, void]], f flags[send_flags]) 80 sendmsg$NL80211_CMD_GET_FTM_RESPONDER_STATS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_FTM_RESPONDER_STATS, void]], f flags[send_flags]) 81 sendmsg$NL80211_CMD_ADD_NAN_FUNCTION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_ADD_NAN_FUNCTION, nl80211_policy$add_nan_func]], f flags[send_flags]) 82 sendmsg$NL80211_CMD_DEL_NAN_FUNCTION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_NAN_FUNCTION, nl80211_policy$del_nan_func]], f flags[send_flags]) 83 sendmsg$NL80211_CMD_START_NAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_START_NAN, nl80211_policy$start_nan]], f flags[send_flags]) 84 sendmsg$NL80211_CMD_STOP_NAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_STOP_NAN, void]], f flags[send_flags]) 85 sendmsg$NL80211_CMD_CHANGE_NAN_CONFIG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CHANGE_NAN_CONFIG, nl80211_policy$start_nan]], f flags[send_flags]) 86 sendmsg$NL80211_CMD_PROBE_CLIENT(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_PROBE_CLIENT, nl80211_policy$probe_client]], f flags[send_flags]) 87 sendmsg$NL80211_CMD_SET_CHANNEL(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_CHANNEL, nl80211_policy$chandef_params]], f flags[send_flags]) 88 sendmsg$NL80211_CMD_SET_COALESCE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_COALESCE, nl80211_coalesce_policy]], f flags[send_flags]) 89 sendmsg$NL80211_CMD_SET_MAC_ACL(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_MAC_ACL, nl80211_policy$acl]], f flags[send_flags]) 90 sendmsg$NL80211_CMD_SET_MCAST_RATE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_MCAST_RATE, nl80211_policy$set_mcast_rate]], f flags[send_flags]) 91 sendmsg$NL80211_CMD_SET_MULTICAST_TO_UNICAST(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_MULTICAST_TO_UNICAST, nl80211_policy$set_mcast_to_ucast]], f flags[send_flags]) 92 sendmsg$NL80211_CMD_SET_NOACK_MAP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_NOACK_MAP, nl80211_policy$set_noack_map]], f flags[send_flags]) 93 sendmsg$NL80211_CMD_SET_PMK(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_PMK, nl80211_policy$set_pmk]], f flags[send_flags]) 94 sendmsg$NL80211_CMD_DEL_PMK(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_PMK, nl80211_policy$del_pmk]], f flags[send_flags]) 95 sendmsg$NL80211_CMD_SET_PMKSA(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_PMKSA, nl80211_policy$setdel_pmksa]], f flags[send_flags]) 96 sendmsg$NL80211_CMD_DEL_PMKSA(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_PMKSA, nl80211_policy$setdel_pmksa]], f flags[send_flags]) 97 sendmsg$NL80211_CMD_FLUSH_PMKSA(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_FLUSH_PMKSA, void]], f flags[send_flags]) 98 sendmsg$NL80211_CMD_FRAME_WAIT_CANCEL(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_FRAME_WAIT_CANCEL, nl80211_policy$cookie]], f flags[send_flags]) 99 sendmsg$NL80211_CMD_ABORT_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_ABORT_SCAN, void]], f flags[send_flags]) 100 sendmsg$NL80211_CMD_SET_POWER_SAVE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_POWER_SAVE, nl80211_policy$power_save]], f flags[send_flags]) 101 sendmsg$NL80211_CMD_GET_POWER_SAVE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_POWER_SAVE, void]], f flags[send_flags]) 102 sendmsg$NL80211_CMD_REMAIN_ON_CHANNEL(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_REMAIN_ON_CHANNEL, nl80211_policy$remain_on_ch]], f flags[send_flags]) 103 sendmsg$NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, nl80211_policy$cookie]], f flags[send_flags]) 104 sendmsg$NL80211_CMD_UPDATE_FT_IES(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_UPDATE_FT_IES, nl80211_policy$update_ft_ies]], f flags[send_flags]) 105 sendmsg$NL80211_CMD_VENDOR(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_VENDOR, nl80211_policy$vendor]], f flags[send_flags]) 106 sendmsg$NL80211_CMD_SET_QOS_MAP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_QOS_MAP, nl80211_policy$set_qos_map]], f flags[send_flags]) 107 sendmsg$NL80211_CMD_SET_CQM(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_CQM, nl80211_policy$cqm]], f flags[send_flags]) 108 sendmsg$NL80211_CMD_RELOAD_REGDB(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_RELOAD_REGDB, void, void]], f flags[send_flags]) 109 sendmsg$NL80211_CMD_LEAVE_OCB(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_LEAVE_OCB, void]], f flags[send_flags]) 110 sendmsg$NL80211_CMD_FRAME(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_FRAME, nl80211_policy$mgmt_frame]], f flags[send_flags]) 111 sendmsg$NL80211_CMD_ADD_TX_TS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_ADD_TX_TS, nl80211_policy$add_tx_ts]], f flags[send_flags]) 112 sendmsg$NL80211_CMD_DEL_TX_TS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_TX_TS, nl80211_policy$del_tx_ts]], f flags[send_flags]) 113 sendmsg$NL80211_CMD_AUTHENTICATE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_AUTHENTICATE, nl80211_policy$authenticate]], f flags[send_flags]) 114 sendmsg$NL80211_CMD_DEAUTHENTICATE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEAUTHENTICATE, nl80211_policy$de_auth_assoc]], f flags[send_flags]) 115 sendmsg$NL80211_CMD_ASSOCIATE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_ASSOCIATE, nl80211_policy$associate]], f flags[send_flags]) 116 sendmsg$NL80211_CMD_DISASSOCIATE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DISASSOCIATE, nl80211_policy$de_auth_assoc]], f flags[send_flags]) 117 sendmsg$NL80211_CMD_EXTERNAL_AUTH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_EXTERNAL_AUTH, nl80211_policy$ext_auth]], f flags[send_flags]) 118 sendmsg$NL80211_CMD_SET_REKEY_OFFLOAD(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_REKEY_OFFLOAD, nl80211_policy$rekey_offload]], f flags[send_flags]) 119 sendmsg$NL80211_CMD_GET_PROTOCOL_FEATURES(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_PROTOCOL_FEATURES, void, void]], f flags[send_flags]) 120 sendmsg$NL80211_CMD_SET_WDS_PEER(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_WDS_PEER, nl80211_policy$set_wds_peer]], f flags[send_flags]) 121 sendmsg$NL80211_CMD_SET_TID_CONFIG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_TID_CONFIG, nl80211_policy$set_tid_config]], f flags[send_flags]) 122 sendmsg$NL80211_CMD_UPDATE_CONNECT_PARAMS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_UPDATE_CONNECT_PARAMS, nl80211_policy$upd_connect_params]], f flags[send_flags]) 123 sendmsg$NL80211_CMD_TDLS_MGMT(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_TDLS_MGMT, nl80211_policy$tdls_mgmt]], f flags[send_flags]) 124 sendmsg$NL80211_CMD_TDLS_OPER(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_TDLS_OPER, nl80211_policy$tdls_oper]], f flags[send_flags]) 125 sendmsg$NL80211_CMD_JOIN_OCB(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_JOIN_OCB, nl80211_policy$chandef_params]], f flags[send_flags]) 126 sendmsg$NL80211_CMD_CONTROL_PORT_FRAME(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CONTROL_PORT_FRAME, nl80211_policy$control_port]], f flags[send_flags]) 127 sendmsg$NL80211_CMD_CRIT_PROTOCOL_START(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CRIT_PROTOCOL_START, nl80211_policy$crit_proto_start]], f flags[send_flags]) 128 sendmsg$NL80211_CMD_CRIT_PROTOCOL_STOP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CRIT_PROTOCOL_STOP, void]], f flags[send_flags]) 129 sendmsg$NL80211_CMD_PROBE_MESH_LINK(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_PROBE_MESH_LINK, nl80211_policy$probe_mesh_link]], f flags[send_flags]) 130 sendmsg$NL80211_CMD_REGISTER_BEACONS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_REGISTER_BEACONS, void]], f flags[send_flags]) 131 sendmsg$NL80211_CMD_REGISTER_FRAME(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_REGISTER_FRAME, nl80211_policy$register_mgmt]], f flags[send_flags]) 132 sendmsg$NL80211_CMD_TDLS_CHANNEL_SWITCH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_TDLS_CHANNEL_SWITCH, nl80211_policy$tdls_chsw]], f flags[send_flags]) 133 sendmsg$NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, nl80211_policy$tdls_chsw_cancel]], f flags[send_flags]) 134 sendmsg$NL80211_CMD_CHANNEL_SWITCH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CHANNEL_SWITCH, nl80211_policy$chsw]], f flags[send_flags]) 135 sendmsg$NL80211_CMD_START_P2P_DEVICE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_START_P2P_DEVICE, void]], f flags[send_flags]) 136 sendmsg$NL80211_CMD_STOP_P2P_DEVICE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_STOP_P2P_DEVICE, void]], f flags[send_flags]) 137 sendmsg$NL80211_CMD_GET_WOWLAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_GET_WOWLAN, void]], f flags[send_flags]) 138 sendmsg$NL80211_CMD_SET_WOWLAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_SET_WOWLAN, nl80211_policy$set_wowlan]], f flags[send_flags]) 139 sendmsg$NL80211_CMD_TESTMODE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_TESTMODE, nl80211_policy$testmode]], f flags[send_flags]) 140 sendmsg$NL80211_CMD_SET_TX_BITRATE_MASK(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_TX_BITRATE_MASK, nl80211_policy$set_tx_bitrate]], f flags[send_flags]) 141 142 nl80211_wdev_payload { 143 NL80211_ATTR_IFINDEX optional[nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]] 144 NL80211_ATTR_WDEV optional[nlattr[NL80211_ATTR_WDEV, nl80211_wdev]] 145 } [packed, align[4]] 146 147 nl80211_rdev_payload { 148 NL80211_ATTR_WIPHY optional[nlattr[NL80211_ATTR_WIPHY, nl80211_wiphy]] 149 NL80211_ATTR_IFINDEX optional[nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]] 150 NL80211_ATTR_WDEV optional[nlattr[NL80211_ATTR_WDEV, nl80211_wdev]] 151 } [packed, align[4]] 152 153 nl80211_channel_types = NL80211_CHAN_NO_HT, NL80211_CHAN_HT20, NL80211_CHAN_HT40MINUS, NL80211_CHAN_HT40PLUS 154 nl80211_channel_widths = NL80211_CHAN_WIDTH_20_NOHT, NL80211_CHAN_WIDTH_20, NL80211_CHAN_WIDTH_40, NL80211_CHAN_WIDTH_80, NL80211_CHAN_WIDTH_80P80, NL80211_CHAN_WIDTH_160, NL80211_CHAN_WIDTH_5, NL80211_CHAN_WIDTH_10 155 156 nl80211_policy$chandef_params [ 157 NL80211_ATTR_WIPHY_FREQ nlattr[NL80211_ATTR_WIPHY_FREQ, ieee80211_frequency_mhz[int32]] 158 NL80211_ATTR_WIPHY_FREQ_OFFSET nlattr[NL80211_ATTR_WIPHY_FREQ_OFFSET, int32[0:999]] 159 NL80211_ATTR_WIPHY_CHANNEL_TYPE nlattr[NL80211_ATTR_WIPHY_CHANNEL_TYPE, flags[nl80211_channel_types, int32]] 160 NL80211_ATTR_CENTER_FREQ1 nlattr[NL80211_ATTR_CENTER_FREQ1, int32] 161 NL80211_ATTR_CENTER_FREQ2 nlattr[NL80211_ATTR_CENTER_FREQ2, int32] 162 NL80211_ATTR_CHANNEL_WIDTH nlattr[NL80211_ATTR_CHANNEL_WIDTH, flags[nl80211_channel_widths, int32]] 163 NL80211_ATTR_WIPHY_EDMG_CHANNELS nlattr[NL80211_ATTR_WIPHY_EDMG_CHANNELS, int8[NL80211_EDMG_CHANNELS_MIN:NL80211_EDMG_CHANNELS_MAX]] 164 NL80211_ATTR_WIPHY_EDMG_BW_CONFIG nlattr[NL80211_ATTR_WIPHY_EDMG_BW_CONFIG, int8[NL80211_EDMG_BW_CONFIG_MIN:NL80211_EDMG_BW_CONFIG_MAX]] 165 ] [varlen] 166 167 nl80211_wdev { 168 # TODO: what is this? 169 wdev_id int32 170 wiphy nl80211_wiphy 171 } 172 173 nl80211_policy$wiphy [ 174 NL80211_ATTR_WIPHY_NAME nlattr[NL80211_ATTR_WIPHY_NAME, devname] 175 NL80211_ATTR_WIPHY_TXQ_PARAMS nlnest[NL80211_ATTR_WIPHY_TXQ_PARAMS, array[txq_params_policy]] 176 NL80211_ATTR_WIPHY_FREQ nlattr[NL80211_ATTR_WIPHY_FREQ, ieee80211_frequency_mhz[int32]] 177 NL80211_ATTR_WIPHY_RETRY_SHORT nlattr[NL80211_ATTR_WIPHY_RETRY_SHORT, int8] 178 NL80211_ATTR_WIPHY_RETRY_LONG nlattr[NL80211_ATTR_WIPHY_RETRY_LONG, int8] 179 NL80211_ATTR_WIPHY_FRAG_THRESHOLD nlattr[NL80211_ATTR_WIPHY_FRAG_THRESHOLD, int32] 180 NL80211_ATTR_WIPHY_RTS_THRESHOLD nlattr[NL80211_ATTR_WIPHY_RTS_THRESHOLD, int32] 181 NL80211_ATTR_WIPHY_TX_POWER_SETTING nlattr[NL80211_ATTR_WIPHY_TX_POWER_SETTING, int32] 182 NL80211_ATTR_WIPHY_TX_POWER_LEVEL nlattr[NL80211_ATTR_WIPHY_TX_POWER_LEVEL, int32] 183 NL80211_ATTR_WIPHY_ANTENNA_TX nlattr[NL80211_ATTR_WIPHY_ANTENNA_TX, int32] 184 NL80211_ATTR_WIPHY_ANTENNA_RX nlattr[NL80211_ATTR_WIPHY_ANTENNA_RX, int32] 185 NL80211_ATTR_WIPHY_COVERAGE_CLASS nlattr[NL80211_ATTR_WIPHY_COVERAGE_CLASS, int8] 186 NL80211_ATTR_WIPHY_DYN_ACK nlattr[NL80211_ATTR_WIPHY_DYN_ACK, void] 187 NL80211_ATTR_TXQ_LIMIT nlattr[NL80211_ATTR_TXQ_LIMIT, int32] 188 NL80211_ATTR_TXQ_MEMORY_LIMIT nlattr[NL80211_ATTR_TXQ_MEMORY_LIMIT, int32] 189 NL80211_ATTR_TXQ_QUANTUM nlattr[NL80211_ATTR_TXQ_QUANTUM, int32] 190 ] [varlen] 191 192 nl80211_policy$setns [ 193 NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_wiphy] 194 NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex] 195 NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev] 196 NL80211_ATTR_PID nlattr[NL80211_ATTR_PID, pid] 197 NL80211_ATTR_NETNS_FD nlattr[NL80211_ATTR_NETNS_FD, fd_namespace] 198 ] [varlen] 199 200 txq_params_policy [ 201 NL80211_TXQ_ATTR_QUEUE nlattr[NL80211_TXQ_ATTR_QUEUE, int8] 202 NL80211_TXQ_ATTR_TXOP nlattr[NL80211_TXQ_ATTR_TXOP, int16] 203 NL80211_TXQ_ATTR_CWMIN nlattr[NL80211_TXQ_ATTR_CWMIN, int16] 204 NL80211_TXQ_ATTR_CWMAX nlattr[NL80211_TXQ_ATTR_CWMAX, int16] 205 NL80211_TXQ_ATTR_AIFS nlattr[NL80211_TXQ_ATTR_AIFS, int8] 206 ] [varlen] 207 208 nl80211_policy$set_interface [ 209 mon_options array[nl80211_policy$mon_options] 210 NL80211_ATTR_IFTYPE nlattr[NL80211_ATTR_IFTYPE, flags[nl80211_iftype, int32]] 211 NL80211_ATTR_MESH_ID nlattr[NL80211_ATTR_MESH_ID, ieee80211_mesh_id] 212 NL80211_ATTR_4ADDR nlattr[NL80211_ATTR_4ADDR, bool8] 213 ] [varlen] 214 215 nl80211_policy$new_interface [ 216 mon_options array[nl80211_policy$mon_options] 217 NL80211_ATTR_IFTYPE nlattr[NL80211_ATTR_IFTYPE, flags[nl80211_iftype, int32]] 218 NL80211_ATTR_IFNAME nlattr[NL80211_ATTR_IFNAME, devname] 219 NL80211_ATTR_SOCKET_OWNER nlattr[NL80211_ATTR_SOCKET_OWNER, void] 220 NL80211_ATTR_MESH_ID nlattr[NL80211_ATTR_MESH_ID, ieee80211_mesh_id] 221 NL80211_ATTR_4ADDR nlattr[NL80211_ATTR_4ADDR, bool8] 222 ] [varlen] 223 224 mntr_flags_policy [ 225 NL80211_MNTR_FLAG_FCSFAIL nlattr[NL80211_MNTR_FLAG_FCSFAIL, void] 226 NL80211_MNTR_FLAG_PLCPFAIL nlattr[NL80211_MNTR_FLAG_PLCPFAIL, void] 227 NL80211_MNTR_FLAG_CONTROL nlattr[NL80211_MNTR_FLAG_CONTROL, void] 228 NL80211_MNTR_FLAG_OTHER_BSS nlattr[NL80211_MNTR_FLAG_OTHER_BSS, void] 229 NL80211_MNTR_FLAG_COOK_FRAMES nlattr[NL80211_MNTR_FLAG_COOK_FRAMES, void] 230 NL80211_MNTR_FLAG_ACTIVE nlattr[NL80211_MNTR_FLAG_ACTIVE, void] 231 ] 232 233 nl80211_policy$mon_options [ 234 NL80211_ATTR_MNTR_FLAGS nlnest[NL80211_ATTR_MNTR_FLAGS, array[mntr_flags_policy]] 235 NL80211_ATTR_MU_MIMO_GROUP_DATA nlattr[NL80211_ATTR_MU_MIMO_GROUP_DATA, array[int8, VHT_MUMIMO_GROUPS_DATA_LEN]] 236 NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR nlattr[NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR, ieee80211_mac_addr] 237 ] [varlen] 238 239 nl80211_iftype = NL80211_IFTYPE_UNSPECIFIED, NL80211_IFTYPE_ADHOC, NL80211_IFTYPE_STATION, NL80211_IFTYPE_AP, NL80211_IFTYPE_AP_VLAN, NL80211_IFTYPE_WDS, NL80211_IFTYPE_MONITOR, NL80211_IFTYPE_MESH_POINT, NL80211_IFTYPE_P2P_CLIENT, NL80211_IFTYPE_P2P_GO, NL80211_IFTYPE_P2P_DEVICE, NL80211_IFTYPE_OCB, NL80211_IFTYPE_NAN 240 241 nl80211_policy$cmd_key [ 242 NL80211_ATTR_KEY_IDX nlattr[NL80211_ATTR_KEY_IDX, int8[0:5]] 243 NL80211_ATTR_KEY_TYPE nlattr[NL80211_ATTR_KEY_TYPE, flags[nl80211_key_type, int32]] 244 NL80211_ATTR_KEY_DEFAULT nlattr[NL80211_ATTR_KEY_DEFAULT, void] 245 NL80211_ATTR_KEY_DEFAULT_MGMT nlattr[NL80211_ATTR_KEY_DEFAULT_MGMT, void] 246 NL80211_ATTR_KEY_CIPHER nlattr[NL80211_ATTR_KEY_CIPHER, flags[nl80211_cipher_suite, int32]] 247 NL80211_ATTR_KEY_DATA_WEP40 nlattr[NL80211_ATTR_KEY_DATA, array[int8, WLAN_KEY_LEN_WEP40]] 248 NL80211_ATTR_KEY_DATA_WEP104 nlattr[NL80211_ATTR_KEY_DATA, array[int8, WLAN_KEY_LEN_WEP104]] 249 NL80211_ATTR_KEY_SEQ nlattr[NL80211_ATTR_KEY_SEQ, array[int8, 0:16]] 250 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 251 NL80211_ATTR_KEY_DEFAULT_TYPES nlnest[NL80211_ATTR_KEY_DEFAULT_TYPES, array[nl80211_key_default_policy]] 252 NL80211_ATTR_KEY nlnest[NL80211_ATTR_KEY, array[nl80211_key_policy]] 253 ] [varlen] 254 255 nl80211_key_default_policy [ 256 NL80211_KEY_DEFAULT_TYPE_UNICAST nlattr[NL80211_KEY_DEFAULT_TYPE_UNICAST, void] 257 NL80211_KEY_DEFAULT_TYPE_MULTICAST nlattr[NL80211_KEY_DEFAULT_TYPE_MULTICAST, void] 258 ] [varlen] 259 260 nl80211_key_policy [ 261 NL80211_KEY_DATA_WEP40 nlattr[NL80211_KEY_DATA, array[int8, WLAN_KEY_LEN_WEP40]] 262 NL80211_KEY_DATA_WEP104 nlattr[NL80211_KEY_DATA, array[int8, WLAN_KEY_LEN_WEP104]] 263 NL80211_KEY_IDX nlattr[NL80211_KEY_IDX, int8[0:5]] 264 NL80211_KEY_CIPHER nlattr[NL80211_KEY_CIPHER, flags[nl80211_cipher_suite, int32]] 265 NL80211_KEY_SEQ nlattr[NL80211_KEY_SEQ, array[int8, 0:16]] 266 NL80211_KEY_DEFAULT nlattr[NL80211_KEY_DEFAULT, void] 267 NL80211_KEY_DEFAULT_MGMT nlattr[NL80211_KEY_DEFAULT_MGMT, void] 268 NL80211_KEY_TYPE nlattr[NL80211_KEY_TYPE, flags[nl80211_key_type, int32]] 269 NL80211_KEY_DEFAULT_TYPES nlnest[NL80211_KEY_DEFAULT_TYPES, array[nl80211_key_default_policy]] 270 NL80211_KEY_MODE nlattr[NL80211_KEY_MODE, int8[0:NL80211_KEY_SET_TX]] 271 ] [varlen] 272 273 nl80211_key_type = NL80211_KEYTYPE_GROUP, NL80211_KEYTYPE_PAIRWISE, NL80211_KEYTYPE_PEERKEY 274 nl80211_cipher_suite = WLAN_CIPHER_SUITE_WEP40, WLAN_CIPHER_SUITE_WEP104 275 276 he_obss_pd_policy [ 277 NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET nlattr[NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET, int8[1:20]] 278 NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET nlattr[NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET, int8[1:20]] 279 NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET nlattr[NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET, int8[1:20]] 280 NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP nlattr[NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP, array[int8, 8]] 281 NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP nlattr[NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP, array[int8, 8]] 282 NL80211_HE_OBSS_PD_ATTR_SR_CTRL nlattr[NL80211_HE_OBSS_PD_ATTR_SR_CTRL, int8] 283 ] 284 285 he_bss_color_policy [ 286 NL80211_HE_BSS_COLOR_ATTR_COLOR nlattr[NL80211_HE_BSS_COLOR_ATTR_COLOR, int8[1:63]] 287 NL80211_HE_BSS_COLOR_ATTR_DISABLED nlattr[NL80211_HE_BSS_COLOR_ATTR_DISABLED, void] 288 NL80211_HE_BSS_COLOR_ATTR_PARTIAL nlattr[NL80211_HE_BSS_COLOR_ATTR_PARTIAL, void] 289 ] [varlen] 290 291 nl80211_policy$start_ap [ 292 beacon array[nl80211_policy$beacon] 293 chandef_params array[nl80211_policy$chandef_params] 294 crypto_settings array[nl80211_policy$crypto_settings] 295 acl_policy array[nl80211_policy$acl] 296 NL80211_ATTR_BEACON_INTERVAL nlattr[NL80211_ATTR_BEACON_INTERVAL, ieee80211_beacon_interval[int32]] 297 NL80211_ATTR_DTIM_PERIOD nlattr[NL80211_ATTR_DTIM_PERIOD, int32] 298 NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid] 299 NL80211_ATTR_HIDDEN_SSID nlattr[NL80211_ATTR_HIDDEN_SSID, int32[NL80211_HIDDEN_SSID_NOT_IN_USE:NL80211_HIDDEN_SSID_ZERO_CONTENTS]] 300 NL80211_ATTR_PRIVACY nlattr[NL80211_ATTR_PRIVACY, void] 301 NL80211_ATTR_AUTH_TYPE nlattr[NL80211_ATTR_AUTH_TYPE, flags[nl80211_auth_type, int32]] 302 NL80211_ATTR_INACTIVITY_TIMEOUT nlattr[NL80211_ATTR_INACTIVITY_TIMEOUT, int16] 303 NL80211_ATTR_P2P_CTWINDOW nlattr[NL80211_ATTR_P2P_CTWINDOW, int8] 304 NL80211_ATTR_P2P_OPPPS nlattr[NL80211_ATTR_P2P_OPPPS, bool8] 305 NL80211_ATTR_TX_RATES nlnest[NL80211_ATTR_TX_RATES, array[nl80211_tx_rates_policy]] 306 NL80211_ATTR_SMPS_MODE nlattr[NL80211_ATTR_SMPS_MODE, flags[nl80211_smps_mode, int8]] 307 NL80211_ATTR_PBSS nlattr[NL80211_ATTR_PBSS, void] 308 NL80211_ATTR_EXTERNAL_AUTH_SUPPORT nlattr[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT, void] 309 NL80211_ATTR_TWT_RESPONDER nlattr[NL80211_ATTR_TWT_RESPONDER, void] 310 NL80211_ATTR_HE_OBSS_PD nlnest[NL80211_ATTR_HE_OBSS_PD, array[he_obss_pd_policy]] 311 NL80211_ATTR_HE_BSS_COLOR nlnest[NL80211_ATTR_HE_BSS_COLOR, array[he_bss_color_policy]] 312 ] [varlen] 313 314 nl80211_policy$beacon [ 315 NL80211_ATTR_BEACON_HEAD nlattr[NL80211_ATTR_BEACON_HEAD, ieee80211_mgmt_beacon] 316 NL80211_ATTR_BEACON_TAIL nlattr[NL80211_ATTR_BEACON_TAIL, array[ieee80211_ie]] 317 NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]] 318 NL80211_ATTR_IE_PROBE_RESP nlattr[NL80211_ATTR_IE_PROBE_RESP, array[ieee80211_ie]] 319 NL80211_ATTR_IE_ASSOC_RESP nlattr[NL80211_ATTR_IE_ASSOC_RESP, array[ieee80211_ie]] 320 NL80211_ATTR_PROBE_RESP nlattr[NL80211_ATTR_PROBE_RESP, array[int8, 0:IEEE80211_MAX_DATA_LEN]] 321 NL80211_ATTR_FTM_RESPONDER nlnest[NL80211_ATTR_FTM_RESPONDER, array[nl80211_ftm_responder_policy]] 322 ] [varlen] 323 324 nl80211_smps_mode = NL80211_SMPS_OFF, NL80211_SMPS_STATIC, NL80211_SMPS_DYNAMIC 325 nl80211_auth_type = NL80211_AUTHTYPE_OPEN_SYSTEM, NL80211_AUTHTYPE_SHARED_KEY, NL80211_AUTHTYPE_FT, NL80211_AUTHTYPE_NETWORK_EAP, NL80211_AUTHTYPE_SAE, NL80211_AUTHTYPE_FILS_SK, NL80211_AUTHTYPE_FILS_SK_PFS, NL80211_AUTHTYPE_FILS_PK 326 nl80211_wpa_versions = NL80211_WPA_VERSION_1, NL80211_WPA_VERSION_2, NL80211_WPA_VERSION_3 327 328 type nl80211_rates array[ieee80211_rate, 0:NL80211_MAX_SUPP_RATES] 329 330 nl80211_tx_rates_policy [ 331 NL80211_BAND_2GHZ nlnest[NL80211_BAND_2GHZ, array[nl80211_txattr_policy]] 332 NL80211_BAND_5GHZ nlnest[NL80211_BAND_5GHZ, array[nl80211_txattr_policy]] 333 NL80211_BAND_60GHZ nlnest[NL80211_BAND_60GHZ, array[nl80211_txattr_policy]] 334 NL80211_BAND_6GHZ nlnest[NL80211_BAND_6GHZ, array[nl80211_txattr_policy]] 335 ] [varlen] 336 337 nl80211_ht_rate { 338 rbit int8:3 339 ridx int8:5[0:IEEE80211_HT_MCS_MASK_LEN] 340 } [packed] 341 342 nl80211_txattr_policy [ 343 NL80211_TXRATE_LEGACY nlattr[NL80211_TXRATE_LEGACY, array[flags[ieee80211_rate_label, int8], 0:NL80211_MAX_SUPP_RATES]] 344 NL80211_TXRATE_HT nlattr[NL80211_TXRATE_HT, array[nl80211_ht_rate, 0:NL80211_MAX_SUPP_HT_RATES]] 345 NL80211_TXRATE_VHT nlattr[NL80211_TXRATE_VHT, nl80211_txrate_vht] 346 NL80211_TXRATE_GI nlattr[NL80211_TXRATE_GI, flags[nl80211_txrate_gi, int8]] 347 NL80211_TXRATE_HE nlattr[NL80211_TXRATE_HE, nl80211_txrate_he] 348 NL80211_TXRATE_HE_GI nlattr[NL80211_TXRATE_HE_GI, int8[NL80211_RATE_INFO_HE_GI_0_8:NL80211_RATE_INFO_HE_GI_3_2]] 349 NL80211_TXRATE_HE_LTF nlattr[NL80211_TXRATE_HE_LTF, int8[NL80211_RATE_INFO_HE_1XLTF:NL80211_RATE_INFO_HE_4XLTF]] 350 ] [varlen] 351 352 nl80211_txrate_gi = NL80211_TXRATE_DEFAULT_GI, NL80211_TXRATE_FORCE_SGI, NL80211_TXRATE_FORCE_LGI 353 354 nl80211_txrate_he { 355 mcs array[int16, NL80211_HE_NSS_MAX] 356 } 357 358 nl80211_txrate_vht { 359 mcs array[int16, NL80211_VHT_NSS_MAX] 360 } 361 362 nl80211_ftm_responder_policy [ 363 NL80211_FTM_RESP_ATTR_ENABLED nlattr[NL80211_FTM_RESP_ATTR_ENABLED, void] 364 NL80211_FTM_RESP_ATTR_LCI nlattr[NL80211_FTM_RESP_ATTR_LCI, array[int8]] 365 NL80211_FTM_RESP_ATTR_CIVICLOC nlattr[NL80211_FTM_RESP_ATTR_CIVICLOC, array[int8]] 366 ] [varlen] 367 368 nl80211_policy$station [ 369 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 370 NL80211_ATTR_MGMT_SUBTYPE nlattr[NL80211_ATTR_MGMT_SUBTYPE, flags[ieee80211_mgmt_subtype, int8]] 371 NL80211_ATTR_REASON_CODE nlattr[NL80211_ATTR_REASON_CODE, int16] 372 NL80211_ATTR_STA_AID nlattr[NL80211_ATTR_STA_AID, int16[1:IEEE80211_MAX_AID]] 373 NL80211_ATTR_VLAN_ID nlattr[NL80211_ATTR_VLAN_ID, int16[1:4]] 374 NL80211_ATTR_STA_LISTEN_INTERVAL nlattr[NL80211_ATTR_STA_LISTEN_INTERVAL, int16] 375 NL80211_ATTR_STA_SUPPORT_P2P_PS nlattr[NL80211_ATTR_STA_SUPPORT_P2P_PS, bool8] 376 NL80211_ATTR_STA_SUPPORTED_RATES nlattr[NL80211_ATTR_STA_SUPPORTED_RATES, nl80211_rates] 377 NL80211_ATTR_STA_CAPABILITY nlattr[NL80211_ATTR_STA_CAPABILITY, int16] 378 NL80211_ATTR_STA_EXT_CAPABILITY nlattr[NL80211_ATTR_STA_EXT_CAPABILITY, array[int8]] 379 NL80211_ATTR_STA_FLAGS nlnest[NL80211_ATTR_STA_FLAGS, array[sta_flags_policy]] 380 NL80211_ATTR_STA_FLAGS2 nlattr[NL80211_ATTR_STA_FLAGS2, nl80211_sta_flag_update] 381 NL80211_ATTR_STA_PLINK_ACTION nlattr[NL80211_ATTR_STA_PLINK_ACTION, int8[0:NUM_NL80211_PLINK_ACTIONS_1]] 382 NL80211_ATTR_STA_PLINK_STATE nlattr[NL80211_ATTR_STA_PLINK_STATE, int8[0:NUM_NL80211_PLINK_STATES_1]] 383 NL80211_ATTR_LOCAL_MESH_POWER_MODE nlattr[NL80211_ATTR_LOCAL_MESH_POWER_MODE, int32[1:NL80211_MESH_POWER_MAX]] 384 NL80211_ATTR_OPMODE_NOTIF nlattr[NL80211_ATTR_OPMODE_NOTIF, int8] 385 NL80211_ATTR_AIRTIME_WEIGHT nlattr[NL80211_ATTR_AIRTIME_WEIGHT, int16] 386 NL80211_ATTR_STA_TX_POWER_SETTING nlattr[NL80211_ATTR_STA_TX_POWER_SETTING, int8[NL80211_TX_POWER_AUTOMATIC:NL80211_TX_POWER_FIXED]] 387 NL80211_ATTR_STA_TX_POWER nlattr[NL80211_ATTR_STA_TX_POWER, int16] 388 NL80211_ATTR_STA_SUPPORTED_CHANNELS nlattr[NL80211_ATTR_STA_SUPPORTED_CHANNELS, array[int16]] 389 NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES nlattr[NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES, array[int8, 2:253]] 390 NL80211_ATTR_STA_WME nlattr[NL80211_ATTR_STA_WME, array[nl80211_sta_wme_policy]] 391 NL80211_ATTR_PEER_AID nlattr[NL80211_ATTR_PEER_AID, int16[1:IEEE80211_MAX_AID]] 392 NL80211_ATTR_MESH_PEER_AID nlattr[NL80211_ATTR_MESH_PEER_AID, int16[1:IEEE80211_MAX_AID]] 393 NL80211_ATTR_STA_VLAN nlattr[NL80211_ATTR_STA_VLAN, nl80211_ifindex] 394 ] [varlen] 395 396 define NUM_NL80211_PLINK_ACTIONS_1 NUM_NL80211_PLINK_ACTIONS - 1 397 define NUM_NL80211_PLINK_STATES_1 NUM_NL80211_PLINK_STATES - 1 398 399 ieee80211_mgmt_subtype = 0xa, 0xc 400 401 sta_flags_policy [ 402 NL80211_STA_FLAG_AUTHORIZED nlattr[NL80211_STA_FLAG_AUTHORIZED, void] 403 NL80211_STA_FLAG_SHORT_PREAMBLE nlattr[NL80211_STA_FLAG_SHORT_PREAMBLE, void] 404 NL80211_STA_FLAG_WME nlattr[NL80211_STA_FLAG_WME, void] 405 NL80211_STA_FLAG_MFP nlattr[NL80211_STA_FLAG_MFP, void] 406 NL80211_STA_FLAG_AUTHENTICATED nlattr[NL80211_STA_FLAG_AUTHENTICATED, void] 407 NL80211_STA_FLAG_TDLS_PEER nlattr[NL80211_STA_FLAG_TDLS_PEER, void] 408 NL80211_STA_FLAG_ASSOCIATED nlattr[NL80211_STA_FLAG_ASSOCIATED, void] 409 ] [varlen] 410 411 nl80211_sta_flag_update { 412 mask int32 413 set int32 414 } [packed] 415 416 nl80211_sta_wme_policy [ 417 NL80211_STA_WME_UAPSD_QUEUES nlattr[NL80211_STA_WME_UAPSD_QUEUES, int8] 418 NL80211_STA_WME_MAX_SP nlattr[NL80211_STA_WME_MAX_SP, int8] 419 ] [varlen] 420 421 nl80211_policy$mpath [ 422 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 423 NL80211_ATTR_MPATH_NEXT_HOP nlattr[NL80211_ATTR_MPATH_NEXT_HOP, ieee80211_mac_addr] 424 ] [varlen] 425 426 nl80211_policy$bss [ 427 NL80211_ATTR_BSS_CTS_PROT nlattr[NL80211_ATTR_BSS_CTS_PROT, int8] 428 NL80211_ATTR_BSS_SHORT_PREAMBLE nlattr[NL80211_ATTR_BSS_SHORT_PREAMBLE, int8] 429 NL80211_ATTR_BSS_SHORT_SLOT_TIME nlattr[NL80211_ATTR_BSS_SHORT_SLOT_TIME, int8] 430 NL80211_ATTR_BSS_HT_OPMODE nlattr[NL80211_ATTR_BSS_HT_OPMODE, int16] 431 NL80211_ATTR_AP_ISOLATE nlattr[NL80211_ATTR_AP_ISOLATE, int8] 432 NL80211_ATTR_P2P_CTWINDOW nlattr[NL80211_ATTR_P2P_CTWINDOW, int8] 433 NL80211_ATTR_P2P_OPPPS nlattr[NL80211_ATTR_P2P_OPPPS, bool8] 434 ] [varlen] 435 436 nl80211_policy$reg [ 437 NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_wiphy] 438 NL80211_ATTR_USER_REG_HINT_TYPE nlattr[NL80211_ATTR_USER_REG_HINT_TYPE, flags[nl80211_user_reg_hint_type, int32]] 439 NL80211_ATTR_SOCKET_OWNER nlattr[NL80211_ATTR_SOCKET_OWNER, void] 440 NL80211_ATTR_REG_ALPHA2 nlattr[NL80211_ATTR_REG_ALPHA2, string[nl80211_reg_alpha2]] 441 NL80211_ATTR_REG_RULES nlnest[NL80211_ATTR_REG_RULES, array[nlnest[0, array[reg_rule_policy]]]] 442 NL80211_ATTR_DFS_REGION nlattr[NL80211_ATTR_DFS_REGION, int8] 443 ] [varlen] 444 445 nl80211_user_reg_hint_type = NL80211_USER_REG_HINT_USER, NL80211_USER_REG_HINT_CELL_BASE, NL80211_USER_REG_HINT_INDOOR 446 nl80211_reg_alpha2 = "a", "b", "aa", "bb" 447 448 reg_rule_policy [ 449 NL80211_ATTR_REG_RULE_FLAGS nlattr[NL80211_ATTR_REG_RULE_FLAGS, int32] 450 NL80211_ATTR_FREQ_RANGE_START nlattr[NL80211_ATTR_FREQ_RANGE_START, int32] 451 NL80211_ATTR_FREQ_RANGE_END nlattr[NL80211_ATTR_FREQ_RANGE_END, int32] 452 NL80211_ATTR_FREQ_RANGE_MAX_BW nlattr[NL80211_ATTR_FREQ_RANGE_MAX_BW, int32] 453 NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN nlattr[NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN, int32] 454 NL80211_ATTR_POWER_RULE_MAX_EIRP nlattr[NL80211_ATTR_POWER_RULE_MAX_EIRP, int32] 455 NL80211_ATTR_DFS_CAC_TIME nlattr[NL80211_ATTR_DFS_CAC_TIME, int32] 456 ] [varlen] 457 458 nl80211_policy$mesh [ 459 NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_wiphy] 460 NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex] 461 NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev] 462 NL80211_ATTR_MESH_CONFIG nlnest[NL80211_ATTR_MESH_CONFIG, array[nl80211_meshconf_params_policy]] 463 ] [varlen] 464 465 nl80211_policy$join_mesh [ 466 chandef_params array[nl80211_policy$chandef_params] 467 NL80211_ATTR_MESH_CONFIG nlnest[NL80211_ATTR_MESH_CONFIG, array[nl80211_meshconf_params_policy]] 468 NL80211_ATTR_MESH_SETUP nlattr[NL80211_ATTR_MESH_SETUP, array[nl80211_mesh_setup_params_policy]] 469 NL80211_ATTR_MESH_ID nlattr[NL80211_ATTR_MESH_ID, ieee80211_mesh_id] 470 NL80211_ATTR_MCAST_RATE nlattr[NL80211_ATTR_MCAST_RATE, int32] 471 NL80211_ATTR_BEACON_INTERVAL nlattr[NL80211_ATTR_BEACON_INTERVAL, ieee80211_beacon_interval[int32]] 472 NL80211_ATTR_DTIM_PERIOD nlattr[NL80211_ATTR_DTIM_PERIOD, int32] 473 NL80211_ATTR_BSS_BASIC_RATES nlattr[NL80211_ATTR_BSS_BASIC_RATES, nl80211_rates] 474 NL80211_ATTR_TX_RATES nlnest[NL80211_ATTR_TX_RATES, array[nl80211_tx_rates_policy]] 475 NL80211_ATTR_SOCKET_OWNER nlattr[NL80211_ATTR_SOCKET_OWNER, void] 476 NL80211_ATTR_HANDLE_DFS nlattr[NL80211_ATTR_HANDLE_DFS, void] 477 NL80211_ATTR_CONTROL_PORT_OVER_NL80211 nlattr[NL80211_ATTR_CONTROL_PORT_OVER_NL80211, void] 478 ] [varlen] 479 480 nl80211_meshconf_params_policy [ 481 NL80211_MESHCONF_RETRY_TIMEOUT nlattr[NL80211_MESHCONF_RETRY_TIMEOUT, int16[1:255]] 482 NL80211_MESHCONF_CONFIRM_TIMEOUT nlattr[NL80211_MESHCONF_CONFIRM_TIMEOUT, int16[1:255]] 483 NL80211_MESHCONF_HOLDING_TIMEOUT nlattr[NL80211_MESHCONF_HOLDING_TIMEOUT, int16[1:255]] 484 NL80211_MESHCONF_MAX_PEER_LINKS nlattr[NL80211_MESHCONF_MAX_PEER_LINKS, int16[0:255]] 485 NL80211_MESHCONF_MAX_RETRIES nlattr[NL80211_MESHCONF_MAX_RETRIES, int8[0:16]] 486 NL80211_MESHCONF_TTL nlattr[NL80211_MESHCONF_TTL, int8] 487 NL80211_MESHCONF_ELEMENT_TTL nlattr[NL80211_MESHCONF_ELEMENT_TTL, int8] 488 NL80211_MESHCONF_AUTO_OPEN_PLINKS nlattr[NL80211_MESHCONF_AUTO_OPEN_PLINKS, int8] 489 NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR nlattr[NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR, int32[1:255]] 490 NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES nlattr[NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES, int8] 491 NL80211_MESHCONF_PATH_REFRESH_TIME nlattr[NL80211_MESHCONF_PATH_REFRESH_TIME, int32] 492 NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT nlattr[NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT, int16] 493 NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT nlattr[NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT, int32] 494 NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL nlattr[NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL, int16] 495 NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL nlattr[NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL, int16] 496 NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME nlattr[NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME, int16] 497 NL80211_MESHCONF_HWMP_ROOTMODE nlattr[NL80211_MESHCONF_HWMP_ROOTMODE, int8[0:4]] 498 NL80211_MESHCONF_HWMP_RANN_INTERVAL nlattr[NL80211_MESHCONF_HWMP_RANN_INTERVAL, int16] 499 NL80211_MESHCONF_GATE_ANNOUNCEMENTS nlattr[NL80211_MESHCONF_GATE_ANNOUNCEMENTS, bool8] 500 NL80211_MESHCONF_FORWARDING nlattr[NL80211_MESHCONF_FORWARDING, bool8] 501 NL80211_MESHCONF_RSSI_THRESHOLD nlattr[NL80211_MESHCONF_RSSI_THRESHOLD, int32[-255:0]] 502 NL80211_MESHCONF_HT_OPMODE nlattr[NL80211_MESHCONF_HT_OPMODE, flags[ieee80211_op_mode, int16]] 503 NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT nlattr[NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT, int32] 504 NL80211_MESHCONF_HWMP_ROOT_INTERVAL nlattr[NL80211_MESHCONF_HWMP_ROOT_INTERVAL, int16] 505 NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL nlattr[NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL, int16] 506 NL80211_MESHCONF_POWER_MODE nlattr[NL80211_MESHCONF_POWER_MODE, int32[NL80211_MESH_POWER_ACTIVE:NL80211_MESH_POWER_MAX]] 507 NL80211_MESHCONF_AWAKE_WINDOW nlattr[NL80211_MESHCONF_AWAKE_WINDOW, int16] 508 NL80211_MESHCONF_PLINK_TIMEOUT nlattr[NL80211_MESHCONF_PLINK_TIMEOUT, int32] 509 NL80211_MESHCONF_CONNECTED_TO_GATE nlattr[NL80211_MESHCONF_CONNECTED_TO_GATE, bool8] 510 NL80211_MESHCONF_NOLEARN nlattr[NL80211_MESHCONF_NOLEARN, bool8] 511 NL80211_MESHCONF_CONNECTED_TO_AS nlattr[NL80211_MESHCONF_CONNECTED_TO_AS, bool8] 512 ] [varlen] 513 514 ieee80211_op_mode = IEEE80211_HT_OP_MODE_PROTECTION, IEEE80211_HT_OP_MODE_NON_GF_STA_PRSNT, IEEE80211_HT_OP_MODE_NON_HT_STA_PRSNT 515 516 nl80211_mesh_setup_params_policy [ 517 NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC nlattr[NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC, bool8] 518 NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL nlattr[NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL, bool8] 519 NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC nlattr[NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC, bool8] 520 NL80211_MESH_SETUP_USERSPACE_AUTH nlattr[NL80211_MESH_SETUP_USERSPACE_AUTH, void] 521 NL80211_MESH_SETUP_AUTH_PROTOCOL nlattr[NL80211_MESH_SETUP_AUTH_PROTOCOL, int8] 522 NL80211_MESH_SETUP_USERSPACE_MPM nlattr[NL80211_MESH_SETUP_USERSPACE_MPM, void] 523 NL80211_MESH_SETUP_IE nlattr[NL80211_MESH_SETUP_IE, array[int8]] 524 NL80211_MESH_SETUP_USERSPACE_AMPE nlattr[NL80211_MESH_SETUP_USERSPACE_AMPE, void] 525 ] [varlen] 526 527 nl80211_scan_flags = NL80211_SCAN_FLAG_LOW_PRIORITY, NL80211_SCAN_FLAG_FLUSH, NL80211_SCAN_FLAG_AP, NL80211_SCAN_FLAG_RANDOM_ADDR, NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME, NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP, NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE, NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION, NL80211_SCAN_FLAG_LOW_SPAN, NL80211_SCAN_FLAG_LOW_POWER, NL80211_SCAN_FLAG_HIGH_ACCURACY, NL80211_SCAN_FLAG_RANDOM_SN, NL80211_SCAN_FLAG_MIN_PREQ_CONTENT, NL80211_SCAN_FLAG_FREQ_KHZ 528 529 nl80211_policy$scan [ 530 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 531 NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]] 532 NL80211_ATTR_SCAN_FREQUENCIES nlnest[NL80211_ATTR_SCAN_FREQUENCIES, array[nlattr[0, int32]]] 533 NL80211_ATTR_SCAN_SSIDS nlnest[NL80211_ATTR_SCAN_SSIDS, array[nlattr[0, ieee80211_ssid]]] 534 NL80211_ATTR_SCHED_SCAN_INTERVAL nlattr[NL80211_ATTR_SCHED_SCAN_INTERVAL, int32] 535 NL80211_ATTR_BG_SCAN_PERIOD nlattr[NL80211_ATTR_BG_SCAN_PERIOD, int16] 536 NL80211_ATTR_SCHED_SCAN_DELAY nlattr[NL80211_ATTR_SCHED_SCAN_DELAY, int32] 537 NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI nlattr[NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI, int8] 538 NL80211_ATTR_MEASUREMENT_DURATION nlattr[NL80211_ATTR_MEASUREMENT_DURATION, int16] 539 NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY nlattr[NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY, void] 540 NL80211_ATTR_SCHED_SCAN_MULTI nlattr[NL80211_ATTR_SCHED_SCAN_MULTI, void] 541 NL80211_ATTR_TX_NO_CCK_RATE nlattr[NL80211_ATTR_TX_NO_CCK_RATE, void] 542 NL80211_ATTR_BSSID nlattr[NL80211_ATTR_BSSID, ieee80211_bssid] 543 NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST nlattr[NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST, nl80211_bss_select_rssi_adjust] 544 NL80211_ATTR_SCAN_SUPP_RATES nlnest[NL80211_ATTR_SCAN_SUPP_RATES, array[nl80211_rates_policy]] 545 NL80211_ATTR_SCHED_SCAN_MATCH nlnest[NL80211_ATTR_SCHED_SCAN_MATCH, array[nl80211_match_policy]] 546 NL80211_ATTR_SCAN_FLAGS nlattr[NL80211_ATTR_SCAN_FLAGS, flags[nl80211_scan_flags, int32]] 547 ] [varlen] 548 549 nl80211_bss_select_rssi_adjust { 550 band flags[nl80211_bands, int8] 551 delta int8 552 } [packed] 553 554 nl80211_rates_policy [ 555 NL80211_BAND_2GHZ nlattr[NL80211_BAND_2GHZ, array[int8]] 556 NL80211_BAND_5GHZ nlattr[NL80211_BAND_5GHZ, array[int8]] 557 NL80211_BAND_60GHZ nlattr[NL80211_BAND_60GHZ, array[int8]] 558 NL80211_BAND_6GHZ nlattr[NL80211_BAND_6GHZ, array[int8]] 559 ] [varlen] 560 561 nl80211_match_policy [ 562 NL80211_SCHED_SCAN_MATCH_ATTR_SSID nlattr[NL80211_SCHED_SCAN_MATCH_ATTR_SSID, ieee80211_ssid] 563 NL80211_SCHED_SCAN_MATCH_ATTR_BSSID nlattr[NL80211_SCHED_SCAN_MATCH_ATTR_BSSID, ieee80211_bssid] 564 NL80211_SCHED_SCAN_MATCH_ATTR_RSSI nlattr[NL80211_SCHED_SCAN_MATCH_ATTR_RSSI, int32] 565 NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI nlnest[NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI, array[nl80211_match_band_rssi_policy]] 566 ] [varlen] 567 568 nl80211_match_band_rssi_policy [ 569 NL80211_BAND_2GHZ nlattr[NL80211_BAND_2GHZ, int32] 570 NL80211_BAND_5GHZ nlattr[NL80211_BAND_5GHZ, int32] 571 NL80211_BAND_6GHZ nlattr[NL80211_BAND_6GHZ, int32] 572 NL80211_BAND_60GHZ nlattr[NL80211_BAND_60GHZ, int32] 573 NL80211_BAND_LC nlattr[NL80211_BAND_LC, int32] 574 ] [varlen] 575 576 nl80211_policy$join_ibss [ 577 chandef_params array[nl80211_policy$chandef_params] 578 NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid] 579 NL80211_ATTR_HIDDEN_SSID nlattr[NL80211_ATTR_HIDDEN_SSID, ieee80211_ssid] 580 NL80211_ATTR_BEACON_INTERVAL nlattr[NL80211_ATTR_BEACON_INTERVAL, ieee80211_beacon_interval[int32]] 581 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid] 582 NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]] 583 NL80211_ATTR_FREQ_FIXED nlattr[NL80211_ATTR_FREQ_FIXED, void] 584 NL80211_ATTR_PRIVACY nlattr[NL80211_ATTR_PRIVACY, void] 585 NL80211_ATTR_BSS_BASIC_RATES nlattr[NL80211_ATTR_BSS_BASIC_RATES, nl80211_rates] 586 NL80211_ATTR_HT_CAPABILITY nlattr[NL80211_ATTR_HT_CAPABILITY, ieee80211_ht_cap] 587 NL80211_ATTR_HT_CAPABILITY_MASK nlattr[NL80211_ATTR_HT_CAPABILITY_MASK, ieee80211_ht_cap] 588 NL80211_ATTR_MCAST_RATE nlattr[NL80211_ATTR_MCAST_RATE, int32] 589 NL80211_ATTR_KEYS nlnest[NL80211_ATTR_KEYS, array[nlnest[0, array[nl80211_key_policy]]]] 590 NL80211_ATTR_CONTROL_PORT nlattr[NL80211_ATTR_CONTROL_PORT, void] 591 NL80211_ATTR_SOCKET_OWNER nlattr[NL80211_ATTR_SOCKET_OWNER, void] 592 NL80211_ATTR_CONTROL_PORT_OVER_NL80211 nlattr[NL80211_ATTR_CONTROL_PORT_OVER_NL80211, void] 593 NL80211_ATTR_HANDLE_DFS nlattr[NL80211_ATTR_HANDLE_DFS, void] 594 NL80211_ATTR_MESH_CONFIG nlnest[NL80211_ATTR_MESH_CONFIG, array[nl80211_meshconf_params_policy]] 595 ] [varlen] 596 597 nl80211_mfp_flags = NL80211_MFP_NO, NL80211_MFP_REQUIRED, NL80211_MFP_OPTIONAL 598 599 nl80211_bss_select_policy [ 600 NL80211_BSS_SELECT_ATTR_RSSI nlattr[NL80211_BSS_SELECT_ATTR_RSSI, void] 601 NL80211_BSS_SELECT_ATTR_BAND_PREF nlattr[NL80211_BSS_SELECT_ATTR_BAND_PREF, int32] 602 NL80211_BSS_SELECT_ATTR_RSSI_ADJUST nlattr[NL80211_BSS_SELECT_ATTR_RSSI_ADJUST, nl80211_bss_select_rssi_adjust] 603 ] [varlen] 604 605 nl80211_policy$fils_params [ 606 NL80211_ATTR_FILS_ERP_USERNAME nlattr[NL80211_ATTR_FILS_ERP_USERNAME, array[int8, 0:FILS_ERP_MAX_USERNAME_LEN]] 607 NL80211_ATTR_FILS_ERP_REALM nlattr[NL80211_ATTR_FILS_ERP_REALM, array[int8]] 608 NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM nlattr[NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM, int16] 609 NL80211_ATTR_FILS_ERP_RRK nlattr[NL80211_ATTR_FILS_ERP_RRK, array[int8]] 610 ] [varlen] 611 612 nl80211_policy$crypto_settings [ 613 NL80211_ATTR_CONTROL_PORT nlattr[NL80211_ATTR_CONTROL_PORT, void] 614 NL80211_ATTR_CONTROL_PORT_ETHERTYPE nlattr[NL80211_ATTR_CONTROL_PORT_ETHERTYPE, flags[ether_types, int16]] 615 NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT nlattr[NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, void] 616 NL80211_ATTR_CONTROL_PORT_OVER_NL80211 nlattr[NL80211_ATTR_CONTROL_PORT_OVER_NL80211, void] 617 NL80211_ATTR_SOCKET_OWNER nlattr[NL80211_ATTR_SOCKET_OWNER, void] 618 NL80211_ATTR_CONTROL_PORT_NO_PREAUTH nlattr[NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, void] 619 NL80211_ATTR_CIPHER_SUITES_PAIRWISE nlattr[NL80211_ATTR_CIPHER_SUITES_PAIRWISE, array[flags[ieee80211_cipher_suites, int32], 0:NL80211_MAX_NR_CIPHER_SUITES]] 620 NL80211_ATTR_CIPHER_SUITE_GROUP nlattr[NL80211_ATTR_CIPHER_SUITE_GROUP, flags[ieee80211_cipher_suites, int32]] 621 NL80211_ATTR_WPA_VERSIONS nlattr[NL80211_ATTR_WPA_VERSIONS, flags[nl80211_wpa_versions, int32]] 622 NL80211_ATTR_AKM_SUITES nlattr[NL80211_ATTR_AKM_SUITES, array[flags[ieee80211_akm_suites, int32]]] 623 NL80211_ATTR_PMK nlattr[NL80211_ATTR_PMK, array[int8, 0:PMK_MAX_LEN]] 624 NL80211_ATTR_SAE_PASSWORD nlattr[NL80211_ATTR_SAE_PASSWORD, array[int8, 0:SAE_PASSWORD_MAX_LEN]] 625 ] [varlen] 626 627 nl80211_policy$connect [ 628 chandef_params array[nl80211_policy$chandef_params] 629 fils_params array[nl80211_policy$fils_params] 630 crypto_settings array[nl80211_policy$crypto_settings] 631 NL80211_ATTR_WIPHY_FREQ_HINT nlattr[NL80211_ATTR_WIPHY_FREQ_HINT, ieee80211_frequency_mhz[int32]] 632 NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid] 633 NL80211_ATTR_AUTH_TYPE nlattr[NL80211_ATTR_AUTH_TYPE, flags[nl80211_auth_type, int32]] 634 NL80211_ATTR_PRIVACY nlattr[NL80211_ATTR_PRIVACY, void] 635 NL80211_ATTR_WANT_1X_4WAY_HS nlattr[NL80211_ATTR_WANT_1X_4WAY_HS, void] 636 NL80211_ATTR_BG_SCAN_PERIOD nlattr[NL80211_ATTR_BG_SCAN_PERIOD, int16] 637 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid] 638 NL80211_ATTR_MAC_HINT nlattr[NL80211_ATTR_MAC_HINT, ieee80211_bssid] 639 NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]] 640 NL80211_ATTR_USE_MFP nlattr[NL80211_ATTR_USE_MFP, flags[nl80211_mfp_flags, int32]] 641 NL80211_ATTR_PREV_BSSID nlattr[NL80211_ATTR_PREV_BSSID, ieee80211_bssid] 642 NL80211_ATTR_WIPHY_EDMG_CHANNELS nlattr[NL80211_ATTR_WIPHY_EDMG_CHANNELS, int8[NL80211_EDMG_CHANNELS_MIN:NL80211_EDMG_CHANNELS_MAX]] 643 NL80211_ATTR_WIPHY_EDMG_BW_CONFIG nlattr[NL80211_ATTR_WIPHY_EDMG_BW_CONFIG, int8[NL80211_EDMG_BW_CONFIG_MIN:NL80211_EDMG_BW_CONFIG_MAX]] 644 NL80211_ATTR_KEYS nlnest[NL80211_ATTR_KEYS, array[nlnest[0, array[nl80211_key_policy]]]] 645 NL80211_ATTR_DISABLE_HT nlattr[NL80211_ATTR_DISABLE_HT, void] 646 NL80211_ATTR_HT_CAPABILITY nlattr[NL80211_ATTR_HT_CAPABILITY, ieee80211_ht_cap] 647 NL80211_ATTR_HT_CAPABILITY_MASK nlattr[NL80211_ATTR_HT_CAPABILITY_MASK, ieee80211_ht_cap] 648 NL80211_ATTR_DISABLE_VHT nlattr[NL80211_ATTR_DISABLE_VHT, void] 649 NL80211_ATTR_VHT_CAPABILITY nlattr[NL80211_ATTR_VHT_CAPABILITY, ieee80211_vht_cap] 650 NL80211_ATTR_VHT_CAPABILITY_MASK nlattr[NL80211_ATTR_VHT_CAPABILITY_MASK, ieee80211_vht_cap] 651 NL80211_ATTR_USE_RRM nlattr[NL80211_ATTR_USE_RRM, void] 652 NL80211_ATTR_PBSS nlattr[NL80211_ATTR_PBSS, void] 653 NL80211_ATTR_BSS_SELECT nlnest[NL80211_ATTR_BSS_SELECT, array[nl80211_bss_select_policy]] 654 NL80211_ATTR_EXTERNAL_AUTH_SUPPORT nlattr[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT, void] 655 NL80211_ATTR_SOCKET_OWNER nlattr[NL80211_ATTR_SOCKET_OWNER, void] 656 ] [varlen] 657 658 nl80211_policy$disconnect [ 659 NL80211_ATTR_REASON_CODE nlattr[NL80211_ATTR_REASON_CODE, ieee80211_reason_code[int16]] 660 ] [varlen] 661 662 nl80211_preamble_types = NL80211_PREAMBLE_LEGACY, NL80211_PREAMBLE_HT, NL80211_PREAMBLE_VHT, NL80211_PREAMBLE_DMG, NL80211_PREAMBLE_HE 663 664 nl80211_pmsr_ftm_req_attr_policy [ 665 NL80211_PMSR_FTM_REQ_ATTR_ASAP nlattr[NL80211_PMSR_FTM_REQ_ATTR_ASAP, void] 666 NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE nlattr[NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE, flags[nl80211_preamble_types, int32]] 667 NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP nlattr[NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP, int8[0:15]] 668 NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD nlattr[NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD, int16] 669 NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION nlattr[NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION, int8[0:15]] 670 NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST nlattr[NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST, int8[0:31]] 671 NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES nlattr[NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES, int8] 672 NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI nlattr[NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI, void] 673 NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC nlattr[NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC, void] 674 NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nlattr[NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED, void] 675 NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED nlattr[NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED, void] 676 NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK nlattr[NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK, void] 677 ] [varlen] 678 679 nl80211_pmsr_req_data_policy [ 680 NL80211_PMSR_TYPE_FTM nlnest[NL80211_PMSR_TYPE_FTM, array[nl80211_pmsr_ftm_req_attr_policy]] 681 ] [varlen] 682 683 nl80211_pmsr_req_attr_policy [ 684 NL80211_PMSR_REQ_ATTR_DATA nlnest[NL80211_PMSR_REQ_ATTR_DATA, array[nl80211_pmsr_req_data_policy]] 685 NL80211_PMSR_REQ_ATTR_GET_AP_TSF nlattr[NL80211_PMSR_REQ_ATTR_GET_AP_TSF, void] 686 ] [varlen] 687 688 nl80211_pmsr_peer_attr_policy [ 689 NL80211_PMSR_PEER_ATTR_ADDR nlattr[NL80211_PMSR_PEER_ATTR_ADDR, ieee80211_mac_addr] 690 NL80211_PMSR_PEER_ATTR_CHAN nlnest[NL80211_PMSR_PEER_ATTR_CHAN, array[nl80211_policy$chandef_params]] 691 NL80211_PMSR_PEER_ATTR_REQ nlnest[NL80211_PMSR_PEER_ATTR_REQ, array[nl80211_pmsr_req_attr_policy]] 692 ] [varlen] 693 694 nl80211_pmsr_attr_policy [ 695 NL80211_PMSR_ATTR_PEERS nlnest[NL80211_PMSR_ATTR_PEERS, array[nlnest[0, array[nl80211_pmsr_peer_attr_policy]]]] 696 ] [varlen] 697 698 nl80211_policy$upd_owe_info [ 699 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 700 NL80211_ATTR_STATUS_CODE nlattr[NL80211_ATTR_STATUS_CODE, ieee80211_status_code[int16]] 701 NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]] 702 ] [varlen] 703 704 # TODO: consider adding a pseudo system call that receives a response and takes a cookie from there 705 type nl80211_cookie int64[0:128] 706 707 nl80211_policy$del_nan_func [ 708 NL80211_ATTR_COOKIE nlattr[NL80211_ATTR_COOKIE, nl80211_cookie] 709 ] 710 711 define NL80211_BAND_2GHZ_BIT 1 << NL80211_BAND_2GHZ 712 define NL80211_BAND_5GHZ_BIT 1 << NL80211_BAND_5GHZ 713 define NL80211_BAND_60GHZ_BIT 1 << NL80211_BAND_60GHZ 714 define NL80211_BAND_6GHZ_BIT 1 << NL80211_BAND_6GHZ 715 716 nl80211_bands = NL80211_BAND_2GHZ_BIT, NL80211_BAND_5GHZ_BIT, NL80211_BAND_60GHZ_BIT, NL80211_BAND_6GHZ_BIT 717 718 # Same for NL80211_CMD_CHANGE_NAN_CONFIG and NL80211_CMD_START_NAN 719 nl80211_policy$start_nan [ 720 NL80211_ATTR_NAN_MASTER_PREF nlattr[NL80211_ATTR_NAN_MASTER_PREF, int8] 721 NL80211_ATTR_BANDS nlattr[NL80211_ATTR_BANDS, flags[nl80211_bands, int32]] 722 ] [varlen] 723 724 nl80211_nan_func_types = NL80211_NAN_FUNC_PUBLISH, NL80211_NAN_FUNC_SUBSCRIBE, NL80211_NAN_FUNC_FOLLOW_UP 725 726 nl80211_nan_srf_policy [ 727 NL80211_NAN_SRF_INCLUDE nlattr[NL80211_NAN_SRF_INCLUDE, void] 728 NL80211_NAN_SRF_BF nlattr[NL80211_NAN_SRF_BF, array[int8, NL80211_NAN_FUNC_SRF_MAX_LEN]] 729 NL80211_NAN_SRF_BF_IDX nlattr[NL80211_NAN_SRF_BF_IDX, int8] 730 NL80211_NAN_SRF_MAC_ADDRS nlnest[NL80211_NAN_SRF_MAC_ADDRS, array[nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]]] 731 ] [varlen] 732 733 nl80211_nan_func_policy [ 734 NL80211_NAN_FUNC_TYPE nlattr[NL80211_NAN_FUNC_TYPE, flags[nl80211_nan_func_types, int8]] 735 NL80211_NAN_FUNC_SERVICE_ID nlattr[NL80211_NAN_FUNC_SERVICE_ID, array[int8, NL80211_NAN_FUNC_SERVICE_ID_LEN]] 736 NL80211_NAN_FUNC_CLOSE_RANGE nlattr[NL80211_NAN_FUNC_CLOSE_RANGE, void] 737 NL80211_NAN_FUNC_SERVICE_INFO nlattr[NL80211_NAN_FUNC_SERVICE_INFO, array[int8, 0:NL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN]] 738 NL80211_NAN_FUNC_TTL nlattr[NL80211_NAN_FUNC_TTL, int32] 739 NL80211_NAN_FUNC_PUBLISH_TYPE nlattr[NL80211_NAN_FUNC_PUBLISH_TYPE, int8] 740 NL80211_NAN_FUNC_PUBLISH_BCAST nlattr[NL80211_NAN_FUNC_PUBLISH_BCAST, void] 741 NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE nlattr[NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE, void] 742 NL80211_NAN_FUNC_FOLLOW_UP_ID nlattr[NL80211_NAN_FUNC_FOLLOW_UP_ID, int8] 743 NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID nlattr[NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID, int8] 744 NL80211_NAN_FUNC_FOLLOW_UP_DEST nlattr[NL80211_NAN_FUNC_FOLLOW_UP_DEST, ieee80211_mac_addr] 745 NL80211_NAN_FUNC_SRF nlnest[NL80211_NAN_FUNC_SRF, array[nl80211_nan_srf_policy]] 746 NL80211_NAN_FUNC_TX_MATCH_FILTER nlnest[NL80211_NAN_FUNC_TX_MATCH_FILTER, array[nlattr[0, array[int8]]]] 747 NL80211_NAN_FUNC_RX_MATCH_FILTER nlnest[NL80211_NAN_FUNC_RX_MATCH_FILTER, array[nlattr[0, array[int8]]]] 748 NL80211_NAN_FUNC_INSTANCE_ID nlattr[NL80211_NAN_FUNC_INSTANCE_ID, int8] 749 NL80211_NAN_FUNC_TERM_REASON nlattr[NL80211_NAN_FUNC_TERM_REASON, int8] 750 ] [varlen] 751 752 nl80211_policy$add_nan_func [ 753 NL80211_ATTR_NAN_FUNC nlnest[NL80211_ATTR_NAN_FUNC, array[nl80211_nan_func_policy]] 754 ] [varlen] 755 756 nl80211_policy$probe_client [ 757 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 758 ] 759 760 nl80211_packet_pattern_policy [ 761 # TODO: lengths of NL80211_PKTPAT_MASK and NL80211_PKTPAT_PATTERN are related. Currently, syzlang does not provide means to specify this. 762 NL80211_PKTPAT_MASK nlattr[NL80211_PKTPAT_MASK, array[int8]] 763 NL80211_PKTPAT_PATTERN nlattr[NL80211_PKTPAT_PATTERN, array[int8]] 764 NL80211_PKTPAT_OFFSET nlattr[NL80211_PKTPAT_OFFSET, int32] 765 ] [varlen] 766 767 nl80211_coalesce_policy [ 768 NL80211_ATTR_COALESCE_RULE_DELAY nlattr[NL80211_ATTR_COALESCE_RULE_DELAY, int32] 769 NL80211_ATTR_COALESCE_RULE_CONDITION nlattr[NL80211_ATTR_COALESCE_RULE_CONDITION, int32[NL80211_COALESCE_CONDITION_MATCH:NL80211_COALESCE_CONDITION_NO_MATCH]] 770 NL80211_ATTR_COALESCE_RULE_PKT_PATTERN nlnest[NL80211_ATTR_COALESCE_RULE_PKT_PATTERN, array[nlnest[0, nl80211_packet_pattern_policy], 0:MAX_NL80211_PKTPAT]] 771 ] [varlen] 772 773 nl80211_acl_policies = NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED, NL80211_ACL_POLICY_DENY_UNLESS_LISTED 774 775 nl80211_policy$acl [ 776 NL80211_ATTR_ACL_POLICY nlattr[NL80211_ATTR_ACL_POLICY, flags[nl80211_acl_policies, int32]] 777 NL80211_ATTR_MAC_ADDRS nlnest[NL80211_ATTR_MAC_ADDRS, array[nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]]] 778 ] [varlen] 779 780 nl80211_policy$set_mcast_rate [ 781 NL80211_ATTR_MCAST_RATE nlattr[NL80211_ATTR_MCAST_RATE, flags[ieee80211_raw_rates, int32]] 782 ] 783 784 nl80211_policy$set_mcast_to_ucast [ 785 NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED nlattr[NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED, void] 786 ] 787 788 nl80211_policy$set_noack_map [ 789 NL80211_ATTR_NOACK_MAP nlattr[NL80211_ATTR_NOACK_MAP, int16] 790 ] 791 792 nl80211_policy$set_pmk [ 793 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 794 NL80211_ATTR_PMK nlattr[NL80211_ATTR_PMK, array[int8, WLAN_PMKID_LEN]] 795 NL80211_ATTR_PMKR0_NAME nlattr[NL80211_ATTR_PMKR0_NAME, array[int8, WLAN_PMK_NAME_LEN]] 796 ] [varlen] 797 798 nl80211_policy$del_pmk [ 799 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 800 ] 801 802 nl80211_policy$setdel_pmksa [ 803 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid] 804 NL80211_ATTR_PMK nlattr[NL80211_ATTR_PMK, array[int8, WLAN_PMKID_LEN]] 805 NL80211_ATTR_PMKID nlattr[NL80211_ATTR_PMKID, array[int8, WLAN_PMKID_LEN]] 806 NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid] 807 NL80211_ATTR_FILS_CACHE_ID nlattr[NL80211_ATTR_FILS_CACHE_ID, int16] 808 NL80211_ATTR_PMK_LIFETIME nlattr[NL80211_ATTR_PMK_LIFETIME, int32] 809 NL80211_ATTR_PMK_REAUTH_THRESHOLD nlattr[NL80211_ATTR_PMK_REAUTH_THRESHOLD, int8[1:100]] 810 ] [varlen] 811 812 nl80211_policy$cookie [ 813 NL80211_ATTR_COOKIE nlattr[NL80211_ATTR_COOKIE, nl80211_cookie] 814 ] 815 816 nl80211_powersave_states = NL80211_PS_DISABLED, NL80211_PS_ENABLED 817 818 nl80211_policy$power_save [ 819 NL80211_ATTR_PS_STATE nlattr[NL80211_ATTR_PS_STATE, flags[nl80211_powersave_states, int32]] 820 ] 821 822 nl80211_policy$remain_on_ch [ 823 chandef_params array[nl80211_policy$chandef_params] 824 NL80211_ATTR_DURATION nlattr[NL80211_ATTR_DURATION, int32] 825 ] [varlen] 826 827 nl80211_policy$update_ft_ies [ 828 NL80211_ATTR_MDID nlattr[NL80211_ATTR_MDID, int16] 829 NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]] 830 ] [varlen] 831 832 nl80211_policy$vendor [ 833 NL80211_ATTR_VENDOR_ID nlattr[NL80211_ATTR_VENDOR_ID, int32] 834 NL80211_ATTR_VENDOR_SUBCMD nlattr[NL80211_ATTR_VENDOR_SUBCMD, int32] 835 NL80211_ATTR_VENDOR_DATA nlattr[NL80211_ATTR_VENDOR_DATA, array[int8]] 836 ] [varlen] 837 838 nl80211_qos_map_dscp_exception { 839 dscp int8 840 up int8[0:7] 841 } [packed] 842 843 nl80211_qos_map { 844 dscp_exceptions array[nl80211_qos_map_dscp_exception, 0:IEEE80211_QOS_MAP_MAX_EX] 845 up array[int8, 8] 846 } [packed] 847 848 nl80211_policy$set_qos_map [ 849 NL80211_ATTR_QOS_MAP nlattr[NL80211_ATTR_QOS_MAP, nl80211_qos_map] 850 ] [varlen] 851 852 nl80211_attr_cqm_policy [ 853 NL80211_ATTR_CQM_RSSI_THOLD nlattr[NL80211_ATTR_CQM_RSSI_THOLD, array[int32]] 854 NL80211_ATTR_CQM_RSSI_HYST nlattr[NL80211_ATTR_CQM_RSSI_HYST, int32] 855 NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT nlattr[NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT, int32] 856 NL80211_ATTR_CQM_TXE_RATE nlattr[NL80211_ATTR_CQM_TXE_RATE, int32[0:100]] 857 NL80211_ATTR_CQM_TXE_PKTS nlattr[NL80211_ATTR_CQM_TXE_PKTS, int32] 858 NL80211_ATTR_CQM_TXE_INTVL nlattr[NL80211_ATTR_CQM_TXE_INTVL, int32[0:NL80211_CQM_TXE_MAX_INTVL]] 859 NL80211_ATTR_CQM_RSSI_LEVEL nlattr[NL80211_ATTR_CQM_RSSI_LEVEL, int32] 860 ] [varlen] 861 862 nl80211_policy$cqm [ 863 NL80211_ATTR_CQM nlnest[NL80211_ATTR_CQM, array[nl80211_attr_cqm_policy]] 864 ] [varlen] 865 866 nl80211_policy$mgmt_frame [ 867 chandef_params array[nl80211_policy$chandef_params] 868 NL80211_ATTR_DONT_WAIT_FOR_ACK nlattr[NL80211_ATTR_DONT_WAIT_FOR_ACK, void] 869 NL80211_ATTR_FRAME nlattr[NL80211_ATTR_FRAME, ieee80211_mgmt_frame] 870 NL80211_ATTR_DURATION nlattr[NL80211_ATTR_DURATION, int32[NL80211_MIN_REMAIN_ON_CHANNEL_TIME:5000]] 871 NL80211_ATTR_OFFCHANNEL_TX_OK nlattr[NL80211_ATTR_OFFCHANNEL_TX_OK, void] 872 NL80211_ATTR_TX_NO_CCK_RATE nlattr[NL80211_ATTR_TX_NO_CCK_RATE, void] 873 NL80211_ATTR_CSA_C_OFFSETS_TX nlattr[NL80211_ATTR_CSA_C_OFFSETS_TX, array[int16]] 874 ] [varlen] 875 876 define IEEE80211_MAX_TID IEEE80211_NUM_TIDS - 1 877 define IEEE80211_MAX_UP IEEE80211_NUM_UPS - 1 878 879 nl80211_policy$add_tx_ts [ 880 NL80211_ATTR_TSID nlattr[NL80211_ATTR_TSID, int8[0:IEEE80211_MAX_TID]] 881 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 882 NL80211_ATTR_ADMITTED_TIME nlattr[NL80211_ATTR_ADMITTED_TIME, int16] 883 NL80211_ATTR_USER_PRIO nlattr[NL80211_ATTR_USER_PRIO, int8[0:IEEE80211_MAX_UP]] 884 ] [varlen] 885 886 nl80211_policy$del_tx_ts [ 887 NL80211_ATTR_TSID nlattr[NL80211_ATTR_TSID, int8[0:IEEE80211_MAX_TID]] 888 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 889 ] [varlen] 890 891 nl80211_policy$authenticate [ 892 chandef_params array[nl80211_policy$chandef_params] 893 key_params array[nl80211_policy$cmd_key] 894 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid] 895 NL80211_ATTR_AUTH_TYPE nlattr[NL80211_ATTR_AUTH_TYPE, flags[nl80211_auth_type, int32]] 896 NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid] 897 ] [varlen] 898 899 nl80211_policy$de_auth_assoc [ 900 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid] 901 NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid] 902 NL80211_ATTR_REASON_CODE nlattr[NL80211_ATTR_REASON_CODE, int16] 903 NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]] 904 NL80211_ATTR_LOCAL_STATE_CHANGE nlattr[NL80211_ATTR_LOCAL_STATE_CHANGE, void] 905 ] [varlen] 906 907 nl80211_policy$associate [ 908 chandef_params array[nl80211_policy$chandef_params] 909 crypto_settings array[nl80211_policy$crypto_settings] 910 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid] 911 NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid] 912 NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]] 913 NL80211_ATTR_USE_MFP nlattr[NL80211_ATTR_USE_MFP, flags[nl80211_mfp_flags, int32]] 914 NL80211_ATTR_PREV_BSSID nlattr[NL80211_ATTR_PREV_BSSID, ieee80211_bssid] 915 NL80211_ATTR_DISABLE_HT nlattr[NL80211_ATTR_DISABLE_HT, void] 916 NL80211_ATTR_HT_CAPABILITY nlattr[NL80211_ATTR_HT_CAPABILITY, ieee80211_ht_cap] 917 NL80211_ATTR_HT_CAPABILITY_MASK nlattr[NL80211_ATTR_HT_CAPABILITY_MASK, ieee80211_ht_cap] 918 NL80211_ATTR_DISABLE_VHT nlattr[NL80211_ATTR_DISABLE_VHT, void] 919 NL80211_ATTR_VHT_CAPABILITY nlattr[NL80211_ATTR_VHT_CAPABILITY, ieee80211_vht_cap] 920 NL80211_ATTR_VHT_CAPABILITY_MASK nlattr[NL80211_ATTR_VHT_CAPABILITY_MASK, ieee80211_vht_cap] 921 NL80211_ATTR_USE_RRM nlattr[NL80211_ATTR_USE_RRM, void] 922 NL80211_ATTR_FILS_KEK nlattr[NL80211_ATTR_FILS_KEK, array[int8, 0:FILS_MAX_KEK_LEN]] 923 NL80211_ATTR_FILS_NONCES nlattr[NL80211_ATTR_FILS_NONCES, array[int16, FILS_NONCE_LEN]] 924 ] [varlen] 925 926 nl80211_policy$ext_auth [ 927 NL80211_ATTR_BSSID nlattr[NL80211_ATTR_BSSID, ieee80211_bssid] 928 NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid] 929 NL80211_ATTR_STATUS_CODE nlattr[NL80211_ATTR_STATUS_CODE, ieee80211_status_code[int16]] 930 NL80211_ATTR_PMKID nlattr[NL80211_ATTR_PMKID, array[int8, WLAN_PMKID_LEN]] 931 ] [varlen] 932 933 nl80211_kek [ 934 kek array[int8, NL80211_KEK_LEN] 935 kek_ext array[int8, NL80211_KEK_EXT_LEN] 936 ] [varlen] 937 938 nl80211_kck [ 939 kck array[int8, NL80211_KCK_LEN] 940 kck_ext array[int8, NL80211_KCK_EXT_LEN] 941 ] [varlen] 942 943 nl80211_rekey_policy [ 944 NL80211_REKEY_DATA_KEK nlattr[NL80211_REKEY_DATA_KEK, nl80211_kek] 945 NL80211_REKEY_DATA_KCK nlattr[NL80211_REKEY_DATA_KCK, nl80211_kck] 946 NL80211_REKEY_DATA_REPLAY_CTR nlattr[NL80211_REKEY_DATA_REPLAY_CTR, array[int8, NL80211_REPLAY_CTR_LEN]] 947 NL80211_REKEY_DATA_AKM nlattr[NL80211_REKEY_DATA_AKM, int32] 948 ] [varlen] 949 950 nl80211_policy$rekey_offload [ 951 NL80211_ATTR_REKEY_DATA nlnest[NL80211_ATTR_REKEY_DATA, array[nl80211_rekey_policy]] 952 ] [varlen] 953 954 nl80211_policy$set_wds_peer [ 955 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid] 956 ] 957 958 nl80211_tx_rate_setting = NL80211_TX_RATE_AUTOMATIC, NL80211_TX_RATE_LIMITED, NL80211_TX_RATE_FIXED 959 960 nl80211_tid_config_attr_policy [ 961 NL80211_TID_CONFIG_ATTR_VIF_SUPP nlattr[NL80211_TID_CONFIG_ATTR_VIF_SUPP, int64] 962 NL80211_TID_CONFIG_ATTR_PEER_SUPP nlattr[NL80211_TID_CONFIG_ATTR_PEER_SUPP, int64] 963 NL80211_TID_CONFIG_ATTR_OVERRIDE nlattr[NL80211_TID_CONFIG_ATTR_OVERRIDE, void] 964 NL80211_TID_CONFIG_ATTR_TIDS nlattr[NL80211_TID_CONFIG_ATTR_TIDS, int16[0x1:0xff]] 965 NL80211_TID_CONFIG_ATTR_NOACK nlattr[NL80211_TID_CONFIG_ATTR_NOACK, int8[0:NL80211_TID_CONFIG_DISABLE]] 966 NL80211_TID_CONFIG_ATTR_RETRY_SHORT nlattr[NL80211_TID_CONFIG_ATTR_RETRY_SHORT, int8[1:255]] 967 NL80211_TID_CONFIG_ATTR_RETRY_LONG nlattr[NL80211_TID_CONFIG_ATTR_RETRY_LONG, int8[1:255]] 968 NL80211_TID_CONFIG_ATTR_AMPDU_CTRL nlattr[NL80211_TID_CONFIG_ATTR_AMPDU_CTRL, int8[0:NL80211_TID_CONFIG_DISABLE]] 969 NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL nlattr[NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL, int8[0:NL80211_TID_CONFIG_DISABLE]] 970 NL80211_TID_CONFIG_ATTR_AMSDU_CTRL nlattr[NL80211_TID_CONFIG_ATTR_AMSDU_CTRL, int8[0:NL80211_TID_CONFIG_DISABLE]] 971 NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE nlattr[NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE, flags[nl80211_tx_rate_setting, int8]] 972 NL80211_TID_CONFIG_ATTR_TX_RATE nlnest[NL80211_TID_CONFIG_ATTR_TX_RATE, array[nl80211_tx_rates_policy]] 973 ] [varlen] 974 975 nl80211_policy$set_tid_config [ 976 NL80211_ATTR_TID_CONFIG nlnest[NL80211_ATTR_TID_CONFIG, array[nlnest[0, array[nl80211_tid_config_attr_policy]]]] 977 ] [varlen] 978 979 nl80211_policy$upd_connect_params [ 980 fils_params array[nl80211_policy$fils_params] 981 NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]] 982 ] [varlen] 983 984 nl80211_policy$tdls_mgmt [ 985 NL80211_ATTR_TDLS_ACTION nlattr[NL80211_ATTR_TDLS_ACTION, flags[ieee80211_tdls_action_codes, int8]] 986 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 987 NL80211_ATTR_STATUS_CODE nlattr[NL80211_ATTR_STATUS_CODE, ieee80211_status_code[int16]] 988 NL80211_ATTR_TDLS_DIALOG_TOKEN nlattr[NL80211_ATTR_TDLS_DIALOG_TOKEN, int8] 989 NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]] 990 NL80211_ATTR_TDLS_INITIATOR nlattr[NL80211_ATTR_TDLS_INITIATOR, void] 991 NL80211_ATTR_TDLS_PEER_CAPABILITY nlattr[NL80211_ATTR_TDLS_PEER_CAPABILITY, int32] 992 ] [varlen] 993 994 nl80211_tdls_operations = NL80211_TDLS_DISCOVERY_REQ, NL80211_TDLS_SETUP, NL80211_TDLS_TEARDOWN, NL80211_TDLS_ENABLE_LINK, NL80211_TDLS_DISABLE_LINK 995 996 nl80211_policy$tdls_oper [ 997 NL80211_ATTR_TDLS_OPERATION nlattr[NL80211_ATTR_TDLS_OPERATION, flags[nl80211_tdls_operations, int8]] 998 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 999 ] [varlen] 1000 1001 nl80211_policy$control_port [ 1002 NL80211_ATTR_FRAME nlattr[NL80211_ATTR_FRAME, ieee80211_frame] 1003 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 1004 NL80211_ATTR_CONTROL_PORT_ETHERTYPE nlattr[NL80211_ATTR_CONTROL_PORT_ETHERTYPE, flags[ether_types, int16]] 1005 NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT nlattr[NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, void] 1006 ] [varlen] 1007 1008 nl80211_crit_proto_ids = NL80211_CRIT_PROTO_UNSPEC, NL80211_CRIT_PROTO_DHCP, NL80211_CRIT_PROTO_EAPOL, NL80211_CRIT_PROTO_APIPA 1009 1010 nl80211_policy$crit_proto_start [ 1011 NL80211_ATTR_CRIT_PROT_ID nlattr[NL80211_ATTR_CRIT_PROT_ID, flags[nl80211_crit_proto_ids, int16]] 1012 NL80211_ATTR_MAX_CRIT_PROT_DURATION nlattr[NL80211_ATTR_MAX_CRIT_PROT_DURATION, int16[0:NL80211_CRIT_PROTO_MAX_DURATION]] 1013 ] [varlen] 1014 1015 nl80211_policy$probe_mesh_link [ 1016 NL80211_ATTR_FRAME nlattr[NL80211_ATTR_FRAME, ieee80211_frame] 1017 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 1018 ] [varlen] 1019 1020 nl80211_policy$register_mgmt [ 1021 NL80211_ATTR_FRAME_TYPE nlattr[NL80211_ATTR_FRAME_TYPE, int16] 1022 NL80211_ATTR_FRAME_MATCH nlattr[NL80211_ATTR_FRAME_MATCH, array[int8]] 1023 ] [varlen] 1024 1025 nl80211_policy$tdls_chsw [ 1026 chandef_params array[nl80211_policy$chandef_params] 1027 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 1028 NL80211_ATTR_OPER_CLASS nlattr[NL80211_ATTR_OPER_CLASS, int8] 1029 ] [varlen] 1030 1031 nl80211_policy$tdls_chsw_cancel [ 1032 NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr] 1033 ] [varlen] 1034 1035 nl80211_policy$csa [ 1036 beacon_params array[nl80211_policy$beacon] 1037 NL80211_ATTR_CSA_C_OFF_BEACON nlattr[NL80211_ATTR_CSA_C_OFF_BEACON, array[int16]] 1038 NL80211_ATTR_CSA_C_OFF_PRESP nlattr[NL80211_ATTR_CSA_C_OFF_PRESP, array[int16]] 1039 ] [varlen] 1040 1041 nl80211_policy$chsw [ 1042 chandef_params array[nl80211_policy$chandef_params] 1043 NL80211_ATTR_CSA_IES nlnest[NL80211_ATTR_CSA_IES, array[nl80211_policy$csa]] 1044 NL80211_ATTR_CH_SWITCH_COUNT nlattr[NL80211_ATTR_CH_SWITCH_COUNT, int32[0:255]] 1045 NL80211_ATTR_CH_SWITCH_BLOCK_TX nlattr[NL80211_ATTR_CH_SWITCH_BLOCK_TX, void] 1046 ] [varlen] 1047 1048 nl80211_wowlan_tcp_data_seq { 1049 start int32 1050 offset int32 1051 len int32 1052 } [packed] 1053 1054 nl80211_wowlan_tcp_data_token { 1055 offset int32 1056 len int32 1057 token_stream array[int8] 1058 } [packed] 1059 1060 nl80211_wowlan_tcp_policy [ 1061 NL80211_WOWLAN_TCP_SRC_IPV4 nlattr[NL80211_WOWLAN_TCP_SRC_IPV4, ipv4_addr] 1062 NL80211_WOWLAN_TCP_DST_IPV4 nlattr[NL80211_WOWLAN_TCP_DST_IPV4, ipv4_addr] 1063 NL80211_WOWLAN_TCP_DST_MAC nlattr[NL80211_WOWLAN_TCP_DST_MAC, ieee80211_mac_addr] 1064 NL80211_WOWLAN_TCP_SRC_PORT nlattr[NL80211_WOWLAN_TCP_SRC_PORT, int16] 1065 NL80211_WOWLAN_TCP_DST_PORT nlattr[NL80211_WOWLAN_TCP_DST_PORT, int16] 1066 NL80211_WOWLAN_TCP_DATA_PAYLOAD nlattr[NL80211_WOWLAN_TCP_DATA_PAYLOAD, array[int8]] 1067 NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ nlattr[NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ, nl80211_wowlan_tcp_data_seq] 1068 NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN nlattr[NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN, nl80211_wowlan_tcp_data_token] 1069 NL80211_WOWLAN_TCP_DATA_INTERVAL nlattr[NL80211_WOWLAN_TCP_DATA_INTERVAL, int32] 1070 # TODO: lengths of NL80211_WOWLAN_TCP_WAKE_PAYLOAD and NL80211_WOWLAN_TCP_WAKE_MASK are related. Currently, syzlang does not provide means to specify this. 1071 NL80211_WOWLAN_TCP_WAKE_PAYLOAD nlattr[NL80211_WOWLAN_TCP_WAKE_PAYLOAD, array[int8]] 1072 NL80211_WOWLAN_TCP_WAKE_MASK nlattr[NL80211_WOWLAN_TCP_WAKE_MASK, array[int8]] 1073 ] [varlen] 1074 1075 nl80211_wowlan_policy [ 1076 NL80211_WOWLAN_TRIG_ANY nlattr[NL80211_WOWLAN_TRIG_ANY, void] 1077 NL80211_WOWLAN_TRIG_DISCONNECT nlattr[NL80211_WOWLAN_TRIG_DISCONNECT, void] 1078 NL80211_WOWLAN_TRIG_MAGIC_PKT nlattr[NL80211_WOWLAN_TRIG_MAGIC_PKT, void] 1079 NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE nlattr[NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE, void] 1080 NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST nlattr[NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST, void] 1081 NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE nlattr[NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE, void] 1082 NL80211_WOWLAN_TRIG_RFKILL_RELEASE nlattr[NL80211_WOWLAN_TRIG_RFKILL_RELEASE, void] 1083 NL80211_WOWLAN_TRIG_PKT_PATTERN nlnest[NL80211_WOWLAN_TRIG_PKT_PATTERN, array[nlnest[0, array[nl80211_packet_pattern_policy]]]] 1084 NL80211_WOWLAN_TRIG_TCP_CONNECTION nlnest[NL80211_WOWLAN_TRIG_TCP_CONNECTION, array[nl80211_wowlan_tcp_policy]] 1085 NL80211_WOWLAN_TRIG_NET_DETECT nlnest[NL80211_WOWLAN_TRIG_NET_DETECT, array[nl80211_policy$scan]] 1086 ] [varlen] 1087 1088 nl80211_policy$set_wowlan [ 1089 NL80211_ATTR_WOWLAN_TRIGGERS nlnest[NL80211_ATTR_WOWLAN_TRIGGERS, array[nl80211_wowlan_policy]] 1090 ] [varlen] 1091 1092 nl80211_policy$testmode [ 1093 NL80211_ATTR_TESTDATA nlattr[NL80211_ATTR_TESTDATA, array[int8]] 1094 ] [varlen] 1095 1096 nl80211_policy$set_tx_bitrate [ 1097 NL80211_ATTR_TX_RATES nlnest[NL80211_ATTR_TX_RATES, array[nl80211_tx_rates_policy]] 1098 ] [varlen]