Lines Matching refs:attrs

75 __cfg80211_wdev_from_attrs(struct net *netns, struct nlattr **attrs)  in __cfg80211_wdev_from_attrs()  argument
79 bool have_ifidx = attrs[NL80211_ATTR_IFINDEX]; in __cfg80211_wdev_from_attrs()
80 bool have_wdev_id = attrs[NL80211_ATTR_WDEV]; in __cfg80211_wdev_from_attrs()
91 ifidx = nla_get_u32(attrs[NL80211_ATTR_IFINDEX]); in __cfg80211_wdev_from_attrs()
93 wdev_id = nla_get_u64(attrs[NL80211_ATTR_WDEV]); in __cfg80211_wdev_from_attrs()
128 __cfg80211_rdev_from_attrs(struct net *netns, struct nlattr **attrs) in __cfg80211_rdev_from_attrs() argument
135 if (!attrs[NL80211_ATTR_WIPHY] && in __cfg80211_rdev_from_attrs()
136 !attrs[NL80211_ATTR_IFINDEX] && in __cfg80211_rdev_from_attrs()
137 !attrs[NL80211_ATTR_WDEV]) in __cfg80211_rdev_from_attrs()
140 if (attrs[NL80211_ATTR_WIPHY]) in __cfg80211_rdev_from_attrs()
142 nla_get_u32(attrs[NL80211_ATTR_WIPHY])); in __cfg80211_rdev_from_attrs()
144 if (attrs[NL80211_ATTR_WDEV]) { in __cfg80211_rdev_from_attrs()
145 u64 wdev_id = nla_get_u64(attrs[NL80211_ATTR_WDEV]); in __cfg80211_rdev_from_attrs()
168 if (attrs[NL80211_ATTR_IFINDEX]) { in __cfg80211_rdev_from_attrs()
169 int ifindex = nla_get_u32(attrs[NL80211_ATTR_IFINDEX]); in __cfg80211_rdev_from_attrs()
209 return __cfg80211_rdev_from_attrs(netns, info->attrs); in cfg80211_get_dev_from_info()
737 if (info->attrs[NL80211_ATTR_KEY_DATA]) { in nl80211_parse_key_old()
738 k->p.key = nla_data(info->attrs[NL80211_ATTR_KEY_DATA]); in nl80211_parse_key_old()
739 k->p.key_len = nla_len(info->attrs[NL80211_ATTR_KEY_DATA]); in nl80211_parse_key_old()
742 if (info->attrs[NL80211_ATTR_KEY_SEQ]) { in nl80211_parse_key_old()
743 k->p.seq = nla_data(info->attrs[NL80211_ATTR_KEY_SEQ]); in nl80211_parse_key_old()
744 k->p.seq_len = nla_len(info->attrs[NL80211_ATTR_KEY_SEQ]); in nl80211_parse_key_old()
747 if (info->attrs[NL80211_ATTR_KEY_IDX]) in nl80211_parse_key_old()
748 k->idx = nla_get_u8(info->attrs[NL80211_ATTR_KEY_IDX]); in nl80211_parse_key_old()
750 if (info->attrs[NL80211_ATTR_KEY_CIPHER]) in nl80211_parse_key_old()
751 k->p.cipher = nla_get_u32(info->attrs[NL80211_ATTR_KEY_CIPHER]); in nl80211_parse_key_old()
753 k->def = !!info->attrs[NL80211_ATTR_KEY_DEFAULT]; in nl80211_parse_key_old()
754 k->defmgmt = !!info->attrs[NL80211_ATTR_KEY_DEFAULT_MGMT]; in nl80211_parse_key_old()
763 if (info->attrs[NL80211_ATTR_KEY_TYPE]) { in nl80211_parse_key_old()
764 k->type = nla_get_u32(info->attrs[NL80211_ATTR_KEY_TYPE]); in nl80211_parse_key_old()
769 if (info->attrs[NL80211_ATTR_KEY_DEFAULT_TYPES]) { in nl80211_parse_key_old()
773 info->attrs[NL80211_ATTR_KEY_DEFAULT_TYPES], in nl80211_parse_key_old()
793 if (info->attrs[NL80211_ATTR_KEY]) in nl80211_parse_key()
794 err = nl80211_parse_key_new(info->attrs[NL80211_ATTR_KEY], k); in nl80211_parse_key()
1937 if (!info->attrs[NL80211_ATTR_WIPHY_FREQ]) in nl80211_parse_chandef()
1940 control_freq = nla_get_u32(info->attrs[NL80211_ATTR_WIPHY_FREQ]); in nl80211_parse_chandef()
1951 if (info->attrs[NL80211_ATTR_WIPHY_CHANNEL_TYPE]) { in nl80211_parse_chandef()
1955 info->attrs[NL80211_ATTR_WIPHY_CHANNEL_TYPE]); in nl80211_parse_chandef()
1968 } else if (info->attrs[NL80211_ATTR_CHANNEL_WIDTH]) { in nl80211_parse_chandef()
1970 nla_get_u32(info->attrs[NL80211_ATTR_CHANNEL_WIDTH]); in nl80211_parse_chandef()
1971 if (info->attrs[NL80211_ATTR_CENTER_FREQ1]) in nl80211_parse_chandef()
1974 info->attrs[NL80211_ATTR_CENTER_FREQ1]); in nl80211_parse_chandef()
1975 if (info->attrs[NL80211_ATTR_CENTER_FREQ2]) in nl80211_parse_chandef()
1978 info->attrs[NL80211_ATTR_CENTER_FREQ2]); in nl80211_parse_chandef()
2072 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_set_wds_peer()
2084 bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_set_wds_peer()
2113 if (info->attrs[NL80211_ATTR_IFINDEX]) { in nl80211_set_wiphy()
2114 int ifindex = nla_get_u32(info->attrs[NL80211_ATTR_IFINDEX]); in nl80211_set_wiphy()
2125 info->attrs); in nl80211_set_wiphy()
2139 if (info->attrs[NL80211_ATTR_WIPHY_NAME]) in nl80211_set_wiphy()
2141 rdev, nla_data(info->attrs[NL80211_ATTR_WIPHY_NAME])); in nl80211_set_wiphy()
2146 if (info->attrs[NL80211_ATTR_WIPHY_TXQ_PARAMS]) { in nl80211_set_wiphy()
2164 info->attrs[NL80211_ATTR_WIPHY_TXQ_PARAMS], in nl80211_set_wiphy()
2183 if (info->attrs[NL80211_ATTR_WIPHY_FREQ]) { in nl80211_set_wiphy()
2192 if (info->attrs[NL80211_ATTR_WIPHY_TX_POWER_SETTING]) { in nl80211_set_wiphy()
2204 type = nla_get_u32(info->attrs[idx]); in nl80211_set_wiphy()
2206 if (!info->attrs[NL80211_ATTR_WIPHY_TX_POWER_LEVEL] && in nl80211_set_wiphy()
2212 mbm = nla_get_u32(info->attrs[idx]); in nl80211_set_wiphy()
2220 if (info->attrs[NL80211_ATTR_WIPHY_ANTENNA_TX] && in nl80211_set_wiphy()
2221 info->attrs[NL80211_ATTR_WIPHY_ANTENNA_RX]) { in nl80211_set_wiphy()
2228 tx_ant = nla_get_u32(info->attrs[NL80211_ATTR_WIPHY_ANTENNA_TX]); in nl80211_set_wiphy()
2229 rx_ant = nla_get_u32(info->attrs[NL80211_ATTR_WIPHY_ANTENNA_RX]); in nl80211_set_wiphy()
2247 if (info->attrs[NL80211_ATTR_WIPHY_RETRY_SHORT]) { in nl80211_set_wiphy()
2249 info->attrs[NL80211_ATTR_WIPHY_RETRY_SHORT]); in nl80211_set_wiphy()
2256 if (info->attrs[NL80211_ATTR_WIPHY_RETRY_LONG]) { in nl80211_set_wiphy()
2258 info->attrs[NL80211_ATTR_WIPHY_RETRY_LONG]); in nl80211_set_wiphy()
2265 if (info->attrs[NL80211_ATTR_WIPHY_FRAG_THRESHOLD]) { in nl80211_set_wiphy()
2267 info->attrs[NL80211_ATTR_WIPHY_FRAG_THRESHOLD]); in nl80211_set_wiphy()
2283 if (info->attrs[NL80211_ATTR_WIPHY_RTS_THRESHOLD]) { in nl80211_set_wiphy()
2285 info->attrs[NL80211_ATTR_WIPHY_RTS_THRESHOLD]); in nl80211_set_wiphy()
2289 if (info->attrs[NL80211_ATTR_WIPHY_COVERAGE_CLASS]) { in nl80211_set_wiphy()
2290 if (info->attrs[NL80211_ATTR_WIPHY_DYN_ACK]) in nl80211_set_wiphy()
2294 info->attrs[NL80211_ATTR_WIPHY_COVERAGE_CLASS]); in nl80211_set_wiphy()
2298 if (info->attrs[NL80211_ATTR_WIPHY_DYN_ACK]) { in nl80211_set_wiphy()
2574 if (info->attrs[NL80211_ATTR_IFTYPE]) { in nl80211_set_interface()
2575 ntype = nla_get_u32(info->attrs[NL80211_ATTR_IFTYPE]); in nl80211_set_interface()
2582 if (info->attrs[NL80211_ATTR_MESH_ID]) { in nl80211_set_interface()
2594 nla_len(info->attrs[NL80211_ATTR_MESH_ID]); in nl80211_set_interface()
2595 memcpy(wdev->ssid, nla_data(info->attrs[NL80211_ATTR_MESH_ID]), in nl80211_set_interface()
2600 if (info->attrs[NL80211_ATTR_4ADDR]) { in nl80211_set_interface()
2601 params.use_4addr = !!nla_get_u8(info->attrs[NL80211_ATTR_4ADDR]); in nl80211_set_interface()
2610 if (info->attrs[NL80211_ATTR_MNTR_FLAGS]) { in nl80211_set_interface()
2613 err = parse_monitor_flags(info->attrs[NL80211_ATTR_MNTR_FLAGS], in nl80211_set_interface()
2652 if (!info->attrs[NL80211_ATTR_IFNAME]) in nl80211_new_interface()
2655 if (info->attrs[NL80211_ATTR_IFTYPE]) { in nl80211_new_interface()
2656 type = nla_get_u32(info->attrs[NL80211_ATTR_IFTYPE]); in nl80211_new_interface()
2667 info->attrs[NL80211_ATTR_MAC]) { in nl80211_new_interface()
2668 nla_memcpy(params.macaddr, info->attrs[NL80211_ATTR_MAC], in nl80211_new_interface()
2674 if (info->attrs[NL80211_ATTR_4ADDR]) { in nl80211_new_interface()
2675 params.use_4addr = !!nla_get_u8(info->attrs[NL80211_ATTR_4ADDR]); in nl80211_new_interface()
2682 info->attrs[NL80211_ATTR_MNTR_FLAGS] : NULL, in nl80211_new_interface()
2694 nla_data(info->attrs[NL80211_ATTR_IFNAME]), in nl80211_new_interface()
2705 if (info->attrs[NL80211_ATTR_SOCKET_OWNER]) in nl80211_new_interface()
2710 if (!info->attrs[NL80211_ATTR_MESH_ID]) in nl80211_new_interface()
2716 nla_len(info->attrs[NL80211_ATTR_MESH_ID]); in nl80211_new_interface()
2717 memcpy(wdev->ssid, nla_data(info->attrs[NL80211_ATTR_MESH_ID]), in nl80211_new_interface()
2806 if (!info->attrs[NL80211_ATTR_NOACK_MAP]) in nl80211_set_noack_map()
2812 noack_map = nla_get_u16(info->attrs[NL80211_ATTR_NOACK_MAP]); in nl80211_set_noack_map()
2878 if (info->attrs[NL80211_ATTR_KEY_IDX]) in nl80211_get_key()
2879 key_idx = nla_get_u8(info->attrs[NL80211_ATTR_KEY_IDX]); in nl80211_get_key()
2884 if (info->attrs[NL80211_ATTR_MAC]) in nl80211_get_key()
2885 mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_get_key()
2888 if (info->attrs[NL80211_ATTR_KEY_TYPE]) { in nl80211_get_key()
2889 u32 kt = nla_get_u32(info->attrs[NL80211_ATTR_KEY_TYPE]); in nl80211_get_key()
3026 if (info->attrs[NL80211_ATTR_MAC]) in nl80211_new_key()
3027 mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_new_key()
3072 if (info->attrs[NL80211_ATTR_MAC]) in nl80211_del_key()
3073 mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_del_key()
3147 if (!info->attrs[NL80211_ATTR_ACL_POLICY]) in parse_acl_data()
3150 acl_policy = nla_get_u32(info->attrs[NL80211_ATTR_ACL_POLICY]); in parse_acl_data()
3155 if (!info->attrs[NL80211_ATTR_MAC_ADDRS]) in parse_acl_data()
3158 n_entries = validate_acl_mac_addrs(info->attrs[NL80211_ATTR_MAC_ADDRS]); in parse_acl_data()
3170 nla_for_each_nested(attr, info->attrs[NL80211_ATTR_MAC_ADDRS], tmp) { in parse_acl_data()
3206 static int nl80211_parse_beacon(struct nlattr *attrs[], in nl80211_parse_beacon() argument
3211 if (!is_valid_ie_attr(attrs[NL80211_ATTR_BEACON_TAIL]) || in nl80211_parse_beacon()
3212 !is_valid_ie_attr(attrs[NL80211_ATTR_IE]) || in nl80211_parse_beacon()
3213 !is_valid_ie_attr(attrs[NL80211_ATTR_IE_PROBE_RESP]) || in nl80211_parse_beacon()
3214 !is_valid_ie_attr(attrs[NL80211_ATTR_IE_ASSOC_RESP])) in nl80211_parse_beacon()
3219 if (attrs[NL80211_ATTR_BEACON_HEAD]) { in nl80211_parse_beacon()
3220 bcn->head = nla_data(attrs[NL80211_ATTR_BEACON_HEAD]); in nl80211_parse_beacon()
3221 bcn->head_len = nla_len(attrs[NL80211_ATTR_BEACON_HEAD]); in nl80211_parse_beacon()
3227 if (attrs[NL80211_ATTR_BEACON_TAIL]) { in nl80211_parse_beacon()
3228 bcn->tail = nla_data(attrs[NL80211_ATTR_BEACON_TAIL]); in nl80211_parse_beacon()
3229 bcn->tail_len = nla_len(attrs[NL80211_ATTR_BEACON_TAIL]); in nl80211_parse_beacon()
3236 if (attrs[NL80211_ATTR_IE]) { in nl80211_parse_beacon()
3237 bcn->beacon_ies = nla_data(attrs[NL80211_ATTR_IE]); in nl80211_parse_beacon()
3238 bcn->beacon_ies_len = nla_len(attrs[NL80211_ATTR_IE]); in nl80211_parse_beacon()
3241 if (attrs[NL80211_ATTR_IE_PROBE_RESP]) { in nl80211_parse_beacon()
3243 nla_data(attrs[NL80211_ATTR_IE_PROBE_RESP]); in nl80211_parse_beacon()
3245 nla_len(attrs[NL80211_ATTR_IE_PROBE_RESP]); in nl80211_parse_beacon()
3248 if (attrs[NL80211_ATTR_IE_ASSOC_RESP]) { in nl80211_parse_beacon()
3250 nla_data(attrs[NL80211_ATTR_IE_ASSOC_RESP]); in nl80211_parse_beacon()
3252 nla_len(attrs[NL80211_ATTR_IE_ASSOC_RESP]); in nl80211_parse_beacon()
3255 if (attrs[NL80211_ATTR_PROBE_RESP]) { in nl80211_parse_beacon()
3256 bcn->probe_resp = nla_data(attrs[NL80211_ATTR_PROBE_RESP]); in nl80211_parse_beacon()
3257 bcn->probe_resp_len = nla_len(attrs[NL80211_ATTR_PROBE_RESP]); in nl80211_parse_beacon()
3330 if (!info->attrs[NL80211_ATTR_BEACON_INTERVAL] || in nl80211_start_ap()
3331 !info->attrs[NL80211_ATTR_DTIM_PERIOD] || in nl80211_start_ap()
3332 !info->attrs[NL80211_ATTR_BEACON_HEAD]) in nl80211_start_ap()
3335 err = nl80211_parse_beacon(info->attrs, &params.beacon); in nl80211_start_ap()
3340 nla_get_u32(info->attrs[NL80211_ATTR_BEACON_INTERVAL]); in nl80211_start_ap()
3342 nla_get_u32(info->attrs[NL80211_ATTR_DTIM_PERIOD]); in nl80211_start_ap()
3355 if (info->attrs[NL80211_ATTR_SSID]) { in nl80211_start_ap()
3356 params.ssid = nla_data(info->attrs[NL80211_ATTR_SSID]); in nl80211_start_ap()
3358 nla_len(info->attrs[NL80211_ATTR_SSID]); in nl80211_start_ap()
3364 if (info->attrs[NL80211_ATTR_HIDDEN_SSID]) { in nl80211_start_ap()
3366 info->attrs[NL80211_ATTR_HIDDEN_SSID]); in nl80211_start_ap()
3373 params.privacy = !!info->attrs[NL80211_ATTR_PRIVACY]; in nl80211_start_ap()
3375 if (info->attrs[NL80211_ATTR_AUTH_TYPE]) { in nl80211_start_ap()
3377 info->attrs[NL80211_ATTR_AUTH_TYPE]); in nl80211_start_ap()
3389 if (info->attrs[NL80211_ATTR_INACTIVITY_TIMEOUT]) { in nl80211_start_ap()
3393 info->attrs[NL80211_ATTR_INACTIVITY_TIMEOUT]); in nl80211_start_ap()
3396 if (info->attrs[NL80211_ATTR_P2P_CTWINDOW]) { in nl80211_start_ap()
3400 nla_get_u8(info->attrs[NL80211_ATTR_P2P_CTWINDOW]); in nl80211_start_ap()
3408 if (info->attrs[NL80211_ATTR_P2P_OPPPS]) { in nl80211_start_ap()
3413 tmp = nla_get_u8(info->attrs[NL80211_ATTR_P2P_OPPPS]); in nl80211_start_ap()
3422 if (info->attrs[NL80211_ATTR_WIPHY_FREQ]) { in nl80211_start_ap()
3435 if (info->attrs[NL80211_ATTR_SMPS_MODE]) { in nl80211_start_ap()
3437 nla_get_u8(info->attrs[NL80211_ATTR_SMPS_MODE]); in nl80211_start_ap()
3458 if (info->attrs[NL80211_ATTR_ACL_POLICY]) { in nl80211_start_ap()
3498 err = nl80211_parse_beacon(info->attrs, &params); in nl80211_set_beacon()
3538 nla = info->attrs[NL80211_ATTR_STA_FLAGS2]; in parse_station_flags()
3554 nla = info->attrs[NL80211_ATTR_STA_FLAGS]; in parse_station_flags()
3941 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_get_station()
3944 mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_get_station()
4111 struct nlattr *vlanattr = info->attrs[NL80211_ATTR_STA_VLAN]; in get_vlan()
4159 if (!info->attrs[NL80211_ATTR_STA_WME]) in nl80211_parse_sta_wme()
4162 nla = info->attrs[NL80211_ATTR_STA_WME]; in nl80211_parse_sta_wme()
4188 if (info->attrs[NL80211_ATTR_STA_SUPPORTED_CHANNELS]) { in nl80211_parse_sta_channel_info()
4190 nla_data(info->attrs[NL80211_ATTR_STA_SUPPORTED_CHANNELS]); in nl80211_parse_sta_channel_info()
4192 nla_len(info->attrs[NL80211_ATTR_STA_SUPPORTED_CHANNELS]); in nl80211_parse_sta_channel_info()
4204 if (info->attrs[NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES]) { in nl80211_parse_sta_channel_info()
4206 nla_data(info->attrs[NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES]); in nl80211_parse_sta_channel_info()
4208 nla_len(info->attrs[NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES]); in nl80211_parse_sta_channel_info()
4225 if (info->attrs[NL80211_ATTR_PEER_AID]) in nl80211_set_station_tdls()
4226 params->aid = nla_get_u16(info->attrs[NL80211_ATTR_PEER_AID]); in nl80211_set_station_tdls()
4227 if (info->attrs[NL80211_ATTR_HT_CAPABILITY]) in nl80211_set_station_tdls()
4229 nla_data(info->attrs[NL80211_ATTR_HT_CAPABILITY]); in nl80211_set_station_tdls()
4230 if (info->attrs[NL80211_ATTR_VHT_CAPABILITY]) in nl80211_set_station_tdls()
4232 nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY]); in nl80211_set_station_tdls()
4259 if (info->attrs[NL80211_ATTR_PEER_AID]) in nl80211_set_station()
4260 params.aid = nla_get_u16(info->attrs[NL80211_ATTR_PEER_AID]); in nl80211_set_station()
4262 if (info->attrs[NL80211_ATTR_STA_LISTEN_INTERVAL]) in nl80211_set_station()
4264 nla_get_u16(info->attrs[NL80211_ATTR_STA_LISTEN_INTERVAL]); in nl80211_set_station()
4268 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_set_station()
4271 mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_set_station()
4273 if (info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]) { in nl80211_set_station()
4275 nla_data(info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]); in nl80211_set_station()
4277 nla_len(info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]); in nl80211_set_station()
4280 if (info->attrs[NL80211_ATTR_STA_CAPABILITY]) { in nl80211_set_station()
4282 nla_get_u16(info->attrs[NL80211_ATTR_STA_CAPABILITY]); in nl80211_set_station()
4286 if (info->attrs[NL80211_ATTR_STA_EXT_CAPABILITY]) { in nl80211_set_station()
4288 nla_data(info->attrs[NL80211_ATTR_STA_EXT_CAPABILITY]); in nl80211_set_station()
4290 nla_len(info->attrs[NL80211_ATTR_STA_EXT_CAPABILITY]); in nl80211_set_station()
4296 if (info->attrs[NL80211_ATTR_STA_PLINK_ACTION]) { in nl80211_set_station()
4298 nla_get_u8(info->attrs[NL80211_ATTR_STA_PLINK_ACTION]); in nl80211_set_station()
4303 if (info->attrs[NL80211_ATTR_STA_PLINK_STATE]) { in nl80211_set_station()
4305 nla_get_u8(info->attrs[NL80211_ATTR_STA_PLINK_STATE]); in nl80211_set_station()
4311 if (info->attrs[NL80211_ATTR_LOCAL_MESH_POWER_MODE]) { in nl80211_set_station()
4313 info->attrs[NL80211_ATTR_LOCAL_MESH_POWER_MODE]); in nl80211_set_station()
4368 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_new_station()
4371 if (!info->attrs[NL80211_ATTR_STA_LISTEN_INTERVAL]) in nl80211_new_station()
4374 if (!info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]) in nl80211_new_station()
4377 if (!info->attrs[NL80211_ATTR_STA_AID] && in nl80211_new_station()
4378 !info->attrs[NL80211_ATTR_PEER_AID]) in nl80211_new_station()
4381 mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_new_station()
4383 nla_data(info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]); in nl80211_new_station()
4385 nla_len(info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]); in nl80211_new_station()
4387 nla_get_u16(info->attrs[NL80211_ATTR_STA_LISTEN_INTERVAL]); in nl80211_new_station()
4389 if (info->attrs[NL80211_ATTR_PEER_AID]) in nl80211_new_station()
4390 params.aid = nla_get_u16(info->attrs[NL80211_ATTR_PEER_AID]); in nl80211_new_station()
4392 params.aid = nla_get_u16(info->attrs[NL80211_ATTR_STA_AID]); in nl80211_new_station()
4396 if (info->attrs[NL80211_ATTR_STA_CAPABILITY]) { in nl80211_new_station()
4398 nla_get_u16(info->attrs[NL80211_ATTR_STA_CAPABILITY]); in nl80211_new_station()
4402 if (info->attrs[NL80211_ATTR_STA_EXT_CAPABILITY]) { in nl80211_new_station()
4404 nla_data(info->attrs[NL80211_ATTR_STA_EXT_CAPABILITY]); in nl80211_new_station()
4406 nla_len(info->attrs[NL80211_ATTR_STA_EXT_CAPABILITY]); in nl80211_new_station()
4409 if (info->attrs[NL80211_ATTR_HT_CAPABILITY]) in nl80211_new_station()
4411 nla_data(info->attrs[NL80211_ATTR_HT_CAPABILITY]); in nl80211_new_station()
4413 if (info->attrs[NL80211_ATTR_VHT_CAPABILITY]) in nl80211_new_station()
4415 nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY]); in nl80211_new_station()
4417 if (info->attrs[NL80211_ATTR_OPMODE_NOTIF]) { in nl80211_new_station()
4420 nla_get_u8(info->attrs[NL80211_ATTR_OPMODE_NOTIF]); in nl80211_new_station()
4423 if (info->attrs[NL80211_ATTR_STA_PLINK_ACTION]) { in nl80211_new_station()
4425 nla_get_u8(info->attrs[NL80211_ATTR_STA_PLINK_ACTION]); in nl80211_new_station()
4465 info->attrs[NL80211_ATTR_PEER_AID]) in nl80211_new_station()
4492 info->attrs[NL80211_ATTR_PEER_AID]) in nl80211_new_station()
4541 if (info->attrs[NL80211_ATTR_MAC]) in nl80211_del_station()
4542 params.mac = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_del_station()
4553 if (info->attrs[NL80211_ATTR_MGMT_SUBTYPE]) { in nl80211_del_station()
4555 nla_get_u8(info->attrs[NL80211_ATTR_MGMT_SUBTYPE]); in nl80211_del_station()
4564 if (info->attrs[NL80211_ATTR_REASON_CODE]) { in nl80211_del_station()
4566 nla_get_u16(info->attrs[NL80211_ATTR_REASON_CODE]); in nl80211_del_station()
4694 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_get_mpath()
4697 dst = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_get_mpath()
4729 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_set_mpath()
4732 if (!info->attrs[NL80211_ATTR_MPATH_NEXT_HOP]) in nl80211_set_mpath()
4735 dst = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_set_mpath()
4736 next_hop = nla_data(info->attrs[NL80211_ATTR_MPATH_NEXT_HOP]); in nl80211_set_mpath()
4754 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_new_mpath()
4757 if (!info->attrs[NL80211_ATTR_MPATH_NEXT_HOP]) in nl80211_new_mpath()
4760 dst = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_new_mpath()
4761 next_hop = nla_data(info->attrs[NL80211_ATTR_MPATH_NEXT_HOP]); in nl80211_new_mpath()
4778 if (info->attrs[NL80211_ATTR_MAC]) in nl80211_del_mpath()
4779 dst = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_del_mpath()
4799 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_get_mpp()
4802 dst = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_get_mpp()
4895 if (info->attrs[NL80211_ATTR_BSS_CTS_PROT]) in nl80211_set_bss()
4897 nla_get_u8(info->attrs[NL80211_ATTR_BSS_CTS_PROT]); in nl80211_set_bss()
4898 if (info->attrs[NL80211_ATTR_BSS_SHORT_PREAMBLE]) in nl80211_set_bss()
4900 nla_get_u8(info->attrs[NL80211_ATTR_BSS_SHORT_PREAMBLE]); in nl80211_set_bss()
4901 if (info->attrs[NL80211_ATTR_BSS_SHORT_SLOT_TIME]) in nl80211_set_bss()
4903 nla_get_u8(info->attrs[NL80211_ATTR_BSS_SHORT_SLOT_TIME]); in nl80211_set_bss()
4904 if (info->attrs[NL80211_ATTR_BSS_BASIC_RATES]) { in nl80211_set_bss()
4906 nla_data(info->attrs[NL80211_ATTR_BSS_BASIC_RATES]); in nl80211_set_bss()
4908 nla_len(info->attrs[NL80211_ATTR_BSS_BASIC_RATES]); in nl80211_set_bss()
4910 if (info->attrs[NL80211_ATTR_AP_ISOLATE]) in nl80211_set_bss()
4911 params.ap_isolate = !!nla_get_u8(info->attrs[NL80211_ATTR_AP_ISOLATE]); in nl80211_set_bss()
4912 if (info->attrs[NL80211_ATTR_BSS_HT_OPMODE]) in nl80211_set_bss()
4914 nla_get_u16(info->attrs[NL80211_ATTR_BSS_HT_OPMODE]); in nl80211_set_bss()
4916 if (info->attrs[NL80211_ATTR_P2P_CTWINDOW]) { in nl80211_set_bss()
4920 nla_get_s8(info->attrs[NL80211_ATTR_P2P_CTWINDOW]); in nl80211_set_bss()
4928 if (info->attrs[NL80211_ATTR_P2P_OPPPS]) { in nl80211_set_bss()
4933 tmp = nla_get_u8(info->attrs[NL80211_ATTR_P2P_OPPPS]); in nl80211_set_bss()
4973 if (info->attrs[NL80211_ATTR_USER_REG_HINT_TYPE]) in nl80211_req_set_reg()
4975 nla_get_u32(info->attrs[NL80211_ATTR_USER_REG_HINT_TYPE]); in nl80211_req_set_reg()
4982 if (!info->attrs[NL80211_ATTR_REG_ALPHA2]) in nl80211_req_set_reg()
4985 data = nla_data(info->attrs[NL80211_ATTR_REG_ALPHA2]); in nl80211_req_set_reg()
4988 if (info->attrs[NL80211_ATTR_SOCKET_OWNER]) { in nl80211_req_set_reg()
4990 is_indoor = !!info->attrs[NL80211_ATTR_REG_INDOOR]; in nl80211_req_set_reg()
5173 if (!info->attrs[NL80211_ATTR_MESH_CONFIG]) in nl80211_parse_mesh_config()
5176 info->attrs[NL80211_ATTR_MESH_CONFIG], in nl80211_parse_mesh_config()
5294 if (!info->attrs[NL80211_ATTR_MESH_SETUP]) in nl80211_parse_mesh_setup()
5297 info->attrs[NL80211_ATTR_MESH_SETUP], in nl80211_parse_mesh_setup()
5457 if (info->attrs[NL80211_ATTR_WIPHY]) { in nl80211_get_reg_do()
5648 if (!info->attrs[NL80211_ATTR_REG_ALPHA2]) in nl80211_set_reg()
5651 if (!info->attrs[NL80211_ATTR_REG_RULES]) in nl80211_set_reg()
5654 alpha2 = nla_data(info->attrs[NL80211_ATTR_REG_ALPHA2]); in nl80211_set_reg()
5656 if (info->attrs[NL80211_ATTR_DFS_REGION]) in nl80211_set_reg()
5657 dfs_region = nla_get_u8(info->attrs[NL80211_ATTR_DFS_REGION]); in nl80211_set_reg()
5659 nla_for_each_nested(nl_reg_rule, info->attrs[NL80211_ATTR_REG_RULES], in nl80211_set_reg()
5687 nla_for_each_nested(nl_reg_rule, info->attrs[NL80211_ATTR_REG_RULES], in nl80211_set_reg()
5741 static int nl80211_parse_random_mac(struct nlattr **attrs, in nl80211_parse_random_mac() argument
5746 if (!attrs[NL80211_ATTR_MAC] && !attrs[NL80211_ATTR_MAC_MASK]) { in nl80211_parse_random_mac()
5756 if (!attrs[NL80211_ATTR_MAC] || !attrs[NL80211_ATTR_MAC_MASK]) in nl80211_parse_random_mac()
5759 memcpy(mac_addr, nla_data(attrs[NL80211_ATTR_MAC]), ETH_ALEN); in nl80211_parse_random_mac()
5760 memcpy(mac_addr_mask, nla_data(attrs[NL80211_ATTR_MAC_MASK]), ETH_ALEN); in nl80211_parse_random_mac()
5788 if (!is_valid_ie_attr(info->attrs[NL80211_ATTR_IE])) in nl80211_trigger_scan()
5801 if (info->attrs[NL80211_ATTR_SCAN_FREQUENCIES]) { in nl80211_trigger_scan()
5803 info->attrs[NL80211_ATTR_SCAN_FREQUENCIES]); in nl80211_trigger_scan()
5812 if (info->attrs[NL80211_ATTR_SCAN_SSIDS]) in nl80211_trigger_scan()
5813 nla_for_each_nested(attr, info->attrs[NL80211_ATTR_SCAN_SSIDS], tmp) in nl80211_trigger_scan()
5821 if (info->attrs[NL80211_ATTR_IE]) in nl80211_trigger_scan()
5822 ie_len = nla_len(info->attrs[NL80211_ATTR_IE]); in nl80211_trigger_scan()
5851 if (info->attrs[NL80211_ATTR_SCAN_FREQUENCIES]) { in nl80211_trigger_scan()
5853 nla_for_each_nested(attr, info->attrs[NL80211_ATTR_SCAN_FREQUENCIES], tmp) { in nl80211_trigger_scan()
5901 nla_for_each_nested(attr, info->attrs[NL80211_ATTR_SCAN_SSIDS], tmp) { in nl80211_trigger_scan()
5912 if (info->attrs[NL80211_ATTR_IE]) { in nl80211_trigger_scan()
5913 request->ie_len = nla_len(info->attrs[NL80211_ATTR_IE]); in nl80211_trigger_scan()
5915 nla_data(info->attrs[NL80211_ATTR_IE]), in nl80211_trigger_scan()
5924 if (info->attrs[NL80211_ATTR_SCAN_SUPP_RATES]) { in nl80211_trigger_scan()
5926 info->attrs[NL80211_ATTR_SCAN_SUPP_RATES], in nl80211_trigger_scan()
5947 if (info->attrs[NL80211_ATTR_SCAN_FLAGS]) { in nl80211_trigger_scan()
5949 info->attrs[NL80211_ATTR_SCAN_FLAGS]); in nl80211_trigger_scan()
5968 err = nl80211_parse_random_mac(info->attrs, in nl80211_trigger_scan()
5977 nla_get_flag(info->attrs[NL80211_ATTR_TX_NO_CCK_RATE]); in nl80211_trigger_scan()
6003 struct nlattr **attrs) in nl80211_parse_sched_scan_plans() argument
6008 if (!attrs[NL80211_ATTR_SCHED_SCAN_PLANS]) { in nl80211_parse_sched_scan_plans()
6017 if (!attrs[NL80211_ATTR_SCHED_SCAN_INTERVAL]) in nl80211_parse_sched_scan_plans()
6020 interval = nla_get_u32(attrs[NL80211_ATTR_SCHED_SCAN_INTERVAL]); in nl80211_parse_sched_scan_plans()
6037 nla_for_each_nested(attr, attrs[NL80211_ATTR_SCHED_SCAN_PLANS], tmp) { in nl80211_parse_sched_scan_plans()
6089 struct nlattr **attrs) in nl80211_parse_sched_scan() argument
6099 if (!is_valid_ie_attr(attrs[NL80211_ATTR_IE])) in nl80211_parse_sched_scan()
6102 if (attrs[NL80211_ATTR_SCAN_FREQUENCIES]) { in nl80211_parse_sched_scan()
6104 attrs[NL80211_ATTR_SCAN_FREQUENCIES]); in nl80211_parse_sched_scan()
6111 if (attrs[NL80211_ATTR_SCAN_SSIDS]) in nl80211_parse_sched_scan()
6112 nla_for_each_nested(attr, attrs[NL80211_ATTR_SCAN_SSIDS], in nl80211_parse_sched_scan()
6128 if (attrs[NL80211_ATTR_SCHED_SCAN_MATCH]) { in nl80211_parse_sched_scan()
6130 attrs[NL80211_ATTR_SCHED_SCAN_MATCH], in nl80211_parse_sched_scan()
6157 if (attrs[NL80211_ATTR_IE]) in nl80211_parse_sched_scan()
6158 ie_len = nla_len(attrs[NL80211_ATTR_IE]); in nl80211_parse_sched_scan()
6165 if (attrs[NL80211_ATTR_SCHED_SCAN_PLANS]) { in nl80211_parse_sched_scan()
6170 if (attrs[NL80211_ATTR_SCHED_SCAN_INTERVAL]) in nl80211_parse_sched_scan()
6174 attrs[NL80211_ATTR_SCHED_SCAN_PLANS], tmp) in nl80211_parse_sched_scan()
6183 if (!attrs[NL80211_ATTR_SCHED_SCAN_INTERVAL]) in nl80211_parse_sched_scan()
6236 if (attrs[NL80211_ATTR_SCAN_FREQUENCIES]) { in nl80211_parse_sched_scan()
6239 attrs[NL80211_ATTR_SCAN_FREQUENCIES], in nl80211_parse_sched_scan()
6286 nla_for_each_nested(attr, attrs[NL80211_ATTR_SCAN_SSIDS], in nl80211_parse_sched_scan()
6300 if (attrs[NL80211_ATTR_SCHED_SCAN_MATCH]) { in nl80211_parse_sched_scan()
6302 attrs[NL80211_ATTR_SCHED_SCAN_MATCH], in nl80211_parse_sched_scan()
6357 nla_data(attrs[NL80211_ATTR_IE]), in nl80211_parse_sched_scan()
6361 if (attrs[NL80211_ATTR_SCAN_FLAGS]) { in nl80211_parse_sched_scan()
6363 attrs[NL80211_ATTR_SCAN_FLAGS]); in nl80211_parse_sched_scan()
6386 err = nl80211_parse_random_mac(attrs, request->mac_addr, in nl80211_parse_sched_scan()
6393 if (attrs[NL80211_ATTR_SCHED_SCAN_DELAY]) in nl80211_parse_sched_scan()
6395 nla_get_u32(attrs[NL80211_ATTR_SCHED_SCAN_DELAY]); in nl80211_parse_sched_scan()
6397 err = nl80211_parse_sched_scan_plans(wiphy, n_plans, request, attrs); in nl80211_parse_sched_scan()
6427 info->attrs); in nl80211_start_sched_scan()
6440 if (info->attrs[NL80211_ATTR_SOCKET_OWNER]) in nl80211_start_sched_scan()
6563 if (!info->attrs[NL80211_ATTR_WIPHY_FREQ] || in nl80211_channel_switch()
6564 !info->attrs[NL80211_ATTR_CH_SWITCH_COUNT]) in nl80211_channel_switch()
6568 if (need_new_beacon && !info->attrs[NL80211_ATTR_CSA_IES]) in nl80211_channel_switch()
6574 cs_count = nla_get_u32(info->attrs[NL80211_ATTR_CH_SWITCH_COUNT]); in nl80211_channel_switch()
6583 err = nl80211_parse_beacon(info->attrs, &params.beacon_after); in nl80211_channel_switch()
6588 info->attrs[NL80211_ATTR_CSA_IES], in nl80211_channel_switch()
6669 if (info->attrs[NL80211_ATTR_CH_SWITCH_BLOCK_TX]) in nl80211_channel_switch()
6982 if (!is_valid_ie_attr(info->attrs[NL80211_ATTR_IE])) in nl80211_authenticate()
6985 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_authenticate()
6988 if (!info->attrs[NL80211_ATTR_AUTH_TYPE]) in nl80211_authenticate()
6991 if (!info->attrs[NL80211_ATTR_SSID]) in nl80211_authenticate()
6994 if (!info->attrs[NL80211_ATTR_WIPHY_FREQ]) in nl80211_authenticate()
7038 bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_authenticate()
7040 info->attrs[NL80211_ATTR_WIPHY_FREQ]); in nl80211_authenticate()
7044 ssid = nla_data(info->attrs[NL80211_ATTR_SSID]); in nl80211_authenticate()
7045 ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]); in nl80211_authenticate()
7047 if (info->attrs[NL80211_ATTR_IE]) { in nl80211_authenticate()
7048 ie = nla_data(info->attrs[NL80211_ATTR_IE]); in nl80211_authenticate()
7049 ie_len = nla_len(info->attrs[NL80211_ATTR_IE]); in nl80211_authenticate()
7052 auth_type = nla_get_u32(info->attrs[NL80211_ATTR_AUTH_TYPE]); in nl80211_authenticate()
7057 !info->attrs[NL80211_ATTR_SAE_DATA]) in nl80211_authenticate()
7060 if (info->attrs[NL80211_ATTR_SAE_DATA]) { in nl80211_authenticate()
7063 sae_data = nla_data(info->attrs[NL80211_ATTR_SAE_DATA]); in nl80211_authenticate()
7064 sae_data_len = nla_len(info->attrs[NL80211_ATTR_SAE_DATA]); in nl80211_authenticate()
7070 local_state_change = !!info->attrs[NL80211_ATTR_LOCAL_STATE_CHANGE]; in nl80211_authenticate()
7095 settings->control_port = info->attrs[NL80211_ATTR_CONTROL_PORT]; in nl80211_crypto_settings()
7097 if (info->attrs[NL80211_ATTR_CONTROL_PORT_ETHERTYPE]) { in nl80211_crypto_settings()
7100 info->attrs[NL80211_ATTR_CONTROL_PORT_ETHERTYPE]); in nl80211_crypto_settings()
7105 if (info->attrs[NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT]) in nl80211_crypto_settings()
7110 if (info->attrs[NL80211_ATTR_CIPHER_SUITES_PAIRWISE]) { in nl80211_crypto_settings()
7114 data = nla_data(info->attrs[NL80211_ATTR_CIPHER_SUITES_PAIRWISE]); in nl80211_crypto_settings()
7115 len = nla_len(info->attrs[NL80211_ATTR_CIPHER_SUITES_PAIRWISE]); in nl80211_crypto_settings()
7133 if (info->attrs[NL80211_ATTR_CIPHER_SUITE_GROUP]) { in nl80211_crypto_settings()
7135 nla_get_u32(info->attrs[NL80211_ATTR_CIPHER_SUITE_GROUP]); in nl80211_crypto_settings()
7141 if (info->attrs[NL80211_ATTR_WPA_VERSIONS]) { in nl80211_crypto_settings()
7143 nla_get_u32(info->attrs[NL80211_ATTR_WPA_VERSIONS]); in nl80211_crypto_settings()
7148 if (info->attrs[NL80211_ATTR_AKM_SUITES]) { in nl80211_crypto_settings()
7152 data = nla_data(info->attrs[NL80211_ATTR_AKM_SUITES]); in nl80211_crypto_settings()
7153 len = nla_len(info->attrs[NL80211_ATTR_AKM_SUITES]); in nl80211_crypto_settings()
7177 if (!is_valid_ie_attr(info->attrs[NL80211_ATTR_IE])) in nl80211_associate()
7180 if (!info->attrs[NL80211_ATTR_MAC] || in nl80211_associate()
7181 !info->attrs[NL80211_ATTR_SSID] || in nl80211_associate()
7182 !info->attrs[NL80211_ATTR_WIPHY_FREQ]) in nl80211_associate()
7192 bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_associate()
7195 info->attrs[NL80211_ATTR_WIPHY_FREQ]); in nl80211_associate()
7199 ssid = nla_data(info->attrs[NL80211_ATTR_SSID]); in nl80211_associate()
7200 ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]); in nl80211_associate()
7202 if (info->attrs[NL80211_ATTR_IE]) { in nl80211_associate()
7203 req.ie = nla_data(info->attrs[NL80211_ATTR_IE]); in nl80211_associate()
7204 req.ie_len = nla_len(info->attrs[NL80211_ATTR_IE]); in nl80211_associate()
7207 if (info->attrs[NL80211_ATTR_USE_MFP]) { in nl80211_associate()
7209 nla_get_u32(info->attrs[NL80211_ATTR_USE_MFP]); in nl80211_associate()
7216 if (info->attrs[NL80211_ATTR_PREV_BSSID]) in nl80211_associate()
7217 req.prev_bssid = nla_data(info->attrs[NL80211_ATTR_PREV_BSSID]); in nl80211_associate()
7219 if (nla_get_flag(info->attrs[NL80211_ATTR_DISABLE_HT])) in nl80211_associate()
7222 if (info->attrs[NL80211_ATTR_HT_CAPABILITY_MASK]) in nl80211_associate()
7224 nla_data(info->attrs[NL80211_ATTR_HT_CAPABILITY_MASK]), in nl80211_associate()
7227 if (info->attrs[NL80211_ATTR_HT_CAPABILITY]) { in nl80211_associate()
7228 if (!info->attrs[NL80211_ATTR_HT_CAPABILITY_MASK]) in nl80211_associate()
7231 nla_data(info->attrs[NL80211_ATTR_HT_CAPABILITY]), in nl80211_associate()
7235 if (nla_get_flag(info->attrs[NL80211_ATTR_DISABLE_VHT])) in nl80211_associate()
7238 if (info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK]) in nl80211_associate()
7240 nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK]), in nl80211_associate()
7243 if (info->attrs[NL80211_ATTR_VHT_CAPABILITY]) { in nl80211_associate()
7244 if (!info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK]) in nl80211_associate()
7247 nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY]), in nl80211_associate()
7251 if (nla_get_flag(info->attrs[NL80211_ATTR_USE_RRM])) { in nl80211_associate()
7279 if (!is_valid_ie_attr(info->attrs[NL80211_ATTR_IE])) in nl80211_deauthenticate()
7282 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_deauthenticate()
7285 if (!info->attrs[NL80211_ATTR_REASON_CODE]) in nl80211_deauthenticate()
7295 bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_deauthenticate()
7297 reason_code = nla_get_u16(info->attrs[NL80211_ATTR_REASON_CODE]); in nl80211_deauthenticate()
7303 if (info->attrs[NL80211_ATTR_IE]) { in nl80211_deauthenticate()
7304 ie = nla_data(info->attrs[NL80211_ATTR_IE]); in nl80211_deauthenticate()
7305 ie_len = nla_len(info->attrs[NL80211_ATTR_IE]); in nl80211_deauthenticate()
7308 local_state_change = !!info->attrs[NL80211_ATTR_LOCAL_STATE_CHANGE]; in nl80211_deauthenticate()
7326 if (!is_valid_ie_attr(info->attrs[NL80211_ATTR_IE])) in nl80211_disassociate()
7329 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_disassociate()
7332 if (!info->attrs[NL80211_ATTR_REASON_CODE]) in nl80211_disassociate()
7342 bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_disassociate()
7344 reason_code = nla_get_u16(info->attrs[NL80211_ATTR_REASON_CODE]); in nl80211_disassociate()
7350 if (info->attrs[NL80211_ATTR_IE]) { in nl80211_disassociate()
7351 ie = nla_data(info->attrs[NL80211_ATTR_IE]); in nl80211_disassociate()
7352 ie_len = nla_len(info->attrs[NL80211_ATTR_IE]); in nl80211_disassociate()
7355 local_state_change = !!info->attrs[NL80211_ATTR_LOCAL_STATE_CHANGE]; in nl80211_disassociate()
7403 if (!is_valid_ie_attr(info->attrs[NL80211_ATTR_IE])) in nl80211_join_ibss()
7406 if (!info->attrs[NL80211_ATTR_SSID] || in nl80211_join_ibss()
7407 !nla_len(info->attrs[NL80211_ATTR_SSID])) in nl80211_join_ibss()
7412 if (info->attrs[NL80211_ATTR_BEACON_INTERVAL]) { in nl80211_join_ibss()
7414 nla_get_u32(info->attrs[NL80211_ATTR_BEACON_INTERVAL]); in nl80211_join_ibss()
7427 if (info->attrs[NL80211_ATTR_MAC]) { in nl80211_join_ibss()
7428 ibss.bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_join_ibss()
7433 ibss.ssid = nla_data(info->attrs[NL80211_ATTR_SSID]); in nl80211_join_ibss()
7434 ibss.ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]); in nl80211_join_ibss()
7436 if (info->attrs[NL80211_ATTR_IE]) { in nl80211_join_ibss()
7437 ibss.ie = nla_data(info->attrs[NL80211_ATTR_IE]); in nl80211_join_ibss()
7438 ibss.ie_len = nla_len(info->attrs[NL80211_ATTR_IE]); in nl80211_join_ibss()
7472 ibss.channel_fixed = !!info->attrs[NL80211_ATTR_FREQ_FIXED]; in nl80211_join_ibss()
7473 ibss.privacy = !!info->attrs[NL80211_ATTR_PRIVACY]; in nl80211_join_ibss()
7475 if (info->attrs[NL80211_ATTR_BSS_BASIC_RATES]) { in nl80211_join_ibss()
7477 nla_data(info->attrs[NL80211_ATTR_BSS_BASIC_RATES]); in nl80211_join_ibss()
7479 nla_len(info->attrs[NL80211_ATTR_BSS_BASIC_RATES]); in nl80211_join_ibss()
7489 if (info->attrs[NL80211_ATTR_HT_CAPABILITY_MASK]) in nl80211_join_ibss()
7491 nla_data(info->attrs[NL80211_ATTR_HT_CAPABILITY_MASK]), in nl80211_join_ibss()
7494 if (info->attrs[NL80211_ATTR_HT_CAPABILITY]) { in nl80211_join_ibss()
7495 if (!info->attrs[NL80211_ATTR_HT_CAPABILITY_MASK]) in nl80211_join_ibss()
7498 nla_data(info->attrs[NL80211_ATTR_HT_CAPABILITY]), in nl80211_join_ibss()
7502 if (info->attrs[NL80211_ATTR_MCAST_RATE] && in nl80211_join_ibss()
7504 nla_get_u32(info->attrs[NL80211_ATTR_MCAST_RATE]))) in nl80211_join_ibss()
7507 if (ibss.privacy && info->attrs[NL80211_ATTR_KEYS]) { in nl80211_join_ibss()
7511 info->attrs[NL80211_ATTR_KEYS], in nl80211_join_ibss()
7524 nla_get_flag(info->attrs[NL80211_ATTR_CONTROL_PORT]); in nl80211_join_ibss()
7527 nla_get_flag(info->attrs[NL80211_ATTR_HANDLE_DFS]); in nl80211_join_ibss()
7567 if (!info->attrs[NL80211_ATTR_MCAST_RATE]) in nl80211_set_mcast_rate()
7570 nla_rate = nla_get_u32(info->attrs[NL80211_ATTR_MCAST_RATE]); in nl80211_set_mcast_rate()
7694 __cfg80211_wdev_from_attrs(genl_info_net(info), info->attrs); in nl80211_testmode_do()
7709 if (!info->attrs[NL80211_ATTR_TESTDATA]) in nl80211_testmode_do()
7714 nla_data(info->attrs[NL80211_ATTR_TESTDATA]), in nl80211_testmode_do()
7715 nla_len(info->attrs[NL80211_ATTR_TESTDATA])); in nl80211_testmode_do()
7828 if (!is_valid_ie_attr(info->attrs[NL80211_ATTR_IE])) in nl80211_connect()
7831 if (!info->attrs[NL80211_ATTR_SSID] || in nl80211_connect()
7832 !nla_len(info->attrs[NL80211_ATTR_SSID])) in nl80211_connect()
7835 if (info->attrs[NL80211_ATTR_AUTH_TYPE]) { in nl80211_connect()
7837 nla_get_u32(info->attrs[NL80211_ATTR_AUTH_TYPE]); in nl80211_connect()
7844 connect.privacy = info->attrs[NL80211_ATTR_PRIVACY]; in nl80211_connect()
7858 if (info->attrs[NL80211_ATTR_BG_SCAN_PERIOD] && in nl80211_connect()
7861 nla_get_u16(info->attrs[NL80211_ATTR_BG_SCAN_PERIOD]); in nl80211_connect()
7864 if (info->attrs[NL80211_ATTR_MAC]) in nl80211_connect()
7865 connect.bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_connect()
7866 else if (info->attrs[NL80211_ATTR_MAC_HINT]) in nl80211_connect()
7868 nla_data(info->attrs[NL80211_ATTR_MAC_HINT]); in nl80211_connect()
7869 connect.ssid = nla_data(info->attrs[NL80211_ATTR_SSID]); in nl80211_connect()
7870 connect.ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]); in nl80211_connect()
7872 if (info->attrs[NL80211_ATTR_IE]) { in nl80211_connect()
7873 connect.ie = nla_data(info->attrs[NL80211_ATTR_IE]); in nl80211_connect()
7874 connect.ie_len = nla_len(info->attrs[NL80211_ATTR_IE]); in nl80211_connect()
7877 if (info->attrs[NL80211_ATTR_USE_MFP]) { in nl80211_connect()
7878 connect.mfp = nla_get_u32(info->attrs[NL80211_ATTR_USE_MFP]); in nl80211_connect()
7886 if (info->attrs[NL80211_ATTR_WIPHY_FREQ]) { in nl80211_connect()
7888 wiphy, info->attrs[NL80211_ATTR_WIPHY_FREQ]); in nl80211_connect()
7891 } else if (info->attrs[NL80211_ATTR_WIPHY_FREQ_HINT]) { in nl80211_connect()
7893 wiphy, info->attrs[NL80211_ATTR_WIPHY_FREQ_HINT]); in nl80211_connect()
7898 if (connect.privacy && info->attrs[NL80211_ATTR_KEYS]) { in nl80211_connect()
7900 info->attrs[NL80211_ATTR_KEYS], NULL); in nl80211_connect()
7905 if (nla_get_flag(info->attrs[NL80211_ATTR_DISABLE_HT])) in nl80211_connect()
7908 if (info->attrs[NL80211_ATTR_HT_CAPABILITY_MASK]) in nl80211_connect()
7910 nla_data(info->attrs[NL80211_ATTR_HT_CAPABILITY_MASK]), in nl80211_connect()
7913 if (info->attrs[NL80211_ATTR_HT_CAPABILITY]) { in nl80211_connect()
7914 if (!info->attrs[NL80211_ATTR_HT_CAPABILITY_MASK]) { in nl80211_connect()
7919 nla_data(info->attrs[NL80211_ATTR_HT_CAPABILITY]), in nl80211_connect()
7923 if (nla_get_flag(info->attrs[NL80211_ATTR_DISABLE_VHT])) in nl80211_connect()
7926 if (info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK]) in nl80211_connect()
7928 nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK]), in nl80211_connect()
7931 if (info->attrs[NL80211_ATTR_VHT_CAPABILITY]) { in nl80211_connect()
7932 if (!info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK]) { in nl80211_connect()
7937 nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY]), in nl80211_connect()
7941 if (nla_get_flag(info->attrs[NL80211_ATTR_USE_RRM])) { in nl80211_connect()
7966 if (!info->attrs[NL80211_ATTR_REASON_CODE]) in nl80211_disconnect()
7969 reason = nla_get_u16(info->attrs[NL80211_ATTR_REASON_CODE]); in nl80211_disconnect()
7990 if (info->attrs[NL80211_ATTR_PID]) { in nl80211_wiphy_netns()
7991 u32 pid = nla_get_u32(info->attrs[NL80211_ATTR_PID]); in nl80211_wiphy_netns()
7994 } else if (info->attrs[NL80211_ATTR_NETNS_FD]) { in nl80211_wiphy_netns()
7995 u32 fd = nla_get_u32(info->attrs[NL80211_ATTR_NETNS_FD]); in nl80211_wiphy_netns()
8025 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_setdel_pmksa()
8028 if (!info->attrs[NL80211_ATTR_PMKID]) in nl80211_setdel_pmksa()
8031 pmksa.pmkid = nla_data(info->attrs[NL80211_ATTR_PMKID]); in nl80211_setdel_pmksa()
8032 pmksa.bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_setdel_pmksa()
8085 if (!info->attrs[NL80211_ATTR_TDLS_ACTION] || in nl80211_tdls_mgmt()
8086 !info->attrs[NL80211_ATTR_STATUS_CODE] || in nl80211_tdls_mgmt()
8087 !info->attrs[NL80211_ATTR_TDLS_DIALOG_TOKEN] || in nl80211_tdls_mgmt()
8088 !info->attrs[NL80211_ATTR_IE] || in nl80211_tdls_mgmt()
8089 !info->attrs[NL80211_ATTR_MAC]) in nl80211_tdls_mgmt()
8092 peer = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_tdls_mgmt()
8093 action_code = nla_get_u8(info->attrs[NL80211_ATTR_TDLS_ACTION]); in nl80211_tdls_mgmt()
8094 status_code = nla_get_u16(info->attrs[NL80211_ATTR_STATUS_CODE]); in nl80211_tdls_mgmt()
8095 dialog_token = nla_get_u8(info->attrs[NL80211_ATTR_TDLS_DIALOG_TOKEN]); in nl80211_tdls_mgmt()
8096 initiator = nla_get_flag(info->attrs[NL80211_ATTR_TDLS_INITIATOR]); in nl80211_tdls_mgmt()
8097 if (info->attrs[NL80211_ATTR_TDLS_PEER_CAPABILITY]) in nl80211_tdls_mgmt()
8099 nla_get_u32(info->attrs[NL80211_ATTR_TDLS_PEER_CAPABILITY]); in nl80211_tdls_mgmt()
8104 nla_data(info->attrs[NL80211_ATTR_IE]), in nl80211_tdls_mgmt()
8105 nla_len(info->attrs[NL80211_ATTR_IE])); in nl80211_tdls_mgmt()
8119 if (!info->attrs[NL80211_ATTR_TDLS_OPERATION] || in nl80211_tdls_oper()
8120 !info->attrs[NL80211_ATTR_MAC]) in nl80211_tdls_oper()
8123 operation = nla_get_u8(info->attrs[NL80211_ATTR_TDLS_OPERATION]); in nl80211_tdls_oper()
8124 peer = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_tdls_oper()
8141 if (!info->attrs[NL80211_ATTR_WIPHY_FREQ] || in nl80211_remain_on_channel()
8142 !info->attrs[NL80211_ATTR_DURATION]) in nl80211_remain_on_channel()
8145 duration = nla_get_u32(info->attrs[NL80211_ATTR_DURATION]); in nl80211_remain_on_channel()
8201 if (!info->attrs[NL80211_ATTR_COOKIE]) in nl80211_cancel_remain_on_channel()
8207 cookie = nla_get_u64(info->attrs[NL80211_ATTR_COOKIE]); in nl80211_cancel_remain_on_channel()
8369 if (!info->attrs[NL80211_ATTR_TX_RATES]) in nl80211_set_tx_bitrate_mask()
8377 nla_for_each_nested(tx_rates, info->attrs[NL80211_ATTR_TX_RATES], rem) { in nl80211_set_tx_bitrate_mask()
8452 if (!info->attrs[NL80211_ATTR_FRAME_MATCH]) in nl80211_register_mgmt()
8455 if (info->attrs[NL80211_ATTR_FRAME_TYPE]) in nl80211_register_mgmt()
8456 frame_type = nla_get_u16(info->attrs[NL80211_ATTR_FRAME_TYPE]); in nl80211_register_mgmt()
8477 nla_data(info->attrs[NL80211_ATTR_FRAME_MATCH]), in nl80211_register_mgmt()
8478 nla_len(info->attrs[NL80211_ATTR_FRAME_MATCH])); in nl80211_register_mgmt()
8492 info->attrs[NL80211_ATTR_DONT_WAIT_FOR_ACK], in nl80211_tx_mgmt()
8495 if (!info->attrs[NL80211_ATTR_FRAME]) in nl80211_tx_mgmt()
8503 if (!info->attrs[NL80211_ATTR_WIPHY_FREQ]) in nl80211_tx_mgmt()
8517 if (info->attrs[NL80211_ATTR_DURATION]) { in nl80211_tx_mgmt()
8520 params.wait = nla_get_u32(info->attrs[NL80211_ATTR_DURATION]); in nl80211_tx_mgmt()
8532 params.offchan = info->attrs[NL80211_ATTR_OFFCHANNEL_TX_OK]; in nl80211_tx_mgmt()
8537 params.no_cck = nla_get_flag(info->attrs[NL80211_ATTR_TX_NO_CCK_RATE]); in nl80211_tx_mgmt()
8543 if (info->attrs[NL80211_ATTR_WIPHY_FREQ]) { in nl80211_tx_mgmt()
8552 params.buf = nla_data(info->attrs[NL80211_ATTR_FRAME]); in nl80211_tx_mgmt()
8553 params.len = nla_len(info->attrs[NL80211_ATTR_FRAME]); in nl80211_tx_mgmt()
8555 if (info->attrs[NL80211_ATTR_CSA_C_OFFSETS_TX]) { in nl80211_tx_mgmt()
8556 int len = nla_len(info->attrs[NL80211_ATTR_CSA_C_OFFSETS_TX]); in nl80211_tx_mgmt()
8564 nla_data(info->attrs[NL80211_ATTR_CSA_C_OFFSETS_TX]); in nl80211_tx_mgmt()
8614 if (!info->attrs[NL80211_ATTR_COOKIE]) in nl80211_tx_mgmt_cancel_wait()
8633 cookie = nla_get_u64(info->attrs[NL80211_ATTR_COOKIE]); in nl80211_tx_mgmt_cancel_wait()
8647 if (!info->attrs[NL80211_ATTR_PS_STATE]) in nl80211_set_power_save()
8650 ps_state = nla_get_u32(info->attrs[NL80211_ATTR_PS_STATE]); in nl80211_set_power_save()
8771 struct nlattr *attrs[NL80211_ATTR_CQM_MAX + 1]; in nl80211_set_cqm() local
8775 cqm = info->attrs[NL80211_ATTR_CQM]; in nl80211_set_cqm()
8779 err = nla_parse_nested(attrs, NL80211_ATTR_CQM_MAX, cqm, in nl80211_set_cqm()
8784 if (attrs[NL80211_ATTR_CQM_RSSI_THOLD] && in nl80211_set_cqm()
8785 attrs[NL80211_ATTR_CQM_RSSI_HYST]) { in nl80211_set_cqm()
8786 s32 threshold = nla_get_s32(attrs[NL80211_ATTR_CQM_RSSI_THOLD]); in nl80211_set_cqm()
8787 u32 hysteresis = nla_get_u32(attrs[NL80211_ATTR_CQM_RSSI_HYST]); in nl80211_set_cqm()
8792 if (attrs[NL80211_ATTR_CQM_TXE_RATE] && in nl80211_set_cqm()
8793 attrs[NL80211_ATTR_CQM_TXE_PKTS] && in nl80211_set_cqm()
8794 attrs[NL80211_ATTR_CQM_TXE_INTVL]) { in nl80211_set_cqm()
8795 u32 rate = nla_get_u32(attrs[NL80211_ATTR_CQM_TXE_RATE]); in nl80211_set_cqm()
8796 u32 pkts = nla_get_u32(attrs[NL80211_ATTR_CQM_TXE_PKTS]); in nl80211_set_cqm()
8797 u32 intvl = nla_get_u32(attrs[NL80211_ATTR_CQM_TXE_INTVL]); in nl80211_set_cqm()
8839 if (info->attrs[NL80211_ATTR_MESH_CONFIG]) { in nl80211_join_mesh()
8846 if (!info->attrs[NL80211_ATTR_MESH_ID] || in nl80211_join_mesh()
8847 !nla_len(info->attrs[NL80211_ATTR_MESH_ID])) in nl80211_join_mesh()
8850 setup.mesh_id = nla_data(info->attrs[NL80211_ATTR_MESH_ID]); in nl80211_join_mesh()
8851 setup.mesh_id_len = nla_len(info->attrs[NL80211_ATTR_MESH_ID]); in nl80211_join_mesh()
8853 if (info->attrs[NL80211_ATTR_MCAST_RATE] && in nl80211_join_mesh()
8855 nla_get_u32(info->attrs[NL80211_ATTR_MCAST_RATE]))) in nl80211_join_mesh()
8858 if (info->attrs[NL80211_ATTR_BEACON_INTERVAL]) { in nl80211_join_mesh()
8860 nla_get_u32(info->attrs[NL80211_ATTR_BEACON_INTERVAL]); in nl80211_join_mesh()
8866 if (info->attrs[NL80211_ATTR_DTIM_PERIOD]) { in nl80211_join_mesh()
8868 nla_get_u32(info->attrs[NL80211_ATTR_DTIM_PERIOD]); in nl80211_join_mesh()
8873 if (info->attrs[NL80211_ATTR_MESH_SETUP]) { in nl80211_join_mesh()
8883 if (info->attrs[NL80211_ATTR_WIPHY_FREQ]) { in nl80211_join_mesh()
8892 if (info->attrs[NL80211_ATTR_BSS_BASIC_RATES]) { in nl80211_join_mesh()
8893 u8 *rates = nla_data(info->attrs[NL80211_ATTR_BSS_BASIC_RATES]); in nl80211_join_mesh()
8895 nla_len(info->attrs[NL80211_ATTR_BSS_BASIC_RATES]); in nl80211_join_mesh()
9326 if (!info->attrs[NL80211_ATTR_WOWLAN_TRIGGERS]) { in nl80211_set_wowlan()
9333 nla_data(info->attrs[NL80211_ATTR_WOWLAN_TRIGGERS]), in nl80211_set_wowlan()
9334 nla_len(info->attrs[NL80211_ATTR_WOWLAN_TRIGGERS]), in nl80211_set_wowlan()
9720 if (!info->attrs[NL80211_ATTR_COALESCE_RULE]) { in nl80211_set_coalesce()
9726 nla_for_each_nested(rule, info->attrs[NL80211_ATTR_COALESCE_RULE], in nl80211_set_coalesce()
9740 nla_for_each_nested(rule, info->attrs[NL80211_ATTR_COALESCE_RULE], in nl80211_set_coalesce()
9784 if (!info->attrs[NL80211_ATTR_REKEY_DATA]) in nl80211_set_rekey_data()
9788 nla_data(info->attrs[NL80211_ATTR_REKEY_DATA]), in nl80211_set_rekey_data()
9789 nla_len(info->attrs[NL80211_ATTR_REKEY_DATA]), in nl80211_set_rekey_data()
9855 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_probe_client()
9872 addr = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_probe_client()
10006 if (!info->attrs[NL80211_ATTR_MDID] || in nl80211_update_ft_ies()
10007 !is_valid_ie_attr(info->attrs[NL80211_ATTR_IE])) in nl80211_update_ft_ies()
10011 ft_params.md = nla_get_u16(info->attrs[NL80211_ATTR_MDID]); in nl80211_update_ft_ies()
10012 ft_params.ie = nla_data(info->attrs[NL80211_ATTR_IE]); in nl80211_update_ft_ies()
10013 ft_params.ie_len = nla_len(info->attrs[NL80211_ATTR_IE]); in nl80211_update_ft_ies()
10037 if (info->attrs[NL80211_ATTR_CRIT_PROT_ID]) in nl80211_crit_protocol_start()
10038 proto = nla_get_u16(info->attrs[NL80211_ATTR_CRIT_PROT_ID]); in nl80211_crit_protocol_start()
10044 if (!info->attrs[NL80211_ATTR_MAX_CRIT_PROT_DURATION]) in nl80211_crit_protocol_start()
10048 nla_get_u16(info->attrs[NL80211_ATTR_MAX_CRIT_PROT_DURATION]); in nl80211_crit_protocol_start()
10080 __cfg80211_wdev_from_attrs(genl_info_net(info), info->attrs); in nl80211_vendor_cmd()
10096 if (!info->attrs[NL80211_ATTR_VENDOR_ID] || in nl80211_vendor_cmd()
10097 !info->attrs[NL80211_ATTR_VENDOR_SUBCMD]) in nl80211_vendor_cmd()
10100 vid = nla_get_u32(info->attrs[NL80211_ATTR_VENDOR_ID]); in nl80211_vendor_cmd()
10101 subcmd = nla_get_u32(info->attrs[NL80211_ATTR_VENDOR_SUBCMD]); in nl80211_vendor_cmd()
10134 if (info->attrs[NL80211_ATTR_VENDOR_DATA]) { in nl80211_vendor_cmd()
10135 data = nla_data(info->attrs[NL80211_ATTR_VENDOR_DATA]); in nl80211_vendor_cmd()
10136 len = nla_len(info->attrs[NL80211_ATTR_VENDOR_DATA]); in nl80211_vendor_cmd()
10386 if (info->attrs[NL80211_ATTR_QOS_MAP]) { in nl80211_set_qos_map()
10387 pos = nla_data(info->attrs[NL80211_ATTR_QOS_MAP]); in nl80211_set_qos_map()
10388 len = nla_len(info->attrs[NL80211_ATTR_QOS_MAP]); in nl80211_set_qos_map()
10438 if (!info->attrs[NL80211_ATTR_TSID] || !info->attrs[NL80211_ATTR_MAC] || in nl80211_add_tx_ts()
10439 !info->attrs[NL80211_ATTR_USER_PRIO]) in nl80211_add_tx_ts()
10442 tsid = nla_get_u8(info->attrs[NL80211_ATTR_TSID]); in nl80211_add_tx_ts()
10446 up = nla_get_u8(info->attrs[NL80211_ATTR_USER_PRIO]); in nl80211_add_tx_ts()
10459 peer = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_add_tx_ts()
10461 if (info->attrs[NL80211_ATTR_ADMITTED_TIME]) { in nl80211_add_tx_ts()
10463 nla_get_u16(info->attrs[NL80211_ATTR_ADMITTED_TIME]); in nl80211_add_tx_ts()
10497 if (!info->attrs[NL80211_ATTR_TSID] || !info->attrs[NL80211_ATTR_MAC]) in nl80211_del_tx_ts()
10500 tsid = nla_get_u8(info->attrs[NL80211_ATTR_TSID]); in nl80211_del_tx_ts()
10501 peer = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_del_tx_ts()
10533 if (!info->attrs[NL80211_ATTR_MAC] || in nl80211_tdls_channel_switch()
10534 !info->attrs[NL80211_ATTR_OPER_CLASS]) in nl80211_tdls_channel_switch()
10560 addr = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_tdls_channel_switch()
10561 oper_class = nla_get_u8(info->attrs[NL80211_ATTR_OPER_CLASS]); in nl80211_tdls_channel_switch()
10591 if (!info->attrs[NL80211_ATTR_MAC]) in nl80211_tdls_cancel_channel_switch()
10594 addr = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_tdls_cancel_channel_switch()
10639 info->attrs); in nl80211_pre_doit()