Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/phil-wifi]: src/sys Start of WiFi refresh. Copy of FreeBSD net80211 dir...



details:   https://anonhg.NetBSD.org/src/rev/16cebe56a54f
branches:  phil-wifi
changeset: 320259:16cebe56a54f
user:      phil <phil%NetBSD.org@localhost>
date:      Thu Jun 28 21:03:07 2018 +0000

description:
Start of WiFi refresh.  Copy of FreeBSD net80211 directory with git
mirror commit id of 09e3123164ec345822e00465039503686efde455, no
changes yet.  ieee80211_netbsd.[ch] from ieee80211_freebsd.[ch].

diffstat:

 sys/arch/emips/include/disklabel.h    |     2 +-
 sys/arch/x68k/include/cdefs.h         |     2 +-
 sys/arch/x68k/include/cpufunc.h       |     2 +-
 sys/arch/x68k/include/ieeefp.h        |     2 +-
 sys/arch/x68k/include/profile.h       |     2 +-
 sys/arch/x68k/include/setjmp.h        |     2 +-
 sys/net80211/CHANGES                  |     8 +
 sys/net80211/_ieee80211.h             |   583 +++-
 sys/net80211/ieee80211.c              |  2863 +++++++++++++++-----
 sys/net80211/ieee80211.h              |  1246 ++++++--
 sys/net80211/ieee80211_acl.c          |   134 +-
 sys/net80211/ieee80211_action.c       |   289 ++
 sys/net80211/ieee80211_action.h       |    54 +
 sys/net80211/ieee80211_adhoc.c        |  1032 +++++++
 sys/net80211/ieee80211_adhoc.h        |    37 +
 sys/net80211/ieee80211_ageq.c         |   241 +
 sys/net80211/ieee80211_ageq.h         |    56 +
 sys/net80211/ieee80211_alq.c          |   177 +
 sys/net80211/ieee80211_alq.h          |    61 +
 sys/net80211/ieee80211_amrr.c         |   442 ++-
 sys/net80211/ieee80211_amrr.h         |    18 +-
 sys/net80211/ieee80211_crypto.c       |   696 ++-
 sys/net80211/ieee80211_crypto.h       |   192 +-
 sys/net80211/ieee80211_crypto_ccmp.c  |   229 +-
 sys/net80211/ieee80211_crypto_none.c  |    82 +-
 sys/net80211/ieee80211_crypto_tkip.c  |   443 ++-
 sys/net80211/ieee80211_crypto_wep.c   |   195 +-
 sys/net80211/ieee80211_ddb.c          |   898 ++++++
 sys/net80211/ieee80211_dfs.c          |   441 +++
 sys/net80211/ieee80211_dfs.h          |    65 +
 sys/net80211/ieee80211_hostap.c       |  2446 +++++++++++++++++
 sys/net80211/ieee80211_hostap.h       |    43 +
 sys/net80211/ieee80211_ht.c           |  3381 +++++++++++++++++++++++
 sys/net80211/ieee80211_ht.h           |   234 +
 sys/net80211/ieee80211_hwmp.c         |  2084 ++++++++++++++
 sys/net80211/ieee80211_input.c        |  3503 ++++--------------------
 sys/net80211/ieee80211_input.h        |   324 ++
 sys/net80211/ieee80211_ioctl.c        |  4690 ++++++++++++++++++--------------
 sys/net80211/ieee80211_ioctl.h        |   983 ++++--
 sys/net80211/ieee80211_mesh.c         |  3613 +++++++++++++++++++++++++
 sys/net80211/ieee80211_mesh.h         |   607 ++++
 sys/net80211/ieee80211_monitor.c      |   142 +
 sys/net80211/ieee80211_monitor.h      |    37 +
 sys/net80211/ieee80211_netbsd.c       |  1318 +++++---
 sys/net80211/ieee80211_netbsd.h       |   706 +++-
 sys/net80211/ieee80211_node.c         |  3828 +++++++++++++++-----------
 sys/net80211/ieee80211_node.h         |   677 ++-
 sys/net80211/ieee80211_output.c       |  4172 ++++++++++++++++++++--------
 sys/net80211/ieee80211_phy.c          |   626 ++++
 sys/net80211/ieee80211_phy.h          |   212 +
 sys/net80211/ieee80211_power.c        |   652 ++++
 sys/net80211/ieee80211_power.h        |    89 +
 sys/net80211/ieee80211_proto.c        |  2358 ++++++++++++----
 sys/net80211/ieee80211_proto.h        |   404 ++-
 sys/net80211/ieee80211_radiotap.c     |   376 ++
 sys/net80211/ieee80211_radiotap.h     |   205 +-
 sys/net80211/ieee80211_ratectl.c      |   138 +
 sys/net80211/ieee80211_ratectl.h      |   171 +
 sys/net80211/ieee80211_ratectl_none.c |   118 +
 sys/net80211/ieee80211_regdomain.c    |   451 +++
 sys/net80211/ieee80211_regdomain.h    |   295 ++
 sys/net80211/ieee80211_rssadapt.c     |   553 +--
 sys/net80211/ieee80211_rssadapt.h     |    80 +-
 sys/net80211/ieee80211_scan.c         |   678 ++++
 sys/net80211/ieee80211_scan.h         |   351 ++
 sys/net80211/ieee80211_scan_sta.c     |  1972 +++++++++++++
 sys/net80211/ieee80211_scan_sw.c      |  1014 +++++++
 sys/net80211/ieee80211_scan_sw.h      |    32 +
 sys/net80211/ieee80211_sta.c          |  1999 ++++++++++++++
 sys/net80211/ieee80211_sta.h          |    44 +
 sys/net80211/ieee80211_superg.c       |  1067 +++++++
 sys/net80211/ieee80211_superg.h       |   157 +
 sys/net80211/ieee80211_tdma.c         |   832 +++++
 sys/net80211/ieee80211_tdma.h         |   105 +
 sys/net80211/ieee80211_var.h          |  1084 +++++-
 sys/net80211/ieee80211_vht.c          |   853 ++++++
 sys/net80211/ieee80211_vht.h          |    68 +
 sys/net80211/ieee80211_wds.c          |   800 +++++
 sys/net80211/ieee80211_wds.h          |    41 +
 sys/net80211/ieee80211_xauth.c        |    34 +-
 80 files changed, 48723 insertions(+), 12418 deletions(-)

diffs (truncated from 68010 to 300 lines):

diff -r 51f75e6f467c -r 16cebe56a54f sys/arch/emips/include/disklabel.h
--- a/sys/arch/emips/include/disklabel.h        Thu Jun 28 17:22:09 2018 +0000
+++ b/sys/arch/emips/include/disklabel.h        Thu Jun 28 21:03:07 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: disklabel.h,v 1.3 2013/05/16 19:06:44 christos Exp $   */
+/*     $NetBSD: disklabel.h,v 1.5 2013/05/16 19:06:44 christos Exp $   */
 
 /*
  * Copyright (c) 1994 Christopher G. Demetriou
diff -r 51f75e6f467c -r 16cebe56a54f sys/arch/x68k/include/cdefs.h
--- a/sys/arch/x68k/include/cdefs.h     Thu Jun 28 17:22:09 2018 +0000
+++ b/sys/arch/x68k/include/cdefs.h     Thu Jun 28 21:03:07 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cdefs.h,v 1.1 1996/05/05 12:17:15 oki Exp $    */
+/*     $NetBSD: cdefs.h,v 1.1.1.1 1996/05/05 12:17:03 oki Exp $        */
 
 #ifndef _MACHINE_CDEFS_H_
 #define _MACHINE_CDEFS_H_
diff -r 51f75e6f467c -r 16cebe56a54f sys/arch/x68k/include/cpufunc.h
--- a/sys/arch/x68k/include/cpufunc.h   Thu Jun 28 17:22:09 2018 +0000
+++ b/sys/arch/x68k/include/cpufunc.h   Thu Jun 28 21:03:07 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cpufunc.h,v 1.1 1996/05/05 12:17:15 oki Exp $  */
+/*     $NetBSD: cpufunc.h,v 1.1.1.1 1996/05/05 12:17:03 oki Exp $      */
 
 /*
  * Functions to provide access to special cpu instructions.
diff -r 51f75e6f467c -r 16cebe56a54f sys/arch/x68k/include/ieeefp.h
--- a/sys/arch/x68k/include/ieeefp.h    Thu Jun 28 17:22:09 2018 +0000
+++ b/sys/arch/x68k/include/ieeefp.h    Thu Jun 28 21:03:07 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ieeefp.h,v 1.1 1996/05/05 12:17:14 oki Exp $   */
+/*     $NetBSD: ieeefp.h,v 1.1.1.1 1996/05/05 12:17:03 oki Exp $       */
 
 /* Just use the common m68k definition */
 #include <m68k/ieeefp.h>
diff -r 51f75e6f467c -r 16cebe56a54f sys/arch/x68k/include/profile.h
--- a/sys/arch/x68k/include/profile.h   Thu Jun 28 17:22:09 2018 +0000
+++ b/sys/arch/x68k/include/profile.h   Thu Jun 28 21:03:07 2018 +0000
@@ -1,3 +1,3 @@
-/*     $NetBSD: profile.h,v 1.1 1996/05/05 12:17:14 oki Exp $  */
+/*     $NetBSD: profile.h,v 1.1.1.1 1996/05/05 12:17:03 oki Exp $      */
 
 #include <m68k/profile.h>
diff -r 51f75e6f467c -r 16cebe56a54f sys/arch/x68k/include/setjmp.h
--- a/sys/arch/x68k/include/setjmp.h    Thu Jun 28 17:22:09 2018 +0000
+++ b/sys/arch/x68k/include/setjmp.h    Thu Jun 28 21:03:07 2018 +0000
@@ -1,3 +1,3 @@
-/*     $NetBSD: setjmp.h,v 1.1 1996/05/05 12:17:15 oki Exp $   */
+/*     $NetBSD: setjmp.h,v 1.1.1.1 1996/05/05 12:17:03 oki Exp $       */
 
 #include <m68k/setjmp.h>
diff -r 51f75e6f467c -r 16cebe56a54f sys/net80211/CHANGES
--- a/sys/net80211/CHANGES      Thu Jun 28 17:22:09 2018 +0000
+++ b/sys/net80211/CHANGES      Thu Jun 28 21:03:07 2018 +0000
@@ -1,3 +1,11 @@
+*** Changes in 2018 for WiFi refresh.
+
+2018-06-28 13:47 Phil 
+
+Copy FreeBSD version in total, git repo mirror had commit Id of
+09e3123164ec345822e00465039503686efde455.  Moved ieee80211_freebsd.[ch]
+to ieee80211_netbsd.[ch].
+
 ***
 *** Summary of changes between 2005-05-18 and 2005-11-01.
 ***
diff -r 51f75e6f467c -r 16cebe56a54f sys/net80211/_ieee80211.h
--- a/sys/net80211/_ieee80211.h Thu Jun 28 17:22:09 2018 +0000
+++ b/sys/net80211/_ieee80211.h Thu Jun 28 21:03:07 2018 +0000
@@ -1,6 +1,8 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2001 Atsushi Onoe
- * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
+ * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -11,12 +13,6 @@
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
  *
  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
@@ -29,20 +25,39 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/net80211/_ieee80211.h,v 1.3 2005/08/10 17:42:13 sam Exp $
+ * $FreeBSD$
  */
 #ifndef _NET80211__IEEE80211_H_
 #define _NET80211__IEEE80211_H_
 
+/*
+ * 802.11 implementation definitions.
+ *
+ * NB: this file is used by applications.
+ */
+
+/*
+ * PHY type; mostly used to identify FH phys.
+ */
 enum ieee80211_phytype {
        IEEE80211_T_DS,                 /* direct sequence spread spectrum */
        IEEE80211_T_FH,                 /* frequency hopping */
        IEEE80211_T_OFDM,               /* frequency division multiplexing */
-       IEEE80211_T_TURBO               /* high rate OFDM, aka turbo mode */
+       IEEE80211_T_TURBO,              /* high rate OFDM, aka turbo mode */
+       IEEE80211_T_HT,                 /* high throughput */
+       IEEE80211_T_OFDM_HALF,          /* 1/2 rate OFDM */
+       IEEE80211_T_OFDM_QUARTER,       /* 1/4 rate OFDM */
+       IEEE80211_T_VHT,                /* VHT PHY */
 };
 #define        IEEE80211_T_CCK IEEE80211_T_DS  /* more common nomenclature */
 
-/* XXX not really a mode; there are really multiple PHY's */
+/*
+ * PHY mode; this is not really a mode as multi-mode devices
+ * have multiple PHY's.  Mode is mostly used as a shorthand
+ * for constraining which channels to consider in setting up
+ * operation.  Modes used to be used more extensively when
+ * channels were identified as IEEE channel numbers.
+ */
 enum ieee80211_phymode {
        IEEE80211_MODE_AUTO     = 0,    /* autoselect */
        IEEE80211_MODE_11A      = 1,    /* 5GHz, OFDM */
@@ -50,29 +65,49 @@
        IEEE80211_MODE_11G      = 3,    /* 2GHz, OFDM */
        IEEE80211_MODE_FH       = 4,    /* 2GHz, GFSK */
        IEEE80211_MODE_TURBO_A  = 5,    /* 5GHz, OFDM, 2x clock */
-       IEEE80211_MODE_TURBO_G  = 6     /* 2GHz, OFDM, 2x clock */
+       IEEE80211_MODE_TURBO_G  = 6,    /* 2GHz, OFDM, 2x clock */
+       IEEE80211_MODE_STURBO_A = 7,    /* 5GHz, OFDM, 2x clock, static */
+       IEEE80211_MODE_11NA     = 8,    /* 5GHz, w/ HT */
+       IEEE80211_MODE_11NG     = 9,    /* 2GHz, w/ HT */
+       IEEE80211_MODE_HALF     = 10,   /* OFDM, 1/2x clock */
+       IEEE80211_MODE_QUARTER  = 11,   /* OFDM, 1/4x clock */
+       IEEE80211_MODE_VHT_2GHZ = 12,   /* 2GHz, VHT */
+       IEEE80211_MODE_VHT_5GHZ = 13,   /* 5GHz, VHT */
 };
-#define        IEEE80211_MODE_MAX      ((int)IEEE80211_MODE_TURBO_G + 1)
-
-enum ieee80211_opmode {
-       IEEE80211_M_STA         = 1,    /* infrastructure station */
-       IEEE80211_M_IBSS        = 0,    /* IBSS (adhoc) station */
-       IEEE80211_M_AHDEMO      = 3,    /* Old lucent compatible adhoc demo */
-       IEEE80211_M_HOSTAP      = 6,    /* Software Access Point */
-       IEEE80211_M_MONITOR     = 8     /* Monitor mode */
-};
+#define        IEEE80211_MODE_MAX      (IEEE80211_MODE_VHT_5GHZ+1)
+#define        IEEE80211_MODE_BYTES    howmany(IEEE80211_MODE_MAX, NBBY)
 
 /*
- * 802.11g protection mode.
+ * Operating mode.  Devices do not necessarily support
+ * all modes; they indicate which are supported in their
+ * capabilities.
+ */
+enum ieee80211_opmode {
+       IEEE80211_M_IBSS        = 0,    /* IBSS (adhoc) station */
+       IEEE80211_M_STA         = 1,    /* infrastructure station */
+       IEEE80211_M_WDS         = 2,    /* WDS link */
+       IEEE80211_M_AHDEMO      = 3,    /* Old lucent compatible adhoc demo */
+       IEEE80211_M_HOSTAP      = 4,    /* Software Access Point */
+       IEEE80211_M_MONITOR     = 5,    /* Monitor mode */
+       IEEE80211_M_MBSS        = 6,    /* MBSS (Mesh Point) link */
+};
+#define        IEEE80211_OPMODE_MAX    (IEEE80211_M_MBSS+1)
+
+/*
+ * 802.11g/802.11n protection mode.
  */
 enum ieee80211_protmode {
        IEEE80211_PROT_NONE     = 0,    /* no protection */
        IEEE80211_PROT_CTSONLY  = 1,    /* CTS to self */
-       IEEE80211_PROT_RTSCTS   = 2     /* RTS-CTS */
+       IEEE80211_PROT_RTSCTS   = 2,    /* RTS-CTS */
 };
 
 /*
- * Authentication mode.
+ * Authentication mode.  The open and shared key authentication
+ * modes are implemented within the 802.11 layer.  802.1x and
+ * WPA/802.11i are implemented in user mode by setting the
+ * 802.11 layer into IEEE80211_AUTH_8021X and deferring
+ * authentication to user space programs.
  */
 enum ieee80211_authmode {
        IEEE80211_AUTH_NONE     = 0,
@@ -81,7 +116,7 @@
        IEEE80211_AUTH_8021X    = 3,            /* 802.1x */
        IEEE80211_AUTH_AUTO     = 4,            /* auto-select/accept */
        /* NB: these are used only for ioctls */
-       IEEE80211_AUTH_WPA      = 5             /* WPA/RSN w/ 802.1x/PSK */
+       IEEE80211_AUTH_WPA      = 5,            /* WPA/RSN w/ 802.1x/PSK */
 };
 
 /*
@@ -96,37 +131,86 @@
 enum ieee80211_roamingmode {
        IEEE80211_ROAMING_DEVICE= 0,    /* driver/hardware control */
        IEEE80211_ROAMING_AUTO  = 1,    /* 802.11 layer control */
-       IEEE80211_ROAMING_MANUAL= 2     /* application control */
+       IEEE80211_ROAMING_MANUAL= 2,    /* application control */
 };
 
 /*
  * Channels are specified by frequency and attributes.
  */
 struct ieee80211_channel {
-       u_int16_t       ic_freq;        /* setting in MHz */
-       u_int16_t       ic_flags;       /* see below */
+       uint32_t        ic_flags;       /* see below */
+       uint16_t        ic_freq;        /* primary centre frequency in MHz */
+       uint8_t         ic_ieee;        /* IEEE channel number */
+       int8_t          ic_maxregpower; /* maximum regulatory tx power in dBm */
+       int8_t          ic_maxpower;    /* maximum tx power in .5 dBm */
+       int8_t          ic_minpower;    /* minimum tx power in .5 dBm */
+       uint8_t         ic_state;       /* dynamic state */
+       uint8_t         ic_extieee;     /* HT40 extension channel number */
+       int8_t          ic_maxantgain;  /* maximum antenna gain in .5 dBm */
+       uint8_t         ic_pad;
+       uint16_t        ic_devdata;     /* opaque device/driver data */
+       uint8_t         ic_vht_ch_freq1; /* VHT primary freq1 IEEE value */
+       uint8_t         ic_vht_ch_freq2; /* VHT secondary 80MHz freq2 IEEE value */
+       uint16_t        ic_freq2;       /* VHT secondary 80MHz freq2 MHz */
 };
 
-extern const struct ieee80211_channel ieee80211_channel_anyc;
+/*
+ * Note: for VHT operation we will need significantly more than
+ * IEEE80211_CHAN_MAX channels because of the combinations of
+ * VHT20, VHT40, VHT80, VHT80+80 and VHT160.
+ */
+#define        IEEE80211_CHAN_MAX      1024
+#define        IEEE80211_CHAN_BYTES    howmany(IEEE80211_CHAN_MAX, NBBY)
+#define        IEEE80211_CHAN_ANY      0xffff  /* token for ``any channel'' */
+#define        IEEE80211_CHAN_ANYC \
+       ((struct ieee80211_channel *) IEEE80211_CHAN_ANY)
 
-#define        IEEE80211_CHAN_MAX      255
-#define        IEEE80211_CHAN_BYTES    32      /* howmany(IEEE80211_CHAN_MAX, NBBY) */
-#define        IEEE80211_CHAN_ANY      0xffff  /* token for ``any channel'' */
-#define        IEEE80211_CHAN_ANYC     (__UNCONST(&ieee80211_channel_anyc))
-
-/* bits 0-3 are for private use by drivers */
 /* channel attributes */
-#define        IEEE80211_CHAN_TURBO    0x0010  /* Turbo channel */
-#define        IEEE80211_CHAN_CCK      0x0020  /* CCK channel */
-#define        IEEE80211_CHAN_OFDM     0x0040  /* OFDM channel */
-#define        IEEE80211_CHAN_2GHZ     0x0080  /* 2 GHz spectrum channel. */
-#define        IEEE80211_CHAN_5GHZ     0x0100  /* 5 GHz spectrum channel */
-#define        IEEE80211_CHAN_PASSIVE  0x0200  /* Only passive scan allowed */
-#define        IEEE80211_CHAN_DYN      0x0400  /* Dynamic CCK-OFDM channel */
-#define        IEEE80211_CHAN_GFSK     0x0800  /* GFSK channel (FHSS PHY) */
-#define        IEEE80211_CHAN_GSM      0x1000  /* 900 MHz spectrum channel */
-#define        IEEE80211_CHAN_HALF     0x4000  /* Half rate channel */
-#define        IEEE80211_CHAN_QUARTER  0x8000  /* Quarter rate channel */
+#define        IEEE80211_CHAN_PRIV0    0x00000001 /* driver private bit 0 */
+#define        IEEE80211_CHAN_PRIV1    0x00000002 /* driver private bit 1 */
+#define        IEEE80211_CHAN_PRIV2    0x00000004 /* driver private bit 2 */
+#define        IEEE80211_CHAN_PRIV3    0x00000008 /* driver private bit 3 */
+#define        IEEE80211_CHAN_TURBO    0x00000010 /* Turbo channel */
+#define        IEEE80211_CHAN_CCK      0x00000020 /* CCK channel */
+#define        IEEE80211_CHAN_OFDM     0x00000040 /* OFDM channel */
+#define        IEEE80211_CHAN_2GHZ     0x00000080 /* 2 GHz spectrum channel. */
+#define        IEEE80211_CHAN_5GHZ     0x00000100 /* 5 GHz spectrum channel */
+#define        IEEE80211_CHAN_PASSIVE  0x00000200 /* Only passive scan allowed */
+#define        IEEE80211_CHAN_DYN      0x00000400 /* Dynamic CCK-OFDM channel */
+#define        IEEE80211_CHAN_GFSK     0x00000800 /* GFSK channel (FHSS PHY) */
+#define        IEEE80211_CHAN_GSM      0x00001000 /* 900 MHz spectrum channel */
+#define        IEEE80211_CHAN_STURBO   0x00002000 /* 11a static turbo channel only */
+#define        IEEE80211_CHAN_HALF     0x00004000 /* Half rate channel */
+#define        IEEE80211_CHAN_QUARTER  0x00008000 /* Quarter rate channel */
+#define        IEEE80211_CHAN_HT20     0x00010000 /* HT 20 channel */
+#define        IEEE80211_CHAN_HT40U    0x00020000 /* HT 40 channel w/ ext above */
+#define        IEEE80211_CHAN_HT40D    0x00040000 /* HT 40 channel w/ ext below */
+#define        IEEE80211_CHAN_DFS      0x00080000 /* DFS required */
+#define        IEEE80211_CHAN_4MSXMIT  0x00100000 /* 4ms limit on frame length */
+#define        IEEE80211_CHAN_NOADHOC  0x00200000 /* adhoc mode not allowed */
+#define        IEEE80211_CHAN_NOHOSTAP 0x00400000 /* hostap mode not allowed */
+#define        IEEE80211_CHAN_11D      0x00800000 /* 802.11d required */
+#define        IEEE80211_CHAN_VHT20    0x01000000 /* VHT20 channel */
+#define        IEEE80211_CHAN_VHT40U   0x02000000 /* VHT40 channel, ext above */
+#define        IEEE80211_CHAN_VHT40D   0x04000000 /* VHT40 channel, ext below */
+#define        IEEE80211_CHAN_VHT80    0x08000000 /* VHT80 channel */
+#define        IEEE80211_CHAN_VHT80_80 0x10000000 /* VHT80+80 channel */
+#define        IEEE80211_CHAN_VHT160   0x20000000 /* VHT160 channel */
+/* XXX note: 0x80000000 is used in src/sbin/ifconfig/ifieee80211.c :( */
+



Home | Main Index | Thread Index | Old Index