Lines Matching full:msg

37 			       struct p2p_message *msg)
50 msg->capability = data;
61 msg->device_id = data;
63 MAC2STR(msg->device_id));
71 msg->go_intent = data;
81 msg->status = data;
95 msg->listen_channel = data;
118 msg->operating_channel = data;
136 msg->channel_list = data;
137 msg->channel_list_len = len;
148 msg->channel_list, msg->channel_list_len);
151 msg->group_info = data;
152 msg->group_info_len = len;
161 msg->p2p_device_info = data;
162 msg->p2p_device_info_len = len;
164 msg->p2p_device_addr = pos;
166 msg->config_methods = WPA_GET_BE16(pos);
168 msg->pri_dev_type = pos;
170 msg->num_sec_dev_types = *pos++;
171 if (msg->num_sec_dev_types * 8 > data + len - pos) {
175 pos += msg->num_sec_dev_types * 8;
195 p2p_copy_filter_devname(msg->device_name,
196 sizeof(msg->device_name), pos, nlen);
200 MAC2STR(msg->p2p_device_addr),
201 wps_dev_type_bin2str(msg->pri_dev_type, devtype,
203 msg->device_name, msg->config_methods);
211 msg->config_timeout = data;
221 msg->intended_addr = data;
223 MACSTR, MAC2STR(msg->intended_addr));
231 msg->group_bssid = data;
233 MAC2STR(msg->group_bssid));
241 msg->group_id = data;
242 msg->group_id_len = len;
244 MACSTR, MAC2STR(msg->group_id));
246 msg->group_id + ETH_ALEN,
247 msg->group_id_len - ETH_ALEN);
255 msg->invitation_flags = data;
265 msg->manageability = data;
275 msg->noa = data;
276 msg->noa_len = len;
285 msg->ext_listen_timing = data;
288 WPA_GET_LE16(msg->ext_listen_timing),
289 WPA_GET_LE16(msg->ext_listen_timing + 2));
297 msg->minor_reason_code = data;
299 *msg->minor_reason_code);
307 msg->oob_go_neg_channel = data;
321 msg->service_hash_count = len / P2PS_HASH_LEN;
322 msg->service_hash = data;
326 msg->session_info = data;
327 msg->session_info_len = len;
338 msg->conn_cap = data;
340 *msg->conn_cap);
349 msg->adv_id = data;
350 msg->adv_mac = &data[sizeof(u32)];
361 msg->adv_service_instance = data;
362 msg->adv_service_instance_len = len;
386 msg->session_id = data;
387 msg->session_mac = &data[sizeof(u32)];
389 WPA_GET_LE32(data), MAC2STR(msg->session_mac));
398 msg->feature_cap = data;
399 msg->feature_cap_len = len;
411 msg->persistent_dev = data;
412 msg->persistent_ssid_len = len - ETH_ALEN;
413 msg->persistent_ssid = &data[ETH_ALEN];
415 MAC2STR(msg->persistent_dev),
416 wpa_ssid_txt(msg->persistent_ssid,
417 msg->persistent_ssid_len));
433 * @msg: Buffer for returning parsed attributes
436 * Note: Caller is responsible for clearing the msg data structure before
439 int p2p_parse_p2p_ie(const struct wpabuf *buf, struct p2p_message *msg)
466 if (p2p_parse_attribute(id, pos, attr_len, msg))
475 static int p2p_parse_wps_ie(const struct wpabuf *buf, struct p2p_message *msg)
483 if (attr.dev_name && attr.dev_name_len < sizeof(msg->device_name) &&
484 !msg->device_name[0])
485 os_memcpy(msg->device_name, attr.dev_name, attr.dev_name_len);
487 msg->wps_config_methods =
490 msg->wps_config_methods);
493 msg->dev_password_id = WPA_GET_BE16(attr.dev_password_id);
495 msg->dev_password_id);
496 msg->dev_password_id_present = 1;
500 msg->wps_pri_dev_type = attr.primary_dev_type;
502 wps_dev_type_bin2str(msg->wps_pri_dev_type, devtype,
506 msg->wps_sec_dev_type_list = attr.sec_dev_type_list;
507 msg->wps_sec_dev_type_list_len = attr.sec_dev_type_list_len;
511 msg->wps_vendor_ext[i] = attr.vendor_ext[i];
512 msg->wps_vendor_ext_len[i] = attr.vendor_ext_len[i];
515 msg->manufacturer = attr.manufacturer;
516 msg->manufacturer_len = attr.manufacturer_len;
517 msg->model_name = attr.model_name;
518 msg->model_name_len = attr.model_name_len;
519 msg->model_number = attr.model_number;
520 msg->model_number_len = attr.model_number_len;
521 msg->serial_number = attr.serial_number;
522 msg->serial_number_len = attr.serial_number_len;
524 msg->oob_dev_password = attr.oob_dev_password;
525 msg->oob_dev_password_len = attr.oob_dev_password_len;
535 * @msg: Buffer for returning parsed attributes
538 * Note: Caller is responsible for clearing the msg data structure before
544 int p2p_parse_ies(const u8 *data, size_t len, struct p2p_message *msg)
552 msg->ds_params = elems.ds_params;
554 msg->ssid = elems.ssid - 2;
556 msg->wps_attributes = ieee802_11_vendor_ie_concat(data, len,
558 if (msg->wps_attributes &&
559 p2p_parse_wps_ie(msg->wps_attributes, msg)) {
560 p2p_parse_free(msg);
564 msg->p2p_attributes = ieee802_11_vendor_ie_concat(data, len,
566 if (msg->p2p_attributes &&
567 p2p_parse_p2p_ie(msg->p2p_attributes, msg)) {
569 if (msg->p2p_attributes)
571 msg->p2p_attributes);
572 p2p_parse_free(msg);
578 msg->wfd_subelems = ieee802_11_vendor_ie_concat(
583 msg->pref_freq_list = elems.pref_freq_list;
584 msg->pref_freq_list_len = elems.pref_freq_list_len;
594 * @msg: Buffer for returning parsed attributes
600 int p2p_parse(const u8 *data, size_t len, struct p2p_message *msg)
602 os_memset(msg, 0, sizeof(*msg));
608 msg->dialog_token = data[0];
609 wpa_printf(MSG_DEBUG, "P2P: * Dialog Token: %d", msg->dialog_token);
611 return p2p_parse_ies(data + 1, len - 1, msg);
616 size_t p2p_len, struct p2p_message *msg)
618 os_memset(msg, 0, sizeof(*msg));
620 msg->wps_attributes = wpabuf_alloc_copy(wsc, wsc_len);
621 if (msg->wps_attributes &&
622 p2p_parse_wps_ie(msg->wps_attributes, msg)) {
623 p2p_parse_free(msg);
627 msg->p2p_attributes = wpabuf_alloc_copy(p2p, p2p_len);
628 if (msg->p2p_attributes &&
629 p2p_parse_p2p_ie(msg->p2p_attributes, msg)) {
631 if (msg->p2p_attributes)
633 msg->p2p_attributes);
634 p2p_parse_free(msg);
644 * @msg: Parsed attributes
646 void p2p_parse_free(struct p2p_message *msg)
648 wpabuf_free(msg->p2p_attributes);
649 msg->p2p_attributes = NULL;
650 wpabuf_free(msg->wps_attributes);
651 msg->wps_attributes = NULL;
653 wpabuf_free(msg->wfd_subelems);
654 msg->wfd_subelems = NULL;
806 struct p2p_message msg;
810 os_memset(&msg, 0, sizeof(msg));
811 if (p2p_parse_p2p_ie(data, &msg))
814 if (msg.capability) {
818 msg.capability[0], msg.capability[1]);
824 if (msg.pri_dev_type) {
828 wps_dev_type_bin2str(msg.pri_dev_type,
837 msg.device_name);
842 if (msg.p2p_device_addr) {
845 MAC2STR(msg.p2p_device_addr));
852 msg.config_methods);
857 ret = p2p_group_info_text(msg.group_info, msg.group_info_len,
869 struct p2p_message msg;
871 os_memset(&msg, 0, sizeof(msg));
872 if (p2p_parse_p2p_ie(p2p_ie, &msg))
875 if (!msg.manageability)
878 return !(msg.manageability[0] & P2P_MAN_CROSS_CONNECTION_PERMITTED);
884 struct p2p_message msg;
886 os_memset(&msg, 0, sizeof(msg));
887 if (p2p_parse_p2p_ie(p2p_ie, &msg))
890 if (!msg.capability)
893 return msg.capability[1];
899 struct p2p_message msg;
901 os_memset(&msg, 0, sizeof(msg));
902 if (p2p_parse_p2p_ie(p2p_ie, &msg))
905 if (msg.p2p_device_addr)
906 return msg.p2p_device_addr;
907 if (msg.device_id)
908 return msg.device_id;