nl80211: Identify if nl80211 is capable of P2P Device abstraction
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 <david.spinadel@intel.com>
This commit is contained in:
parent
6a71413ef2
commit
7aad838c92
2 changed files with 18 additions and 2 deletions
|
@ -830,7 +830,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
|
||||
|
@ -874,6 +874,8 @@ struct wpa_driver_capa {
|
|||
#define WPA_DRIVER_FLAGS_IBSS 0x08000000
|
||||
/* Driver supports radar detection */
|
||||
#define WPA_DRIVER_FLAGS_RADAR 0x10000000
|
||||
/* Driver supports a dedicated interface for P2P Device */
|
||||
#define WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE 0x20000000
|
||||
unsigned int flags;
|
||||
|
||||
int max_scan_ssids;
|
||||
|
@ -1013,7 +1015,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 {
|
||||
|
|
|
@ -2813,6 +2813,10 @@ static void wiphy_info_supported_iftypes(struct wiphy_info_data *info,
|
|||
case NL80211_IFTYPE_ADHOC:
|
||||
info->capa->flags |= WPA_DRIVER_FLAGS_IBSS;
|
||||
break;
|
||||
case NL80211_IFTYPE_P2P_DEVICE:
|
||||
info->capa->flags |=
|
||||
WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE;
|
||||
break;
|
||||
case NL80211_IFTYPE_P2P_GO:
|
||||
info->p2p_go_supported = 1;
|
||||
break;
|
||||
|
@ -6511,6 +6515,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";
|
||||
}
|
||||
|
@ -8676,6 +8682,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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue