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