From patchwork Wed Feb 26 06:22:23 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rahul Jain X-Patchwork-Id: 324214 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from maxx.maxx.shmoo.com (maxx.shmoo.com [205.134.188.171]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id E83922C009A for ; Wed, 26 Feb 2014 17:22:52 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id EEF259C1D1; Wed, 26 Feb 2014 01:22:49 -0500 (EST) X-Virus-Scanned: amavisd-new at maxx.shmoo.com X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "MIME-Version" Received: from maxx.maxx.shmoo.com ([127.0.0.1]) by localhost (maxx.shmoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TNXA6B2s+Psq; Wed, 26 Feb 2014 01:22:49 -0500 (EST) Received: from maxx.shmoo.com (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id 05D2D9C19F; Wed, 26 Feb 2014 01:22:44 -0500 (EST) X-Original-To: mailman-post+hostap@maxx.shmoo.com Delivered-To: mailman-post+hostap@maxx.shmoo.com Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id B83149C19F for ; Wed, 26 Feb 2014 01:22:42 -0500 (EST) X-Quarantine-ID: X-Virus-Scanned: amavisd-new at maxx.shmoo.com X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "MIME-Version" Received: from maxx.maxx.shmoo.com ([127.0.0.1]) by localhost (maxx.shmoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vxnsmW2Ru9oG for ; Wed, 26 Feb 2014 01:22:36 -0500 (EST) Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (Client CN "mailout4.samsung.com", Issuer "VeriSign Class 3 Secure Server CA - G3" (not verified)) by maxx.maxx.shmoo.com (Postfix) with ESMTPS id 18AC09C16F for ; Wed, 26 Feb 2014 01:22:35 -0500 (EST) Received: from epcpsbgr5.samsung.com (u145.gpu120.samsung.co.kr [203.254.230.145]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N1L00DA9B1E2830@mailout4.samsung.com> for hostap@lists.shmoo.com; Wed, 26 Feb 2014 15:22:26 +0900 (KST) Received: from epcpsbgx4.samsung.com ( [172.20.52.125]) by epcpsbgr5.samsung.com (EPCPMTA) with SMTP id 8D.D3.14803.2288D035; Wed, 26 Feb 2014 15:22:26 +0900 (KST) X-AuditID: cbfee691-b7efc6d0000039d3-25-530d8822d379 Received: from epextmailer02 ( [203.254.219.152]) by epcpsbgx4.samsung.com (EPCPMTA) with SMTP id 46.94.24278.F188D035; Wed, 26 Feb 2014 15:22:23 +0900 (KST) Date: Wed, 26 Feb 2014 06:22:23 +0000 (GMT) From: Rahul Jain Subject: Re: Re: [PATCH] Use P2P_IE_VENDOR_TYPE instead of combination of OUI_WFA and P2P_OUI_TYPE To: Jouni Malinen MIME-version: 1.0 X-MTR: 20140226061905605@rahul.jain Msgkey: 20140226061905605@rahul.jain X-EPLocale: en_US.utf-8 X-Priority: 3 X-EPWebmail-Msg-Type: personal X-EPWebmail-Reply-Demand: 0 X-EPApproval-Locale: X-EPHeader: ML X-EPTrCode: X-EPTrName: X-MLAttribute: X-RootMTR: 20140226061905605@rahul.jain X-ParentMTR: X-ArchiveUser: X-CPGSPASS: N MIME-version: 1.0 Message-id: <23557894.712841393395743142.JavaMail.weblogic@epv6ml04> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjleLIzCtJLcpLzFFi42JZI2JSq6vUwRts8O+0rMWipgdMDoweu0/t YwlgjOKySUnNySxLLdK3S+DKePNuJmvBlbiKZfN3MTUwzojpYuTkEBJQldizdCkziC0hYCKx 7uZadghbTOLCvfVsXYxcQDVLGSUe7XzDCFN09Pc6RojEfEaJ3uXNbCAJFqBJ759PA5vEJqAl 8eh2KxOILSyQJHF7y28wW0RAVuLTxPesIDazgKnE4SsLmCGuUJDYfP872BxeAUGJkzOfsEAs U5aYd/UvVFxF4tDSRjaIuLjE34ZHUJfySsxofwpVLycx7esaqG+kJc7P2sAI883i74+h4vwS x27vALqHA6z3yf1gmDG7N3+BGi8gMfXMQahWDYkds15CreKTWLPwLQvMmF2nljPD9N7fMpcJ 4i1FiSndD9lBxjMLaEqs36WP7iteAReJ+ct3skxgVJ6FJDULSfcshG5kJQsYWVYxiqYWJBcU J6UXmeoVJ+YWl+al6yXn525iBKaF0/+eTdzBeP+A9SHGZGCETGSWEk3OB6aVvJJ4Q2MzIwtT E1NjI3NLM9KElcR50x8lBQkJpCeWpGanphakFsUXleakFh9iZOLglGpg1DvDmsUtlh0edZ/x 7BYFKZet5yZnlD3YoJBp87yud43HMUnzXQVRFznaXv91W+DybqlMu9G0Z2Izsotla5MTY119 /shp/91rp8N0o3PCZdZtbn+Sbf6tyA1YqGQzreH6p8cKz7fmzO5xT1/bI8B2Uyr1zbnjzH6X 7s68l7/q4t4X5Q4Xrf4cVWIpzkg01GIuKk4EAJdhRVYhAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrPKsWRmVeSWpSXmKPExsVy+t/tGbryHbzBBs/e61ksanrA5MDosfvU PpYAxqg0m4zUxJTUIoXUvOT8lMy8dFsl7+B453hTMwNDXUNLC3MlhbzE3FRbJRefAF23zByg qUoKZYk5pUChgMTiYiV9O5ui/NKSVIWM/OISW6VoQ3MjPSMDPVMjPUPTWCtDAwMjU6CahLSM N+9mshZciatYNn8XUwPjjJguRk4OIQFViT1LlzKD2BICJhJHf69jhLDFJC7cW8/WxcgFVDOf UaJ3eTMbSIIFqOH982lgDWwCWhKPbrcygdjCAkkSt7f8BrNFBGQlPk18zwpiMwuYShy+soAZ YpmCxOb738Hm8AoISpyc+YQFYpmyxLyrf6HiKhKHljayQcTFJf42PGKHsHklZrQ/haqXk5j2 dQ3U0dIS52dtgDt68ffHUHF+iWO3dwDdwwHW++R+MMyY3Zu/QI0XkJh65iBUq4bEjlkvoVbx SaxZ+JYFZsyuU8uZYXrvb5nLBPGWosSU7ofsIOOZBTQl1u/SR/cVr4CLxPzlO1kmMMrNQpKa haR7FkI3spIFjCyrGEVTC5ILipPSK0z0ihNzi0vz0vWS83M3MYKT07MlOxgbLlgfYhTgYFTi 4Q1g4Q0WYk0sK67MPcQowcGsJML7ugIoxJuSWFmVWpQfX1Sak1p8iDEZGH0TmaVEk/OBiTOv JN7Q2MTc1NjUwsDQ3NyMNGElcd4Ft5KChATSE0tSs1NTC1KLYLYwcXBKNTBWBj07+3HJrCWq KheDDht4KBpv4trysP4ad6pnzuIfty5nvp3yZqHhjq//7cW9PwrIt/19o17nGnu3J7DlyqLC v1bL9s9qTzVYkmh+P1P91MZFq28/k8uaaH1c+8Okpyu2PuvZKzVhR1vnF4ktYY+mbNdNXryU 5WPV9im8GvUfF5m/4vt28/+lYCWW4oxEQy3mouJEAMufHM2SAwAA DLP-Filter: Pass X-CFilter-Loop: Reflected Cc: "hostap@lists.shmoo.com" X-BeenThere: hostap@lists.shmoo.com X-Mailman-Version: 2.1.11 Precedence: list Reply-To: rahul.jain@samsung.com List-Id: HostAP Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: hostap-bounces@lists.shmoo.com Errors-To: hostap-bounces@lists.shmoo.com hi, I have modified all files under hostap.git which ever is using OUI_WFA and P2P_OUI_TYPE combination with P2P_IE_VENDOR_TYPE. I am not able to modify ieee802_11_common.c file as ieee802_11_parse_vendor_specific() will require lot of changes. Patch for review From d274748eb2928c7967b0bc204510b239aa71ce31 Mon Sep 17 00:00:00 2001 From: Rahul Jain Date: Wed, 26 Feb 2014 11:48:07 +0530 Subject: [PATCH] Use P2P_IE_VENDOR_TYPE instead of combination of OUI_WFA and P2P_OUI_TYPE Signed-off-by: Rahul Jain --- src/ap/ctrl_iface_ap.c | 5 ++--- src/ap/p2p_hostapd.c | 5 ++--- src/p2p/p2p.c | 23 ++++++++--------------- src/p2p/p2p_build.c | 9 +++------ src/p2p/p2p_sd.c | 45 ++++++++++++--------------------------------- 5 files changed, 27 insertions(+), 60 deletions(-) diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c index 8c0cbab..c27cf3b 100644 --- a/src/ap/ctrl_iface_ap.c +++ b/src/ap/ctrl_iface_ap.c @@ -250,9 +250,8 @@ static int p2p_manager_disconnect(struct hostapd_data *hapd, u16 stype, *pos++ = WLAN_EID_VENDOR_SPECIFIC; *pos++ = 4 + 3 + 1; - WPA_PUT_BE24(pos, OUI_WFA); - pos += 3; - *pos++ = P2P_OUI_TYPE; + WPA_PUT_BE32(pos, P2P_IE_VENDOR_TYPE); + pos += 4; *pos++ = P2P_ATTR_MINOR_REASON_CODE; WPA_PUT_LE16(pos, 1); diff --git a/src/ap/p2p_hostapd.c b/src/ap/p2p_hostapd.c index 795d313..9be640c 100644 --- a/src/ap/p2p_hostapd.c +++ b/src/ap/p2p_hostapd.c @@ -96,9 +96,8 @@ u8 * hostapd_eid_p2p_manage(struct hostapd_data *hapd, u8 *eid) u8 bitmap; *eid++ = WLAN_EID_VENDOR_SPECIFIC; *eid++ = 4 + 3 + 1; - WPA_PUT_BE24(eid, OUI_WFA); - eid += 3; - *eid++ = P2P_OUI_TYPE; + WPA_PUT_BE32(eid, P2P_IE_VENDOR_TYPE); + eid += 4; *eid++ = P2P_ATTR_MANAGEABILITY; WPA_PUT_LE16(eid, 1); diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c index 6f3cd68..e6518ee 100644 --- a/src/p2p/p2p.c +++ b/src/p2p/p2p.c @@ -1662,18 +1662,15 @@ static void p2p_rx_action_public(struct p2p_data *p2p, const u8 *da, len--; if (len < 3) return; - if (WPA_GET_BE24(data) != OUI_WFA) + if (WPA_GET_BE32(data) != P2P_IE_VENDOR_TYPE) return; - data += 3; - len -= 3; + data += 4; + len -= 4; if (len < 1) return; - if (*data != P2P_OUI_TYPE) - return; - - p2p_rx_p2p_action(p2p, sa, data + 1, len - 1, freq); + p2p_rx_p2p_action(p2p, sa, data, len, freq); break; case WLAN_PA_GAS_INITIAL_REQ: p2p_rx_gas_initial_req(p2p, sa, data + 1, len - 1, freq); @@ -1706,15 +1703,10 @@ void p2p_rx_action(struct p2p_data *p2p, const u8 *da, const u8 *sa, if (len < 4) return; - if (WPA_GET_BE24(data) != OUI_WFA) + if (WPA_GET_BE32(data) != P2P_IE_VENDOR_TYPE) return; - data += 3; - len -= 3; - - if (*data != P2P_OUI_TYPE) - return; - data++; - len--; + data += 4; + len -= 4; /* P2P action frame */ p2p_dbg(p2p, "RX P2P Action from " MACSTR, MAC2STR(sa)); @@ -1722,6 +1714,7 @@ void p2p_rx_action(struct p2p_data *p2p, const u8 *da, const u8 *sa, if (len < 1) return; + switch (data[0]) { case P2P_NOA: p2p_dbg(p2p, "Received P2P Action - Notice of Absence"); diff --git a/src/p2p/p2p_build.c b/src/p2p/p2p_build.c index 664fade..e9b683d 100644 --- a/src/p2p/p2p_build.c +++ b/src/p2p/p2p_build.c @@ -17,8 +17,7 @@ void p2p_buf_add_action_hdr(struct wpabuf *buf, u8 subtype, u8 dialog_token) { wpabuf_put_u8(buf, WLAN_ACTION_VENDOR_SPECIFIC); - wpabuf_put_be24(buf, OUI_WFA); - wpabuf_put_u8(buf, P2P_OUI_TYPE); + wpabuf_put_be32(buf, P2P_IE_VENDOR_TYPE); wpabuf_put_u8(buf, subtype); /* OUI Subtype */ wpabuf_put_u8(buf, dialog_token); @@ -31,8 +30,7 @@ void p2p_buf_add_public_action_hdr(struct wpabuf *buf, u8 subtype, { wpabuf_put_u8(buf, WLAN_ACTION_PUBLIC); wpabuf_put_u8(buf, WLAN_PA_VENDOR_SPECIFIC); - wpabuf_put_be24(buf, OUI_WFA); - wpabuf_put_u8(buf, P2P_OUI_TYPE); + wpabuf_put_be32(buf, P2P_IE_VENDOR_TYPE); wpabuf_put_u8(buf, subtype); /* OUI Subtype */ wpabuf_put_u8(buf, dialog_token); @@ -47,8 +45,7 @@ u8 * p2p_buf_add_ie_hdr(struct wpabuf *buf) /* P2P IE header */ wpabuf_put_u8(buf, WLAN_EID_VENDOR_SPECIFIC); len = wpabuf_put(buf, 1); /* IE length to be filled */ - wpabuf_put_be24(buf, OUI_WFA); - wpabuf_put_u8(buf, P2P_OUI_TYPE); + wpabuf_put_be32(buf, P2P_IE_VENDOR_TYPE); wpa_printf(MSG_DEBUG, "P2P: * P2P IE header"); return len; } diff --git a/src/p2p/p2p_sd.c b/src/p2p/p2p_sd.c index 26b9c2d..497a1f3 100644 --- a/src/p2p/p2p_sd.c +++ b/src/p2p/p2p_sd.c @@ -171,8 +171,7 @@ static struct wpabuf * p2p_build_sd_query(u16 update_indic, /* ANQP Query Request Frame */ len_pos = gas_anqp_add_element(buf, ANQP_VENDOR_SPECIFIC); - wpabuf_put_be24(buf, OUI_WFA); - wpabuf_put_u8(buf, P2P_OUI_TYPE); + wpabuf_put_be32(buf, P2P_IE_VENDOR_TYPE); wpabuf_put_le16(buf, update_indic); /* Service Update Indicator */ wpabuf_put_buf(buf, tlvs); gas_anqp_set_element_len(buf, len_pos); @@ -218,8 +217,7 @@ static struct wpabuf * p2p_build_sd_response(u8 dialog_token, u16 status_code, if (tlvs) { /* ANQP Query Response Frame */ len_pos = gas_anqp_add_element(buf, ANQP_VENDOR_SPECIFIC); - wpabuf_put_be24(buf, OUI_WFA); - wpabuf_put_u8(buf, P2P_OUI_TYPE); + wpabuf_put_be32(buf, P2P_IE_VENDOR_TYPE); /* Service Update Indicator */ wpabuf_put_le16(buf, update_indic); wpabuf_put_buf(buf, tlvs); @@ -250,8 +248,7 @@ static struct wpabuf * p2p_build_gas_comeback_resp(u8 dialog_token, /* ANQP Query Response Frame */ wpabuf_put_le16(buf, ANQP_VENDOR_SPECIFIC); /* Info ID */ wpabuf_put_le16(buf, 3 + 1 + 2 + total_len); - wpabuf_put_be24(buf, OUI_WFA); - wpabuf_put_u8(buf, P2P_OUI_TYPE); + wpabuf_put_be32(buf, P2P_IE_VENDOR_TYPE); /* Service Update Indicator */ wpabuf_put_le16(buf, update_indic); } @@ -393,17 +390,11 @@ void p2p_rx_gas_initial_req(struct p2p_data *p2p, const u8 *sa, return; } - if (WPA_GET_BE24(pos) != OUI_WFA) { - p2p_dbg(p2p, "Unsupported ANQP OUI %06x", WPA_GET_BE24(pos)); + if (WPA_GET_BE32(pos) != P2P_IE_VENDOR_TYPE) { + p2p_dbg(p2p, "Unsupported ANQP OUI %06x", WPA_GET_BE32(pos)); return; } - pos += 3; - - if (*pos != P2P_OUI_TYPE) { - p2p_dbg(p2p, "Unsupported ANQP vendor type %u", *pos); - return; - } - pos++; + pos += 4; if (pos + 2 > end) return; @@ -571,17 +562,11 @@ void p2p_rx_gas_initial_resp(struct p2p_data *p2p, const u8 *sa, return; } - if (WPA_GET_BE24(pos) != OUI_WFA) { - p2p_dbg(p2p, "Unsupported ANQP OUI %06x", WPA_GET_BE24(pos)); - return; - } - pos += 3; - - if (*pos != P2P_OUI_TYPE) { - p2p_dbg(p2p, "Unsupported ANQP vendor type %u", *pos); + if (WPA_GET_BE32(pos) != P2P_IE_VENDOR_TYPE) { + p2p_dbg(p2p, "Unsupported ANQP OUI %06x", WPA_GET_BE32(pos)); return; } - pos++; + pos += 4; if (pos + 2 > end) return; @@ -795,17 +780,11 @@ void p2p_rx_gas_comeback_resp(struct p2p_data *p2p, const u8 *sa, if (pos + 4 > end) return; - if (WPA_GET_BE24(pos) != OUI_WFA) { - p2p_dbg(p2p, "Unsupported ANQP OUI %06x", WPA_GET_BE24(pos)); - return; - } - pos += 3; - - if (*pos != P2P_OUI_TYPE) { - p2p_dbg(p2p, "Unsupported ANQP vendor type %u", *pos); + if (WPA_GET_BE32(pos) != P2P_IE_VENDOR_TYPE) { + p2p_dbg(p2p, "Unsupported ANQP OUI %06x", WPA_GET_BE32(pos)); return; } - pos++; + pos += 4; if (pos + 2 > end) return;