RE: [PATCH v2 1/9] cfg80211: add start / stop NAN commands

2016-09-19 Thread Otcheretianski, Andrei
> -Original Message-
> From: Arend Van Spriel [mailto:arend.vanspr...@broadcom.com]
> Sent: Sunday, September 18, 2016 21:54
> To: Otcheretianski, Andrei ; Luca Coelho
> ; johan...@sipsolutions.net
> Cc: linux-wireless@vger.kernel.org; Beker, Ayala ;
> Grumbach, Emmanuel ; Coelho, Luciano
> 
> Subject: Re: [PATCH v2 1/9] cfg80211: add start / stop NAN commands
> 
> On 18-9-2016 9:44, Otcheretianski, Andrei wrote:
> >> -Original Message-
> >> From: Arend Van Spriel [mailto:arend.vanspr...@broadcom.com]
> >> Sent: Friday, September 16, 2016 13:59
> >> To: Luca Coelho ; johan...@sipsolutions.net
> >> Cc: linux-wireless@vger.kernel.org; Beker, Ayala
> >> ; Otcheretianski, Andrei
> >> ; Grumbach, Emmanuel
> >> ; Coelho, Luciano
> >> 
> >> Subject: Re: [PATCH v2 1/9] cfg80211: add start / stop NAN commands
> >>
> >> On 16-9-2016 10:33, Luca Coelho wrote:
> >>> From: Ayala Beker 
> >>>
> >>> This allows user space to start/stop NAN interface.
> >>> A NAN interface is like P2P device in a few aspects: it doesn't have
> >>> a netdev associated to it.
> >>> Add the new interface type and prevent operations that can't be
> >>> executed on NAN interface like scan.
> >>>
> >>> Define several attributes that may be configured by user space when
> >>> starting NAN functionality (master preference and dual band
> >>> operation)
> >>>
> >>> Signed-off-by: Andrei Otcheretianski
> >>> 
> >>> Signed-off-by: Emmanuel Grumbach 
> >>> Signed-off-by: Luca Coelho 
> >>> ---
> >>>  include/net/cfg80211.h   | 21 +-
> >>>  include/uapi/linux/nl80211.h | 52 +
> >>>  net/mac80211/cfg.c   |  2 +
> >>>  net/mac80211/chan.c  |  3 ++
> >>>  net/mac80211/iface.c |  4 ++
> >>>  net/mac80211/offchannel.c|  1 +
> >>>  net/mac80211/rx.c|  3 ++
> >>>  net/mac80211/util.c  |  1 +
> >>>  net/wireless/chan.c  |  2 +
> >>>  net/wireless/core.c  | 34 
> >>>  net/wireless/core.h  |  3 ++
> >>>  net/wireless/mlme.c  |  1 +
> >>>  net/wireless/nl80211.c   | 93
> >> ++--
> >>>  net/wireless/rdev-ops.h  | 20 ++
> >>>  net/wireless/trace.h | 27 +
> >>>  net/wireless/util.c  |  6 ++-
> >>>  16 files changed, 267 insertions(+), 6 deletions(-)
> >>>
> >>> diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index
> >>> d5e7f69..ca64d69 100644
> >>> --- a/include/net/cfg80211.h
> >>> +++ b/include/net/cfg80211.h
> >>> @@ -2293,6 +2293,19 @@ struct cfg80211_qos_map {  };
> >>
> >> [...]
> >>
> >>> +/**
> >>> + * enum nl80211_nan_dual_band_conf - NAN dual band configuration
> >>> + *
> >>> + * Defines the NAN dual band mode of operation
> >>
> >> Does it make sense to have such a notion of bands in use. And what
> >> does 5.2GHz mean. Is this a subband within 5G channels? Probably I
> >> should read the NAN spec to understand what is meant here. I would
> >> consider 5.2G as lower 5G, ie. discovery on channel 44 but not sure if that
> is meant here.
> >>
> >
> > The NAN spec defines single and dual band modes of operation. The
> channels are fixed for each band.
> > On 2.4Ghz is channel 6 and 5GHz is either 44 or 149. Regarding 5.2 - it's 
> > just a
> typo. It should be 5G - no deeper meaning.
> 
> The thing is that it seems likely other bands will be added so that would 
> kinda
> obsolete this whole enum. So I would propose to have another way to
> configure the bands to use. This enum is not really extensible though it may
> reflect the current state of the spec, which is still in draft if I am not 
> mistaken.
> 

I guess you are talking about additional bands that are mentioned in NAN2 spec 
(like sub-1Ghz etc..).
I'm not sure that these bands will be used for sync or NAN2 specific operations 
only (like data path or ranging).
Nevertheless, you're right, I guess it doesn't harm to make it a bitmask of 
supported bands.

> Regards,
> Arend


Re: [PATCH v2 1/9] cfg80211: add start / stop NAN commands

2016-09-18 Thread Arend Van Spriel
On 18-9-2016 9:44, Otcheretianski, Andrei wrote:
>> -Original Message-
>> From: Arend Van Spriel [mailto:arend.vanspr...@broadcom.com]
>> Sent: Friday, September 16, 2016 13:59
>> To: Luca Coelho ; johan...@sipsolutions.net
>> Cc: linux-wireless@vger.kernel.org; Beker, Ayala ;
>> Otcheretianski, Andrei ; Grumbach,
>> Emmanuel ; Coelho, Luciano
>> 
>> Subject: Re: [PATCH v2 1/9] cfg80211: add start / stop NAN commands
>>
>> On 16-9-2016 10:33, Luca Coelho wrote:
>>> From: Ayala Beker 
>>>
>>> This allows user space to start/stop NAN interface.
>>> A NAN interface is like P2P device in a few aspects: it doesn't have a
>>> netdev associated to it.
>>> Add the new interface type and prevent operations that can't be
>>> executed on NAN interface like scan.
>>>
>>> Define several attributes that may be configured by user space when
>>> starting NAN functionality (master preference and dual band operation)
>>>
>>> Signed-off-by: Andrei Otcheretianski 
>>> Signed-off-by: Emmanuel Grumbach 
>>> Signed-off-by: Luca Coelho 
>>> ---
>>>  include/net/cfg80211.h   | 21 +-
>>>  include/uapi/linux/nl80211.h | 52 +
>>>  net/mac80211/cfg.c   |  2 +
>>>  net/mac80211/chan.c  |  3 ++
>>>  net/mac80211/iface.c |  4 ++
>>>  net/mac80211/offchannel.c|  1 +
>>>  net/mac80211/rx.c|  3 ++
>>>  net/mac80211/util.c  |  1 +
>>>  net/wireless/chan.c  |  2 +
>>>  net/wireless/core.c  | 34 
>>>  net/wireless/core.h  |  3 ++
>>>  net/wireless/mlme.c  |  1 +
>>>  net/wireless/nl80211.c   | 93
>> ++--
>>>  net/wireless/rdev-ops.h  | 20 ++
>>>  net/wireless/trace.h | 27 +
>>>  net/wireless/util.c  |  6 ++-
>>>  16 files changed, 267 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index
>>> d5e7f69..ca64d69 100644
>>> --- a/include/net/cfg80211.h
>>> +++ b/include/net/cfg80211.h
>>> @@ -2293,6 +2293,19 @@ struct cfg80211_qos_map {  };
>>
>> [...]
>>
>>> +/**
>>> + * enum nl80211_nan_dual_band_conf - NAN dual band configuration
>>> + *
>>> + * Defines the NAN dual band mode of operation
>>
>> Does it make sense to have such a notion of bands in use. And what does
>> 5.2GHz mean. Is this a subband within 5G channels? Probably I should read
>> the NAN spec to understand what is meant here. I would consider 5.2G as
>> lower 5G, ie. discovery on channel 44 but not sure if that is meant here.
>>
> 
> The NAN spec defines single and dual band modes of operation. The channels 
> are fixed for each band.
> On 2.4Ghz is channel 6 and 5GHz is either 44 or 149. Regarding 5.2 - it's 
> just a typo. It should be 5G - no deeper meaning.

The thing is that it seems likely other bands will be added so that
would kinda obsolete this whole enum. So I would propose to have another
way to configure the bands to use. This enum is not really extensible
though it may reflect the current state of the spec, which is still in
draft if I am not mistaken.

Regards,
Arend


RE: [PATCH v2 1/9] cfg80211: add start / stop NAN commands

2016-09-18 Thread Otcheretianski, Andrei
> -Original Message-
> From: Arend Van Spriel [mailto:arend.vanspr...@broadcom.com]
> Sent: Friday, September 16, 2016 13:59
> To: Luca Coelho ; johan...@sipsolutions.net
> Cc: linux-wireless@vger.kernel.org; Beker, Ayala ;
> Otcheretianski, Andrei ; Grumbach,
> Emmanuel ; Coelho, Luciano
> 
> Subject: Re: [PATCH v2 1/9] cfg80211: add start / stop NAN commands
> 
> On 16-9-2016 10:33, Luca Coelho wrote:
> > From: Ayala Beker 
> >
> > This allows user space to start/stop NAN interface.
> > A NAN interface is like P2P device in a few aspects: it doesn't have a
> > netdev associated to it.
> > Add the new interface type and prevent operations that can't be
> > executed on NAN interface like scan.
> >
> > Define several attributes that may be configured by user space when
> > starting NAN functionality (master preference and dual band operation)
> >
> > Signed-off-by: Andrei Otcheretianski 
> > Signed-off-by: Emmanuel Grumbach 
> > Signed-off-by: Luca Coelho 
> > ---
> >  include/net/cfg80211.h   | 21 +-
> >  include/uapi/linux/nl80211.h | 52 +
> >  net/mac80211/cfg.c   |  2 +
> >  net/mac80211/chan.c  |  3 ++
> >  net/mac80211/iface.c |  4 ++
> >  net/mac80211/offchannel.c|  1 +
> >  net/mac80211/rx.c|  3 ++
> >  net/mac80211/util.c  |  1 +
> >  net/wireless/chan.c  |  2 +
> >  net/wireless/core.c  | 34 
> >  net/wireless/core.h  |  3 ++
> >  net/wireless/mlme.c  |  1 +
> >  net/wireless/nl80211.c   | 93
> ++--
> >  net/wireless/rdev-ops.h  | 20 ++
> >  net/wireless/trace.h | 27 +
> >  net/wireless/util.c  |  6 ++-
> >  16 files changed, 267 insertions(+), 6 deletions(-)
> >
> > diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index
> > d5e7f69..ca64d69 100644
> > --- a/include/net/cfg80211.h
> > +++ b/include/net/cfg80211.h
> > @@ -2293,6 +2293,19 @@ struct cfg80211_qos_map {  };
> 
> [...]
> 
> > +/**
> > + * enum nl80211_nan_dual_band_conf - NAN dual band configuration
> > + *
> > + * Defines the NAN dual band mode of operation
> 
> Does it make sense to have such a notion of bands in use. And what does
> 5.2GHz mean. Is this a subband within 5G channels? Probably I should read
> the NAN spec to understand what is meant here. I would consider 5.2G as
> lower 5G, ie. discovery on channel 44 but not sure if that is meant here.
>

The NAN spec defines single and dual band modes of operation. The channels are 
fixed for each band.
On 2.4Ghz is channel 6 and 5GHz is either 44 or 149. Regarding 5.2 - it's just 
a typo. It should be 5G - no deeper meaning.
 
> > + * @NL80211_NAN_BAND_DEFAULT: device default mode
> > + * @NL80211_NAN_BAND_SINGLE: 2.4GHz only mode
> > + * @NL80211_NAN_BAND_DUAL: 2.4GHz and 5.2GHz mode
> > +  */
> > +enum nl80211_nan_dual_band_conf {
> > +   NL80211_NAN_BAND_DEFAULT,
> > +   NL80211_NAN_BAND_SINGLE,
> > +   NL80211_NAN_BAND_DUAL,
> > +
> > +   /* keep last */
> > +   __NL80211_NAN_BAND_AFTER_LAST,
> > +   NL80211_NAN_BAND_MAX =
> > +   __NL80211_NAN_BAND_AFTER_LAST - 1,
> > +};
> > +
> >  #endif /* __LINUX_NL80211_H */
> > diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index
> > e29ff57..a74027f 100644
> > --- a/net/mac80211/cfg.c
> > +++ b/net/mac80211/cfg.c
> > @@ -257,6 +257,7 @@ static int ieee80211_add_key(struct wiphy *wiphy,
> struct net_device *dev,
> > case NL80211_IFTYPE_WDS:
> > case NL80211_IFTYPE_MONITOR:
> > case NL80211_IFTYPE_P2P_DEVICE:
> > +   case NL80211_IFTYPE_NAN:
> > case NL80211_IFTYPE_UNSPECIFIED:
> > case NUM_NL80211_IFTYPES:
> 
> Huh? What is this doing here? Not yours but weird still.
> 
> > case NL80211_IFTYPE_P2P_CLIENT:
> > @@ -2036,6 +2037,7 @@ static int ieee80211_scan(struct wiphy *wiphy,
> >  !(req->flags & NL80211_SCAN_FLAG_AP)))
> > return -EOPNOTSUPP;
> > break;
> > +   case NL80211_IFTYPE_NAN:
> > default:
> > return -EOPNOTSUPP;
> > }
> > diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c index
> > 74142d0..acb50f8 100644
> > --- a/net/mac80211/chan.c
> > +++ b/net/mac80211/chan.c
> > @@ -274,6 +274,7 @@ ieee80211_get_chanctx_max_required_bw(struct
> ieee80211_local *local,
> > ieee8021

Re: [PATCH v2 1/9] cfg80211: add start / stop NAN commands

2016-09-16 Thread Johannes Berg

> I think NUM_NL80211_IFTYPES should not be in the switch. If it must I
> would leave it as last one here.
> 

It just suppresses compiler warnings :)

johannes


Re: [PATCH v2 1/9] cfg80211: add start / stop NAN commands

2016-09-16 Thread Arend Van Spriel
On 16-9-2016 10:33, Luca Coelho wrote:
> From: Ayala Beker 
> 
> This allows user space to start/stop NAN interface.
> A NAN interface is like P2P device in a few aspects: it
> doesn't have a netdev associated to it.
> Add the new interface type and prevent operations that
> can't be executed on NAN interface like scan.
> 
> Define several attributes that may be configured by user space
> when starting NAN functionality (master preference and dual
> band operation)
> 
> Signed-off-by: Andrei Otcheretianski 
> Signed-off-by: Emmanuel Grumbach 
> Signed-off-by: Luca Coelho 
> ---
>  include/net/cfg80211.h   | 21 +-
>  include/uapi/linux/nl80211.h | 52 +
>  net/mac80211/cfg.c   |  2 +
>  net/mac80211/chan.c  |  3 ++
>  net/mac80211/iface.c |  4 ++
>  net/mac80211/offchannel.c|  1 +
>  net/mac80211/rx.c|  3 ++
>  net/mac80211/util.c  |  1 +
>  net/wireless/chan.c  |  2 +
>  net/wireless/core.c  | 34 
>  net/wireless/core.h  |  3 ++
>  net/wireless/mlme.c  |  1 +
>  net/wireless/nl80211.c   | 93 
> ++--
>  net/wireless/rdev-ops.h  | 20 ++
>  net/wireless/trace.h | 27 +
>  net/wireless/util.c  |  6 ++-
>  16 files changed, 267 insertions(+), 6 deletions(-)
> 
> diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
> index d5e7f69..ca64d69 100644
> --- a/include/net/cfg80211.h
> +++ b/include/net/cfg80211.h
> @@ -2293,6 +2293,19 @@ struct cfg80211_qos_map {
>  };

[...]

> +/**
> + * enum nl80211_nan_dual_band_conf - NAN dual band configuration
> + *
> + * Defines the NAN dual band mode of operation

Does it make sense to have such a notion of bands in use. And what does
5.2GHz mean. Is this a subband within 5G channels? Probably I should
read the NAN spec to understand what is meant here. I would consider
5.2G as lower 5G, ie. discovery on channel 44 but not sure if that is
meant here.

> + * @NL80211_NAN_BAND_DEFAULT: device default mode
> + * @NL80211_NAN_BAND_SINGLE: 2.4GHz only mode
> + * @NL80211_NAN_BAND_DUAL: 2.4GHz and 5.2GHz mode
> +  */
> +enum nl80211_nan_dual_band_conf {
> + NL80211_NAN_BAND_DEFAULT,
> + NL80211_NAN_BAND_SINGLE,
> + NL80211_NAN_BAND_DUAL,
> +
> + /* keep last */
> + __NL80211_NAN_BAND_AFTER_LAST,
> + NL80211_NAN_BAND_MAX =
> + __NL80211_NAN_BAND_AFTER_LAST - 1,
> +};
> +
>  #endif /* __LINUX_NL80211_H */
> diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
> index e29ff57..a74027f 100644
> --- a/net/mac80211/cfg.c
> +++ b/net/mac80211/cfg.c
> @@ -257,6 +257,7 @@ static int ieee80211_add_key(struct wiphy *wiphy, struct 
> net_device *dev,
>   case NL80211_IFTYPE_WDS:
>   case NL80211_IFTYPE_MONITOR:
>   case NL80211_IFTYPE_P2P_DEVICE:
> + case NL80211_IFTYPE_NAN:
>   case NL80211_IFTYPE_UNSPECIFIED:
>   case NUM_NL80211_IFTYPES:

Huh? What is this doing here? Not yours but weird still.

>   case NL80211_IFTYPE_P2P_CLIENT:
> @@ -2036,6 +2037,7 @@ static int ieee80211_scan(struct wiphy *wiphy,
>!(req->flags & NL80211_SCAN_FLAG_AP)))
>   return -EOPNOTSUPP;
>   break;
> + case NL80211_IFTYPE_NAN:
>   default:
>   return -EOPNOTSUPP;
>   }
> diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c
> index 74142d0..acb50f8 100644
> --- a/net/mac80211/chan.c
> +++ b/net/mac80211/chan.c
> @@ -274,6 +274,7 @@ ieee80211_get_chanctx_max_required_bw(struct 
> ieee80211_local *local,
>   ieee80211_get_max_required_bw(sdata));
>   break;
>   case NL80211_IFTYPE_P2P_DEVICE:
> + case NL80211_IFTYPE_NAN:
>   continue;
>   case NL80211_IFTYPE_ADHOC:
>   case NL80211_IFTYPE_WDS:
> @@ -718,6 +719,7 @@ void ieee80211_recalc_smps_chanctx(struct ieee80211_local 
> *local,
>  
>   switch (sdata->vif.type) {
>   case NL80211_IFTYPE_P2P_DEVICE:
> + case NL80211_IFTYPE_NAN:
>   continue;
>   case NL80211_IFTYPE_STATION:
>   if (!sdata->u.mgd.associated)
> @@ -981,6 +983,7 @@ ieee80211_vif_chanctx_reservation_complete(struct 
> ieee80211_sub_if_data *sdata)
>   case NL80211_IFTYPE_P2P_GO:
>   case NL80211_IFTYPE_P2P_DEVICE:
>   case NUM_NL80211_IFTYPES:

I think NUM_NL80211_IFTYPES should not be in the switch. If it must I
would leave it as last one here.

> + case NL80211_IFTYPE_NAN:
>   WARN_ON(1);
>   break;
>   }

Regards,
Arend



[PATCH v2 1/9] cfg80211: add start / stop NAN commands

2016-09-16 Thread Luca Coelho
From: Ayala Beker 

This allows user space to start/stop NAN interface.
A NAN interface is like P2P device in a few aspects: it
doesn't have a netdev associated to it.
Add the new interface type and prevent operations that
can't be executed on NAN interface like scan.

Define several attributes that may be configured by user space
when starting NAN functionality (master preference and dual
band operation)

Signed-off-by: Andrei Otcheretianski 
Signed-off-by: Emmanuel Grumbach 
Signed-off-by: Luca Coelho 
---
 include/net/cfg80211.h   | 21 +-
 include/uapi/linux/nl80211.h | 52 +
 net/mac80211/cfg.c   |  2 +
 net/mac80211/chan.c  |  3 ++
 net/mac80211/iface.c |  4 ++
 net/mac80211/offchannel.c|  1 +
 net/mac80211/rx.c|  3 ++
 net/mac80211/util.c  |  1 +
 net/wireless/chan.c  |  2 +
 net/wireless/core.c  | 34 
 net/wireless/core.h  |  3 ++
 net/wireless/mlme.c  |  1 +
 net/wireless/nl80211.c   | 93 ++--
 net/wireless/rdev-ops.h  | 20 ++
 net/wireless/trace.h | 27 +
 net/wireless/util.c  |  6 ++-
 16 files changed, 267 insertions(+), 6 deletions(-)

diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index d5e7f69..ca64d69 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -2293,6 +2293,19 @@ struct cfg80211_qos_map {
 };
 
 /**
+ * struct cfg80211_nan_conf - NAN configuration
+ *
+ * This struct defines NAN configuration parameters
+ *
+ * @master_pref: master preference (1 - 255)
+ * @dual: dual band operation mode
+ */
+struct cfg80211_nan_conf {
+   u8 master_pref;
+   enum nl80211_nan_dual_band_conf dual;
+};
+
+/**
  * struct cfg80211_ops - backend description for wireless configuration
  *
  * This struct is registered by fullmac card drivers and/or wireless stacks
@@ -2580,6 +2593,8 @@ struct cfg80211_qos_map {
  * and returning to the base channel for communication with the AP.
  * @tdls_cancel_channel_switch: Stop channel-switching with a TDLS peer. Both
  * peers must be on the base channel when the call completes.
+ * @start_nan: Start the NAN interface.
+ * @stop_nan: Stop the NAN interface.
  */
 struct cfg80211_ops {
int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
@@ -2845,6 +2860,9 @@ struct cfg80211_ops {
void(*tdls_cancel_channel_switch)(struct wiphy *wiphy,
  struct net_device *dev,
  const u8 *addr);
+   int (*start_nan)(struct wiphy *wiphy, struct wireless_dev *wdev,
+struct cfg80211_nan_conf *conf);
+   void(*stop_nan)(struct wiphy *wiphy, struct wireless_dev *wdev);
 };
 
 /*
@@ -3602,6 +3620,7 @@ struct cfg80211_cached_keys;
  * beacons, 0 when not valid
  * @address: The address for this device, valid only if @netdev is %NULL
  * @p2p_started: true if this is a P2P Device that has been started
+ * @nan_started: true if this is a NAN interface that has been started
  * @cac_started: true if DFS channel availability check has been started
  * @cac_start_time: timestamp (jiffies) when the dfs state was entered.
  * @cac_time_ms: CAC time in ms
@@ -3633,7 +3652,7 @@ struct wireless_dev {
 
struct mutex mtx;
 
-   bool use_4addr, p2p_started;
+   bool use_4addr, p2p_started, nan_started;
 
u8 address[ETH_ALEN] __aligned(sizeof(u16));
 
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 2206941..7ab18c8 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -838,6 +838,16 @@
  * not running. The driver indicates the status of the scan through
  * cfg80211_scan_done().
  *
+ * @NL80211_CMD_START_NAN: Start NAN operation, identified by its
+ * %NL80211_ATTR_WDEV interface. This interface must have been previously
+ * created with %NL80211_CMD_NEW_INTERFACE. After it has been started, the
+ * NAN interface will create or join a cluster. This command must have a
+ * valid %NL80211_ATTR_NAN_MASTER_PREF attribute and optional
+ * %NL80211_ATTR_NAN_DUAL attributes.
+ * After this command NAN functions can be added.
+ * @NL80211_CMD_STOP_NAN: Stop the NAN operation, identified by
+ * its %NL80211_ATTR_WDEV interface.
+ *
  * @NL80211_CMD_MAX: highest used command number
  * @__NL80211_CMD_AFTER_LAST: internal use
  */
@@ -1026,6 +1036,9 @@ enum nl80211_commands {
 
NL80211_CMD_ABORT_SCAN,
 
+   NL80211_CMD_START_NAN,
+   NL80211_CMD_STOP_NAN,
+
/* add new commands above here */
 
/* used to define NL80211_CMD_MAX below */
@@ -1733,6 +1746,12 @@ enum nl80211_commands {
  * regulatory indoor configuration would be owned by the netlink socket
  * that configured the indoor setting, and the indoor operation would be
  * c