All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] wireless: cfg80211: add peer-to-peer related definitions
@ 2012-10-11 14:18 Arend van Spriel
  2012-10-11 16:41 ` Johannes Berg
  2012-10-11 16:42 ` Johannes Berg
  0 siblings, 2 replies; 11+ messages in thread
From: Arend van Spriel @ 2012-10-11 14:18 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless, Arend van Spriel

The Peer-to-Peer IE is vendor-specific IE identified by WiFi Alliance
OUI and specific P2P OUI type. The payload of this IE consists of
so-called P2P attributes. This patch adds definitions for processing
these attributes.

Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
Hi Johannes,

This patch is for 3.8. It applies to mac80211-next repository.

Gr. AvS
---
 include/linux/ieee80211.h |   78 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 8c803f0..7c4c075 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -168,6 +168,9 @@
 #define IEEE80211_WMM_IE_STA_QOSINFO_SP_MASK	0x03
 #define IEEE80211_WMM_IE_STA_QOSINFO_SP_SHIFT	5
 
+/* Vendor-specific IE */
+#define IEEE80211_VENDOR_SPEC_IE		0xDD
+
 #define IEEE80211_HT_CTL_LEN		4
 
 struct ieee80211_hdr {
@@ -905,6 +908,81 @@ struct ieee80211_tdls_data {
 	} u;
 } __packed;
 
+/*
+ * Peer-to-Peer IE attribute related definitions.
+ */
+/**
+ * enum ieee80211_p2p_attr_id - identifies type of peer-to-peer attribute.
+ */
+enum ieee80211_p2p_attr_id {
+	IEEE80211_P2P_ATTR_STATUS = 0,
+	IEEE80211_P2P_ATTR_MINOR_REASON,
+	IEEE80211_P2P_ATTR_CAPABILITY,
+	IEEE80211_P2P_ATTR_DEVICE_ID,
+	IEEE80211_P2P_ATTR_GO_INTENT,
+	IEEE80211_P2P_ATTR_GO_CONFIG_TIMEOUT,
+	IEEE80211_P2P_ATTR_LISTEN_CHANNEL,
+	IEEE80211_P2P_ATTR_GROUP_BSSID,
+	IEEE80211_P2P_ATTR_EXT_LISTEN_TIMING,
+	IEEE80211_P2P_ATTR_INTENDED_IFACE_ADDR,
+	IEEE80211_P2P_ATTR_MANAGABILITY,
+	IEEE80211_P2P_ATTR_CHANNEL_LIST,
+	IEEE80211_P2P_ATTR_ABSENCE_NOTICE,
+	IEEE80211_P2P_ATTR_DEVICE_INFO,
+	IEEE80211_P2P_ATTR_GROUP_INFO,
+	IEEE80211_P2P_ATTR_GROUP_ID,
+	IEEE80211_P2P_ATTR_INTERFACE,
+	IEEE80211_P2P_ATTR_OPER_CHANNEL,
+	IEEE80211_P2P_ATTR_INVITE_FLAGS,
+	/* 19 - 220: Reserved */
+	IEEE80211_P2P_ATTR_VENDOR_SPECIFIC = 221,
+
+	IEEE80211_P2P_ATTR_MAX
+};
+
+struct ieee80211_p2p_chan_attr {
+	u8 country[3];
+	u8 class;
+	u8 channel;
+} __packed;
+
+/**
+ * struct ieee80211_p2p_attribute - attributes in WFA P2P vendor specific IE.
+ *
+ * @id: identifier according enum ieee80211_p2p_attr_id.
+ * @length: length of data buffer mapped by @u.
+ * @u: union holding information for this peer-to-peer attribute.
+ */
+struct ieee80211_p2p_attribute {
+	u8 id;
+	__le16 length;
+	union {
+		u8 status;
+		u8 minor_reason;
+		struct {
+			u8 device;
+			u8 group;
+		} __packed cap;
+		u8 devid[6];
+		u8 go_intent;
+		struct {
+			u8 group;
+			u8 client;
+		} __packed cfg_timeout;
+		struct ieee80211_p2p_chan_attr listen;
+		u8 bssid[6];
+		struct {
+			__le16 period;
+			__le16 interval;
+		} __packed listen_availability;
+		u8 ifc_addr[6];
+		u8 managability;
+		struct ieee80211_p2p_chan_attr operating;
+		u8 invitation;
+		u8 var_attr[0];
+	} u;
+} __packed;
+
 /**
  * struct ieee80211_bar - HT Block Ack Request
  *
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [RFC] wireless: cfg80211: add peer-to-peer related definitions
  2012-10-11 14:18 [RFC] wireless: cfg80211: add peer-to-peer related definitions Arend van Spriel
@ 2012-10-11 16:41 ` Johannes Berg
  2012-10-11 17:23   ` Arend van Spriel
  2012-10-11 16:42 ` Johannes Berg
  1 sibling, 1 reply; 11+ messages in thread
From: Johannes Berg @ 2012-10-11 16:41 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: linux-wireless

On Thu, 2012-10-11 at 16:18 +0200, Arend van Spriel wrote:
> The Peer-to-Peer IE is vendor-specific IE identified by WiFi Alliance
> OUI and specific P2P OUI type. The payload of this IE consists of
> so-called P2P attributes. This patch adds definitions for processing
> these attributes.

Looks ok ... but why would a driver need to parse P2P stuff? For NoA for
example maybe?

johannes


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC] wireless: cfg80211: add peer-to-peer related definitions
  2012-10-11 14:18 [RFC] wireless: cfg80211: add peer-to-peer related definitions Arend van Spriel
  2012-10-11 16:41 ` Johannes Berg
@ 2012-10-11 16:42 ` Johannes Berg
  2012-10-11 17:24   ` Arend van Spriel
  1 sibling, 1 reply; 11+ messages in thread
From: Johannes Berg @ 2012-10-11 16:42 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: linux-wireless

On Thu, 2012-10-11 at 16:18 +0200, Arend van Spriel wrote:

> +++ b/include/linux/ieee80211.h
> @@ -168,6 +168,9 @@
>  #define IEEE80211_WMM_IE_STA_QOSINFO_SP_MASK	0x03
>  #define IEEE80211_WMM_IE_STA_QOSINFO_SP_SHIFT	5
>  
> +/* Vendor-specific IE */
> +#define IEEE80211_VENDOR_SPEC_IE		0xDD

actually this already exists, as ..._EID_VENDOR or so?

johannes


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC] wireless: cfg80211: add peer-to-peer related definitions
  2012-10-11 16:41 ` Johannes Berg
@ 2012-10-11 17:23   ` Arend van Spriel
  2012-10-11 17:26     ` Johannes Berg
  0 siblings, 1 reply; 11+ messages in thread
From: Arend van Spriel @ 2012-10-11 17:23 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless

On 10/11/2012 06:41 PM, Johannes Berg wrote:
> On Thu, 2012-10-11 at 16:18 +0200, Arend van Spriel wrote:
>> The Peer-to-Peer IE is vendor-specific IE identified by WiFi Alliance
>> OUI and specific P2P OUI type. The payload of this IE consists of
>> so-called P2P attributes. This patch adds definitions for processing
>> these attributes.
>
> Looks ok ... but why would a driver need to parse P2P stuff? For NoA for
> example maybe?

I did not yet go through a lot of the P2P code that is on my plate to 
port upstream, but one item that is extracted in the part I already did 
is the P2P listen channel. I just wanted to do this RFC before sending 
out the brcmfmac code patches that actually is using it. This change 
will be part of that patch series.

Gr. AvS


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC] wireless: cfg80211: add peer-to-peer related definitions
  2012-10-11 16:42 ` Johannes Berg
@ 2012-10-11 17:24   ` Arend van Spriel
  2012-10-11 17:29     ` Arend van Spriel
  0 siblings, 1 reply; 11+ messages in thread
From: Arend van Spriel @ 2012-10-11 17:24 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless

On 10/11/2012 06:42 PM, Johannes Berg wrote:
> On Thu, 2012-10-11 at 16:18 +0200, Arend van Spriel wrote:
>
>> +++ b/include/linux/ieee80211.h
>> @@ -168,6 +168,9 @@
>>   #define IEEE80211_WMM_IE_STA_QOSINFO_SP_MASK	0x03
>>   #define IEEE80211_WMM_IE_STA_QOSINFO_SP_SHIFT	5
>>
>> +/* Vendor-specific IE */
>> +#define IEEE80211_VENDOR_SPEC_IE		0xDD
>
> actually this already exists, as ..._EID_VENDOR or so?
>
> johannes
>
>

Thanks, Johannes

I probably overlooked it. Let me re-check.

Gr. AvS


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC] wireless: cfg80211: add peer-to-peer related definitions
  2012-10-11 17:23   ` Arend van Spriel
@ 2012-10-11 17:26     ` Johannes Berg
  2012-10-11 18:05       ` Arend van Spriel
  0 siblings, 1 reply; 11+ messages in thread
From: Johannes Berg @ 2012-10-11 17:26 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: linux-wireless

On Thu, 2012-10-11 at 19:23 +0200, Arend van Spriel wrote:
> > Looks ok ... but why would a driver need to parse P2P stuff? For NoA for
> > example maybe?
> 
> I did not yet go through a lot of the P2P code that is on my plate to 
> port upstream, but one item that is extracted in the part I already did 
> is the P2P listen channel. I just wanted to do this RFC before sending 
> out the brcmfmac code patches that actually is using it. This change 
> will be part of that patch series.

Ah, fmac, that will be somewhat interesting. What userspace APIs are you
proposing for that case?

johannes


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC] wireless: cfg80211: add peer-to-peer related definitions
  2012-10-11 17:24   ` Arend van Spriel
@ 2012-10-11 17:29     ` Arend van Spriel
  2012-10-11 17:46       ` Johannes Berg
  0 siblings, 1 reply; 11+ messages in thread
From: Arend van Spriel @ 2012-10-11 17:29 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless

On 10/11/2012 07:24 PM, Arend van Spriel wrote:
> On 10/11/2012 06:42 PM, Johannes Berg wrote:
>> On Thu, 2012-10-11 at 16:18 +0200, Arend van Spriel wrote:
>>
>>> +++ b/include/linux/ieee80211.h
>>> @@ -168,6 +168,9 @@
>>>   #define IEEE80211_WMM_IE_STA_QOSINFO_SP_MASK    0x03
>>>   #define IEEE80211_WMM_IE_STA_QOSINFO_SP_SHIFT    5
>>>
>>> +/* Vendor-specific IE */
>>> +#define IEEE80211_VENDOR_SPEC_IE        0xDD
>>
>> actually this already exists, as ..._EID_VENDOR or so?
>>
>> johannes
>>
>>
>
> Thanks, Johannes
>
> I probably overlooked it. Let me re-check.
>

Found it. I can even choose:

/* Information Element IDs */
enum ieee80211_eid {
	:
	WLAN_EID_WPA = 221,
	WLAN_EID_GENERIC = 221,
	WLAN_EID_VENDOR_SPECIFIC = 221,
	:
};

Gr. AvS


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC] wireless: cfg80211: add peer-to-peer related definitions
  2012-10-11 17:29     ` Arend van Spriel
@ 2012-10-11 17:46       ` Johannes Berg
  0 siblings, 0 replies; 11+ messages in thread
From: Johannes Berg @ 2012-10-11 17:46 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: linux-wireless

On Thu, 2012-10-11 at 19:29 +0200, Arend van Spriel wrote:

> >>> +/* Vendor-specific IE */
> >>> +#define IEEE80211_VENDOR_SPEC_IE        0xDD
> >>
> >> actually this already exists, as ..._EID_VENDOR or so?

> Found it. I can even choose:
> 
> /* Information Element IDs */
> enum ieee80211_eid {
> 	:
> 	WLAN_EID_WPA = 221,
> 	WLAN_EID_GENERIC = 221,
> 	WLAN_EID_VENDOR_SPECIFIC = 221,

Heh, funny. Different context and age, I guess.

johannes


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC] wireless: cfg80211: add peer-to-peer related definitions
  2012-10-11 17:26     ` Johannes Berg
@ 2012-10-11 18:05       ` Arend van Spriel
  2012-10-11 19:34         ` Johannes Berg
  0 siblings, 1 reply; 11+ messages in thread
From: Arend van Spriel @ 2012-10-11 18:05 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless

On 10/11/2012 07:26 PM, Johannes Berg wrote:
> On Thu, 2012-10-11 at 19:23 +0200, Arend van Spriel wrote:
>>> Looks ok ... but why would a driver need to parse P2P stuff? For NoA for
>>> example maybe?
>>
>> I did not yet go through a lot of the P2P code that is on my plate to
>> port upstream, but one item that is extracted in the part I already did
>> is the P2P listen channel. I just wanted to do this RFC before sending
>> out the brcmfmac code patches that actually is using it. This change
>> will be part of that patch series.
>
> Ah, fmac, that will be somewhat interesting. What userspace APIs are you
> proposing for that case?

Hi Johannes,

Not sure if I understand the question. I am using wpa_supplicant with 
wpa_cli for testing and given its p2p support I assumed there is already 
a nl80211 api in place. I am still trying to get a good sense on it. The 
P2P code to port does more parsing of P2P stuff and if you mean adding 
userspace APIs to avoid just that I would definitely prefer that.

Gr. AvS


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC] wireless: cfg80211: add peer-to-peer related definitions
  2012-10-11 18:05       ` Arend van Spriel
@ 2012-10-11 19:34         ` Johannes Berg
  2012-10-16 17:06           ` Arend van Spriel
  0 siblings, 1 reply; 11+ messages in thread
From: Johannes Berg @ 2012-10-11 19:34 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: linux-wireless

On Thu, 2012-10-11 at 20:05 +0200, Arend van Spriel wrote:

> > Ah, fmac, that will be somewhat interesting. What userspace APIs are you
> > proposing for that case?

> Not sure if I understand the question. I am using wpa_supplicant with 
> wpa_cli for testing and given its p2p support I assumed there is already 
> a nl80211 api in place. I am still trying to get a good sense on it. The 
> P2P code to port does more parsing of P2P stuff and if you mean adding 
> userspace APIs to avoid just that I would definitely prefer that.

Well the APIs that we have in place right now are really basically just
a conduit and wpa_s does all the operations. I would expect fmac to have
more offloads (and thus need the parsing), I'd actually be surprised if
you could work with the existing APIs.

johannes


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [RFC] wireless: cfg80211: add peer-to-peer related definitions
  2012-10-11 19:34         ` Johannes Berg
@ 2012-10-16 17:06           ` Arend van Spriel
  0 siblings, 0 replies; 11+ messages in thread
From: Arend van Spriel @ 2012-10-16 17:06 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless, Jouni Malinen

On 10/11/2012 09:34 PM, Johannes Berg wrote:
> On Thu, 2012-10-11 at 20:05 +0200, Arend van Spriel wrote:
>
>>> Ah, fmac, that will be somewhat interesting. What userspace APIs are you
>>> proposing for that case?
>
>> Not sure if I understand the question. I am using wpa_supplicant with
>> wpa_cli for testing and given its p2p support I assumed there is already
>> a nl80211 api in place. I am still trying to get a good sense on it. The
>> P2P code to port does more parsing of P2P stuff and if you mean adding
>> userspace APIs to avoid just that I would definitely prefer that.
>
> Well the APIs that we have in place right now are really basically just
> a conduit and wpa_s does all the operations. I would expect fmac to have
> more offloads (and thus need the parsing), I'd actually be surprised if
> you could work with the existing APIs.

I mainly focussed on reworking brcmfmac to support multiple (virtual) 
interfaces and wireless devices without netdev. So far I only did the 
scanning part of p2p device discovery which is a regular 802.11 scan so 
no API change needed there. So no API change proposals yet. When I learn 
more I will discuss it on the wireless list.

Gr. AvS


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2012-10-16 17:07 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-11 14:18 [RFC] wireless: cfg80211: add peer-to-peer related definitions Arend van Spriel
2012-10-11 16:41 ` Johannes Berg
2012-10-11 17:23   ` Arend van Spriel
2012-10-11 17:26     ` Johannes Berg
2012-10-11 18:05       ` Arend van Spriel
2012-10-11 19:34         ` Johannes Berg
2012-10-16 17:06           ` Arend van Spriel
2012-10-11 16:42 ` Johannes Berg
2012-10-11 17:24   ` Arend van Spriel
2012-10-11 17:29     ` Arend van Spriel
2012-10-11 17:46       ` Johannes Berg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.