Lines Matching refs:p2p

18 #include "p2p.h"
35 struct p2p_data *p2p;
46 struct p2p_group * p2p_group_init(struct p2p_data *p2p,
55 groups = os_realloc_array(p2p->groups, p2p->num_groups + 1,
61 groups[p2p->num_groups++] = group;
62 p2p->groups = groups;
64 group->p2p = p2p;
101 struct p2p_data *p2p;
106 p2p = group->p2p;
108 for (g = 0; g < p2p->num_groups; g++) {
109 if (p2p->groups[g] == group) {
110 while (g + 1 < p2p->num_groups) {
111 p2p->groups[g] = p2p->groups[g + 1];
114 p2p->num_groups--;
140 u8 dev_capab = group->p2p->dev_capab, group_capab = 0;
150 if (group->p2p->cfg->p2p_intra_bss)
154 if (group->p2p->cross_connect)
215 if (group->p2p->wfd_ie_beacon)
216 extra = wpabuf_len(group->p2p->wfd_ie_beacon);
219 if (group->p2p->vendor_elem &&
220 group->p2p->vendor_elem[VENDOR_ELEM_BEACON_P2P_GO])
221 extra += wpabuf_len(group->p2p->vendor_elem[VENDOR_ELEM_BEACON_P2P_GO]);
228 if (group->p2p->wfd_ie_beacon)
229 wpabuf_put_buf(ie, group->p2p->wfd_ie_beacon);
232 if (group->p2p->vendor_elem &&
233 group->p2p->vendor_elem[VENDOR_ELEM_BEACON_P2P_GO])
235 group->p2p->vendor_elem[VENDOR_ELEM_BEACON_P2P_GO]);
239 p2p_buf_add_device_id(ie, group->p2p->cfg->dev_addr);
361 if (!group->p2p->wfd_ie_probe_resp)
364 wfd_subelems = wpabuf_alloc(wpabuf_len(group->p2p->wfd_ie_probe_resp) +
368 if (group->p2p->wfd_dev_info)
369 wpabuf_put_buf(wfd_subelems, group->p2p->wfd_dev_info);
370 if (group->p2p->wfd_r2_dev_info)
371 wpabuf_put_buf(wfd_subelems, group->p2p->wfd_r2_dev_info);
372 if (group->p2p->wfd_assoc_bssid)
374 group->p2p->wfd_assoc_bssid);
375 if (group->p2p->wfd_coupled_sink_info)
377 group->p2p->wfd_coupled_sink_info);
395 p2p_dbg(group->p2p, "WFD: WFD Session Info: %u descriptors",
421 p2p_dbg(group->p2p, "* P2P Group Info");
438 p2p_buf_add_group_id(buf, group->p2p->cfg->dev_addr, group->cfg->ssid,
455 p2p_buf_add_device_info(p2p_subelems, group->p2p, NULL);
464 if (group->p2p->vendor_elem &&
465 group->p2p->vendor_elem[VENDOR_ELEM_PROBE_RESP_P2P_GO]) {
467 extra = wpabuf_dup(group->p2p->vendor_elem[VENDOR_ELEM_PROBE_RESP_P2P_GO]);
610 p2p_add_device(group->p2p, addr, 0, NULL, 0, ie, len, 0);
631 p2p_dbg(group->p2p, "Add client " MACSTR
632 " to group (p2p=%d wfd=%d client_info=%d); num_members=%u/%u",
657 if (group->p2p->vendor_elem &&
658 group->p2p->vendor_elem[VENDOR_ELEM_P2P_ASSOC_RESP])
659 extra += wpabuf_len(group->p2p->vendor_elem[VENDOR_ELEM_P2P_ASSOC_RESP]);
676 if (group->p2p->vendor_elem &&
677 group->p2p->vendor_elem[VENDOR_ELEM_P2P_ASSOC_RESP])
679 group->p2p->vendor_elem[VENDOR_ELEM_P2P_ASSOC_RESP]);
693 p2p_dbg(group->p2p, "Remove client " MACSTR
763 if (p2p_match_dev_type(group->p2p, wps))
776 int p2p_group_match_dev_id(struct p2p_group *group, struct wpabuf *p2p)
782 if (p2p_parse_p2p_ie(p2p, &msg))
788 if (os_memcmp(msg.device_id, group->p2p->cfg->dev_addr, ETH_ALEN) == 0)
915 struct p2p_data *p2p = group->p2p;
920 p2p_dbg(group->p2p, "Requested client was not in this group "
926 p2p_dbg(group->p2p, "Requested client does not support client discoverability");
930 p2p_dbg(group->p2p, "Schedule GO Discoverability Request to be sent to "
940 p2p->pending_action_state = P2P_PENDING_GO_DISC_REQ;
941 if (p2p->cfg->send_action(p2p->cfg->cb_ctx, freq, m->addr,
947 p2p_dbg(p2p, "Failed to send Action frame");
972 p2p_dbg(group->p2p, "Client was not in this group");
978 if (group->p2p->cfg->get_noa)
979 curr_noa_len = group->p2p->cfg->get_noa(
980 group->p2p->cfg->cb_ctx, group->cfg->interface_addr,
985 p2p_dbg(group->p2p, "Failed to fetch current NoA");
987 p2p_dbg(group->p2p, "No NoA being advertized");
1054 if (os_memcmp(group_id, group->p2p->cfg->dev_addr, ETH_ALEN) != 0)
1080 void p2p_loop_on_all_groups(struct p2p_data *p2p,
1087 for (i = 0; i < p2p->num_groups; i++) {
1088 if (!group_callback(p2p->groups[i], user_data))
1107 p2p_channels_union(&intersect, &group->p2p->cfg->channels,
1110 p2p_channels_dump(group->p2p,
1117 dev = p2p_get_device(group->p2p, m->dev_addr);
1125 p2p_channels_dump(group->p2p, "Group common channels", &intersect);