]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Introduce 6 GHz band capability bit in P2P Device Capability
authorSreeramya Soratkal <ssramya@codeaurora.org>
Tue, 4 May 2021 06:59:44 +0000 (12:29 +0530)
committerJouni Malinen <j@w1.fi>
Thu, 10 Jun 2021 20:08:22 +0000 (23:08 +0300)
Introduce P2P 6 GHz band capable information in Device Capability
Bitmap of P2P Capability sub-attribute.

Signed-off-by: Sreeramya Soratkal <ssramya@codeaurora.org>
src/common/ieee802_11_defs.h
src/p2p/p2p.c
src/p2p/p2p.h
src/p2p/p2p_i.h

index 7d2f36b8f1e63e366cb6302f27b40608b429ea44..519a13b1d0647fd09f9b9b9fcd9005915b40ea17 100644 (file)
@@ -1657,6 +1657,7 @@ enum p2p_attr_id {
 #define P2P_DEV_CAPAB_INFRA_MANAGED BIT(3)
 #define P2P_DEV_CAPAB_DEVICE_LIMIT BIT(4)
 #define P2P_DEV_CAPAB_INVITATION_PROCEDURE BIT(5)
+#define P2P_DEV_CAPAB_6GHZ_BAND_CAPABLE BIT(6)
 
 /* P2P Capability - Group Capability bitmap */
 #define P2P_GROUP_CAPAB_GROUP_OWNER BIT(0)
index 1aa98f1a877a69a53870c96f6c721e3865296125..a5a04e3773af06315df224f12479c79e4b4f4304 100644 (file)
@@ -5575,3 +5575,33 @@ struct wpabuf * p2p_build_probe_resp_template(struct p2p_data *p2p,
 
        return buf;
 }
+
+
+bool p2p_is_peer_6ghz_capab(struct p2p_data *p2p, const u8 *addr)
+{
+       struct p2p_device *dev;
+
+       dev = p2p_get_device(p2p, addr);
+       if (!dev)
+               return false;
+
+       return !!(dev->info.dev_capab & P2P_DEV_CAPAB_6GHZ_BAND_CAPABLE);
+}
+
+
+void p2p_set_6ghz_dev_capab(struct p2p_data *p2p, bool allow_6ghz)
+{
+       p2p->p2p_6ghz_capable = allow_6ghz;
+       p2p_dbg(p2p, "Set 6 GHz capability to %d", allow_6ghz);
+
+       if (allow_6ghz)
+               p2p->dev_capab |= P2P_DEV_CAPAB_6GHZ_BAND_CAPABLE;
+       else
+               p2p->dev_capab &= ~P2P_DEV_CAPAB_6GHZ_BAND_CAPABLE;
+}
+
+
+bool is_p2p_6ghz_capable(struct p2p_data *p2p)
+{
+       return p2p->p2p_6ghz_capable;
+}
index 762bd40bea8b536c42296b5fb5135b9fd7594d62..0bc2e606fa341b8ebeac9a85f4f0b49592d62b7e 100644 (file)
@@ -2411,4 +2411,8 @@ int p2p_group_get_common_freqs(struct p2p_group *group, int *common_freqs,
 struct wpabuf * p2p_build_probe_resp_template(struct p2p_data *p2p,
                                              unsigned int freq);
 
+void p2p_set_6ghz_dev_capab(struct p2p_data *p2p, bool allow_6ghz);
+bool is_p2p_6ghz_capable(struct p2p_data *p2p);
+bool p2p_is_peer_6ghz_capab(struct p2p_data *p2p, const u8 *addr);
+
 #endif /* P2P_H */
index 4195c5f07dd12192c20a2c5d310e8bbc53a9346b..b4e3c4401f9c1a1fec2f49b6c7853ee4a6c6ad03 100644 (file)
@@ -548,6 +548,7 @@ struct p2p_data {
        /* Override option for preferred operating channel in GO Negotiation */
        u8 override_pref_op_class;
        u8 override_pref_channel;
+       bool p2p_6ghz_capable;
 };
 
 /**