Lines Matching refs:buf
143 struct wpabuf *buf; in wpas_rrm_send_neighbor_rep_request() local
159 buf = wpabuf_alloc(3 + (ssid ? 2 + ssid->ssid_len : 0) + in wpas_rrm_send_neighbor_rep_request()
162 if (buf == NULL) { in wpas_rrm_send_neighbor_rep_request()
173 wpabuf_put_u8(buf, WLAN_ACTION_RADIO_MEASUREMENT); in wpas_rrm_send_neighbor_rep_request()
174 wpabuf_put_u8(buf, WLAN_RRM_NEIGHBOR_REPORT_REQUEST); in wpas_rrm_send_neighbor_rep_request()
175 wpabuf_put_u8(buf, wpa_s->rrm.next_neighbor_rep_token); in wpas_rrm_send_neighbor_rep_request()
177 wpabuf_put_u8(buf, WLAN_EID_SSID); in wpas_rrm_send_neighbor_rep_request()
178 wpabuf_put_u8(buf, ssid->ssid_len); in wpas_rrm_send_neighbor_rep_request()
179 wpabuf_put_data(buf, ssid->ssid, ssid->ssid_len); in wpas_rrm_send_neighbor_rep_request()
184 wpabuf_put_u8(buf, WLAN_EID_MEASURE_REQUEST); in wpas_rrm_send_neighbor_rep_request()
185 wpabuf_put_u8(buf, MEASURE_REQUEST_LCI_LEN); in wpas_rrm_send_neighbor_rep_request()
191 wpabuf_put_u8(buf, 1); /* Measurement Token */ in wpas_rrm_send_neighbor_rep_request()
197 wpabuf_put_u8(buf, 0); /* Measurement Request Mode */ in wpas_rrm_send_neighbor_rep_request()
198 wpabuf_put_u8(buf, MEASURE_TYPE_LCI); /* Measurement Type */ in wpas_rrm_send_neighbor_rep_request()
202 wpabuf_put_u8(buf, LOCATION_SUBJECT_REMOTE); in wpas_rrm_send_neighbor_rep_request()
211 wpabuf_put_u8(buf, LCI_REQ_SUBELEM_MAX_AGE); in wpas_rrm_send_neighbor_rep_request()
212 wpabuf_put_u8(buf, 2); in wpas_rrm_send_neighbor_rep_request()
213 wpabuf_put_le16(buf, 0xffff); in wpas_rrm_send_neighbor_rep_request()
218 wpabuf_put_u8(buf, WLAN_EID_MEASURE_REQUEST); in wpas_rrm_send_neighbor_rep_request()
219 wpabuf_put_u8(buf, MEASURE_REQUEST_CIVIC_LEN); in wpas_rrm_send_neighbor_rep_request()
225 wpabuf_put_u8(buf, 2); /* Measurement Token */ in wpas_rrm_send_neighbor_rep_request()
231 wpabuf_put_u8(buf, 0); /* Measurement Request Mode */ in wpas_rrm_send_neighbor_rep_request()
233 wpabuf_put_u8(buf, MEASURE_TYPE_LOCATION_CIVIC); in wpas_rrm_send_neighbor_rep_request()
238 wpabuf_put_u8(buf, LOCATION_SUBJECT_REMOTE); in wpas_rrm_send_neighbor_rep_request()
239 wpabuf_put_u8(buf, 0); /* Civic Location Type: IETF RFC 4776 */ in wpas_rrm_send_neighbor_rep_request()
241 wpabuf_put_u8(buf, 0); in wpas_rrm_send_neighbor_rep_request()
244 wpabuf_put_le16(buf, 0); in wpas_rrm_send_neighbor_rep_request()
251 wpabuf_head(buf), wpabuf_len(buf), 0) < 0) { in wpas_rrm_send_neighbor_rep_request()
254 wpabuf_free(buf); in wpas_rrm_send_neighbor_rep_request()
264 wpabuf_free(buf); in wpas_rrm_send_neighbor_rep_request()
269 static int wpas_rrm_report_elem(struct wpabuf **buf, u8 token, u8 mode, u8 type, in wpas_rrm_report_elem() argument
272 if (wpabuf_resize(buf, 5 + data_len)) in wpas_rrm_report_elem()
275 wpabuf_put_u8(*buf, WLAN_EID_MEASURE_REPORT); in wpas_rrm_report_elem()
276 wpabuf_put_u8(*buf, 3 + data_len); in wpas_rrm_report_elem()
277 wpabuf_put_u8(*buf, token); in wpas_rrm_report_elem()
278 wpabuf_put_u8(*buf, mode); in wpas_rrm_report_elem()
279 wpabuf_put_u8(*buf, type); in wpas_rrm_report_elem()
282 wpabuf_put_data(*buf, data, data_len); in wpas_rrm_report_elem()
358 struct wpabuf *buf) in wpas_rrm_send_msr_report() argument
360 int len = wpabuf_len(buf); in wpas_rrm_send_msr_report()
361 u8 *pos = wpabuf_mhead_u8(buf), *next = pos; in wpas_rrm_send_msr_report()
412 struct wpa_bss *bss, u8 *buf, in wpas_beacon_rep_add_frame_body() argument
418 u8 *pos = buf; in wpas_beacon_rep_add_frame_body()
455 rem_len -= pos - buf; in wpas_beacon_rep_add_frame_body()
470 if (2 + elen > buf + buf_len - pos || in wpas_beacon_rep_add_frame_body()
489 buf[1] = pos - buf - 2; in wpas_beacon_rep_add_frame_body()
490 return pos - buf; in wpas_beacon_rep_add_frame_body()
501 u8 *buf, *pos; in wpas_add_beacon_rep_elem() local
509 buf = os_malloc(sizeof(*rep) + 14 + *ie_len + subelems_len); in wpas_add_beacon_rep_elem()
510 if (!buf) in wpas_add_beacon_rep_elem()
513 os_memcpy(buf, rep, sizeof(*rep)); in wpas_add_beacon_rep_elem()
516 bss, buf + sizeof(*rep), in wpas_add_beacon_rep_elem()
522 pos = buf + ret + sizeof(*rep); in wpas_add_beacon_rep_elem()
552 MEASURE_TYPE_BEACON, buf, in wpas_add_beacon_rep_elem()
555 os_free(buf); in wpas_add_beacon_rep_elem()
608 struct wpabuf **buf) in wpas_beacon_rep_no_results() argument
610 return wpas_rrm_report_elem(buf, wpa_s->beacon_rep_data.token, in wpas_beacon_rep_no_results()
617 struct wpabuf **buf) in wpas_beacon_rep_table() argument
622 if (wpas_add_beacon_rep(wpa_s, buf, wpa_s->last_scan_res[i], in wpas_beacon_rep_table()
627 if (!(*buf)) in wpas_beacon_rep_table()
628 wpas_beacon_rep_no_results(wpa_s, buf); in wpas_beacon_rep_table()
630 wpa_hexdump_buf(MSG_DEBUG, "RRM: Radio Measurement report", *buf); in wpas_beacon_rep_table()
637 struct wpabuf *buf = NULL; in wpas_rrm_refuse_request() local
639 if (wpas_rrm_report_elem(&buf, wpa_s->beacon_rep_data.token, in wpas_rrm_refuse_request()
643 wpabuf_free(buf); in wpas_rrm_refuse_request()
647 wpas_rrm_send_msr_report(wpa_s, buf); in wpas_rrm_refuse_request()
648 wpabuf_free(buf); in wpas_rrm_refuse_request()
792 size_t len, struct wpabuf **buf) in wpas_rm_handle_beacon_req() argument
848 wpas_beacon_rep_table(wpa_s, buf); in wpas_rm_handle_beacon_req()
880 wpas_rrm_report_elem(buf, elem_token, reject_mode, in wpas_rm_handle_beacon_req()
895 struct wpabuf **buf) in wpas_rrm_handle_msr_req_element() argument
924 req->len - 3, buf); in wpas_rrm_handle_msr_req_element()
934 wpas_rrm_report_elem(buf, req->token, in wpas_rrm_handle_msr_req_element()
949 struct wpabuf *buf = NULL; in wpas_rrm_process_msr_req_elems() local
979 res = wpas_rrm_handle_msr_req_element(wpa_s, req, &buf); in wpas_rrm_process_msr_req_elems()
987 return buf; in wpas_rrm_process_msr_req_elems()
990 wpabuf_free(buf); in wpas_rrm_process_msr_req_elems()
1032 struct wpabuf *buf; in wpas_rrm_handle_link_measurement_request() local
1061 buf = wpabuf_alloc(2 + sizeof(report)); in wpas_rrm_handle_link_measurement_request()
1062 if (buf == NULL) { in wpas_rrm_handle_link_measurement_request()
1068 wpabuf_put_u8(buf, WLAN_ACTION_RADIO_MEASUREMENT); in wpas_rrm_handle_link_measurement_request()
1069 wpabuf_put_u8(buf, WLAN_RRM_LINK_MEASUREMENT_REPORT); in wpas_rrm_handle_link_measurement_request()
1070 wpabuf_put_data(buf, &report, sizeof(report)); in wpas_rrm_handle_link_measurement_request()
1071 wpa_hexdump_buf(MSG_DEBUG, "RRM: Link measurement report", buf); in wpas_rrm_handle_link_measurement_request()
1074 wpabuf_head(buf), wpabuf_len(buf), 0)) { in wpas_rrm_handle_link_measurement_request()
1078 wpabuf_free(buf); in wpas_rrm_handle_link_measurement_request()
1086 struct wpabuf *buf = NULL; in wpas_beacon_rep_scan_process() local
1143 if (wpas_add_beacon_rep(wpa_s, &buf, bss, scan_start_tsf, in wpas_beacon_rep_scan_process()
1148 if (!buf && wpas_beacon_rep_no_results(wpa_s, &buf)) in wpas_beacon_rep_scan_process()
1151 wpa_hexdump_buf(MSG_DEBUG, "RRM: Radio Measurement report", buf); in wpas_beacon_rep_scan_process()
1153 wpas_rrm_send_msr_report(wpa_s, buf); in wpas_beacon_rep_scan_process()
1154 wpabuf_free(buf); in wpas_beacon_rep_scan_process()