return NULL;
dl_list_add(&p2p->devices, &dev->list);
os_memcpy(dev->info.p2p_device_addr, addr, ETH_ALEN);
+ dev->support_6ghz = false;
return dev;
}
dev->info.group_capab = msg->capability[1];
}
+ p2p_update_peer_6ghz_capab(dev, msg);
+
if (msg->ext_listen_timing) {
dev->ext_listen_period = WPA_GET_LE16(msg->ext_listen_timing);
dev->ext_listen_interval =
}
+void p2p_update_peer_6ghz_capab(struct p2p_device *dev,
+ const struct p2p_message *msg)
+{
+ if (msg->capability &&
+ (msg->capability[0] & P2P_DEV_CAPAB_6GHZ_BAND_CAPABLE))
+ dev->support_6ghz = true;
+}
+
+
static void p2p_update_peer_vendor_elems(struct p2p_device *dev, const u8 *ies,
size_t ies_len)
{
}
}
+ p2p_update_peer_6ghz_capab(dev, &msg);
os_get_reltime(&dev->last_seen);
p2p_parse_free(&msg);
return; /* already known */
if (!dev)
return false;
- return !!(dev->info.dev_capab & P2P_DEV_CAPAB_6GHZ_BAND_CAPABLE);
+ return dev->support_6ghz;
}
p2p_add_dev_info(p2p, sa, dev, &msg);
}
+ if (dev)
+ p2p_update_peer_6ghz_capab(dev, &msg);
+
if (p2p->go_neg_peer && p2p->go_neg_peer == dev)
eloop_cancel_timeout(p2p_go_neg_wait_timeout, p2p, NULL);
return;
}
dev->flags &= ~P2P_DEV_WAIT_GO_NEG_RESPONSE;
+ p2p_update_peer_6ghz_capab(dev, &msg);
if (msg.dialog_token != dev->dialog_token) {
p2p_dbg(p2p, "Unexpected Dialog Token %u (expected %u)",
return;
}
+ p2p_update_peer_6ghz_capab(dev, &msg);
+
if (dev->go_state == REMOTE_GO && msg.group_id) {
/* Store SSID for Provisioning step */
p2p->ssid_len = msg.group_id_len - ETH_ALEN;
struct wpabuf *go_neg_conf;
int sd_pending_bcast_queries;
+ bool support_6ghz;
};
struct p2p_sd_query {
struct p2p_device * p2p_add_dev_from_go_neg_req(struct p2p_data *p2p,
const u8 *addr,
struct p2p_message *msg);
+void p2p_update_peer_6ghz_capab(struct p2p_device *dev,
+ const struct p2p_message *msg);
void p2p_add_dev_info(struct p2p_data *p2p, const u8 *addr,
struct p2p_device *dev, struct p2p_message *msg);
int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
dev->info.wfd_subelems = wpabuf_dup(msg.wfd_subelems);
}
+ p2p_update_peer_6ghz_capab(dev, &msg);
+
if (!msg.adv_id) {
allowed_config_methods |= WPS_CONFIG_PUSHBUTTON;
if (!(msg.wps_config_methods & allowed_config_methods)) {
dev->info.wfd_subelems = wpabuf_dup(msg.wfd_subelems);
}
+ p2p_update_peer_6ghz_capab(dev, &msg);
+
if (dev->dialog_token != msg.dialog_token) {
p2p_dbg(p2p, "Ignore Provision Discovery Response with unexpected Dialog Token %u (expected %u)",
msg.dialog_token, dev->dialog_token);