Lines Matching full:ie
271 static size_t cfg80211_gen_new_ie(const u8 *ie, size_t ielen, in cfg80211_gen_new_ie() argument
281 * mark an ie after it is processed. in cfg80211_gen_new_ie()
301 /* go through IEs in ie (skip SSID) and subelement, in cfg80211_gen_new_ie()
304 tmp_old = cfg80211_find_ie(WLAN_EID_SSID, ie, ielen); in cfg80211_gen_new_ie()
305 tmp_old = (tmp_old) ? tmp_old + tmp_old[1] + 2 : ie; in cfg80211_gen_new_ie()
307 while (tmp_old + tmp_old[1] + 2 - ie <= ielen) { in cfg80211_gen_new_ie()
323 /* ie in old ie but not in subelement */ in cfg80211_gen_new_ie()
330 /* ie in transmitting ie also in subelement, in cfg80211_gen_new_ie()
331 * copy from subelement and flag the ie in subelement in cfg80211_gen_new_ie()
334 * For vendor ie, compare OUI + type + subType to in cfg80211_gen_new_ie()
335 * determine if they are the same ie. in cfg80211_gen_new_ie()
339 /* same vendor ie, copy from in cfg80211_gen_new_ie()
350 /* copy ie from subelement into new ie */ in cfg80211_gen_new_ie()
357 if (tmp_old + tmp_old[1] + 2 - ie == ielen) in cfg80211_gen_new_ie()
363 /* go through subelement again to check if there is any ie not in cfg80211_gen_new_ie()
364 * copied to new ie, skip ssid, capability, bssid-index ie in cfg80211_gen_new_ie()
602 /* RNR IE may contain more than one NEIGHBOR_AP_INFO */ in cfg80211_parse_colocated_ap()
1060 * available, ie. struct wiphy::max_sched_scan_reqs limit is not yet reached.
1324 /* sort missing IE before (left of) present IE */ in cmp_bss()
1516 const u8 *ie; in cfg80211_combine_bsses() local
1525 ie = cfg80211_find_ie(WLAN_EID_SSID, ies->data, ies->len); in cfg80211_combine_bsses()
1526 if (!ie) { in cfg80211_combine_bsses()
1531 ssidlen = ie[1]; in cfg80211_combine_bsses()
1533 fold |= ie[2 + i]; in cfg80211_combine_bsses()
1560 ie = cfg80211_find_ie(WLAN_EID_SSID, ies->data, ies->len); in cfg80211_combine_bsses()
1561 if (!ie) in cfg80211_combine_bsses()
1563 if (ssidlen && ie[1] != ssidlen) in cfg80211_combine_bsses()
1796 cfg80211_get_bss_channel(struct wiphy *wiphy, const u8 *ie, size_t ielen, in cfg80211_get_bss_channel() argument
1806 tmp = cfg80211_find_ie(WLAN_EID_S1G_OPERATION, ie, ielen); in cfg80211_get_bss_channel()
1813 tmp = cfg80211_find_ie(WLAN_EID_DS_PARAMS, ie, ielen); in cfg80211_get_bss_channel()
1817 tmp = cfg80211_find_ie(WLAN_EID_HT_OPERATION, ie, ielen); in cfg80211_get_bss_channel()
1873 u16 beacon_interval, const u8 *ie, size_t ielen, in cfg80211_inform_single_bss_data() argument
1892 channel = cfg80211_get_bss_channel(wiphy, ie, ielen, data->chan, in cfg80211_inform_single_bss_data()
1927 memcpy(ies->data, ie, ielen); in cfg80211_inform_single_bss_data()
1974 *cfg80211_get_profile_continuation(const u8 *ie, size_t ielen, in cfg80211_get_profile_continuation() argument
1984 ielen - (mbssid_end - ie)); in cfg80211_get_profile_continuation()
1987 * If it is not the last subelement in current MBSSID IE or there isn't in cfg80211_get_profile_continuation()
1988 * a next MBSSID IE - profile is complete. in cfg80211_get_profile_continuation()
2016 size_t cfg80211_merge_profile(const u8 *ie, size_t ielen, in cfg80211_merge_profile() argument
2029 while ((next_mbssid = cfg80211_get_profile_continuation(ie, ielen, in cfg80211_merge_profile()
2049 u16 beacon_interval, const u8 *ie, in cfg80211_parse_mbssid_data() argument
2065 if (!cfg80211_find_ie(WLAN_EID_MULTIPLE_BSSID, ie, ielen)) in cfg80211_parse_mbssid_data()
2070 !cfg80211_find_ext_ie(WLAN_EID_EXT_HE_CAPABILITY, ie, ielen)) in cfg80211_parse_mbssid_data()
2081 for_each_element_id(elem, WLAN_EID_MULTIPLE_BSSID, ie, ielen) { in cfg80211_parse_mbssid_data()
2102 profile_len = cfg80211_merge_profile(ie, ielen, in cfg80211_parse_mbssid_data()
2134 new_ie_len = cfg80211_gen_new_ie(ie, ielen, in cfg80211_parse_mbssid_data()
2167 u16 beacon_interval, const u8 *ie, size_t ielen, in cfg80211_inform_bss_data() argument
2174 capability, beacon_interval, ie, in cfg80211_inform_bss_data()
2180 beacon_interval, ie, ielen, &non_tx_data, in cfg80211_inform_bss_data()
2194 const u8 *ie = mgmt->u.probe_resp.variable; in cfg80211_parse_mbssid_frame_data() local
2204 ie, ielen, non_tx_data, gfp); in cfg80211_parse_mbssid_frame_data()
2212 u8 *ie, *new_ie, *pos; in cfg80211_update_notlisted_nontrans() local
2223 ie = mgmt->u.probe_resp.variable; in cfg80211_update_notlisted_nontrans()
2226 trans_ssid = cfg80211_find_ie(WLAN_EID_SSID, ie, ielen); in cfg80211_update_notlisted_nontrans()
2230 mbssid = cfg80211_find_ie(WLAN_EID_MULTIPLE_BSSID, ie, ielen); in cfg80211_update_notlisted_nontrans()
2246 /* generate new ie for nontrans BSS in cfg80211_update_notlisted_nontrans()
2248 * 2. skip MBSSID IE in cfg80211_update_notlisted_nontrans()
2270 memcpy(pos, mbssid + cpy_len, ((ie + ielen) - (mbssid + cpy_len))); in cfg80211_update_notlisted_nontrans()
2272 /* update ie */ in cfg80211_update_notlisted_nontrans()
2355 u8 *ie; in cfg80211_inform_single_bss_frame_data() local
2357 ie = (void *)cfg80211_find_ie(WLAN_EID_S1G_BCN_COMPAT, in cfg80211_inform_single_bss_frame_data()
2359 if (!ie) in cfg80211_inform_single_bss_frame_data()
2361 compat = (void *)(ie + 2); in cfg80211_inform_single_bss_frame_data()
2426 const u8 *ie = mgmt->u.probe_resp.variable; in cfg80211_inform_bss_frame_data() local
2435 !cfg80211_find_ie(WLAN_EID_MULTIPLE_BSSID, ie, ielen)) in cfg80211_inform_bss_frame_data()
2438 !cfg80211_find_ext_ie(WLAN_EID_EXT_HE_CAPABILITY, ie, ielen)) in cfg80211_inform_bss_frame_data()
2449 * in MBSSID IE in cfg80211_inform_bss_frame_data()
2804 * If needed, fragment the IEs buffer (at IE boundaries) into short in ieee80211_scan_add_ies()
2847 const u8 *ie; in ieee80211_bss() local
2929 ie = ies->data; in ieee80211_bss()
2933 if (ie[1] > rem - 2) in ieee80211_bss()
2936 switch (ie[0]) { in ieee80211_bss()
2940 iwe.u.data.length = ie[1]; in ieee80211_bss()
2945 (u8 *)ie + 2); in ieee80211_bss()
2952 iwe.u.data.length = ie[1]; in ieee80211_bss()
2957 (u8 *)ie + 2); in ieee80211_bss()
2963 if (ie[1] != sizeof(struct ieee80211_meshconf_ie)) in ieee80211_bss()
2965 cfg = (u8 *)ie + 2; in ieee80211_bss()
3038 for (i = 0; i < ie[1]; i++) { in ieee80211_bss()
3040 ((ie[i + 2] & 0x7f) * 500000); in ieee80211_bss()
3053 rem -= ie[1] + 2; in ieee80211_bss()
3054 ie += ie[1] + 2; in ieee80211_bss()