From patchwork Sun Mar 17 20:57:11 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: dvdspndl@gmail.com X-Patchwork-Id: 228320 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]) by ozlabs.org (Postfix) with ESMTP id 254C42C00C3 for ; Mon, 18 Mar 2013 07:57:48 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id 04EFC9C17E; Sun, 17 Mar 2013 16:57:46 -0400 (EDT) X-Virus-Scanned: amavisd-new at maxx.shmoo.com 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 MUW8KgL6AhOm; Sun, 17 Mar 2013 16:57:45 -0400 (EDT) Received: from maxx.shmoo.com (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id D519B9C181; Sun, 17 Mar 2013 16:57:32 -0400 (EDT) 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 B543C9C17E for ; Sun, 17 Mar 2013 16:57:31 -0400 (EDT) X-Virus-Scanned: amavisd-new at maxx.shmoo.com 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 cH+ARQP0xZje for ; Sun, 17 Mar 2013 16:57:28 -0400 (EDT) Received: from mail-ea0-f179.google.com (mail-ea0-f179.google.com [209.85.215.179]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority" (not verified)) by maxx.maxx.shmoo.com (Postfix) with ESMTPS id D59009C16B for ; Sun, 17 Mar 2013 16:57:27 -0400 (EDT) Received: by mail-ea0-f179.google.com with SMTP id f15so2207414eak.10 for ; Sun, 17 Mar 2013 13:57:26 -0700 (PDT) X-Received: by 10.14.5.6 with SMTP id 6mr41994073eek.42.1363553846774; Sun, 17 Mar 2013 13:57:26 -0700 (PDT) Received: from localhost (46-116-160-72.bb.netvision.net.il. [46.116.160.72]) by mx.google.com with ESMTPS id a1sm23411593eep.2.2013.03.17.13.57.24 (version=TLSv1 cipher=RC4-SHA bits=128/128); Sun, 17 Mar 2013 13:57:24 -0700 (PDT) From: David Spinadel To: hostap@lists.shmoo.com Subject: [PATCH v2 01/10] nl80211_driver: Identify if nl80211 is capable of p2p device abstraction Date: Sun, 17 Mar 2013 22:57:11 +0200 Message-Id: <1363553840-7844-2-git-send-email-dvdspndl@gmail.com> X-Mailer: git-send-email 1.7.10.msysgit.1 In-Reply-To: <1363553840-7844-1-git-send-email-dvdspndl@gmail.com> References: <1363553840-7844-1-git-send-email-dvdspndl@gmail.com> X-BeenThere: hostap@lists.shmoo.com X-Mailman-Version: 2.1.9 Precedence: list List-Id: HostAP Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: hostap-bounces@lists.shmoo.com Errors-To: hostap-bounces@lists.shmoo.com From: Nirav Shah Check the supported interfaces attribute to identify support for a dedicated p2p device interface type. If set update the driver capabilities flag to notify the supplicant. Signed-off-by: David Spinadel --- src/drivers/driver.h | 12 ++++++++++-- src/drivers/driver_nl80211.c | 12 ++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/drivers/driver.h b/src/drivers/driver.h index ab6907d..9ccd8ce 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -824,7 +824,7 @@ struct wpa_driver_capa { * it cannot be used for P2P group operations or non-P2P purposes. */ #define WPA_DRIVER_FLAGS_P2P_DEDICATED_INTERFACE 0x00000400 -/* This interface is P2P capable (P2P Device, GO, or P2P Client */ +/* This interface is P2P capable (P2P GO, or P2P Client */ #define WPA_DRIVER_FLAGS_P2P_CAPABLE 0x00000800 /* Driver supports concurrent operations on multiple channels */ #define WPA_DRIVER_FLAGS_MULTI_CHANNEL_CONCURRENT 0x00001000 @@ -866,6 +866,8 @@ struct wpa_driver_capa { #define WPA_DRIVER_FLAGS_OBSS_SCAN 0x04000000 /* Driver supports IBSS (Ad-hoc) mode */ #define WPA_DRIVER_FLAGS_IBSS 0x08000000 +/* Driver supports a dedicated interface for p2p device */ +#define WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE 0x10000000 unsigned int flags; int max_scan_ssids; @@ -984,7 +986,13 @@ enum wpa_driver_if_type { * WPA_IF_P2P_GROUP - P2P Group interface (will become either * WPA_IF_P2P_GO or WPA_IF_P2P_CLIENT, but the role is not yet known) */ - WPA_IF_P2P_GROUP + WPA_IF_P2P_GROUP, + + /** + * WPA_IF_P2P_DEVICE - P2P device interface is used to indentify the + * abstracted p2p device function in the driver + */ + WPA_IF_P2P_DEVICE }; struct wpa_init_params { diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index b2dc813..cf15603 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -2557,6 +2557,7 @@ struct wiphy_info_data { unsigned int p2p_client_supported:1; unsigned int p2p_concurrent:1; unsigned int p2p_multichan_concurrent:1; + unsigned int p2p_device_supported:1; }; @@ -2600,6 +2601,9 @@ static void wiphy_info_supported_iftypes(struct wiphy_info_data *info, case NL80211_IFTYPE_P2P_CLIENT: info->p2p_client_supported = 1; break; + case NL80211_IFTYPE_P2P_DEVICE: + info->p2p_device_supported = 1; + break; case NL80211_IFTYPE_MONITOR: info->monitor_supported = 1; break; @@ -2871,6 +2875,10 @@ static int wpa_driver_nl80211_get_info(struct wpa_driver_nl80211_data *drv, if (info->p2p_go_supported && info->p2p_client_supported) drv->capa.flags |= WPA_DRIVER_FLAGS_P2P_CAPABLE; + + if (p2p_device_supported) + capa->flags |= WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE; + if (info->p2p_concurrent) { wpa_printf(MSG_DEBUG, "nl80211: Use separate P2P group " "interface (driver advertised support)"); @@ -6168,6 +6176,8 @@ static const char * nl80211_iftype_str(enum nl80211_iftype mode) return "P2P_CLIENT"; case NL80211_IFTYPE_P2P_GO: return "P2P_GO"; + case NL80211_IFTYPE_P2P_DEVICE: + return "P2P_DEVICE"; default: return "unknown"; } @@ -8336,6 +8346,8 @@ static enum nl80211_iftype wpa_driver_nl80211_if_type( return NL80211_IFTYPE_AP; case WPA_IF_P2P_GO: return NL80211_IFTYPE_P2P_GO; + case WPA_IF_P2P_DEVICE: + return NL80211_IFTYPE_P2P_DEVICE; } return -1; }