[pkg-wpa-devel] r1295 - in /iw/branches/upstream/current: COPYING Makefile README defconfig genl.c info.c iw.h mesh.c nl80211.h phy.c util.c version.sh
kelmo-guest at users.alioth.debian.org
kelmo-guest at users.alioth.debian.org
Tue Dec 9 17:58:18 UTC 2008
Author: kelmo-guest
Date: Tue Dec 9 17:58:18 2008
New Revision: 1295
URL: http://svn.debian.org/wsvn/?sc=1&rev=1295
Log:
[svn-upgrade] Integrating new upstream version, iw (0.9.7)
Removed:
iw/branches/upstream/current/defconfig
Modified:
iw/branches/upstream/current/COPYING
iw/branches/upstream/current/Makefile
iw/branches/upstream/current/README
iw/branches/upstream/current/genl.c
iw/branches/upstream/current/info.c
iw/branches/upstream/current/iw.h
iw/branches/upstream/current/mesh.c
iw/branches/upstream/current/nl80211.h
iw/branches/upstream/current/phy.c
iw/branches/upstream/current/util.c
iw/branches/upstream/current/version.sh
Modified: iw/branches/upstream/current/COPYING
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/COPYING?rev=1295&op=diff
==============================================================================
--- iw/branches/upstream/current/COPYING (original)
+++ iw/branches/upstream/current/COPYING Tue Dec 9 17:58:18 2008
@@ -3,27 +3,14 @@
Copyright (c) 2007 Mike Kershaw
Copyright (c) 2008 Luis R. Rodriguez
-All rights reserved.
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
-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.
-
-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.
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Modified: iw/branches/upstream/current/Makefile
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/Makefile?rev=1295&op=diff
==============================================================================
--- iw/branches/upstream/current/Makefile (original)
+++ iw/branches/upstream/current/Makefile Tue Dec 9 17:58:18 2008
@@ -2,10 +2,14 @@
MAKEFLAGS += --no-print-directory
+PREFIX ?= /usr
+BINDIR ?= $(PREFIX)/bin
+MANDIR ?= $(PREFIX)/share/man
+
MKDIR ?= mkdir -p
INSTALL ?= install
-PREFIX ?= /usr
CC ?= "gcc"
+
CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration `pkg-config --cflags libnl-1`
CFLAGS += -O2 -g
LDFLAGS += `pkg-config --libs libnl-1`
@@ -49,11 +53,11 @@
install: iw iw.8.gz
@$(NQ) ' INST iw'
- $(Q)$(MKDIR) $(DESTDIR)$(PREFIX)/bin/
- $(Q)$(INSTALL) -m 755 -o root -g root -t $(DESTDIR)$(PREFIX)/bin/ iw
+ $(Q)$(MKDIR) $(DESTDIR)$(BINDIR)
+ $(Q)$(INSTALL) -m 755 -t $(DESTDIR)$(BINDIR) iw
@$(NQ) ' INST iw.8'
- $(Q)$(MKDIR) $(DESTDIR)$(PREFIX)/share/man/man8/
- $(Q)$(INSTALL) -m 644 -o root -g root -t $(DESTDIR)$(PREFIX)/share/man/man8/ iw.8.gz
+ $(Q)$(MKDIR) $(DESTDIR)$(MANDIR)/man8/
+ $(Q)$(INSTALL) -m 644 -t $(DESTDIR)$(MANDIR)/man8/ iw.8.gz
clean:
$(Q)rm -f iw *.o *~ *.gz version.h *-stamp
Modified: iw/branches/upstream/current/README
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/README?rev=1295&op=diff
==============================================================================
--- iw/branches/upstream/current/README (original)
+++ iw/branches/upstream/current/README Tue Dec 9 17:58:18 2008
@@ -2,5 +2,14 @@
This is 'iw', a tool to use nl80211.
-To build iw, just enter 'make'. If that fails, copy the file
-defconfig to .config and adjust the settings in it.
+To build iw, just enter 'make'. If that fails, set the
+PKG_CONFIG_PATH environment variable to allow the Makefile
+to find libnl.
+
+
+'iw' is currently maintained at http://git.sipsolutions.net/iw.git/,
+some more documentation is available at
+http://wireless.kernel.org/en/users/Documentation/iw.
+
+Please send all patches to Johannes Berg <johannes at sipsolutions.net>
+and CC linux-wireless at vger.kernel.org for community review.
Modified: iw/branches/upstream/current/genl.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/genl.c?rev=1295&op=diff
==============================================================================
--- iw/branches/upstream/current/genl.c (original)
+++ iw/branches/upstream/current/genl.c Tue Dec 9 17:58:18 2008
@@ -15,11 +15,6 @@
int *ret = arg;
*ret = err->error;
return NL_STOP;
-}
-
-static int finish_handler(struct nl_msg *msg, void *arg)
-{
- return NL_SKIP;
}
static int ack_handler(struct nl_msg *msg, void *arg)
@@ -102,7 +97,6 @@
ret = 1;
nl_cb_err(cb, NL_CB_CUSTOM, error_handler, &ret);
- nl_cb_set(cb, NL_CB_FINISH, NL_CB_CUSTOM, finish_handler, NULL);
nl_cb_set(cb, NL_CB_ACK, NL_CB_CUSTOM, ack_handler, &ret);
nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, family_handler, &grp);
Modified: iw/branches/upstream/current/info.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/info.c?rev=1295&op=diff
==============================================================================
--- iw/branches/upstream/current/info.c (original)
+++ iw/branches/upstream/current/info.c Tue Dec 9 17:58:18 2008
@@ -16,7 +16,7 @@
printf(" (");
else
printf(", ");
- printf(name);
+ printf("%s", name);
*open = 1;
}
@@ -34,6 +34,7 @@
[NL80211_FREQUENCY_ATTR_PASSIVE_SCAN] = { .type = NLA_FLAG },
[NL80211_FREQUENCY_ATTR_NO_IBSS] = { .type = NLA_FLAG },
[NL80211_FREQUENCY_ATTR_RADAR] = { .type = NLA_FLAG },
+ [NL80211_FREQUENCY_ATTR_MAX_TX_POWER] = { .type = NLA_U32 },
};
struct nlattr *tb_rate[NL80211_BITRATE_ATTR_MAX + 1];
@@ -137,11 +138,18 @@
printf("\t\tFrequencies:\n");
nla_for_each_nested(nl_freq, tb_band[NL80211_BAND_ATTR_FREQS], rem_freq) {
+ uint32_t freq;
nla_parse(tb_freq, NL80211_FREQUENCY_ATTR_MAX, nla_data(nl_freq),
nla_len(nl_freq), freq_policy);
if (!tb_freq[NL80211_FREQUENCY_ATTR_FREQ])
continue;
- printf("\t\t\t* %d MHz", nla_get_u32(tb_freq[NL80211_FREQUENCY_ATTR_FREQ]));
+ freq = nla_get_u32(tb_freq[NL80211_FREQUENCY_ATTR_FREQ]);
+ printf("\t\t\t* %d MHz [%d]", freq, ieee80211_frequency_to_channel(freq));
+
+ if (tb_freq[NL80211_FREQUENCY_ATTR_MAX_TX_POWER] &&
+ !tb_freq[NL80211_FREQUENCY_ATTR_DISABLED])
+ printf(" (%.1f dBm)", 0.01 * nla_get_u32(tb_freq[NL80211_FREQUENCY_ATTR_MAX_TX_POWER]));
+
open = 0;
if (tb_freq[NL80211_FREQUENCY_ATTR_DISABLED])
print_flag("disabled", &open);
Modified: iw/branches/upstream/current/iw.h
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/iw.h?rev=1295&op=diff
==============================================================================
--- iw/branches/upstream/current/iw.h (original)
+++ iw/branches/upstream/current/iw.h Tue Dec 9 17:58:18 2008
@@ -39,6 +39,8 @@
int argc, char **argv);
};
+#define ARRAY_SIZE(ar) (sizeof(ar)/sizeof(ar[0]))
+
#define __COMMAND(sect, name, args, nlcmd, flags, hidden, idby, handler)\
static const struct cmd \
__cmd_ ## handler ## _ ## nlcmd ## _ ## idby ## _ ## hidden \
@@ -57,6 +59,8 @@
int mac_addr_n2a(char *mac_addr, unsigned char *arg);
const char *iftype_name(enum nl80211_iftype iftype);
+int ieee80211_channel_to_frequency(int chan);
+int ieee80211_frequency_to_channel(int freq);
int nl_get_multicast_id(struct nl_handle *handle, const char *family, const char *group);
Modified: iw/branches/upstream/current/mesh.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/mesh.c?rev=1295&op=diff
==============================================================================
--- iw/branches/upstream/current/mesh.c (original)
+++ iw/branches/upstream/current/mesh.c Tue Dec 9 17:58:18 2008
@@ -172,9 +172,7 @@
int i;
const char *comma = "";
- for (i = 0;
- i < sizeof(_mesh_param_descrs)/sizeof(_mesh_param_descrs[0]);
- ++i) {
+ for (i = 0; i < ARRAY_SIZE(_mesh_param_descrs); i++) {
printf("%s%s", comma, _mesh_param_descrs[i].name);
comma = ", ";
}
@@ -194,12 +192,9 @@
/* Find out what mesh parameter we want to change. */
mdescr = NULL;
- for (i = 0;
- i < sizeof(_mesh_param_descrs)/sizeof(_mesh_param_descrs[0]);
- ++i) {
+ for (i = 0; ARRAY_SIZE(_mesh_param_descrs); i++)
if (!strcmp(_mesh_param_descrs[i].name, argv[0]))
return _mesh_param_descrs + i;
- }
if (!mdescr) {
printf("Mesh_param must be one of: ");
Modified: iw/branches/upstream/current/nl80211.h
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/nl80211.h?rev=1295&op=diff
==============================================================================
--- iw/branches/upstream/current/nl80211.h (original)
+++ iw/branches/upstream/current/nl80211.h Tue Dec 9 17:58:18 2008
@@ -3,7 +3,26 @@
/*
* 802.11 netlink interface public header
*
- * Copyright 2006, 2007 Johannes Berg <johannes at sipsolutions.net>
+ * Copyright 2006, 2007, 2008 Johannes Berg <johannes at sipsolutions.net>
+ * Copyright 2008 Michael Wu <flamingice at sourmilk.net>
+ * Copyright 2008 Luis Carlos Cobo <luisca at cozybit.com>
+ * Copyright 2008 Michael Buesch <mb at bu3sch.de>
+ * Copyright 2008 Luis R. Rodriguez <lrodriguez at atheros.com>
+ * Copyright 2008 Jouni Malinen <jouni.malinen at atheros.com>
+ * Copyright 2008 Colin McCabe <colin at cozybit.com>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
*/
/**
@@ -25,8 +44,10 @@
*
* @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request
* to get a list of all present wiphys.
- * @NL80211_CMD_SET_WIPHY: set wiphy name, needs %NL80211_ATTR_WIPHY and
- * %NL80211_ATTR_WIPHY_NAME.
+ * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or
+ * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME,
+ * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ, and/or
+ * %NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET.
* @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request
* or rename notification. Has attributes %NL80211_ATTR_WIPHY and
* %NL80211_ATTR_WIPHY_NAME.
@@ -178,6 +199,15 @@
* @NL80211_ATTR_WIPHY: index of wiphy to operate on, cf.
* /sys/class/ieee80211/<phyname>/index
* @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming)
+ * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters
+ * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz
+ * @NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET: included with NL80211_ATTR_WIPHY_FREQ
+ * if HT20 or HT40 are allowed (i.e., 802.11n disabled if not included):
+ * NL80211_SEC_CHAN_NO_HT = HT not allowed (i.e., same as not including
+ * this attribute)
+ * NL80211_SEC_CHAN_DISABLED = HT20 only
+ * NL80211_SEC_CHAN_BELOW = secondary channel is below the primary channel
+ * NL80211_SEC_CHAN_ABOVE = secondary channel is above the primary channel
*
* @NL80211_ATTR_IFINDEX: network interface index of the device to operate on
* @NL80211_ATTR_IFNAME: network interface name
@@ -243,6 +273,9 @@
* (u8, 0 or 1)
* @NL80211_ATTR_BSS_SHORT_SLOT_TIME: whether short slot time enabled
* (u8, 0 or 1)
+ * @NL80211_ATTR_BSS_BASIC_RATES: basic rates, array of basic
+ * rates in format defined by IEEE 802.11 7.3.2.2 but without the length
+ * restriction (at most %NL80211_MAX_SUPP_RATES).
*
* @NL80211_ATTR_HT_CAPABILITY: HT Capability information element (from
* association request when used with NL80211_CMD_NEW_STATION)
@@ -307,6 +340,12 @@
NL80211_ATTR_MESH_PARAMS,
+ NL80211_ATTR_BSS_BASIC_RATES,
+
+ NL80211_ATTR_WIPHY_TXQ_PARAMS,
+ NL80211_ATTR_WIPHY_FREQ,
+ NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET,
+
/* add attributes here, update the policy in nl80211.c */
__NL80211_ATTR_AFTER_LAST,
@@ -318,6 +357,10 @@
* here
*/
#define NL80211_ATTR_HT_CAPABILITY NL80211_ATTR_HT_CAPABILITY
+#define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES
+#define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS
+#define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ
+#define NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET
#define NL80211_MAX_SUPP_RATES 32
#define NL80211_MAX_SUPP_REG_RULES 32
@@ -497,6 +540,8 @@
* on this channel in current regulatory domain.
* @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory
* on this channel in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm
+ * (100 * dBm).
*/
enum nl80211_frequency_attr {
__NL80211_FREQUENCY_ATTR_INVALID,
@@ -505,11 +550,14 @@
NL80211_FREQUENCY_ATTR_PASSIVE_SCAN,
NL80211_FREQUENCY_ATTR_NO_IBSS,
NL80211_FREQUENCY_ATTR_RADAR,
+ NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
/* keep last */
__NL80211_FREQUENCY_ATTR_AFTER_LAST,
NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1
};
+
+#define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER
/**
* enum nl80211_bitrate_attr - bitrate attributes
@@ -692,4 +740,44 @@
NL80211_MESHCONF_ATTR_MAX = __NL80211_MESHCONF_ATTR_AFTER_LAST - 1
};
+/**
+ * enum nl80211_txq_attr - TX queue parameter attributes
+ * @__NL80211_TXQ_ATTR_INVALID: Attribute number 0 is reserved
+ * @NL80211_TXQ_ATTR_QUEUE: TX queue identifier (NL80211_TXQ_Q_*)
+ * @NL80211_TXQ_ATTR_TXOP: Maximum burst time in units of 32 usecs, 0 meaning
+ * disabled
+ * @NL80211_TXQ_ATTR_CWMIN: Minimum contention window [a value of the form
+ * 2^n-1 in the range 1..32767]
+ * @NL80211_TXQ_ATTR_CWMAX: Maximum contention window [a value of the form
+ * 2^n-1 in the range 1..32767]
+ * @NL80211_TXQ_ATTR_AIFS: Arbitration interframe space [0..255]
+ * @__NL80211_TXQ_ATTR_AFTER_LAST: Internal
+ * @NL80211_TXQ_ATTR_MAX: Maximum TXQ attribute number
+ */
+enum nl80211_txq_attr {
+ __NL80211_TXQ_ATTR_INVALID,
+ NL80211_TXQ_ATTR_QUEUE,
+ NL80211_TXQ_ATTR_TXOP,
+ NL80211_TXQ_ATTR_CWMIN,
+ NL80211_TXQ_ATTR_CWMAX,
+ NL80211_TXQ_ATTR_AIFS,
+
+ /* keep last */
+ __NL80211_TXQ_ATTR_AFTER_LAST,
+ NL80211_TXQ_ATTR_MAX = __NL80211_TXQ_ATTR_AFTER_LAST - 1
+};
+
+enum nl80211_txq_q {
+ NL80211_TXQ_Q_VO,
+ NL80211_TXQ_Q_VI,
+ NL80211_TXQ_Q_BE,
+ NL80211_TXQ_Q_BK
+};
+
+enum nl80211_sec_chan_offset {
+ NL80211_SEC_CHAN_NO_HT /* No HT */,
+ NL80211_SEC_CHAN_DISABLED /* HT20 only */,
+ NL80211_SEC_CHAN_BELOW /* HT40- */,
+ NL80211_SEC_CHAN_ABOVE /* HT40+ */
+};
#endif /* __LINUX_NL80211_H */
Modified: iw/branches/upstream/current/phy.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/phy.c?rev=1295&op=diff
==============================================================================
--- iw/branches/upstream/current/phy.c (original)
+++ iw/branches/upstream/current/phy.c Tue Dec 9 17:58:18 2008
@@ -1,3 +1,4 @@
+#include <stdbool.h>
#include <errno.h>
#include <net/if.h>
@@ -24,3 +25,64 @@
return -ENOBUFS;
}
COMMAND(set, name, "<new name>", NL80211_CMD_SET_WIPHY, 0, CIB_PHY, handle_name);
+
+static int handle_freqchan(struct nl_msg *msg, bool chan,
+ int argc, char **argv)
+{
+ static const struct {
+ const char *name;
+ unsigned int val;
+ } htmap[] = {
+ { .name = "HT20", .val = NL80211_SEC_CHAN_DISABLED, },
+ { .name = "HT40+", .val = NL80211_SEC_CHAN_ABOVE, },
+ { .name = "HT40-", .val = NL80211_SEC_CHAN_BELOW, },
+ };
+ unsigned int htval = NL80211_SEC_CHAN_NO_HT;
+ unsigned int freq;
+ int i;
+
+ if (!argc || argc > 2)
+ return 1;
+
+ if (argc == 2) {
+ for (i = 0; i < ARRAY_SIZE(htmap); i++) {
+ if (strcasecmp(htmap[i].name, argv[1]) == 0) {
+ htval = htmap[i].val;
+ break;
+ }
+ }
+ if (htval == NL80211_SEC_CHAN_NO_HT)
+ return 1;
+ }
+
+ freq = strtoul(argv[0], NULL, 10);
+ if (chan)
+ freq = ieee80211_channel_to_frequency(freq);
+
+ NLA_PUT_U32(msg, NL80211_ATTR_WIPHY_FREQ, freq);
+ NLA_PUT_U32(msg, NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET, htval);
+
+ return 0;
+ nla_put_failure:
+ return -ENOBUFS;
+}
+
+static int handle_freq(struct nl_cb *cb, struct nl_msg *msg,
+ int argc, char **argv)
+{
+ return handle_freqchan(msg, false, argc, argv);
+}
+COMMAND(set, freq, "<freq> [HT20|HT40+|HT40-]",
+ NL80211_CMD_SET_WIPHY, 0, CIB_PHY, handle_freq);
+COMMAND(set, freq, "<freq> [HT20|HT40+|HT40-]",
+ NL80211_CMD_SET_WIPHY, 0, CIB_NETDEV, handle_freq);
+
+static int handle_chan(struct nl_cb *cb, struct nl_msg *msg,
+ int argc, char **argv)
+{
+ return handle_freqchan(msg, true, argc, argv);
+}
+COMMAND(set, channel, "<channel> [HT20|HT40+|HT40-]",
+ NL80211_CMD_SET_WIPHY, 0, CIB_PHY, handle_chan);
+COMMAND(set, channel, "<channel> [HT20|HT40+|HT40-]",
+ NL80211_CMD_SET_WIPHY, 0, CIB_NETDEV, handle_chan);
Modified: iw/branches/upstream/current/util.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/util.c?rev=1295&op=diff
==============================================================================
--- iw/branches/upstream/current/util.c (original)
+++ iw/branches/upstream/current/util.c Tue Dec 9 17:58:18 2008
@@ -65,3 +65,27 @@
sprintf(modebuf, "Unknown mode (%d)", iftype);
return modebuf;
}
+
+int ieee80211_channel_to_frequency(int chan)
+{
+ if (chan < 14)
+ return 2407 + chan * 5;
+
+ if (chan == 14)
+ return 2484;
+
+ /* FIXME: dot11ChannelStartingFactor (802.11-2007 17.3.8.3.2) */
+ return (chan + 1000) * 5;
+}
+
+int ieee80211_frequency_to_channel(int freq)
+{
+ if (freq == 2484)
+ return 14;
+
+ if (freq < 2484)
+ return (freq - 2407) / 5;
+
+ /* FIXME: dot11ChannelStartingFactor (802.11-2007 17.3.8.3.2) */
+ return freq/5 - 1000;
+}
Modified: iw/branches/upstream/current/version.sh
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/version.sh?rev=1295&op=diff
==============================================================================
--- iw/branches/upstream/current/version.sh (original)
+++ iw/branches/upstream/current/version.sh Tue Dec 9 17:58:18 2008
@@ -1,6 +1,6 @@
#!/bin/sh
-VERSION="0.9.6"
+VERSION="0.9.7"
OUT="version.h"
if head=`git rev-parse --verify HEAD 2>/dev/null`; then
More information about the Pkg-wpa-devel
mailing list