]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Add more debug prints for Probe Request processing
authorJouni Malinen <jouni@qca.qualcomm.com>
Mon, 17 Feb 2014 09:43:53 +0000 (11:43 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 17 Feb 2014 09:43:53 +0000 (11:43 +0200)
It can be helpful to see from the debug log why the P2P Device role did
not reply to a Probe Request frame.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/p2p/p2p.c

index 3010377e546d7aa38c30735839a8fad2b26faa2d..2ecc5473c58f86fc58b258c61339ad20e80a9297 100644 (file)
@@ -1974,17 +1974,20 @@ p2p_reply_probe(struct p2p_data *p2p, const u8 *addr, const u8 *dst,
 
        if (!p2p->in_listen || !p2p->drv_in_listen) {
                /* not in Listen state - ignore Probe Request */
+               p2p_dbg(p2p, "Not in Listen state - ignore Probe Request");
                return P2P_PREQ_NOT_LISTEN;
        }
 
        if (ieee802_11_parse_elems((u8 *) ie, ie_len, &elems, 0) ==
            ParseFailed) {
                /* Ignore invalid Probe Request frames */
+               p2p_dbg(p2p, "Could not parse Probe Request frame - ignore it");
                return P2P_PREQ_MALFORMED;
        }
 
        if (elems.p2p == NULL) {
                /* not a P2P probe - ignore it */
+               p2p_dbg(p2p, "Not a P2P probe - ignore it");
                return P2P_PREQ_NOT_P2P;
        }
 
@@ -1992,11 +1995,15 @@ p2p_reply_probe(struct p2p_data *p2p, const u8 *addr, const u8 *dst,
            os_memcmp(dst, p2p->cfg->dev_addr, ETH_ALEN) != 0) {
                /* Not sent to the broadcast address or our P2P Device Address
                 */
+               p2p_dbg(p2p, "Probe Req DA " MACSTR " not ours - ignore it",
+                       MAC2STR(dst));
                return P2P_PREQ_NOT_PROCESSED;
        }
 
        if (bssid && !is_broadcast_ether_addr(bssid)) {
                /* Not sent to the Wildcard BSSID */
+               p2p_dbg(p2p, "Probe Req BSSID " MACSTR " not wildcard - ignore it",
+                       MAC2STR(bssid));
                return P2P_PREQ_NOT_PROCESSED;
        }
 
@@ -2004,23 +2011,28 @@ p2p_reply_probe(struct p2p_data *p2p, const u8 *addr, const u8 *dst,
            os_memcmp(elems.ssid, P2P_WILDCARD_SSID, P2P_WILDCARD_SSID_LEN) !=
            0) {
                /* not using P2P Wildcard SSID - ignore */
+               p2p_dbg(p2p, "Probe Req not using P2P Wildcard SSID - ignore it");
                return P2P_PREQ_NOT_PROCESSED;
        }
 
        if (supp_rates_11b_only(&elems)) {
                /* Indicates support for 11b rates only */
+               p2p_dbg(p2p, "Probe Req with 11b rates only supported - ignore it");
                return P2P_PREQ_NOT_P2P;
        }
 
        os_memset(&msg, 0, sizeof(msg));
        if (p2p_parse_ies(ie, ie_len, &msg) < 0) {
                /* Could not parse P2P attributes */
+               p2p_dbg(p2p, "Could not parse P2P attributes in Probe Req - ignore it");
                return P2P_PREQ_NOT_P2P;
        }
 
        if (msg.device_id &&
            os_memcmp(msg.device_id, p2p->cfg->dev_addr, ETH_ALEN) != 0) {
                /* Device ID did not match */
+               p2p_dbg(p2p, "Probe Req requested Device ID " MACSTR " did not match - ignore it",
+                       MAC2STR(msg.device_id));
                p2p_parse_free(&msg);
                return P2P_PREQ_NOT_PROCESSED;
        }
@@ -2029,6 +2041,7 @@ p2p_reply_probe(struct p2p_data *p2p, const u8 *addr, const u8 *dst,
        if (msg.wps_attributes &&
            !p2p_match_dev_type(p2p, msg.wps_attributes)) {
                /* No match with Requested Device Type */
+               p2p_dbg(p2p, "Probe Req requestred Device Type did not match - ignore it");
                p2p_parse_free(&msg);
                return P2P_PREQ_NOT_PROCESSED;
        }
@@ -2036,6 +2049,7 @@ p2p_reply_probe(struct p2p_data *p2p, const u8 *addr, const u8 *dst,
 
        if (!p2p->cfg->send_probe_resp) {
                /* Response generated elsewhere */
+               p2p_dbg(p2p, "Probe Resp generated elsewhere - do not generate additional response");
                return P2P_PREQ_NOT_PROCESSED;
        }