P2PS: Delete p2ps_svc_found from struct p2p_data
[mech_eap.git] / src / p2p / p2p_i.h
index 127e484..f5bae32 100644 (file)
 
 #define P2P_GO_NEG_CNF_MAX_RETRY_COUNT 1
 
+/*
+ * A threshold (in seconds) to prefer a direct Probe Response frame from a P2P
+ * Device over the P2P Client Info received from a GO.
+ */
+#define P2P_DEV_GROUP_CLIENT_RESP_THRESHOLD 1
+
 enum p2p_role_indication;
 
 /*
@@ -71,7 +77,7 @@ struct p2p_device {
        char country[3];
        struct p2p_channels channels;
        int oper_freq;
-       u8 oper_ssid[32];
+       u8 oper_ssid[SSID_MAX_LEN];
        size_t oper_ssid_len;
 
        /**
@@ -106,6 +112,9 @@ struct p2p_device {
 #define P2P_DEV_NO_PREF_CHAN BIT(18)
 #define P2P_DEV_WAIT_INV_REQ_ACK BIT(19)
 #define P2P_DEV_P2PS_REPORTED BIT(20)
+#define P2P_DEV_PD_PEER_P2PS BIT(21)
+#define P2P_DEV_LAST_SEEN_AS_GROUP_CLIENT BIT(22)
+
        unsigned int flags;
 
        int status; /* enum p2p_status_code */
@@ -321,7 +330,7 @@ struct p2p_data {
        /**
         * ssid - Selected SSID for GO Negotiation (if local end will be GO)
         */
-       u8 ssid[32];
+       u8 ssid[SSID_MAX_LEN];
 
        /**
         * ssid_len - ssid length in octets
@@ -362,6 +371,7 @@ struct p2p_data {
                P2P_PENDING_GO_NEG_CONFIRM,
                P2P_PENDING_SD,
                P2P_PENDING_PD,
+               P2P_PENDING_PD_RESPONSE,
                P2P_PENDING_INVITATION_REQUEST,
                P2P_PENDING_INVITATION_RESPONSE,
                P2P_PENDING_DEV_DISC_REQUEST,
@@ -401,7 +411,7 @@ struct p2p_data {
        enum p2p_invite_role inv_role;
        u8 inv_bssid[ETH_ALEN];
        int inv_bssid_set;
-       u8 inv_ssid[32];
+       u8 inv_ssid[SSID_MAX_LEN];
        size_t inv_ssid_len;
        u8 inv_sa[ETH_ALEN];
        u8 inv_group_bssid[ETH_ALEN];
@@ -502,12 +512,12 @@ struct p2p_data {
 
        /* ASP Support */
        struct p2ps_advertisement *p2ps_adv_list;
+       struct p2ps_provision *p2ps_prov;
        u8 wild_card_hash[P2PS_HASH_LEN];
        u8 query_hash[P2P_MAX_QUERY_HASH * P2PS_HASH_LEN];
        u8 query_count;
        u8 p2ps_seek;
        u8 p2ps_seek_count;
-       u8 p2ps_svc_found;
 
 #ifdef CONFIG_WIFI_DISPLAY
        struct wpabuf *wfd_ie_beacon;
@@ -575,7 +585,7 @@ struct p2p_message {
        const u8 *p2p_device_addr;
        const u8 *pri_dev_type;
        u8 num_sec_dev_types;
-       char device_name[33];
+       char device_name[WPS_DEV_NAME_MAX_LEN + 1];
        u16 config_methods;
 
        /* WPS IE */
@@ -792,6 +802,7 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
 int p2p_send_prov_disc_req(struct p2p_data *p2p, struct p2p_device *dev,
                           int join, int force_freq);
 void p2p_reset_pending_pd(struct p2p_data *p2p);
+void p2ps_prov_free(struct p2p_data *p2p);
 
 /* p2p_invitation.c */
 void p2p_process_invitation_req(struct p2p_data *p2p, const u8 *sa,
@@ -847,6 +858,8 @@ int p2p_prepare_channel(struct p2p_data *p2p, struct p2p_device *dev,
                        unsigned int force_freq, unsigned int pref_freq,
                        int go);
 void p2p_go_neg_wait_timeout(void *eloop_ctx, void *timeout_ctx);
+int p2p_go_select_channel(struct p2p_data *p2p, struct p2p_device *dev,
+                         u8 *status);
 void p2p_dbg(struct p2p_data *p2p, const char *fmt, ...)
 PRINTF_FORMAT(2, 3);
 void p2p_info(struct p2p_data *p2p, const char *fmt, ...)