[pkg-wpa-devel] r862 - in /hostapd/trunk/debian: changelog control ifupdown.sh links mk-madwifi-header-patch patches/00list patches/20_madwifi_headers.dpatch patches/21_madwifi_enable.dpatch patches/21_madwifi_includes.dpatch
kelmo-guest at users.alioth.debian.org
kelmo-guest at users.alioth.debian.org
Tue Jul 24 11:44:57 UTC 2007
Author: kelmo-guest
Date: Tue Jul 24 11:44:56 2007
New Revision: 862
URL: http://svn.debian.org/wsvn/pkg-wpa/?sc=1&rev=862
Log:
* New upstream release.
* Add bash script to prepare madwifi_headers.patch.
* patches/20_madwifi_headers.dpatch made from madwifi 0.9.3, which is what
is currently in the archive, and stable upstream release.
* Revert r858, the zz- prefix to ifupdown hook. It is madwifi-tools ifupdown
hook that should be modified, not hostapd's.
* Revert r957, #427724 thinks we should be bridge-utils hook too, but that
is not true, just convenient for that particular reporter.
Added:
hostapd/trunk/debian/mk-madwifi-header-patch (with props)
hostapd/trunk/debian/patches/21_madwifi_enable.dpatch
- copied unchanged from r861, hostapd/trunk/debian/patches/21_madwifi_includes.dpatch
Removed:
hostapd/trunk/debian/patches/21_madwifi_includes.dpatch
Modified:
hostapd/trunk/debian/changelog
hostapd/trunk/debian/control
hostapd/trunk/debian/ifupdown.sh
hostapd/trunk/debian/links
hostapd/trunk/debian/patches/00list
hostapd/trunk/debian/patches/20_madwifi_headers.dpatch
Modified: hostapd/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-wpa/hostapd/trunk/debian/changelog?rev=862&op=diff
==============================================================================
--- hostapd/trunk/debian/changelog (original)
+++ hostapd/trunk/debian/changelog Tue Jul 24 11:44:56 2007
@@ -1,24 +1,25 @@
hostapd (1:0.5.8-1) UNRELEASED; urgency=low
[ Kel Modderman ]
- * (NOT RELEASED YET) New upstream release
+ * New upstream release.
+ * Add bash script to prepare madwifi_headers.patch.
+ * patches/20_madwifi_headers.dpatch made from madwifi 0.9.3, which is what
+ is currently in the archive, and stable upstream release.
+ * Revert r858, the zz- prefix to ifupdown hook. It is madwifi-tools ifupdown
+ hook that should be modified, not hostapd's.
+ * Revert r957, #427724 thinks we should be bridge-utils hook too, but that
+ is not true, just convenient for that particular reporter.
[ Faidon Liambotis ]
* Include Devicescape/mac80211 driver. Highly experimental at this point.
(Closes: #429734)
- * Handle madwifi bridges correctly. Thanks to Elmar Hoffmann for the patch.
- (Closes: #427724)
- * Add bridge-utils (brctl) to Suggests since we conditionally using it.
- * Move /e/n/if-pre-up.d/hostap to zz-hostap to correctly work with madwifi
- setups that create the interface in pre-up. Thanks to Elmar Hoffmann.
- (Closes: #427713)
* Update madwifi includes to r2583. This might break old installations, but
will fix setups with 6-month old madwifi. (Closes: #408642)
* Remove upgrade paths from pre-etch versions, we only support incremental
updates. Fix a lintian error in the process.
* Don't ignore "make clean" errors, if they exist; fixes a lintian warning.
- -- Faidon Liambotis <paravoid at debian.org> Sun, 22 Jul 2007 21:56:53 +0300
+ -- Kel Modderman <kel at otaku42.de> Tue, 24 Jul 2007 21:23:14 +1000
hostapd (1:0.5.7-1) unstable; urgency=low
Modified: hostapd/trunk/debian/control
URL: http://svn.debian.org/wsvn/pkg-wpa/hostapd/trunk/debian/control?rev=862&op=diff
==============================================================================
--- hostapd/trunk/debian/control (original)
+++ hostapd/trunk/debian/control Tue Jul 24 11:44:56 2007
@@ -11,7 +11,6 @@
Package: hostapd
Architecture: any
Depends: ${shlibs:Depends}, lsb-base (>= 3.0-3)
-Suggests: bridge-utils
Description: user space IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator
Originally, hostapd was an optional user space component for Host AP
driver. It adds more features to the basic IEEE 802.11 management
Modified: hostapd/trunk/debian/ifupdown.sh
URL: http://svn.debian.org/wsvn/pkg-wpa/hostapd/trunk/debian/ifupdown.sh?rev=862&op=diff
==============================================================================
--- hostapd/trunk/debian/ifupdown.sh (original)
+++ hostapd/trunk/debian/ifupdown.sh Tue Jul 24 11:44:56 2007
@@ -94,28 +94,11 @@
fi
}
-setup_bridge () {
- if [ ! -x /usr/sbin/brctl ]; then
- return 1
- fi
- if grep -q '^driver=madwifi' "$HOSTAPD_CONF"; then
- local BRIDGE
- BRIDGE=$(sed -n -e 's/^bridge=\(br[0-9]\+\).*$/\1/p' "$HOSTAPD_CONF")
- if [ -n "$BRIDGE" ]; then
- hostapd_msg verbose "brctl addif $BRIDGE $IFACE"
- brctl addif $BRIDGE "$IFACE"
- return "$?"
- fi
- fi
- return 0
-}
-
case "$MODE" in
start)
case "$PHASE" in
pre-up)
init_hostapd || exit 1
- setup_bridge || exit 1
;;
*)
hostapd_msg stderr "unknown phase: \"$PHASE\""
Modified: hostapd/trunk/debian/links
URL: http://svn.debian.org/wsvn/pkg-wpa/hostapd/trunk/debian/links?rev=862&op=diff
==============================================================================
--- hostapd/trunk/debian/links (original)
+++ hostapd/trunk/debian/links Tue Jul 24 11:44:56 2007
@@ -1,2 +1,2 @@
-etc/hostapd/ifupdown.sh /etc/network/if-pre-up.d/zz-hostapd
+etc/hostapd/ifupdown.sh /etc/network/if-pre-up.d/hostapd
etc/hostapd/ifupdown.sh /etc/network/if-post-down.d/hostapd
Added: hostapd/trunk/debian/mk-madwifi-header-patch
URL: http://svn.debian.org/wsvn/pkg-wpa/hostapd/trunk/debian/mk-madwifi-header-patch?rev=862&op=file
==============================================================================
--- hostapd/trunk/debian/mk-madwifi-header-patch (added)
+++ hostapd/trunk/debian/mk-madwifi-header-patch Tue Jul 24 11:44:56 2007
@@ -1,0 +1,72 @@
+#!/bin/bash -e
+#
+# (C) 2007 Kel Modderman <kel at otaku42.de>
+#
+# Output a dpatch suitable for including MadWifi headers in
+# hostapd/wpa_supplicant to support MadWifi devices.
+#
+
+PACKAGE="hostapd"
+
+HEADERS=(
+ include/compat.h
+ net80211/_ieee80211.h
+ net80211/ieee80211.h
+ net80211/ieee80211_crypto.h
+ net80211/ieee80211_ioctl.h
+)
+
+usage()
+{
+ echo "Usage: $0 /path/to/madwifi-\$version.tar.gz"
+ exit 1
+}
+
+case "${1}" in
+ *madwifi*\.tar\.gz)
+ tarball="${1}"
+ version=$(echo ${1} | \
+ sed -n 's|.*madwifi\(-ng\)\?[-_]\([r0-9\.+-]\+\)\(\.orig\)\?\.tar\.gz$|\2|p')
+ ;;
+ *)
+ usage
+ ;;
+esac
+
+if ! which dpatch >/dev/null; then
+ echo "dpatch must be installed, aborting..."
+ exit 2
+fi
+
+tmpdir=$(mktemp -d -p /tmp madwifi-patch.XXXXX)
+
+if [ ! -d "${tmpdir}" ]; then
+ echo "failed to create temp directory, aborting..."
+ exit 3
+fi
+
+trap "{ rm -rf ${tmpdir}; }" exit
+
+cp "${tarball}" "${tmpdir}"
+
+pushd "${tmpdir}" >/dev/null
+ tar -zxf "${tarball}"
+
+ for m in madwifi*; do
+ if [ -d "${m}" ]; then
+ madwifi_dir="${m}"
+ break
+ fi
+ done
+
+ for h in ${HEADERS[@]}; do
+ install -D -m 0644 "${madwifi_dir}/${h}" \
+ "${PACKAGE}/driver_madwifi/${h}"
+ done
+
+ mkdir "${PACKAGE}.orig"
+
+ dpatch patch-template madwifi_headers "MadWifi ($version) headers."
+
+ diff -Nrup "${PACKAGE}.orig" "${PACKAGE}"
+popd >/dev/null
Propchange: hostapd/trunk/debian/mk-madwifi-header-patch
------------------------------------------------------------------------------
svn:executable = *
Modified: hostapd/trunk/debian/patches/00list
URL: http://svn.debian.org/wsvn/pkg-wpa/hostapd/trunk/debian/patches/00list?rev=862&op=diff
==============================================================================
--- hostapd/trunk/debian/patches/00list (original)
+++ hostapd/trunk/debian/patches/00list Tue Jul 24 11:44:56 2007
@@ -1,6 +1,6 @@
10_config
12_conf_etc_hostapd
20_madwifi_headers
-21_madwifi_includes
-30_mac80211_headers
-31_mac80211_enable
+21_madwifi_enable
+#30_mac80211_headers
+#31_mac80211_enable
Modified: hostapd/trunk/debian/patches/20_madwifi_headers.dpatch
URL: http://svn.debian.org/wsvn/pkg-wpa/hostapd/trunk/debian/patches/20_madwifi_headers.dpatch?rev=862&op=diff
==============================================================================
--- hostapd/trunk/debian/patches/20_madwifi_headers.dpatch (original)
+++ hostapd/trunk/debian/patches/20_madwifi_headers.dpatch Tue Jul 24 11:44:56 2007
@@ -1,14 +1,14 @@
#! /bin/sh /usr/share/dpatch/dpatch-run
-## wpa_madwifing_r2157_includes.patch by Kel Modderman <kel at otaku42.de>
+## madwifi_headers.dpatch by Kel Modderman <kel at otaku42.de>
##
## All lines beginning with `## DP:' are a description of the patch.
-## DP: Includes for madwifi private ioctl's (madwifi.org svn trunk r2583).
+## DP: MadWifi (0.9.3) headers.
@DPATCH@
-diff -urNad trunk~/driver_madwifi/include/compat.h trunk/driver_madwifi/include/compat.h
---- trunk~/driver_madwifi/include/compat.h 1970-01-01 02:00:00.000000000 +0200
-+++ trunk/driver_madwifi/include/compat.h 2007-07-22 21:34:44.000000000 +0300
-@@ -0,0 +1,147 @@
+diff -Nrup hostapd.orig/driver_madwifi/include/compat.h hostapd/driver_madwifi/include/compat.h
+--- hostapd.orig/driver_madwifi/include/compat.h 1970-01-01 10:00:00.000000000 +1000
++++ hostapd/driver_madwifi/include/compat.h 2007-07-24 21:32:14.222289485 +1000
+@@ -0,0 +1,135 @@
+/*-
+ * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
+ * All rights reserved.
@@ -44,7 +44,7 @@
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGES.
+ *
-+ * $Id: compat.h 2562 2007-07-08 05:55:31Z proski $
++ * $Id: compat.h 2169 2007-03-02 17:42:33Z proski $
+ */
+#ifndef _ATH_COMPAT_H_
+#define _ATH_COMPAT_H_
@@ -65,8 +65,8 @@
+
+#ifndef container_of
+#define container_of(ptr, type, member) ({ \
-+ const typeof( ((type *)0)->member ) *__mptr = (ptr); \
-+ (type *)( (char *)__mptr - offsetof(type,member) );})
++ const typeof( ((type *)0)->member ) *__mptr = (ptr); \
++ (type *)( (char *)__mptr - offsetof(type,member) );})
+#endif
+
+/*
@@ -78,7 +78,7 @@
+/* roundup() appears in Linux 2.6.18 */
+#include <linux/kernel.h>
+#ifndef roundup
-+#define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) /* to any y */
++#define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) /* to any y */
+#endif
+
+#define howmany(x, y) (((x)+((y)-1))/(y))
@@ -141,25 +141,13 @@
+#define __iomem
+#endif
+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
-+#define skb_end_pointer(_skb) ((_skb)->end)
-+#define skb_tail_pointer(_skb) ((_skb)->tail)
-+#define skb_set_network_header(_skb, _offset) \
-+ do { (_skb)->nh.raw = (_skb)->data + (_offset); } while(0)
-+#define skb_reset_network_header(_skb) \
-+ do { (_skb)->nh.raw = (_skb)->data; } while(0)
-+#define skb_mac_header(_skb) ((_skb)->mac.raw)
-+#define skb_reset_mac_header(_skb) \
-+ do { (_skb)->mac.raw = (_skb)->data; } while(0)
-+#endif
-+
+#endif /* __KERNEL__ */
+
+#endif /* _ATH_COMPAT_H_ */
-diff -urNad trunk~/driver_madwifi/net80211/_ieee80211.h trunk/driver_madwifi/net80211/_ieee80211.h
---- trunk~/driver_madwifi/net80211/_ieee80211.h 1970-01-01 02:00:00.000000000 +0200
-+++ trunk/driver_madwifi/net80211/_ieee80211.h 2007-07-22 21:34:16.000000000 +0300
-@@ -0,0 +1,244 @@
+diff -Nrup hostapd.orig/driver_madwifi/net80211/ieee80211_crypto.h hostapd/driver_madwifi/net80211/ieee80211_crypto.h
+--- hostapd.orig/driver_madwifi/net80211/ieee80211_crypto.h 1970-01-01 10:00:00.000000000 +1000
++++ hostapd/driver_madwifi/net80211/ieee80211_crypto.h 2007-07-24 21:32:14.237287197 +1000
+@@ -0,0 +1,205 @@
+/*-
+ * Copyright (c) 2001 Atsushi Onoe
+ * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
@@ -191,7 +179,216 @@
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
-+ * $Id: _ieee80211.h 2513 2007-06-25 03:48:07Z mentor $
++ * $Id: ieee80211_crypto.h 1441 2006-02-06 16:03:21Z mrenzmann $
++ */
++#ifndef _NET80211_IEEE80211_CRYPTO_H_
++#define _NET80211_IEEE80211_CRYPTO_H_
++
++/*
++ * 802.11 protocol crypto-related definitions.
++ */
++#define IEEE80211_KEYBUF_SIZE 16
++#define IEEE80211_MICBUF_SIZE (8 + 8) /* space for both tx+rx keys */
++#define IEEE80211_TID_SIZE 17 /* total number of TIDs */
++
++/*
++ * Old WEP-style key. Deprecated.
++ */
++struct ieee80211_wepkey {
++ u_int wk_len; /* key length in bytes */
++ u_int8_t wk_key[IEEE80211_KEYBUF_SIZE];
++};
++
++struct ieee80211_cipher;
++
++/*
++ * Crypto key state. There is sufficient room for all supported
++ * ciphers (see below). The underlying ciphers are handled
++ * separately through loadable cipher modules that register with
++ * the generic crypto support. A key has a reference to an instance
++ * of the cipher; any per-key state is hung off wk_private by the
++ * cipher when it is attached. Ciphers are automatically called
++ * to detach and cleanup any such state when the key is deleted.
++ *
++ * The generic crypto support handles encap/decap of cipher-related
++ * frame contents for both hardware- and software-based implementations.
++ * A key requiring software crypto support is automatically flagged and
++ * the cipher is expected to honor this and do the necessary work.
++ * Ciphers such as TKIP may also support mixed hardware/software
++ * encrypt/decrypt and MIC processing.
++ */
++/* XXX need key index typedef */
++/* XXX pack better? */
++/* XXX 48-bit rsc/tsc */
++struct ieee80211_key {
++ u_int8_t wk_keylen; /* key length in bytes */
++ u_int8_t wk_flags;
++#define IEEE80211_KEY_XMIT 0x01 /* key used for xmit */
++#define IEEE80211_KEY_RECV 0x02 /* key used for recv */
++#define IEEE80211_KEY_GROUP 0x04 /* key used for WPA group operation */
++#define IEEE80211_KEY_SWCRYPT 0x10 /* host-based encrypt/decrypt */
++#define IEEE80211_KEY_SWMIC 0x20 /* host-based enmic/demic */
++ u_int16_t wk_keyix; /* key index */
++ u_int8_t wk_key[IEEE80211_KEYBUF_SIZE+IEEE80211_MICBUF_SIZE];
++#define wk_txmic wk_key+IEEE80211_KEYBUF_SIZE+0 /* XXX can't () right */
++#define wk_rxmic wk_key+IEEE80211_KEYBUF_SIZE+8 /* XXX can't () right */
++ u_int64_t wk_keyrsc[IEEE80211_TID_SIZE]; /* key receive sequence counter */
++ u_int64_t wk_keytsc; /* key transmit sequence counter */
++ const struct ieee80211_cipher *wk_cipher;
++ void *wk_private; /* private cipher state */
++};
++#define IEEE80211_KEY_COMMON /* common flags passed in by apps */\
++ (IEEE80211_KEY_XMIT | IEEE80211_KEY_RECV | IEEE80211_KEY_GROUP)
++
++/*
++ * NB: these values are ordered carefully; there are lots of
++ * of implications in any reordering. In particular beware
++ * that 4 is not used to avoid conflicting with IEEE80211_F_PRIVACY.
++ */
++#define IEEE80211_CIPHER_WEP 0
++#define IEEE80211_CIPHER_TKIP 1
++#define IEEE80211_CIPHER_AES_OCB 2
++#define IEEE80211_CIPHER_AES_CCM 3
++#define IEEE80211_CIPHER_CKIP 5
++#define IEEE80211_CIPHER_NONE 6 /* pseudo value */
++
++#define IEEE80211_CIPHER_MAX (IEEE80211_CIPHER_NONE+1)
++
++#define IEEE80211_KEYIX_NONE ((u_int16_t) - 1)
++
++#if defined(__KERNEL__) || defined(_KERNEL)
++
++struct ieee80211com;
++struct ieee80211vap;
++struct ieee80211_node;
++struct sk_buff;
++
++void ieee80211_crypto_attach(struct ieee80211com *);
++void ieee80211_crypto_detach(struct ieee80211com *);
++void ieee80211_crypto_vattach(struct ieee80211vap *);
++void ieee80211_crypto_vdetach(struct ieee80211vap *);
++int ieee80211_crypto_newkey(struct ieee80211vap *, int, int,
++ struct ieee80211_key *);
++int ieee80211_crypto_delkey(struct ieee80211vap *, struct ieee80211_key *,
++ struct ieee80211_node *);
++int ieee80211_crypto_setkey(struct ieee80211vap *, struct ieee80211_key *,
++ const u_int8_t macaddr[IEEE80211_ADDR_LEN], struct ieee80211_node *);
++void ieee80211_crypto_delglobalkeys(struct ieee80211vap *);
++
++/*
++ * Template for a supported cipher. Ciphers register with the
++ * crypto code and are typically loaded as separate modules
++ * (the null cipher is always present).
++ * XXX may need refcnts
++ */
++struct ieee80211_cipher {
++ const char *ic_name; /* printable name */
++ u_int ic_cipher; /* IEEE80211_CIPHER_* */
++ u_int ic_header; /* size of privacy header (bytes) */
++ u_int ic_trailer; /* size of privacy trailer (bytes) */
++ u_int ic_miclen; /* size of mic trailer (bytes) */
++ void *(*ic_attach)(struct ieee80211vap *, struct ieee80211_key *);
++ void (*ic_detach)(struct ieee80211_key *);
++ int (*ic_setkey)(struct ieee80211_key *);
++ int (*ic_encap)(struct ieee80211_key *, struct sk_buff *, u_int8_t);
++ int (*ic_decap)(struct ieee80211_key *, struct sk_buff *, int);
++ int (*ic_enmic)(struct ieee80211_key *, struct sk_buff *, int);
++ int (*ic_demic)(struct ieee80211_key *, struct sk_buff *, int);
++};
++extern const struct ieee80211_cipher ieee80211_cipher_none;
++
++void ieee80211_crypto_register(const struct ieee80211_cipher *);
++void ieee80211_crypto_unregister(const struct ieee80211_cipher *);
++int ieee80211_crypto_available(u_int);
++
++struct ieee80211_key *ieee80211_crypto_encap(struct ieee80211_node *,
++ struct sk_buff *);
++struct ieee80211_key *ieee80211_crypto_decap(struct ieee80211_node *,
++ struct sk_buff *, int);
++
++/*
++ * Check and remove any MIC.
++ */
++static __inline int
++ieee80211_crypto_demic(struct ieee80211vap *vap, struct ieee80211_key *k,
++ struct sk_buff *skb, int hdrlen)
++{
++ const struct ieee80211_cipher *cip = k->wk_cipher;
++ return (cip->ic_miclen > 0 ? cip->ic_demic(k, skb, hdrlen) : 1);
++}
++
++/*
++ * Add any MIC.
++ */
++static __inline int
++ieee80211_crypto_enmic(struct ieee80211vap *vap, struct ieee80211_key *k,
++ struct sk_buff *skb, int force)
++{
++ const struct ieee80211_cipher *cip = k->wk_cipher;
++ return (cip->ic_miclen > 0 ? cip->ic_enmic(k, skb, force) : 1);
++}
++
++/*
++ * Reset key state to an unused state. The crypto
++ * key allocation mechanism ensures other state (e.g.
++ * key data) is properly setup before a key is used.
++ */
++static __inline void
++ieee80211_crypto_resetkey(struct ieee80211vap *vap, struct ieee80211_key *k,
++ u_int16_t ix)
++{
++ k->wk_cipher = &ieee80211_cipher_none;;
++ k->wk_private = k->wk_cipher->ic_attach(vap, k);
++ k->wk_keyix = ix;
++ k->wk_flags = IEEE80211_KEY_XMIT | IEEE80211_KEY_RECV;
++}
++
++/*
++ * Crypto-related notification methods.
++ */
++void ieee80211_notify_replay_failure(struct ieee80211vap *,
++ const struct ieee80211_frame *, const struct ieee80211_key *,
++ u_int64_t rsc);
++void ieee80211_notify_michael_failure(struct ieee80211vap *,
++ const struct ieee80211_frame *, u_int keyix);
++#endif /* defined(__KERNEL__) || defined(_KERNEL) */
++#endif /* _NET80211_IEEE80211_CRYPTO_H_ */
+diff -Nrup hostapd.orig/driver_madwifi/net80211/_ieee80211.h hostapd/driver_madwifi/net80211/_ieee80211.h
+--- hostapd.orig/driver_madwifi/net80211/_ieee80211.h 1970-01-01 10:00:00.000000000 +1000
++++ hostapd/driver_madwifi/net80211/_ieee80211.h 2007-07-24 21:32:14.225289028 +1000
+@@ -0,0 +1,243 @@
++/*-
++ * Copyright (c) 2001 Atsushi Onoe
++ * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 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
++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ * $Id: _ieee80211.h 1441 2006-02-06 16:03:21Z mrenzmann $
+ */
+#ifndef _NET80211__IEEE80211_H_
+#define _NET80211__IEEE80211_H_
@@ -204,7 +401,7 @@
+};
+#define IEEE80211_T_CCK IEEE80211_T_DS /* more common nomenclature */
+
-+/* XXX: not really a mode; there are really multiple PHYs */
++/* XXX not really a mode; there are really multiple PHY's */
+enum ieee80211_phymode {
+ IEEE80211_MODE_AUTO = 0, /* autoselect */
+ IEEE80211_MODE_11A = 1, /* 5GHz, OFDM */
@@ -290,8 +487,7 @@
+#define IEEE80211_CHAN_ANY 0xffff /* token for ``any channel'' */
+#define IEEE80211_CHAN_ANYC ((struct ieee80211_channel *) IEEE80211_CHAN_ANY)
+
-+#define IEEE80211_RADAR_11HCOUNT 1
-+#define IEEE80211_DEFAULT_CHANCHANGE_TBTT_COUNT 3
++#define IEEE80211_RADAR_11HCOUNT 1
+#define IEEE80211_RADAR_TEST_MUTE_CHAN 36 /* Move to channel 36 for mute test */
+
+/* bits 0-3 are for private use by drivers */
@@ -404,10 +600,10 @@
+ u_int8_t pad2;
+};
+#endif /* _NET80211__IEEE80211_H_ */
-diff -urNad trunk~/driver_madwifi/net80211/ieee80211.h trunk/driver_madwifi/net80211/ieee80211.h
---- trunk~/driver_madwifi/net80211/ieee80211.h 1970-01-01 02:00:00.000000000 +0200
-+++ trunk/driver_madwifi/net80211/ieee80211.h 2007-07-22 21:34:16.000000000 +0300
-@@ -0,0 +1,940 @@
+diff -Nrup hostapd.orig/driver_madwifi/net80211/ieee80211.h hostapd/driver_madwifi/net80211/ieee80211.h
+--- hostapd.orig/driver_madwifi/net80211/ieee80211.h 1970-01-01 10:00:00.000000000 +1000
++++ hostapd/driver_madwifi/net80211/ieee80211.h 2007-07-24 21:32:14.234287655 +1000
+@@ -0,0 +1,939 @@
+/*-
+ * Copyright (c) 2001 Atsushi Onoe
+ * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
@@ -439,7 +635,7 @@
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
-+ * $Id: ieee80211.h 2513 2007-06-25 03:48:07Z mentor $
++ * $Id: ieee80211.h 2028 2007-01-30 03:51:52Z proski $
+ */
+#ifndef _NET80211_IEEE80211_H_
+#define _NET80211_IEEE80211_H_
@@ -461,7 +657,7 @@
+ u_int16_t i_crc;
+} __packed;
+
-+#define IEEE80211_PLCP_SFD 0xF3A0
++#define IEEE80211_PLCP_SFD 0xF3A0
+#define IEEE80211_PLCP_SERVICE 0x00
+
+/*
@@ -602,164 +798,164 @@
+ * XXX belongs elsewhere
+ */
+enum CountryCode {
-+ CTRY_ALBANIA = 8, /* Albania */
-+ CTRY_ALGERIA = 12, /* Algeria */
-+ CTRY_ARGENTINA = 32, /* Argentina */
-+ CTRY_ARMENIA = 51, /* Armenia */
-+ CTRY_AUSTRALIA = 36, /* Australia */
-+ CTRY_AUSTRIA = 40, /* Austria */
-+ CTRY_AZERBAIJAN = 31, /* Azerbaijan */
-+ CTRY_BAHRAIN = 48, /* Bahrain */
-+ CTRY_BELARUS = 112, /* Belarus */
-+ CTRY_BELGIUM = 56, /* Belgium */
-+ CTRY_BELIZE = 84, /* Belize */
-+ CTRY_BOLIVIA = 68, /* Bolivia */
-+ CTRY_BRAZIL = 76, /* Brazil */
-+ CTRY_BRUNEI_DARUSSALAM = 96, /* Brunei Darussalam */
-+ CTRY_BULGARIA = 100, /* Bulgaria */
-+ CTRY_CANADA = 124, /* Canada */
-+ CTRY_CHILE = 152, /* Chile */
-+ CTRY_CHINA = 156, /* People's Republic of China */
-+ CTRY_COLOMBIA = 170, /* Colombia */
-+ CTRY_COSTA_RICA = 188, /* Costa Rica */
-+ CTRY_CROATIA = 191, /* Croatia */
-+ CTRY_CYPRUS = 196,
-+ CTRY_CZECH = 203, /* Czech Republic */
-+ CTRY_DENMARK = 208, /* Denmark */
-+ CTRY_DOMINICAN_REPUBLIC = 214, /* Dominican Republic */
-+ CTRY_ECUADOR = 218, /* Ecuador */
-+ CTRY_EGYPT = 818, /* Egypt */
-+ CTRY_EL_SALVADOR = 222, /* El Salvador */
-+ CTRY_ESTONIA = 233, /* Estonia */
-+ CTRY_FAEROE_ISLANDS = 234, /* Faeroe Islands */
-+ CTRY_FINLAND = 246, /* Finland */
-+ CTRY_FRANCE = 250, /* France */
-+ CTRY_FRANCE2 = 255, /* France2 */
-+ CTRY_GEORGIA = 268, /* Georgia */
-+ CTRY_GERMANY = 276, /* Germany */
-+ CTRY_GREECE = 300, /* Greece */
-+ CTRY_GUATEMALA = 320, /* Guatemala */
-+ CTRY_HONDURAS = 340, /* Honduras */
-+ CTRY_HONG_KONG = 344, /* Hong Kong S.A.R., P.R.C. */
-+ CTRY_HUNGARY = 348, /* Hungary */
-+ CTRY_ICELAND = 352, /* Iceland */
-+ CTRY_INDIA = 356, /* India */
-+ CTRY_INDONESIA = 360, /* Indonesia */
-+ CTRY_IRAN = 364, /* Iran */
-+ CTRY_IRAQ = 368, /* Iraq */
-+ CTRY_IRELAND = 372, /* Ireland */
-+ CTRY_ISRAEL = 376, /* Israel */
-+ CTRY_ITALY = 380, /* Italy */
-+ CTRY_JAMAICA = 388, /* Jamaica */
-+ CTRY_JAPAN = 392, /* Japan */
-+ CTRY_JAPAN1 = 393, /* Japan (JP1) */
-+ CTRY_JAPAN2 = 394, /* Japan (JP0) */
-+ CTRY_JAPAN3 = 395, /* Japan (JP1-1) */
-+ CTRY_JAPAN4 = 396, /* Japan (JE1) */
-+ CTRY_JAPAN5 = 397, /* Japan (JE2) */
-+ CTRY_JAPAN6 = 399, /* Japan (JP6) */
-+ CTRY_JAPAN7 = 900, /* Japan */
-+ CTRY_JAPAN8 = 901, /* Japan */
-+ CTRY_JAPAN9 = 902, /* Japan */
-+ CTRY_JAPAN10 = 903, /* Japan */
-+ CTRY_JAPAN11 = 904, /* Japan */
-+ CTRY_JAPAN12 = 905, /* Japan */
-+ CTRY_JAPAN13 = 906, /* Japan */
-+ CTRY_JAPAN14 = 907, /* Japan */
-+ CTRY_JAPAN15 = 908, /* Japan */
-+ CTRY_JAPAN16 = 909, /* Japan */
-+ CTRY_JAPAN17 = 910, /* Japan */
-+ CTRY_JAPAN18 = 911, /* Japan */
-+ CTRY_JAPAN19 = 912, /* Japan */
-+ CTRY_JAPAN20 = 913, /* Japan */
-+ CTRY_JAPAN21 = 914, /* Japan */
-+ CTRY_JAPAN22 = 915, /* Japan */
-+ CTRY_JAPAN23 = 916, /* Japan */
-+ CTRY_JAPAN24 = 917, /* Japan */
-+ CTRY_JAPAN25 = 918, /* Japan */
-+ CTRY_JAPAN26 = 919, /* Japan */
-+ CTRY_JAPAN27 = 920, /* Japan */
-+ CTRY_JAPAN28 = 921, /* Japan */
-+ CTRY_JAPAN29 = 922, /* Japan */
-+ CTRY_JAPAN30 = 923, /* Japan */
-+ CTRY_JAPAN31 = 924, /* Japan */
-+ CTRY_JAPAN32 = 925, /* Japan */
-+ CTRY_JAPAN33 = 926, /* Japan */
-+ CTRY_JAPAN34 = 927, /* Japan */
-+ CTRY_JAPAN35 = 928, /* Japan */
-+ CTRY_JAPAN36 = 929, /* Japan */
-+ CTRY_JAPAN37 = 930, /* Japan */
-+ CTRY_JAPAN38 = 931, /* Japan */
-+ CTRY_JAPAN39 = 932, /* Japan */
-+ CTRY_JAPAN40 = 933, /* Japan */
-+ CTRY_JAPAN41 = 934, /* Japan */
-+ CTRY_JAPAN42 = 935, /* Japan */
-+ CTRY_JAPAN43 = 936, /* Japan */
-+ CTRY_JAPAN44 = 937, /* Japan */
-+ CTRY_JAPAN45 = 938, /* Japan */
-+ CTRY_JAPAN46 = 939, /* Japan */
-+ CTRY_JAPAN47 = 940, /* Japan */
-+ CTRY_JAPAN48 = 941, /* Japan */
-+ CTRY_JORDAN = 400, /* Jordan */
-+ CTRY_KAZAKHSTAN = 398, /* Kazakhstan */
-+ CTRY_KENYA = 404, /* Kenya */
-+ CTRY_KOREA_NORTH = 408, /* North Korea */
-+ CTRY_KOREA_ROC = 410, /* South Korea */
-+ CTRY_KOREA_ROC2 = 411, /* South Korea */
-+ CTRY_KUWAIT = 414, /* Kuwait */
-+ CTRY_LATVIA = 428, /* Latvia */
-+ CTRY_LEBANON = 422, /* Lebanon */
-+ CTRY_LIBYA = 434, /* Libya */
-+ CTRY_LIECHTENSTEIN = 438, /* Liechtenstein */
-+ CTRY_LITHUANIA = 440, /* Lithuania */
-+ CTRY_LUXEMBOURG = 442, /* Luxembourg */
-+ CTRY_MACAU = 446, /* Macau */
-+ CTRY_MACEDONIA = 807, /* the Former Yugoslav Republic of Macedonia */
-+ CTRY_MALAYSIA = 458, /* Malaysia */
-+ CTRY_MEXICO = 484, /* Mexico */
-+ CTRY_MONACO = 492, /* Principality of Monaco */
-+ CTRY_MOROCCO = 504, /* Morocco */
-+ CTRY_NETHERLANDS = 528, /* Netherlands */
-+ CTRY_NEW_ZEALAND = 554, /* New Zealand */
-+ CTRY_NICARAGUA = 558, /* Nicaragua */
-+ CTRY_NORWAY = 578, /* Norway */
-+ CTRY_OMAN = 512, /* Oman */
-+ CTRY_PAKISTAN = 586, /* Islamic Republic of Pakistan */
-+ CTRY_PANAMA = 591, /* Panama */
-+ CTRY_PARAGUAY = 600, /* Paraguay */
-+ CTRY_PERU = 604, /* Peru */
-+ CTRY_PHILIPPINES = 608, /* Republic of the Philippines */
-+ CTRY_POLAND = 616, /* Poland */
-+ CTRY_PORTUGAL = 620, /* Portugal */
-+ CTRY_PUERTO_RICO = 630, /* Puerto Rico */
-+ CTRY_QATAR = 634, /* Qatar */
-+ CTRY_ROMANIA = 642, /* Romania */
-+ CTRY_RUSSIA = 643, /* Russia */
-+ CTRY_SAUDI_ARABIA = 682, /* Saudi Arabia */
-+ CTRY_SINGAPORE = 702, /* Singapore */
-+ CTRY_SLOVAKIA = 703, /* Slovak Republic */
-+ CTRY_SLOVENIA = 705, /* Slovenia */
-+ CTRY_SOUTH_AFRICA = 710, /* South Africa */
-+ CTRY_SPAIN = 724, /* Spain */
-+ CTRY_SWEDEN = 752, /* Sweden */
-+ CTRY_SWITZERLAND = 756, /* Switzerland */
-+ CTRY_SYRIA = 760, /* Syria */
-+ CTRY_TAIWAN = 158, /* Taiwan */
-+ CTRY_THAILAND = 764, /* Thailand */
-+ CTRY_TRINIDAD_Y_TOBAGO = 780, /* Trinidad y Tobago */
-+ CTRY_TUNISIA = 788, /* Tunisia */
-+ CTRY_TURKEY = 792, /* Turkey */
-+ CTRY_UAE = 784, /* U.A.E. */
-+ CTRY_UKRAINE = 804, /* Ukraine */
-+ CTRY_UNITED_KINGDOM = 826, /* United Kingdom */
-+ CTRY_UNITED_STATES = 840, /* United States */
-+ CTRY_UNITED_STATES_FCC49 = 842, /* United States (Public Safety)*/
-+ CTRY_URUGUAY = 858, /* Uruguay */
-+ CTRY_UZBEKISTAN = 860, /* Uzbekistan */
-+ CTRY_VENEZUELA = 862, /* Venezuela */
-+ CTRY_VIET_NAM = 704, /* Viet Nam */
-+ CTRY_YEMEN = 887, /* Yemen */
-+ CTRY_ZIMBABWE = 716 /* Zimbabwe */
++ CTRY_ALBANIA = 8, /* Albania */
++ CTRY_ALGERIA = 12, /* Algeria */
++ CTRY_ARGENTINA = 32, /* Argentina */
++ CTRY_ARMENIA = 51, /* Armenia */
++ CTRY_AUSTRALIA = 36, /* Australia */
++ CTRY_AUSTRIA = 40, /* Austria */
++ CTRY_AZERBAIJAN = 31, /* Azerbaijan */
++ CTRY_BAHRAIN = 48, /* Bahrain */
++ CTRY_BELARUS = 112, /* Belarus */
++ CTRY_BELGIUM = 56, /* Belgium */
++ CTRY_BELIZE = 84, /* Belize */
++ CTRY_BOLIVIA = 68, /* Bolivia */
++ CTRY_BRAZIL = 76, /* Brazil */
++ CTRY_BRUNEI_DARUSSALAM = 96, /* Brunei Darussalam */
++ CTRY_BULGARIA = 100, /* Bulgaria */
++ CTRY_CANADA = 124, /* Canada */
++ CTRY_CHILE = 152, /* Chile */
++ CTRY_CHINA = 156, /* People's Republic of China */
++ CTRY_COLOMBIA = 170, /* Colombia */
++ CTRY_COSTA_RICA = 188, /* Costa Rica */
++ CTRY_CROATIA = 191, /* Croatia */
++ CTRY_CYPRUS = 196,
++ CTRY_CZECH = 203, /* Czech Republic */
++ CTRY_DENMARK = 208, /* Denmark */
++ CTRY_DOMINICAN_REPUBLIC = 214, /* Dominican Republic */
++ CTRY_ECUADOR = 218, /* Ecuador */
++ CTRY_EGYPT = 818, /* Egypt */
++ CTRY_EL_SALVADOR = 222, /* El Salvador */
++ CTRY_ESTONIA = 233, /* Estonia */
++ CTRY_FAEROE_ISLANDS = 234, /* Faeroe Islands */
++ CTRY_FINLAND = 246, /* Finland */
++ CTRY_FRANCE = 250, /* France */
++ CTRY_FRANCE2 = 255, /* France2 */
++ CTRY_GEORGIA = 268, /* Georgia */
++ CTRY_GERMANY = 276, /* Germany */
++ CTRY_GREECE = 300, /* Greece */
++ CTRY_GUATEMALA = 320, /* Guatemala */
++ CTRY_HONDURAS = 340, /* Honduras */
++ CTRY_HONG_KONG = 344, /* Hong Kong S.A.R., P.R.C. */
++ CTRY_HUNGARY = 348, /* Hungary */
++ CTRY_ICELAND = 352, /* Iceland */
++ CTRY_INDIA = 356, /* India */
++ CTRY_INDONESIA = 360, /* Indonesia */
++ CTRY_IRAN = 364, /* Iran */
++ CTRY_IRAQ = 368, /* Iraq */
++ CTRY_IRELAND = 372, /* Ireland */
++ CTRY_ISRAEL = 376, /* Israel */
++ CTRY_ITALY = 380, /* Italy */
++ CTRY_JAMAICA = 388, /* Jamaica */
++ CTRY_JAPAN = 392, /* Japan */
++ CTRY_JAPAN1 = 393, /* Japan (JP1) */
++ CTRY_JAPAN2 = 394, /* Japan (JP0) */
++ CTRY_JAPAN3 = 395, /* Japan (JP1-1) */
++ CTRY_JAPAN4 = 396, /* Japan (JE1) */
++ CTRY_JAPAN5 = 397, /* Japan (JE2) */
++ CTRY_JAPAN6 = 399, /* Japan (JP6) */
++ CTRY_JAPAN7 = 900, /* Japan */
++ CTRY_JAPAN8 = 901, /* Japan */
++ CTRY_JAPAN9 = 902, /* Japan */
++ CTRY_JAPAN10 = 903, /* Japan */
++ CTRY_JAPAN11 = 904, /* Japan */
++ CTRY_JAPAN12 = 905, /* Japan */
++ CTRY_JAPAN13 = 906, /* Japan */
++ CTRY_JAPAN14 = 907, /* Japan */
++ CTRY_JAPAN15 = 908, /* Japan */
++ CTRY_JAPAN16 = 909, /* Japan */
++ CTRY_JAPAN17 = 910, /* Japan */
++ CTRY_JAPAN18 = 911, /* Japan */
++ CTRY_JAPAN19 = 912, /* Japan */
++ CTRY_JAPAN20 = 913, /* Japan */
++ CTRY_JAPAN21 = 914, /* Japan */
++ CTRY_JAPAN22 = 915, /* Japan */
++ CTRY_JAPAN23 = 916, /* Japan */
++ CTRY_JAPAN24 = 917, /* Japan */
++ CTRY_JAPAN25 = 918, /* Japan */
++ CTRY_JAPAN26 = 919, /* Japan */
++ CTRY_JAPAN27 = 920, /* Japan */
++ CTRY_JAPAN28 = 921, /* Japan */
++ CTRY_JAPAN29 = 922, /* Japan */
++ CTRY_JAPAN30 = 923, /* Japan */
++ CTRY_JAPAN31 = 924, /* Japan */
++ CTRY_JAPAN32 = 925, /* Japan */
++ CTRY_JAPAN33 = 926, /* Japan */
++ CTRY_JAPAN34 = 927, /* Japan */
++ CTRY_JAPAN35 = 928, /* Japan */
++ CTRY_JAPAN36 = 929, /* Japan */
++ CTRY_JAPAN37 = 930, /* Japan */
++ CTRY_JAPAN38 = 931, /* Japan */
++ CTRY_JAPAN39 = 932, /* Japan */
++ CTRY_JAPAN40 = 933, /* Japan */
++ CTRY_JAPAN41 = 934, /* Japan */
++ CTRY_JAPAN42 = 935, /* Japan */
++ CTRY_JAPAN43 = 936, /* Japan */
++ CTRY_JAPAN44 = 937, /* Japan */
++ CTRY_JAPAN45 = 938, /* Japan */
++ CTRY_JAPAN46 = 939, /* Japan */
++ CTRY_JAPAN47 = 940, /* Japan */
++ CTRY_JAPAN48 = 941, /* Japan */
++ CTRY_JORDAN = 400, /* Jordan */
++ CTRY_KAZAKHSTAN = 398, /* Kazakhstan */
++ CTRY_KENYA = 404, /* Kenya */
++ CTRY_KOREA_NORTH = 408, /* North Korea */
++ CTRY_KOREA_ROC = 410, /* South Korea */
++ CTRY_KOREA_ROC2 = 411, /* South Korea */
++ CTRY_KUWAIT = 414, /* Kuwait */
++ CTRY_LATVIA = 428, /* Latvia */
++ CTRY_LEBANON = 422, /* Lebanon */
++ CTRY_LIBYA = 434, /* Libya */
++ CTRY_LIECHTENSTEIN = 438, /* Liechtenstein */
++ CTRY_LITHUANIA = 440, /* Lithuania */
++ CTRY_LUXEMBOURG = 442, /* Luxembourg */
++ CTRY_MACAU = 446, /* Macau */
++ CTRY_MACEDONIA = 807, /* the Former Yugoslav Republic of Macedonia */
++ CTRY_MALAYSIA = 458, /* Malaysia */
++ CTRY_MEXICO = 484, /* Mexico */
++ CTRY_MONACO = 492, /* Principality of Monaco */
++ CTRY_MOROCCO = 504, /* Morocco */
++ CTRY_NETHERLANDS = 528, /* Netherlands */
++ CTRY_NEW_ZEALAND = 554, /* New Zealand */
++ CTRY_NICARAGUA = 558, /* Nicaragua */
++ CTRY_NORWAY = 578, /* Norway */
++ CTRY_OMAN = 512, /* Oman */
++ CTRY_PAKISTAN = 586, /* Islamic Republic of Pakistan */
++ CTRY_PANAMA = 591, /* Panama */
++ CTRY_PARAGUAY = 600, /* Paraguay */
++ CTRY_PERU = 604, /* Peru */
++ CTRY_PHILIPPINES = 608, /* Republic of the Philippines */
++ CTRY_POLAND = 616, /* Poland */
++ CTRY_PORTUGAL = 620, /* Portugal */
++ CTRY_PUERTO_RICO = 630, /* Puerto Rico */
++ CTRY_QATAR = 634, /* Qatar */
++ CTRY_ROMANIA = 642, /* Romania */
++ CTRY_RUSSIA = 643, /* Russia */
++ CTRY_SAUDI_ARABIA = 682, /* Saudi Arabia */
++ CTRY_SINGAPORE = 702, /* Singapore */
++ CTRY_SLOVAKIA = 703, /* Slovak Republic */
++ CTRY_SLOVENIA = 705, /* Slovenia */
++ CTRY_SOUTH_AFRICA = 710, /* South Africa */
++ CTRY_SPAIN = 724, /* Spain */
++ CTRY_SWEDEN = 752, /* Sweden */
++ CTRY_SWITZERLAND = 756, /* Switzerland */
++ CTRY_SYRIA = 760, /* Syria */
++ CTRY_TAIWAN = 158, /* Taiwan */
++ CTRY_THAILAND = 764, /* Thailand */
++ CTRY_TRINIDAD_Y_TOBAGO = 780, /* Trinidad y Tobago */
++ CTRY_TUNISIA = 788, /* Tunisia */
++ CTRY_TURKEY = 792, /* Turkey */
++ CTRY_UAE = 784, /* U.A.E. */
++ CTRY_UKRAINE = 804, /* Ukraine */
++ CTRY_UNITED_KINGDOM = 826, /* United Kingdom */
++ CTRY_UNITED_STATES = 840, /* United States */
++ CTRY_UNITED_STATES_FCC49 = 842, /* United States (Public Safety)*/
++ CTRY_URUGUAY = 858, /* Uruguay */
++ CTRY_UZBEKISTAN = 860, /* Uzbekistan */
++ CTRY_VENEZUELA = 862, /* Venezuela */
++ CTRY_VIET_NAM = 704, /* Viet Nam */
++ CTRY_YEMEN = 887, /* Yemen */
++ CTRY_ZIMBABWE = 716 /* Zimbabwe */
+};
+
+/*
@@ -768,7 +964,7 @@
+struct ieee80211_ie {
+ u_int8_t id;
+ u_int8_t len;
-+ u_int8_t info[0];
++ u_int8_t info[];
+} __packed;
+
+/*
@@ -797,7 +993,7 @@
+#define IEEE80211_CSA_PROTECTION_PERIOD 3
+
+/* maximum allowed deviance of measurement of intervals between CSA in Beacons */
-+#define IEEE80211_CSA_SANITY_THRESHOLD 100
++#define IEEE80211_CSA_SANITY_THRESHOLD 100
+
+
+/* does frame have QoS sequence control data */
@@ -924,7 +1120,7 @@
+ u_int8_t athAdvCap_id; /* IEEE80211_ELEMID_VENDOR */
+ u_int8_t athAdvCap_len; /* length in bytes */
+ u_int8_t athAdvCap_oui[3]; /* 0x00, 0x03, 0x7f */
-+ u_int8_t athAdvCap_type; /* OUI type */
++ u_int8_t athAdvCap_type; /* OUI type */
+ u_int8_t athAdvCap_subtype; /* OUI subtype */
+ u_int8_t athAdvCap_version; /* spec revision */
+ u_int8_t athAdvCap_capability; /* Capability info */
@@ -1072,7 +1268,7 @@
+ u_int32_t wpa_authsels[8]; /* selectors */
+ u_int16_t wpa_caps; /* 802.11i capabilities */
+ u_int16_t wpa_pmkidcnt; /* 802.11i pmkid count */
-+ u_int16_t wpa_pmkids[8]; /* 802.11i pmkids */
++ u_int16_t wpa_pmkids[8]; /* 802.11i pmkids */
+} __packed;
+
+/*
@@ -1156,10 +1352,9 @@
+#define ATH_OUI 0x7f0300 /* Atheros OUI */
+#define ATH_OUI_TYPE 0x01
+#define ATH_OUI_SUBTYPE 0x01
-+#define ATH_OUI_VERSION 0x00
++#define ATH_OUI_VERSION 0x00
+#define ATH_OUI_TYPE_XR 0x03
-+#define ATH_OUI_SUBTYPE_XR 0x01
-+#define ATH_OUI_VER_XR 0x00
++#define ATH_OUI_VER_XR 0x01
+
+#define WPA_OUI 0xf25000
+#define WPA_OUI_TYPE 0x01
@@ -1311,7 +1506,7 @@
+#define IEEE80211_MTU_MIN 32
+
+#define IEEE80211_MAX_LEN (2300 + IEEE80211_CRC_LEN + \
-+ (IEEE80211_WEP_IVLEN + IEEE80211_WEP_KIDLEN + IEEE80211_WEP_CRCLEN))
++ (IEEE80211_WEP_IVLEN + IEEE80211_WEP_KIDLEN + IEEE80211_WEP_CRCLEN))
+#define IEEE80211_ACK_LEN \
+ (sizeof(struct ieee80211_frame_ack) + IEEE80211_CRC_LEN)
+#define IEEE80211_MIN_LEN \
@@ -1319,7 +1514,7 @@
+
+/*
+ * The 802.11 spec says at most 2007 stations may be
-+ * associated at once. For most APs this is way more
++ * associated at once. For most AP's this is way more
+ * than is feasible so we use a default of 128. This
+ * number may be overridden by the driver and/or by
+ * user configuration.
@@ -1348,10 +1543,10 @@
+#define IEEE80211_TSF_LEN 8
+
+#endif /* _NET80211_IEEE80211_H_ */
-diff -urNad trunk~/driver_madwifi/net80211/ieee80211_crypto.h trunk/driver_madwifi/net80211/ieee80211_crypto.h
---- trunk~/driver_madwifi/net80211/ieee80211_crypto.h 1970-01-01 02:00:00.000000000 +0200
-+++ trunk/driver_madwifi/net80211/ieee80211_crypto.h 2007-07-22 21:34:16.000000000 +0300
-@@ -0,0 +1,207 @@
+diff -Nrup hostapd.orig/driver_madwifi/net80211/ieee80211_ioctl.h hostapd/driver_madwifi/net80211/ieee80211_ioctl.h
+--- hostapd.orig/driver_madwifi/net80211/ieee80211_ioctl.h 1970-01-01 10:00:00.000000000 +1000
++++ hostapd/driver_madwifi/net80211/ieee80211_ioctl.h 2007-07-24 21:32:14.240286740 +1000
+@@ -0,0 +1,660 @@
+/*-
+ * Copyright (c) 2001 Atsushi Onoe
+ * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
@@ -1383,218 +1578,7 @@
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
-+ * $Id: ieee80211_crypto.h 2278 2007-04-16 12:32:29Z proski $
-+ */
-+#ifndef _NET80211_IEEE80211_CRYPTO_H_
-+#define _NET80211_IEEE80211_CRYPTO_H_
-+
-+/*
-+ * 802.11 protocol crypto-related definitions.
-+ */
-+#define IEEE80211_KEYBUF_SIZE 16
-+#define IEEE80211_MICBUF_SIZE (8 + 8) /* space for both TX & RX keys */
-+#define IEEE80211_TID_SIZE 17 /* total number of TIDs */
-+
-+/*
-+ * Old WEP-style key. Deprecated.
-+ */
-+struct ieee80211_wepkey {
-+ u_int wk_len; /* key length in bytes */
-+ u_int8_t wk_key[IEEE80211_KEYBUF_SIZE];
-+};
-+
-+struct ieee80211_cipher;
-+
-+/*
-+ * Crypto key state. There is sufficient room for all supported
-+ * ciphers (see below). The underlying ciphers are handled
-+ * separately through loadable cipher modules that register with
-+ * the generic crypto support. A key has a reference to an instance
-+ * of the cipher; any per-key state is hung off wk_private by the
-+ * cipher when it is attached. Ciphers are automatically called
-+ * to detach and cleanup any such state when the key is deleted.
-+ *
-+ * The generic crypto support handles encap/decap of cipher-related
-+ * frame contents for both hardware- and software-based implementations.
-+ * A key requiring software crypto support is automatically flagged and
-+ * the cipher is expected to honor this and do the necessary work.
-+ * Ciphers such as TKIP may also support mixed hardware/software
-+ * encrypt/decrypt and MIC processing.
-+ */
-+
-+typedef u_int16_t ieee80211_keyix_t;
-+
-+/* XXX pack better? */
-+/* XXX 48-bit rsc/tsc */
-+struct ieee80211_key {
-+ u_int8_t wk_keylen; /* key length in bytes */
-+ u_int8_t wk_flags;
-+#define IEEE80211_KEY_XMIT 0x01 /* key used for xmit */
-+#define IEEE80211_KEY_RECV 0x02 /* key used for recv */
-+#define IEEE80211_KEY_GROUP 0x04 /* key used for WPA group operation */
-+#define IEEE80211_KEY_SWCRYPT 0x10 /* host-based encrypt/decrypt */
-+#define IEEE80211_KEY_SWMIC 0x20 /* host-based enmic/demic */
-+ ieee80211_keyix_t wk_keyix; /* key index */
-+ u_int8_t wk_key[IEEE80211_KEYBUF_SIZE+IEEE80211_MICBUF_SIZE];
-+#define wk_txmic wk_key+IEEE80211_KEYBUF_SIZE+0 /* XXX can't () right */
-+#define wk_rxmic wk_key+IEEE80211_KEYBUF_SIZE+8 /* XXX can't () right */
-+ u_int64_t wk_keyrsc[IEEE80211_TID_SIZE]; /* key receive sequence counter */
-+ u_int64_t wk_keytsc; /* key transmit sequence counter */
-+ const struct ieee80211_cipher *wk_cipher;
-+ void *wk_private; /* private cipher state */
-+};
-+#define IEEE80211_KEY_COMMON /* common flags passed in by apps */\
-+ (IEEE80211_KEY_XMIT | IEEE80211_KEY_RECV | IEEE80211_KEY_GROUP)
-+
-+/*
-+ * NB: these values are ordered carefully; there are lots of
-+ * of implications in any reordering. In particular beware
-+ * that 4 is not used to avoid conflicting with IEEE80211_F_PRIVACY.
-+ */
-+#define IEEE80211_CIPHER_WEP 0
-+#define IEEE80211_CIPHER_TKIP 1
-+#define IEEE80211_CIPHER_AES_OCB 2
-+#define IEEE80211_CIPHER_AES_CCM 3
-+#define IEEE80211_CIPHER_CKIP 5
-+#define IEEE80211_CIPHER_NONE 6 /* pseudo value */
-+
-+#define IEEE80211_CIPHER_MAX (IEEE80211_CIPHER_NONE + 1)
-+
-+#define IEEE80211_KEYIX_NONE ((ieee80211_keyix_t) -1)
-+
-+#if defined(__KERNEL__) || defined(_KERNEL)
-+
-+struct ieee80211com;
-+struct ieee80211vap;
-+struct ieee80211_node;
-+struct sk_buff;
-+
-+void ieee80211_crypto_attach(struct ieee80211com *);
-+void ieee80211_crypto_detach(struct ieee80211com *);
-+void ieee80211_crypto_vattach(struct ieee80211vap *);
-+void ieee80211_crypto_vdetach(struct ieee80211vap *);
-+int ieee80211_crypto_newkey(struct ieee80211vap *, int, int,
-+ struct ieee80211_key *);
-+int ieee80211_crypto_delkey(struct ieee80211vap *, struct ieee80211_key *,
-+ struct ieee80211_node *);
-+int ieee80211_crypto_setkey(struct ieee80211vap *, struct ieee80211_key *,
-+ const u_int8_t macaddr[IEEE80211_ADDR_LEN], struct ieee80211_node *);
-+void ieee80211_crypto_delglobalkeys(struct ieee80211vap *);
-+
-+/*
-+ * Template for a supported cipher. Ciphers register with the
-+ * crypto code and are typically loaded as separate modules
-+ * (the null cipher is always present).
-+ * XXX may need refcnts
-+ */
-+struct ieee80211_cipher {
-+ const char *ic_name; /* printable name */
-+ u_int ic_cipher; /* IEEE80211_CIPHER_* */
-+ u_int ic_header; /* size of privacy header (bytes) */
-+ u_int ic_trailer; /* size of privacy trailer (bytes) */
-+ u_int ic_miclen; /* size of mic trailer (bytes) */
-+ void *(*ic_attach)(struct ieee80211vap *, struct ieee80211_key *);
-+ void (*ic_detach)(struct ieee80211_key *);
-+ int (*ic_setkey)(struct ieee80211_key *);
-+ int (*ic_encap)(struct ieee80211_key *, struct sk_buff *, u_int8_t);
-+ int (*ic_decap)(struct ieee80211_key *, struct sk_buff *, int);
-+ int (*ic_enmic)(struct ieee80211_key *, struct sk_buff *, int);
-+ int (*ic_demic)(struct ieee80211_key *, struct sk_buff *, int);
-+};
-+extern const struct ieee80211_cipher ieee80211_cipher_none;
-+
-+void ieee80211_crypto_register(const struct ieee80211_cipher *);
-+void ieee80211_crypto_unregister(const struct ieee80211_cipher *);
-+int ieee80211_crypto_available(struct ieee80211vap*, u_int);
-+
-+struct ieee80211_key *ieee80211_crypto_encap(struct ieee80211_node *,
-+ struct sk_buff *);
-+struct ieee80211_key *ieee80211_crypto_decap(struct ieee80211_node *,
-+ struct sk_buff *, int);
-+
-+/*
-+ * Check and remove any MIC.
-+ */
-+static __inline int
-+ieee80211_crypto_demic(struct ieee80211vap *vap, struct ieee80211_key *k,
-+ struct sk_buff *skb, int hdrlen)
-+{
-+ const struct ieee80211_cipher *cip = k->wk_cipher;
-+ return (cip->ic_miclen > 0 ? cip->ic_demic(k, skb, hdrlen) : 1);
-+}
-+
-+/*
-+ * Add any MIC.
-+ */
-+static __inline int
-+ieee80211_crypto_enmic(struct ieee80211vap *vap, struct ieee80211_key *k,
-+ struct sk_buff *skb, int force)
-+{
-+ const struct ieee80211_cipher *cip = k->wk_cipher;
-+ return (cip->ic_miclen > 0 ? cip->ic_enmic(k, skb, force) : 1);
-+}
-+
-+/*
-+ * Reset key state to an unused state. The crypto
-+ * key allocation mechanism ensures other state (e.g.
-+ * key data) is properly setup before a key is used.
-+ */
-+static __inline void
-+ieee80211_crypto_resetkey(struct ieee80211vap *vap, struct ieee80211_key *k,
-+ ieee80211_keyix_t ix)
-+{
-+ k->wk_cipher = &ieee80211_cipher_none;;
-+ k->wk_private = k->wk_cipher->ic_attach(vap, k);
-+ k->wk_keyix = ix;
-+ k->wk_flags = IEEE80211_KEY_XMIT | IEEE80211_KEY_RECV;
-+}
-+
-+/*
-+ * Crypto-related notification methods.
-+ */
-+void ieee80211_notify_replay_failure(struct ieee80211vap *,
-+ const struct ieee80211_frame *, const struct ieee80211_key *,
-+ u_int64_t rsc);
-+void ieee80211_notify_michael_failure(struct ieee80211vap *,
-+ const struct ieee80211_frame *, ieee80211_keyix_t keyix);
-+#endif /* defined(__KERNEL__) || defined(_KERNEL) */
-+#endif /* _NET80211_IEEE80211_CRYPTO_H_ */
-diff -urNad trunk~/driver_madwifi/net80211/ieee80211_ioctl.h trunk/driver_madwifi/net80211/ieee80211_ioctl.h
---- trunk~/driver_madwifi/net80211/ieee80211_ioctl.h 1970-01-01 02:00:00.000000000 +0200
-+++ trunk/driver_madwifi/net80211/ieee80211_ioctl.h 2007-07-22 21:34:16.000000000 +0300
-@@ -0,0 +1,664 @@
-+/*-
-+ * Copyright (c) 2001 Atsushi Onoe
-+ * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
-+ * All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * 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
-+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ *
-+ * $Id: ieee80211_ioctl.h 2583 2007-07-12 15:18:23Z mentor $
++ * $Id: ieee80211_ioctl.h 1856 2006-12-14 01:38:00Z scottr $
+ */
+#ifndef _NET80211_IEEE80211_IOCTL_H_
+#define _NET80211_IEEE80211_IOCTL_H_
@@ -1770,7 +1754,7 @@
+struct ieee80211req_key {
+ u_int8_t ik_type; /* key/cipher type */
+ u_int8_t ik_pad;
-+ ieee80211_keyix_t ik_keyix; /* key index */
++ u_int16_t ik_keyix; /* key index */
+ u_int8_t ik_keylen; /* key length in bytes */
+ u_int8_t ik_flags;
+/* NB: IEEE80211_KEY_XMIT and IEEE80211_KEY_RECV defined elsewhere */
@@ -1786,8 +1770,7 @@
+ * to IEEE80211_KEYIX_NONE when deleting a unicast key.
+ */
+struct ieee80211req_del_key {
-+ /* XXX: This should be ieee80211_keyix_t, but it changes API/ABI for hostapd */
-+ u_int8_t idk_keyix; /* key index */
++ u_int8_t idk_keyix; /* key index */
+ u_int8_t idk_macaddr[IEEE80211_ADDR_LEN];
+};
+
@@ -1815,7 +1798,7 @@
+ * MAC ACL operations.
+ */
+enum {
-+ IEEE80211_MACCMD_POLICY_OPEN = 0, /* set policy: no ACLs */
++ IEEE80211_MACCMD_POLICY_OPEN = 0, /* set policy: no ACL's */
+ IEEE80211_MACCMD_POLICY_ALLOW = 1, /* set policy: allow traffic */
+ IEEE80211_MACCMD_POLICY_DENY = 2, /* set policy: deny traffic */
+ IEEE80211_MACCMD_FLUSH = 3, /* flush ACL database */
@@ -2084,14 +2067,12 @@
+#define IEEE80211_IOCTL_CHANSWITCH (SIOCIWFIRSTPRIV+8)
+#define IEEE80211_IOCTL_GET_APPIEBUF (SIOCIWFIRSTPRIV+9)
+#define IEEE80211_IOCTL_SET_APPIEBUF (SIOCIWFIRSTPRIV+10)
-+#define IEEE80211_IOCTL_READREG (SIOCIWFIRSTPRIV+11)
+#define IEEE80211_IOCTL_FILTERFRAME (SIOCIWFIRSTPRIV+12)
+#define IEEE80211_IOCTL_GETCHANINFO (SIOCIWFIRSTPRIV+13)
+#define IEEE80211_IOCTL_SETOPTIE (SIOCIWFIRSTPRIV+14)
+#define IEEE80211_IOCTL_GETOPTIE (SIOCIWFIRSTPRIV+15)
+#define IEEE80211_IOCTL_SETMLME (SIOCIWFIRSTPRIV+16)
+#define IEEE80211_IOCTL_SETKEY (SIOCIWFIRSTPRIV+18)
-+#define IEEE80211_IOCTL_WRITEREG (SIOCIWFIRSTPRIV+19)
+#define IEEE80211_IOCTL_DELKEY (SIOCIWFIRSTPRIV+20)
+#define IEEE80211_IOCTL_ADDMAC (SIOCIWFIRSTPRIV+22)
+#define IEEE80211_IOCTL_DELMAC (SIOCIWFIRSTPRIV+24)
@@ -2105,69 +2086,68 @@
+ IEEE80211_WMMPARAMS_AIFS = 3,
+ IEEE80211_WMMPARAMS_TXOPLIMIT = 4,
+ IEEE80211_WMMPARAMS_ACM = 5,
-+ IEEE80211_WMMPARAMS_NOACKPOLICY = 6,
++ IEEE80211_WMMPARAMS_NOACKPOLICY = 6,
+};
+enum {
-+ IEEE80211_PARAM_TURBO = 1, /* turbo mode */
-+ IEEE80211_PARAM_MODE = 2, /* phy mode (11a, 11b, etc.) */
-+ IEEE80211_PARAM_AUTHMODE = 3, /* authentication mode */
-+ IEEE80211_PARAM_PROTMODE = 4, /* 802.11g protection */
-+ IEEE80211_PARAM_MCASTCIPHER = 5, /* multicast/default cipher */
-+ IEEE80211_PARAM_MCASTKEYLEN = 6, /* multicast key length */
-+ IEEE80211_PARAM_UCASTCIPHERS = 7, /* unicast cipher suites */
-+ IEEE80211_PARAM_UCASTCIPHER = 8, /* unicast cipher */
-+ IEEE80211_PARAM_UCASTKEYLEN = 9, /* unicast key length */
-+ IEEE80211_PARAM_WPA = 10, /* WPA mode (0,1,2) */
-+ IEEE80211_PARAM_ROAMING = 12, /* roaming mode */
-+ IEEE80211_PARAM_PRIVACY = 13, /* privacy invoked */
-+ IEEE80211_PARAM_COUNTERMEASURES = 14, /* WPA/TKIP countermeasures */
-+ IEEE80211_PARAM_DROPUNENCRYPTED = 15, /* discard unencrypted frames */
-+ IEEE80211_PARAM_DRIVER_CAPS = 16, /* driver capabilities */
-+ IEEE80211_PARAM_MACCMD = 17, /* MAC ACL operation */
-+ IEEE80211_PARAM_WMM = 18, /* WMM mode (on, off) */
-+ IEEE80211_PARAM_HIDESSID = 19, /* hide SSID mode (on, off) */
-+ IEEE80211_PARAM_APBRIDGE = 20, /* AP inter-sta bridging */
-+ IEEE80211_PARAM_KEYMGTALGS = 21, /* key management algorithms */
-+ IEEE80211_PARAM_RSNCAPS = 22, /* RSN capabilities */
-+ IEEE80211_PARAM_INACT = 23, /* station inactivity timeout */
-+ IEEE80211_PARAM_INACT_AUTH = 24, /* station auth inact timeout */
-+ IEEE80211_PARAM_INACT_INIT = 25, /* station init inact timeout */
-+ IEEE80211_PARAM_ABOLT = 26, /* Atheros Adv. Capabilities */
-+ IEEE80211_PARAM_DTIM_PERIOD = 28, /* DTIM period (beacons) */
-+ IEEE80211_PARAM_BEACON_INTERVAL = 29, /* beacon interval (ms) */
-+ IEEE80211_PARAM_DOTH = 30, /* 11.h is on/off */
-+ IEEE80211_PARAM_PWRTARGET = 31, /* Current Channel Pwr Constraint */
-+ IEEE80211_PARAM_GENREASSOC = 32, /* Generate a reassociation request */
-+ IEEE80211_PARAM_COMPRESSION = 33, /* compression */
-+ IEEE80211_PARAM_FF = 34, /* fast frames support */
-+ IEEE80211_PARAM_XR = 35, /* XR support */
-+ IEEE80211_PARAM_BURST = 36, /* burst mode */
-+ IEEE80211_PARAM_PUREG = 37, /* pure 11g (no 11b stations) */
-+ IEEE80211_PARAM_AR = 38, /* AR support */
-+ IEEE80211_PARAM_WDS = 39, /* Enable 4 address processing */
-+ IEEE80211_PARAM_BGSCAN = 40, /* bg scanning (on, off) */
-+ IEEE80211_PARAM_BGSCAN_IDLE = 41, /* bg scan idle threshold */
-+ IEEE80211_PARAM_BGSCAN_INTERVAL = 42, /* bg scan interval */
-+ IEEE80211_PARAM_MCAST_RATE = 43, /* Multicast Tx Rate */
-+ IEEE80211_PARAM_COVERAGE_CLASS = 44, /* coverage class */
-+ IEEE80211_PARAM_COUNTRY_IE = 45, /* enable country IE */
-+ IEEE80211_PARAM_SCANVALID = 46, /* scan cache valid threshold */
-+ IEEE80211_PARAM_ROAM_RSSI_11A = 47, /* rssi threshold in 11a */
-+ IEEE80211_PARAM_ROAM_RSSI_11B = 48, /* rssi threshold in 11b */
-+ IEEE80211_PARAM_ROAM_RSSI_11G = 49, /* rssi threshold in 11g */
-+ IEEE80211_PARAM_ROAM_RATE_11A = 50, /* tx rate threshold in 11a */
-+ IEEE80211_PARAM_ROAM_RATE_11B = 51, /* tx rate threshold in 11b */
-+ IEEE80211_PARAM_ROAM_RATE_11G = 52, /* tx rate threshold in 11g */
-+ IEEE80211_PARAM_UAPSDINFO = 53, /* value for qos info field */
-+ IEEE80211_PARAM_SLEEP = 54, /* force sleep/wake */
-+ IEEE80211_PARAM_QOSNULL = 55, /* force sleep/wake */
-+ IEEE80211_PARAM_PSPOLL = 56, /* force ps-poll generation (sta only) */
-+ IEEE80211_PARAM_EOSPDROP = 57, /* force uapsd EOSP drop (ap only) */
-+ IEEE80211_PARAM_MARKDFS = 58, /* mark a dfs interference channel when found */
-+ IEEE80211_PARAM_REGCLASS = 59, /* enable regclass ids in country IE */
-+ IEEE80211_PARAM_DROPUNENC_EAPOL = 60, /* drop unencrypted eapol frames */
-+ IEEE80211_PARAM_SHPREAMBLE = 61, /* Short Preamble */
-+ IEEE80211_PARAM_DUMPREGS = 62, /* Pretty printed dump of Atheros hardware registers */
++ IEEE80211_PARAM_TURBO = 1, /* turbo mode */
++ IEEE80211_PARAM_MODE = 2, /* phy mode (11a, 11b, etc.) */
++ IEEE80211_PARAM_AUTHMODE = 3, /* authentication mode */
++ IEEE80211_PARAM_PROTMODE = 4, /* 802.11g protection */
++ IEEE80211_PARAM_MCASTCIPHER = 5, /* multicast/default cipher */
++ IEEE80211_PARAM_MCASTKEYLEN = 6, /* multicast key length */
++ IEEE80211_PARAM_UCASTCIPHERS = 7, /* unicast cipher suites */
++ IEEE80211_PARAM_UCASTCIPHER = 8, /* unicast cipher */
++ IEEE80211_PARAM_UCASTKEYLEN = 9, /* unicast key length */
++ IEEE80211_PARAM_WPA = 10, /* WPA mode (0,1,2) */
++ IEEE80211_PARAM_ROAMING = 12, /* roaming mode */
++ IEEE80211_PARAM_PRIVACY = 13, /* privacy invoked */
++ IEEE80211_PARAM_COUNTERMEASURES = 14, /* WPA/TKIP countermeasures */
++ IEEE80211_PARAM_DROPUNENCRYPTED = 15, /* discard unencrypted frames */
++ IEEE80211_PARAM_DRIVER_CAPS = 16, /* driver capabilities */
++ IEEE80211_PARAM_MACCMD = 17, /* MAC ACL operation */
++ IEEE80211_PARAM_WMM = 18, /* WMM mode (on, off) */
++ IEEE80211_PARAM_HIDESSID = 19, /* hide SSID mode (on, off) */
++ IEEE80211_PARAM_APBRIDGE = 20, /* AP inter-sta bridging */
++ IEEE80211_PARAM_KEYMGTALGS = 21, /* key management algorithms */
++ IEEE80211_PARAM_RSNCAPS = 22, /* RSN capabilities */
++ IEEE80211_PARAM_INACT = 23, /* station inactivity timeout */
++ IEEE80211_PARAM_INACT_AUTH = 24, /* station auth inact timeout */
++ IEEE80211_PARAM_INACT_INIT = 25, /* station init inact timeout */
++ IEEE80211_PARAM_ABOLT = 26, /* Atheros Adv. Capabilities */
++ IEEE80211_PARAM_DTIM_PERIOD = 28, /* DTIM period (beacons) */
++ IEEE80211_PARAM_BEACON_INTERVAL = 29, /* beacon interval (ms) */
++ IEEE80211_PARAM_DOTH = 30, /* 11.h is on/off */
++ IEEE80211_PARAM_PWRTARGET = 31, /* Current Channel Pwr Constraint */
++ IEEE80211_PARAM_GENREASSOC = 32, /* Generate a reassociation request */
++ IEEE80211_PARAM_COMPRESSION = 33, /* compression */
++ IEEE80211_PARAM_FF = 34, /* fast frames support */
++ IEEE80211_PARAM_XR = 35, /* XR support */
++ IEEE80211_PARAM_BURST = 36, /* burst mode */
++ IEEE80211_PARAM_PUREG = 37, /* pure 11g (no 11b stations) */
++ IEEE80211_PARAM_AR = 38, /* AR support */
++ IEEE80211_PARAM_WDS = 39, /* Enable 4 address processing */
++ IEEE80211_PARAM_BGSCAN = 40, /* bg scanning (on, off) */
++ IEEE80211_PARAM_BGSCAN_IDLE = 41, /* bg scan idle threshold */
++ IEEE80211_PARAM_BGSCAN_INTERVAL = 42, /* bg scan interval */
++ IEEE80211_PARAM_MCAST_RATE = 43, /* Multicast Tx Rate */
++ IEEE80211_PARAM_COVERAGE_CLASS = 44, /* coverage class */
++ IEEE80211_PARAM_COUNTRY_IE = 45, /* enable country IE */
++ IEEE80211_PARAM_SCANVALID = 46, /* scan cache valid threshold */
++ IEEE80211_PARAM_ROAM_RSSI_11A = 47, /* rssi threshold in 11a */
++ IEEE80211_PARAM_ROAM_RSSI_11B = 48, /* rssi threshold in 11b */
++ IEEE80211_PARAM_ROAM_RSSI_11G = 49, /* rssi threshold in 11g */
++ IEEE80211_PARAM_ROAM_RATE_11A = 50, /* tx rate threshold in 11a */
++ IEEE80211_PARAM_ROAM_RATE_11B = 51, /* tx rate threshold in 11b */
++ IEEE80211_PARAM_ROAM_RATE_11G = 52, /* tx rate threshold in 11g */
++ IEEE80211_PARAM_UAPSDINFO = 53, /* value for qos info field */
++ IEEE80211_PARAM_SLEEP = 54, /* force sleep/wake */
++ IEEE80211_PARAM_QOSNULL = 55, /* force sleep/wake */
++ IEEE80211_PARAM_PSPOLL = 56, /* force ps-poll generation (sta only) */
++ IEEE80211_PARAM_EOSPDROP = 57, /* force uapsd EOSP drop (ap only) */
++ IEEE80211_PARAM_MARKDFS = 58, /* mark a dfs interference channel when found */
++ IEEE80211_PARAM_REGCLASS = 59, /* enable regclass ids in country IE */
++ IEEE80211_PARAM_DROPUNENC_EAPOL = 60, /* drop unencrypted eapol frames */
++ IEEE80211_PARAM_SHPREAMBLE = 61, /* Short Preamble */
+};
+
+#define SIOCG80211STATS (SIOCDEVPRIVATE+2)
@@ -2203,7 +2183,7 @@
+struct ieee80211req_getset_appiebuf {
+ u_int32_t app_frmtype; /* management frame type for which buffer is added */
+ u_int32_t app_buflen; /* application-supplied buffer length */
-+ u_int8_t app_buf[0]; /* application-supplied IE(s) */
++ u_int8_t app_buf[]; /* application-supplied IE(s) */
+};
+
+/* Flags ORed by application to set filter for receiving management frames */
More information about the Pkg-wpa-devel
mailing list