[pkg-wpa-devel] r1777 - in /iw/branches/upstream/current: Makefile bitrate.c connect.c cqm.c event.c hwsim.c ibss.c info.c interface.c iw.c iw.h link.c mesh.c mpath.c nl80211.h offch.c phy.c ps.c reg.c roc.c scan.c station.c survey.c util.c version.sh wowlan.c
slh-guest at users.alioth.debian.org
slh-guest at users.alioth.debian.org
Sat Aug 4 14:46:06 UTC 2012
Author: slh-guest
Date: Sat Aug 4 14:46:06 2012
New Revision: 1777
URL: http://svn.debian.org/wsvn/?sc=1&rev=1777
Log:
[svn-upgrade] new version iw (3.6)
Added:
iw/branches/upstream/current/hwsim.c
Modified:
iw/branches/upstream/current/Makefile
iw/branches/upstream/current/bitrate.c
iw/branches/upstream/current/connect.c
iw/branches/upstream/current/cqm.c
iw/branches/upstream/current/event.c
iw/branches/upstream/current/ibss.c
iw/branches/upstream/current/info.c
iw/branches/upstream/current/interface.c
iw/branches/upstream/current/iw.c
iw/branches/upstream/current/iw.h
iw/branches/upstream/current/link.c
iw/branches/upstream/current/mesh.c
iw/branches/upstream/current/mpath.c
iw/branches/upstream/current/nl80211.h
iw/branches/upstream/current/offch.c
iw/branches/upstream/current/phy.c
iw/branches/upstream/current/ps.c
iw/branches/upstream/current/reg.c
iw/branches/upstream/current/roc.c
iw/branches/upstream/current/scan.c
iw/branches/upstream/current/station.c
iw/branches/upstream/current/survey.c
iw/branches/upstream/current/util.c
iw/branches/upstream/current/version.sh
iw/branches/upstream/current/wowlan.c
Modified: iw/branches/upstream/current/Makefile
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/Makefile?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/Makefile (original)
+++ iw/branches/upstream/current/Makefile Sat Aug 4 14:46:06 2012
@@ -20,6 +20,9 @@
reason.o status.o connect.o link.o offch.o ps.o cqm.o \
bitrate.o wowlan.o roc.o
OBJS += sections.o
+
+OBJS-$(HWSIM) += hwsim.o
+
ALL = iw
NL3xFOUND := $(shell $(PKG_CONFIG) --atleast-version=3.2 libnl-3.0 && echo Y)
@@ -85,7 +88,7 @@
all: $(ALL)
-VERSION_OBJS := $(filter-out version.o, $(OBJS))
+VERSION_OBJS := $(filter-out version.o, $(OBJS) $(OBJS-y))
version.c: version.sh $(patsubst %.o,%.c,$(VERSION_OBJS)) nl80211.h iw.h Makefile \
$(wildcard .git/index .git/refs/tags)
@@ -96,9 +99,9 @@
@$(NQ) ' CC ' $@
$(Q)$(CC) $(CFLAGS) -c -o $@ $<
-iw: $(OBJS)
+iw: $(OBJS) $(OBJS-y)
@$(NQ) ' CC ' iw
- $(Q)$(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o iw
+ $(Q)$(CC) $(LDFLAGS) $(OBJS) $(OBJS-y) $(LIBS) -o iw
check:
$(Q)$(MAKE) all CC="REAL_CC=$(CC) CHECK=\"sparse -Wall\" cgcc"
Modified: iw/branches/upstream/current/bitrate.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/bitrate.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/bitrate.c (original)
+++ iw/branches/upstream/current/bitrate.c Sat Aug 4 14:46:06 2012
@@ -7,7 +7,8 @@
static int handle_bitrates(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
struct nlattr *nl_rates, *nl_band;
int i;
Modified: iw/branches/upstream/current/connect.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/connect.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/connect.c (original)
+++ iw/branches/upstream/current/connect.c Sat Aug 4 14:46:06 2012
@@ -10,7 +10,8 @@
#include "iw.h"
static int iw_conn(struct nl80211_state *state, struct nl_cb *cb,
- struct nl_msg *msg, int argc, char **argv)
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
{
char *end;
unsigned char bssid[6];
@@ -60,7 +61,8 @@
static int disconnect(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
return 0;
}
@@ -69,7 +71,8 @@
"Disconnect from the current network.");
static int iw_connect(struct nl80211_state *state, struct nl_cb *cb,
- struct nl_msg *msg, int argc, char **argv)
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
{
char **conn_argv, *dev = argv[0];
static const __u32 cmds[] = {
@@ -105,7 +108,7 @@
conn_argv[2] = "establish";
for (i = 0; i < argc; i++)
conn_argv[i + 3] = argv[i];
- err = handle_cmd(state, II_NETDEV, conn_argc, conn_argv);
+ err = handle_cmd(state, id, conn_argc, conn_argv);
free(conn_argv);
if (err)
return err;
Modified: iw/branches/upstream/current/cqm.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/cqm.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/cqm.c (original)
+++ iw/branches/upstream/current/cqm.c Sat Aug 4 14:46:06 2012
@@ -10,7 +10,8 @@
#include "iw.h"
static int iw_cqm_rssi(struct nl80211_state *state, struct nl_cb *cb,
- struct nl_msg *msg, int argc, char **argv)
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
{
struct nl_msg *cqm = NULL;
int thold = 0;
Modified: iw/branches/upstream/current/event.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/event.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/event.c (original)
+++ iw/branches/upstream/current/event.c Sat Aug 4 14:46:06 2012
@@ -218,9 +218,15 @@
if (tb[NL80211_ATTR_IFINDEX] && tb[NL80211_ATTR_WIPHY]) {
if_indextoname(nla_get_u32(tb[NL80211_ATTR_IFINDEX]), ifname);
printf("%s (phy #%d): ", ifname, nla_get_u32(tb[NL80211_ATTR_WIPHY]));
+ } else if (tb[NL80211_ATTR_WDEV] && tb[NL80211_ATTR_WIPHY]) {
+ printf("wdev 0x%llx (phy #%d): ",
+ (unsigned long long)nla_get_u64(tb[NL80211_ATTR_WDEV]),
+ nla_get_u32(tb[NL80211_ATTR_WIPHY]));
} else if (tb[NL80211_ATTR_IFINDEX]) {
if_indextoname(nla_get_u32(tb[NL80211_ATTR_IFINDEX]), ifname);
printf("%s: ", ifname);
+ } else if (tb[NL80211_ATTR_WDEV]) {
+ printf("wdev 0x%llx: ", (unsigned long long)nla_get_u64(tb[NL80211_ATTR_WDEV]));
} else if (tb[NL80211_ATTR_WIPHY]) {
printf("phy #%d: ", nla_get_u32(tb[NL80211_ATTR_WIPHY]));
}
@@ -552,7 +558,8 @@
static int print_events(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
struct print_event_args args;
int ret;
Added: iw/branches/upstream/current/hwsim.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/hwsim.c?rev=1777&op=file
==============================================================================
--- iw/branches/upstream/current/hwsim.c (added)
+++ iw/branches/upstream/current/hwsim.c Sat Aug 4 14:46:06 2012
@@ -1,0 +1,151 @@
+#include <net/if.h>
+#include <errno.h>
+#include <string.h>
+
+#include <netlink/genl/genl.h>
+#include <netlink/genl/family.h>
+#include <netlink/genl/ctrl.h>
+#include <netlink/msg.h>
+#include <netlink/attr.h>
+
+#include "nl80211.h"
+#include "iw.h"
+
+/* These enums need to be kept in sync with the kernel */
+enum hwsim_testmode_attr {
+ __HWSIM_TM_ATTR_INVALID = 0,
+ HWSIM_TM_ATTR_CMD = 1,
+ HWSIM_TM_ATTR_PS = 2,
+
+ /* keep last */
+ __HWSIM_TM_ATTR_AFTER_LAST,
+ HWSIM_TM_ATTR_MAX = __HWSIM_TM_ATTR_AFTER_LAST - 1
+};
+
+enum hwsim_testmode_cmd {
+ HWSIM_TM_CMD_SET_PS = 0,
+ HWSIM_TM_CMD_GET_PS = 1,
+ HWSIM_TM_CMD_STOP_QUEUES = 2,
+ HWSIM_TM_CMD_WAKE_QUEUES = 3,
+};
+
+
+SECTION(hwsim);
+
+static int print_hwsim_ps_handler(struct nl_msg *msg, void *arg)
+{
+ struct nlattr *attrs[NL80211_ATTR_MAX + 1];
+ struct nlattr *tb[HWSIM_TM_ATTR_MAX + 1];
+ struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg));
+
+ nla_parse(attrs, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
+ genlmsg_attrlen(gnlh, 0), NULL);
+
+ if (!attrs[NL80211_ATTR_TESTDATA])
+ return NL_SKIP;
+
+ nla_parse(tb, HWSIM_TM_ATTR_MAX, nla_data(attrs[NL80211_ATTR_TESTDATA]),
+ nla_len(attrs[NL80211_ATTR_TESTDATA]), NULL);
+
+ printf("HWSIM PS: %d\n", nla_get_u32(tb[HWSIM_TM_ATTR_PS]));
+
+ return NL_SKIP;
+}
+
+static int handle_hwsim_getps(struct nl80211_state *state, struct nl_cb *cb,
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
+{
+ struct nlattr *tmdata;
+
+ tmdata = nla_nest_start(msg, NL80211_ATTR_TESTDATA);
+ if (!tmdata)
+ goto nla_put_failure;
+
+ NLA_PUT_U32(msg, HWSIM_TM_ATTR_CMD, HWSIM_TM_CMD_GET_PS);
+
+ nla_nest_end(msg, tmdata);
+
+ nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM,
+ print_hwsim_ps_handler, NULL);
+ return 0;
+ nla_put_failure:
+ return -ENOBUFS;
+}
+COMMAND(hwsim, getps, "", NL80211_CMD_TESTMODE, 0, CIB_PHY, handle_hwsim_getps, "");
+
+static int handle_hwsim_setps(struct nl80211_state *state, struct nl_cb *cb,
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
+{
+ struct nlattr *tmdata;
+ __u32 ps;
+ char *end;
+
+ if (argc != 1)
+ return 1;
+
+ ps = strtoul(argv[0], &end, 0);
+ if (*end)
+ return 1;
+
+ tmdata = nla_nest_start(msg, NL80211_ATTR_TESTDATA);
+ if (!tmdata)
+ goto nla_put_failure;
+
+ NLA_PUT_U32(msg, HWSIM_TM_ATTR_CMD, HWSIM_TM_CMD_SET_PS);
+ NLA_PUT_U32(msg, HWSIM_TM_ATTR_PS, ps);
+
+ nla_nest_end(msg, tmdata);
+
+ nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM,
+ print_hwsim_ps_handler, NULL);
+ return 0;
+ nla_put_failure:
+ return -ENOBUFS;
+}
+COMMAND(hwsim, setps, "<value>", NL80211_CMD_TESTMODE, 0, CIB_PHY, handle_hwsim_setps, "");
+
+static int handle_hwsim_stop_queues(struct nl80211_state *state, struct nl_cb *cb,
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
+{
+ struct nlattr *tmdata;
+
+ if (argc != 0)
+ return 1;
+
+ tmdata = nla_nest_start(msg, NL80211_ATTR_TESTDATA);
+ if (!tmdata)
+ goto nla_put_failure;
+
+ NLA_PUT_U32(msg, HWSIM_TM_ATTR_CMD, HWSIM_TM_CMD_STOP_QUEUES);
+
+ nla_nest_end(msg, tmdata);
+ return 0;
+ nla_put_failure:
+ return -ENOBUFS;
+}
+COMMAND(hwsim, stopqueues, "", NL80211_CMD_TESTMODE, 0, CIB_PHY, handle_hwsim_stop_queues, "");
+
+static int handle_hwsim_wake_queues(struct nl80211_state *state, struct nl_cb *cb,
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
+{
+ struct nlattr *tmdata;
+
+ if (argc != 0)
+ return 1;
+
+ tmdata = nla_nest_start(msg, NL80211_ATTR_TESTDATA);
+ if (!tmdata)
+ goto nla_put_failure;
+
+ NLA_PUT_U32(msg, HWSIM_TM_ATTR_CMD, HWSIM_TM_CMD_WAKE_QUEUES);
+
+ nla_nest_end(msg, tmdata);
+ return 0;
+ nla_put_failure:
+ return -ENOBUFS;
+}
+COMMAND(hwsim, wakequeues, "", NL80211_CMD_TESTMODE, 0, CIB_PHY, handle_hwsim_wake_queues, "");
Modified: iw/branches/upstream/current/ibss.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/ibss.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/ibss.c (original)
+++ iw/branches/upstream/current/ibss.c Sat Aug 4 14:46:06 2012
@@ -19,7 +19,8 @@
static int join_ibss(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
char *end;
unsigned char abssid[6];
@@ -154,7 +155,8 @@
static int leave_ibss(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
return 0;
}
Modified: iw/branches/upstream/current/info.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/info.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/info.c (original)
+++ iw/branches/upstream/current/info.c Sat Aug 4 14:46:06 2012
@@ -36,6 +36,8 @@
return "CCMP (00-0f-ac:4)";
case 0x000fac06:
return "CMAC (00-0f-ac:6)";
+ case 0x000fac08:
+ return "GCMP (00-0f-ac:8)";
case 0x00147201:
return "WPI-SMS4 (00-14-72:1)";
default:
@@ -444,7 +446,8 @@
static int handle_info(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, print_phy_handler, NULL);
Modified: iw/branches/upstream/current/interface.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/interface.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/interface.c (original)
+++ iw/branches/upstream/current/interface.c Sat Aug 4 14:46:06 2012
@@ -159,7 +159,8 @@
static int handle_interface_add(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
char *name;
char *mesh_id = NULL;
@@ -233,7 +234,8 @@
static int handle_interface_del(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
return 0;
}
@@ -277,8 +279,18 @@
if (tb_msg[NL80211_ATTR_IFNAME])
printf("%sInterface %s\n", indent, nla_get_string(tb_msg[NL80211_ATTR_IFNAME]));
+ else
+ printf("%sUnnamed/non-netdev interface\n", indent);
if (tb_msg[NL80211_ATTR_IFINDEX])
printf("%s\tifindex %d\n", indent, nla_get_u32(tb_msg[NL80211_ATTR_IFINDEX]));
+ if (tb_msg[NL80211_ATTR_WDEV])
+ printf("%s\twdev 0x%llx\n", indent,
+ (unsigned long long)nla_get_u64(tb_msg[NL80211_ATTR_WDEV]));
+ if (tb_msg[NL80211_ATTR_MAC]) {
+ char mac_addr[20];
+ mac_addr_n2a(mac_addr, nla_data(tb_msg[NL80211_ATTR_MAC]));
+ printf("%s\taddr %s\n", indent, mac_addr);
+ }
if (tb_msg[NL80211_ATTR_IFTYPE])
printf("%s\ttype %s\n", indent, iftype_name(nla_get_u32(tb_msg[NL80211_ATTR_IFTYPE])));
if (!wiphy && tb_msg[NL80211_ATTR_WIPHY])
@@ -301,7 +313,8 @@
static int handle_interface_info(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, print_iface_handler, NULL);
return 0;
@@ -312,7 +325,8 @@
static int handle_interface_set(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
if (!argc)
return 1;
@@ -342,7 +356,8 @@
static int handle_interface_meshid(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
char *mesh_id = NULL;
@@ -365,7 +380,8 @@
static int handle_dev_dump(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
dev_dump_wiphy = -1;
nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, print_iface_handler, &dev_dump_wiphy);
@@ -377,7 +393,8 @@
static int handle_interface_type(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
enum nl80211_iftype type;
int tpset;
@@ -401,9 +418,10 @@
IFACE_TYPES);
static int handle_interface_4addr(struct nl80211_state *state,
- struct nl_cb *cb,
- struct nl_msg *msg,
- int argc, char **argv)
+ struct nl_cb *cb,
+ struct nl_msg *msg,
+ int argc, char **argv,
+ enum id_input id)
{
if (argc != 1)
return 1;
@@ -416,7 +434,8 @@
static int handle_interface_noack_map(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
uint16_t noack_map;
char *end;
@@ -443,7 +462,8 @@
static int handle_interface_wds_peer(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
unsigned char mac_addr[ETH_ALEN];
Modified: iw/branches/upstream/current/iw.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/iw.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/iw.c (original)
+++ iw/branches/upstream/current/iw.c Sat Aug 4 14:46:06 2012
@@ -97,6 +97,9 @@
break;
case CIB_NETDEV:
printf("dev <devname> ");
+ break;
+ case CIB_WDEV:
+ printf("wdev <idx> ");
break;
}
if (cmd->parent && cmd->parent->name)
@@ -175,6 +178,8 @@
__usage_cmd(cmd, "\t", full);
}
}
+ printf("\nCommands that use the netdev ('dev') can also be given the\n"
+ "'wdev' instead to identify the device.\n");
printf("\nYou can omit the 'phy' or 'dev' if "
"the identification is unique,\n"
"e.g. \"iw wlan0 info\" or \"iw phy0 info\". "
@@ -186,7 +191,8 @@
static int print_help(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
exit(3);
}
@@ -255,7 +261,7 @@
struct nl_cb *cb;
struct nl_cb *s_cb;
struct nl_msg *msg;
- int devidx = 0;
+ signed long long devidx = 0;
int err, o_argc;
const char *command, *section;
char *tmp, **o_argv;
@@ -290,6 +296,13 @@
argc--;
argv++;
break;
+ case II_WDEV:
+ command_idby = CIB_WDEV;
+ devidx = strtoll(*argv, &tmp, 0);
+ if (*tmp != '\0')
+ return 1;
+ argc--;
+ argv++;
default:
break;
}
@@ -324,7 +337,13 @@
continue;
if (cmd->parent != sectcmd)
continue;
- if (cmd->idby != command_idby)
+ /*
+ * ignore mismatch id by, but allow WDEV
+ * in place of NETDEV
+ */
+ if (cmd->idby != command_idby &&
+ !(cmd->idby == CIB_NETDEV &&
+ command_idby == CIB_WDEV))
continue;
if (strcmp(cmd->name, command))
continue;
@@ -347,7 +366,8 @@
cmd = sectcmd;
if (argc && !cmd->args)
return 1;
- if (cmd->idby != command_idby)
+ if (cmd->idby != command_idby &&
+ !(cmd->idby == CIB_NETDEV && command_idby == CIB_WDEV))
return 1;
if (!cmd->handler)
return 1;
@@ -365,7 +385,7 @@
if (!cmd->cmd) {
argc = o_argc;
argv = o_argv;
- return cmd->handler(state, NULL, NULL, argc, argv);
+ return cmd->handler(state, NULL, NULL, argc, argv, idby);
}
msg = nlmsg_alloc();
@@ -392,11 +412,14 @@
case CIB_NETDEV:
NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, devidx);
break;
+ case CIB_WDEV:
+ NLA_PUT_U64(msg, NL80211_ATTR_WDEV, devidx);
+ break;
default:
break;
}
- err = cmd->handler(state, cb, msg, argc, argv);
+ err = cmd->handler(state, cb, msg, argc, argv, idby);
if (err)
goto out;
@@ -476,6 +499,10 @@
err = __handle_cmd(&nlstate, II_PHY_IDX, argc, argv, &cmd);
else
goto detect;
+ } else if (strcmp(*argv, "wdev") == 0 && argc > 1) {
+ argc--;
+ argv++;
+ err = __handle_cmd(&nlstate, II_WDEV, argc, argv, &cmd);
} else {
int idx;
enum id_input idby = II_NONE;
Modified: iw/branches/upstream/current/iw.h
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/iw.h?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/iw.h (original)
+++ iw/branches/upstream/current/iw.h Sat Aug 4 14:46:06 2012
@@ -27,6 +27,7 @@
CIB_NONE,
CIB_PHY,
CIB_NETDEV,
+ CIB_WDEV,
};
enum id_input {
@@ -34,6 +35,7 @@
II_NETDEV,
II_PHY_NAME,
II_PHY_IDX,
+ II_WDEV,
};
struct cmd {
@@ -52,7 +54,8 @@
int (*handler)(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv);
+ int argc, char **argv,
+ enum id_input id);
const struct cmd *(*selector)(int argc, char **argv);
const struct cmd *parent;
};
Modified: iw/branches/upstream/current/link.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/link.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/link.c (original)
+++ iw/branches/upstream/current/link.c Sat Aug 4 14:46:06 2012
@@ -100,7 +100,8 @@
static int handle_scan_for_link(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
if (argc > 0)
return 1;
@@ -131,6 +132,7 @@
static struct nla_policy rate_policy[NL80211_RATE_INFO_MAX + 1] = {
[NL80211_RATE_INFO_BITRATE] = { .type = NLA_U16 },
+ [NL80211_RATE_INFO_BITRATE32] = { .type = NLA_U32 },
[NL80211_RATE_INFO_MCS] = { .type = NLA_U8 },
[NL80211_RATE_INFO_40_MHZ_WIDTH] = { .type = NLA_FLAG },
[NL80211_RATE_INFO_SHORT_GI] = { .type = NLA_FLAG },
@@ -174,11 +176,14 @@
sinfo[NL80211_STA_INFO_TX_BITRATE], rate_policy)) {
fprintf(stderr, "failed to parse nested rate attributes!\n");
} else {
+ int rate = 0;
printf("\ttx bitrate: ");
- if (rinfo[NL80211_RATE_INFO_BITRATE]) {
- int rate = nla_get_u16(rinfo[NL80211_RATE_INFO_BITRATE]);
+ if (rinfo[NL80211_RATE_INFO_BITRATE32])
+ rate = nla_get_u32(rinfo[NL80211_RATE_INFO_BITRATE32]);
+ else if (rinfo[NL80211_RATE_INFO_BITRATE])
+ rate = nla_get_u16(rinfo[NL80211_RATE_INFO_BITRATE]);
+ if (rate > 0)
printf("%d.%d MBit/s", rate / 10, rate % 10);
- }
if (rinfo[NL80211_RATE_INFO_MCS])
printf(" MCS %d", nla_get_u8(rinfo[NL80211_RATE_INFO_MCS]));
@@ -222,7 +227,8 @@
static int handle_link_sta(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
unsigned char mac_addr[ETH_ALEN];
@@ -250,7 +256,8 @@
}
static int handle_link(struct nl80211_state *state, struct nl_cb *cb,
- struct nl_msg *msg, int argc, char **argv)
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
{
char *link_argv[] = {
NULL,
@@ -269,7 +276,7 @@
int err;
link_argv[0] = argv[0];
- err = handle_cmd(state, II_NETDEV, 3, link_argv);
+ err = handle_cmd(state, id, 3, link_argv);
if (err)
return err;
@@ -284,7 +291,7 @@
station_argv[0] = argv[0];
station_argv[3] = bssid_buf;
- return handle_cmd(state, II_NETDEV, 4, station_argv);
+ return handle_cmd(state, id, 4, station_argv);
}
TOPLEVEL(link, NULL, 0, 0, CIB_NETDEV, handle_link,
"Print information about the current link, if any.");
Modified: iw/branches/upstream/current/mesh.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/mesh.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/mesh.c (original)
+++ iw/branches/upstream/current/mesh.c Sat Aug 4 14:46:06 2012
@@ -199,7 +199,7 @@
{"mesh_hwmp_rootmode", NL80211_MESHCONF_HWMP_ROOTMODE,
_my_nla_put_u8, _parse_u8, _print_u8},
{"mesh_hwmp_rann_interval", NL80211_MESHCONF_HWMP_RANN_INTERVAL,
- _my_nla_put_u16, _parse_u16, _print_u16},
+ _my_nla_put_u16, _parse_u16, _print_u16_in_TUs},
{"mesh_gate_announcements", NL80211_MESHCONF_GATE_ANNOUNCEMENTS,
_my_nla_put_u8, _parse_u8, _print_u8},
{"mesh_fwding", NL80211_MESHCONF_FORWARDING,
@@ -209,6 +209,14 @@
_my_nla_put_u32, _parse_u32, _print_u32},
{"mesh_rssi_threshold", NL80211_MESHCONF_RSSI_THRESHOLD,
_my_nla_put_u32, _parse_s32, _print_s32_in_dBm},
+ {"mesh_hwmp_active_path_to_root_timeout",
+ NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT,
+ _my_nla_put_u32, _parse_u32, _print_u32_in_TUs},
+ {"mesh_hwmp_root_interval", NL80211_MESHCONF_HWMP_ROOT_INTERVAL,
+ _my_nla_put_u16, _parse_u16, _print_u16_in_TUs},
+ {"mesh_hwmp_confirmation_interval",
+ NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL,
+ _my_nla_put_u16, _parse_u16, _print_u16_in_TUs},
};
static void print_all_mesh_param_descr(void)
@@ -243,7 +251,8 @@
static int set_interface_meshparam(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
const struct mesh_param_descr *mdescr;
struct nlattr *container;
@@ -349,7 +358,8 @@
static int get_interface_meshparam(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
const struct mesh_param_descr *mdescr = NULL;
@@ -372,7 +382,8 @@
"Retrieve mesh parameter (run command without any to see available ones).");
static int join_mesh(struct nl80211_state *state, struct nl_cb *cb,
- struct nl_msg *msg, int argc, char **argv)
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
{
struct nlattr *container;
float rate;
@@ -420,7 +431,7 @@
if (!argc)
return 0;
- return set_interface_meshparam(state, cb, msg, argc, argv);
+ return set_interface_meshparam(state, cb, msg, argc, argv, id);
nla_put_failure:
return -ENOBUFS;
}
@@ -430,7 +441,8 @@
"Join a mesh with the given mesh ID with mcast-rate and mesh parameters.");
static int leave_mesh(struct nl80211_state *state, struct nl_cb *cb,
- struct nl_msg *msg, int argc, char **argv)
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
{
if (argc)
return 1;
Modified: iw/branches/upstream/current/mpath.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/mpath.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/mpath.c (original)
+++ iw/branches/upstream/current/mpath.c Sat Aug 4 14:46:06 2012
@@ -99,7 +99,8 @@
static int handle_mpath_get(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
unsigned char dst[ETH_ALEN];
@@ -134,7 +135,8 @@
static int handle_mpath_set(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
unsigned char dst[ETH_ALEN];
unsigned char next_hop[ETH_ALEN];
@@ -182,7 +184,8 @@
static int handle_mpath_dump(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
printf("DEST ADDR NEXT HOP IFACE\tSN\tMETRIC\tQLEN\t"
"EXPTIME\t\tDTIM\tDRET\tFLAGS\n");
Modified: iw/branches/upstream/current/nl80211.h
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/nl80211.h?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/nl80211.h (original)
+++ iw/branches/upstream/current/nl80211.h Sat Aug 4 14:46:06 2012
@@ -170,6 +170,8 @@
* %NL80211_ATTR_CIPHER_GROUP, %NL80211_ATTR_WPA_VERSIONS,
* %NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY,
* %NL80211_ATTR_AUTH_TYPE and %NL80211_ATTR_INACTIVITY_TIMEOUT.
+ * The channel to use can be set on the interface or be given using the
+ * %NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_WIPHY_CHANNEL_TYPE attrs.
* @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP
* @NL80211_CMD_STOP_AP: Stop AP operation on the given interface
* @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP
@@ -274,6 +276,12 @@
* or noise level
* @NL80211_CMD_NEW_SURVEY_RESULTS: survey data notification (as a reply to
* NL80211_CMD_GET_SURVEY and on the "scan" multicast group)
+ *
+ * @NL80211_CMD_SET_PMKSA: Add a PMKSA cache entry, using %NL80211_ATTR_MAC
+ * (for the BSSID) and %NL80211_ATTR_PMKID.
+ * @NL80211_CMD_DEL_PMKSA: Delete a PMKSA cache entry, using %NL80211_ATTR_MAC
+ * (for the BSSID) and %NL80211_ATTR_PMKID.
+ * @NL80211_CMD_FLUSH_PMKSA: Flush all PMKSA cache entries.
*
* @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain
* has been changed and provides details of the request information
@@ -454,6 +462,10 @@
* the frame.
* @NL80211_CMD_ACTION_TX_STATUS: Alias for @NL80211_CMD_FRAME_TX_STATUS for
* backward compatibility.
+ *
+ * @NL80211_CMD_SET_POWER_SAVE: Set powersave, using %NL80211_ATTR_PS_STATE
+ * @NL80211_CMD_GET_POWER_SAVE: Get powersave status in %NL80211_ATTR_PS_STATE
+ *
* @NL80211_CMD_SET_CQM: Connection quality monitor configuration. This command
* is used to configure connection quality monitoring notification trigger
* levels.
@@ -759,6 +771,9 @@
* @NL80211_ATTR_IFNAME: network interface name
* @NL80211_ATTR_IFTYPE: type of virtual interface, see &enum nl80211_iftype
*
+ * @NL80211_ATTR_WDEV: wireless device identifier, used for pseudo-devices
+ * that don't have a netdev (u64)
+ *
* @NL80211_ATTR_MAC: MAC address (various uses)
*
* @NL80211_ATTR_KEY_DATA: (temporal) key data; for TKIP this consists of
@@ -769,6 +784,13 @@
* section 7.3.2.25.1, e.g. 0x000FAC04)
* @NL80211_ATTR_KEY_SEQ: transmit key sequence number (IV/PN) for TKIP and
* CCMP keys, each six bytes in little endian
+ * @NL80211_ATTR_KEY_DEFAULT: Flag attribute indicating the key is default key
+ * @NL80211_ATTR_KEY_DEFAULT_MGMT: Flag attribute indicating the key is the
+ * default management key
+ * @NL80211_ATTR_CIPHER_SUITES_PAIRWISE: For crypto settings for connect or
+ * other commands, indicates which pairwise cipher suites are used
+ * @NL80211_ATTR_CIPHER_SUITE_GROUP: For crypto settings for connect or
+ * other commands, indicates which group cipher suite is used
*
* @NL80211_ATTR_BEACON_INTERVAL: beacon interval in TU
* @NL80211_ATTR_DTIM_PERIOD: DTIM period for beaconing
@@ -1004,6 +1026,8 @@
* @NL80211_ATTR_ACK: Flag attribute indicating that the frame was
* acknowledged by the recipient.
*
+ * @NL80211_ATTR_PS_STATE: powersave state, using &enum nl80211_ps_state values.
+ *
* @NL80211_ATTR_CQM: connection quality monitor configuration in a
* nested attribute with %NL80211_ATTR_CQM_* sub-attributes.
*
@@ -1061,7 +1085,7 @@
* flag isn't set, the frame will be rejected. This is also used as an
* nl80211 capability flag.
*
- * @NL80211_ATTR_BSS_HTOPMODE: HT operation mode (u16)
+ * @NL80211_ATTR_BSS_HT_OPMODE: HT operation mode (u16)
*
* @NL80211_ATTR_KEY_DEFAULT_TYPES: A nested attribute containing flags
* attributes, specifying what a key should be set as default as.
@@ -1085,10 +1109,10 @@
* indicate which WoW triggers should be enabled. This is also
* used by %NL80211_CMD_GET_WOWLAN to get the currently enabled WoWLAN
* triggers.
-
+ *
* @NL80211_ATTR_SCHED_SCAN_INTERVAL: Interval between scheduled scan
* cycles, in msecs.
-
+ *
* @NL80211_ATTR_SCHED_SCAN_MATCH: Nested attribute with one or more
* sets of attributes to match during scheduled scans. Only BSSs
* that match any of the sets will be reported. These are
@@ -1115,7 +1139,7 @@
* are managed in software: interfaces of these types aren't subject to
* any restrictions in their number or combinations.
*
- * @%NL80211_ATTR_REKEY_DATA: nested attribute containing the information
+ * @NL80211_ATTR_REKEY_DATA: nested attribute containing the information
* necessary for GTK rekeying in the device, see &enum nl80211_rekey_data.
*
* @NL80211_ATTR_SCAN_SUPP_RATES: rates per to be advertised as supported in scan,
@@ -1182,7 +1206,6 @@
* @NL80211_ATTR_FEATURE_FLAGS: This u32 attribute contains flags from
* &enum nl80211_feature_flags and is advertised in wiphy information.
* @NL80211_ATTR_PROBE_RESP_OFFLOAD: Indicates that the HW responds to probe
- *
* requests while operating in AP-mode.
* This attribute holds a bitmap of the supported protocols for
* offloading (see &enum nl80211_probe_resp_offload_support_attr).
@@ -1222,6 +1245,12 @@
* @NL80211_ATTR_BG_SCAN_PERIOD: Background scan period in seconds
* or 0 to disable background scan.
*
+ * @NL80211_ATTR_USER_REG_HINT_TYPE: type of regulatory hint passed from
+ * userspace. If unset it is assumed the hint comes directly from
+ * a user. If set code could specify exactly what type of source
+ * was used to provide the hint. For the different types of
+ * allowed user regulatory hints see nl80211_user_reg_hint_type.
+ *
* @NL80211_ATTR_MAX: highest attribute number currently defined
* @__NL80211_ATTR_AFTER_LAST: internal use
*/
@@ -1472,6 +1501,10 @@
NL80211_ATTR_RX_SIGNAL_DBM,
NL80211_ATTR_BG_SCAN_PERIOD,
+
+ NL80211_ATTR_WDEV,
+
+ NL80211_ATTR_USER_REG_HINT_TYPE,
/* add attributes here, update the policy in nl80211.c */
@@ -1520,6 +1553,13 @@
#define NL80211_MAX_NR_CIPHER_SUITES 5
#define NL80211_MAX_NR_AKM_SUITES 2
+#define NL80211_MIN_REMAIN_ON_CHANNEL_TIME 10
+
+/* default RSSI threshold for scan results if none specified. */
+#define NL80211_SCAN_RSSI_THOLD_OFF -300
+
+#define NL80211_CQM_TXE_MAX_INTVL 1800
+
/**
* enum nl80211_iftype - (virtual) interface types
*
@@ -1613,12 +1653,20 @@
*
* These attribute types are used with %NL80211_STA_INFO_TXRATE
* when getting information about the bitrate of a station.
+ * There are 2 attributes for bitrate, a legacy one that represents
+ * a 16-bit value, and new one that represents a 32-bit value.
+ * If the rate value fits into 16 bit, both attributes are reported
+ * with the same value. If the rate is too high to fit into 16 bits
+ * (>6.5535Gbps) only 32-bit attribute is included.
+ * User space tools encouraged to use the 32-bit attribute and fall
+ * back to the 16-bit one for compatibility with older kernels.
*
* @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved
* @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s)
* @NL80211_RATE_INFO_MCS: mcs index for 802.11n (u8)
* @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 Mhz dualchannel bitrate
* @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval
+ * @NL80211_RATE_INFO_BITRATE32: total bitrate (u32, 100kbit/s)
* @NL80211_RATE_INFO_MAX: highest rate_info number currently defined
* @__NL80211_RATE_INFO_AFTER_LAST: internal use
*/
@@ -1628,6 +1676,7 @@
NL80211_RATE_INFO_MCS,
NL80211_RATE_INFO_40_MHZ_WIDTH,
NL80211_RATE_INFO_SHORT_GI,
+ NL80211_RATE_INFO_BITRATE32,
/* keep last */
__NL80211_RATE_INFO_AFTER_LAST,
@@ -1788,6 +1837,9 @@
* @NL80211_BAND_ATTR_HT_CAPA: HT capabilities, as in the HT information IE
* @NL80211_BAND_ATTR_HT_AMPDU_FACTOR: A-MPDU factor, as in 11n
* @NL80211_BAND_ATTR_HT_AMPDU_DENSITY: A-MPDU density, as in 11n
+ * @NL80211_BAND_ATTR_VHT_MCS_SET: 32-byte attribute containing the MCS set as
+ * defined in 802.11ac
+ * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE
* @NL80211_BAND_ATTR_MAX: highest band attribute currently defined
* @__NL80211_BAND_ATTR_AFTER_LAST: internal use
*/
@@ -1800,6 +1852,9 @@
NL80211_BAND_ATTR_HT_CAPA,
NL80211_BAND_ATTR_HT_AMPDU_FACTOR,
NL80211_BAND_ATTR_HT_AMPDU_DENSITY,
+
+ NL80211_BAND_ATTR_VHT_MCS_SET,
+ NL80211_BAND_ATTR_VHT_CAPA,
/* keep last */
__NL80211_BAND_ATTR_AFTER_LAST,
@@ -1952,6 +2007,8 @@
* @__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID: attribute number 0 is reserved
* @NL80211_SCHED_SCAN_MATCH_ATTR_SSID: SSID to be used for matching,
* only report BSS with matching SSID.
+ * @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI: RSSI threshold (in dBm) for reporting a
+ * BSS in scan results. Filtering is turned off if not specified.
* @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter
* attribute number currently defined
* @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use
@@ -1959,13 +2016,17 @@
enum nl80211_sched_scan_match_attr {
__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID,
- NL80211_ATTR_SCHED_SCAN_MATCH_SSID,
+ NL80211_SCHED_SCAN_MATCH_ATTR_SSID,
+ NL80211_SCHED_SCAN_MATCH_ATTR_RSSI,
/* keep last */
__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,
NL80211_SCHED_SCAN_MATCH_ATTR_MAX =
__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST - 1
};
+
+/* only for backward compatibility */
+#define NL80211_ATTR_SCHED_SCAN_MATCH_SSID NL80211_SCHED_SCAN_MATCH_ATTR_SSID
/**
* enum nl80211_reg_rule_flags - regulatory rule flags
@@ -2005,6 +2066,26 @@
NL80211_DFS_FCC = 1,
NL80211_DFS_ETSI = 2,
NL80211_DFS_JP = 3,
+};
+
+/**
+ * enum nl80211_user_reg_hint_type - type of user regulatory hint
+ *
+ * @NL80211_USER_REG_HINT_USER: a user sent the hint. This is always
+ * assumed if the attribute is not set.
+ * @NL80211_USER_REG_HINT_CELL_BASE: the hint comes from a cellular
+ * base station. Device drivers that have been tested to work
+ * properly to support this type of hint can enable these hints
+ * by setting the NL80211_FEATURE_CELL_BASE_REG_HINTS feature
+ * capability on the struct wiphy. The wireless core will
+ * ignore all cell base station hints until at least one device
+ * present has been registered with the wireless core that
+ * has listed NL80211_FEATURE_CELL_BASE_REG_HINTS as a
+ * supported feature.
+ */
+enum nl80211_user_reg_hint_type {
+ NL80211_USER_REG_HINT_USER = 0,
+ NL80211_USER_REG_HINT_CELL_BASE = 1,
};
/**
@@ -2086,77 +2167,90 @@
* @__NL80211_MESHCONF_INVALID: internal use
*
* @NL80211_MESHCONF_RETRY_TIMEOUT: specifies the initial retry timeout in
- * millisecond units, used by the Peer Link Open message
+ * millisecond units, used by the Peer Link Open message
*
* @NL80211_MESHCONF_CONFIRM_TIMEOUT: specifies the initial confirm timeout, in
- * millisecond units, used by the peer link management to close a peer link
+ * millisecond units, used by the peer link management to close a peer link
*
* @NL80211_MESHCONF_HOLDING_TIMEOUT: specifies the holding timeout, in
- * millisecond units
+ * millisecond units
*
* @NL80211_MESHCONF_MAX_PEER_LINKS: maximum number of peer links allowed
- * on this mesh interface
+ * on this mesh interface
*
* @NL80211_MESHCONF_MAX_RETRIES: specifies the maximum number of peer link
- * open retries that can be sent to establish a new peer link instance in a
- * mesh
+ * open retries that can be sent to establish a new peer link instance in a
+ * mesh
*
* @NL80211_MESHCONF_TTL: specifies the value of TTL field set at a source mesh
- * point.
+ * point.
*
* @NL80211_MESHCONF_AUTO_OPEN_PLINKS: whether we should automatically
- * open peer links when we detect compatible mesh peers.
+ * open peer links when we detect compatible mesh peers.
*
* @NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES: the number of action frames
- * containing a PREQ that an MP can send to a particular destination (path
- * target)
+ * containing a PREQ that an MP can send to a particular destination (path
+ * target)
*
* @NL80211_MESHCONF_PATH_REFRESH_TIME: how frequently to refresh mesh paths
- * (in milliseconds)
+ * (in milliseconds)
*
* @NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT: minimum length of time to wait
- * until giving up on a path discovery (in milliseconds)
+ * until giving up on a path discovery (in milliseconds)
*
* @NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT: The time (in TUs) for which mesh
- * points receiving a PREQ shall consider the forwarding information from the
- * root to be valid. (TU = time unit)
+ * points receiving a PREQ shall consider the forwarding information from
+ * the root to be valid. (TU = time unit)
*
* @NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL: The minimum interval of time (in
- * TUs) during which an MP can send only one action frame containing a PREQ
- * reference element
+ * TUs) during which an MP can send only one action frame containing a PREQ
+ * reference element
*
* @NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME: The interval of time (in TUs)
- * that it takes for an HWMP information element to propagate across the mesh
+ * that it takes for an HWMP information element to propagate across the
+ * mesh
*
* @NL80211_MESHCONF_HWMP_ROOTMODE: whether root mode is enabled or not
*
* @NL80211_MESHCONF_ELEMENT_TTL: specifies the value of TTL field set at a
- * source mesh point for path selection elements.
+ * source mesh point for path selection elements.
*
* @NL80211_MESHCONF_HWMP_RANN_INTERVAL: The interval of time (in TUs) between
- * root announcements are transmitted.
+ * root announcements are transmitted.
*
* @NL80211_MESHCONF_GATE_ANNOUNCEMENTS: Advertise that this mesh station has
- * access to a broader network beyond the MBSS. This is done via Root
- * Announcement frames.
+ * access to a broader network beyond the MBSS. This is done via Root
+ * Announcement frames.
*
* @NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL: The minimum interval of time (in
- * TUs) during which a mesh STA can send only one Action frame containing a
- * PERR element.
+ * TUs) during which a mesh STA can send only one Action frame containing a
+ * PERR element.
*
* @NL80211_MESHCONF_FORWARDING: set Mesh STA as forwarding or non-forwarding
- * or forwarding entity (default is TRUE - forwarding entity)
+ * or forwarding entity (default is TRUE - forwarding entity)
*
* @NL80211_MESHCONF_RSSI_THRESHOLD: RSSI threshold in dBm. This specifies the
- * threshold for average signal strength of candidate station to establish
- * a peer link.
+ * threshold for average signal strength of candidate station to establish
+ * a peer link.
+ *
+ * @NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR: maximum number of neighbors
+ * to synchronize to for 11s default synchronization method
+ * (see 11C.12.2.2)
+ *
+ * @NL80211_MESHCONF_HT_OPMODE: set mesh HT protection mode.
*
* @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute
*
- * @NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR: maximum number of neighbors
- * to synchronize to for 11s default synchronization method (see 11C.12.2.2)
- *
- * @NL80211_MESHCONF_HT_OPMODE: set mesh HT protection mode.
+ * @NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT: The time (in TUs) for
+ * which mesh STAs receiving a proactive PREQ shall consider the forwarding
+ * information to the root mesh STA to be valid.
+ *
+ * @NL80211_MESHCONF_HWMP_ROOT_INTERVAL: The interval of time (in TUs) between
+ * proactive PREQs are transmitted.
+ *
+ * @NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL: The minimum interval of time
+ * (in TUs) during which a mesh STA can send only one Action frame
+ * containing a PREQ element for root path confirmation.
*
* @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
*/
@@ -2184,6 +2278,9 @@
NL80211_MESHCONF_RSSI_THRESHOLD,
NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR,
NL80211_MESHCONF_HT_OPMODE,
+ NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT,
+ NL80211_MESHCONF_HWMP_ROOT_INTERVAL,
+ NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL,
/* keep last */
__NL80211_MESHCONF_ATTR_AFTER_LAST,
@@ -2199,34 +2296,36 @@
* @__NL80211_MESH_SETUP_INVALID: Internal use
*
* @NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL: Enable this option to use a
- * vendor specific path selection algorithm or disable it to use the default
- * HWMP.
+ * vendor specific path selection algorithm or disable it to use the
+ * default HWMP.
*
* @NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC: Enable this option to use a
- * vendor specific path metric or disable it to use the default Airtime
- * metric.
+ * vendor specific path metric or disable it to use the default Airtime
+ * metric.
*
* @NL80211_MESH_SETUP_IE: Information elements for this mesh, for instance, a
- * robust security network ie, or a vendor specific information element that
- * vendors will use to identify the path selection methods and metrics in use.
+ * robust security network ie, or a vendor specific information element
+ * that vendors will use to identify the path selection methods and
+ * metrics in use.
*
* @NL80211_MESH_SETUP_USERSPACE_AUTH: Enable this option if an authentication
- * daemon will be authenticating mesh candidates.
+ * daemon will be authenticating mesh candidates.
*
* @NL80211_MESH_SETUP_USERSPACE_AMPE: Enable this option if an authentication
- * daemon will be securing peer link frames. AMPE is a secured version of Mesh
- * Peering Management (MPM) and is implemented with the assistance of a
- * userspace daemon. When this flag is set, the kernel will send peer
- * management frames to a userspace daemon that will implement AMPE
- * functionality (security capabilities selection, key confirmation, and key
- * management). When the flag is unset (default), the kernel can autonomously
- * complete (unsecured) mesh peering without the need of a userspace daemon.
+ * daemon will be securing peer link frames. AMPE is a secured version of
+ * Mesh Peering Management (MPM) and is implemented with the assistance of
+ * a userspace daemon. When this flag is set, the kernel will send peer
+ * management frames to a userspace daemon that will implement AMPE
+ * functionality (security capabilities selection, key confirmation, and
+ * key management). When the flag is unset (default), the kernel can
+ * autonomously complete (unsecured) mesh peering without the need of a
+ * userspace daemon.
+ *
+ * @NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC: Enable this option to use a
+ * vendor specific synchronization method or disable it to use the default
+ * neighbor offset synchronization
*
* @NL80211_MESH_SETUP_ATTR_MAX: highest possible mesh setup attribute number
- *
- * @NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC: Enable this option to use a
- * vendor specific synchronization method or disable it to use the default
- * neighbor offset synchronization
*
* @__NL80211_MESH_SETUP_ATTR_AFTER_LAST: Internal use
*/
@@ -2490,12 +2589,19 @@
* enum nl80211_band - Frequency band
* @NL80211_BAND_2GHZ: 2.4 GHz ISM band
* @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)
+ * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 64.80 GHz)
*/
enum nl80211_band {
NL80211_BAND_2GHZ,
NL80211_BAND_5GHZ,
-};
-
+ NL80211_BAND_60GHZ,
+};
+
+/**
+ * enum nl80211_ps_state - powersave state
+ * @NL80211_PS_DISABLED: powersave is disabled
+ * @NL80211_PS_ENABLED: powersave is enabled
+ */
enum nl80211_ps_state {
NL80211_PS_DISABLED,
NL80211_PS_ENABLED,
@@ -2513,6 +2619,17 @@
* @NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT: RSSI threshold event
* @NL80211_ATTR_CQM_PKT_LOSS_EVENT: a u32 value indicating that this many
* consecutive packets were not acknowledged by the peer
+ * @NL80211_ATTR_CQM_TXE_RATE: TX error rate in %. Minimum % of TX failures
+ * during the given %NL80211_ATTR_CQM_TXE_INTVL before an
+ * %NL80211_CMD_NOTIFY_CQM with reported %NL80211_ATTR_CQM_TXE_RATE and
+ * %NL80211_ATTR_CQM_TXE_PKTS is generated.
+ * @NL80211_ATTR_CQM_TXE_PKTS: number of attempted packets in a given
+ * %NL80211_ATTR_CQM_TXE_INTVL before %NL80211_ATTR_CQM_TXE_RATE is
+ * checked.
+ * @NL80211_ATTR_CQM_TXE_INTVL: interval in seconds. Specifies the periodic
+ * interval in which %NL80211_ATTR_CQM_TXE_PKTS and
+ * %NL80211_ATTR_CQM_TXE_RATE must be satisfied before generating an
+ * %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting.
* @__NL80211_ATTR_CQM_AFTER_LAST: internal
* @NL80211_ATTR_CQM_MAX: highest key attribute
*/
@@ -2522,6 +2639,9 @@
NL80211_ATTR_CQM_RSSI_HYST,
NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT,
NL80211_ATTR_CQM_PKT_LOSS_EVENT,
+ NL80211_ATTR_CQM_TXE_RATE,
+ NL80211_ATTR_CQM_TXE_PKTS,
+ NL80211_ATTR_CQM_TXE_INTVL,
/* keep last */
__NL80211_ATTR_CQM_AFTER_LAST,
@@ -2534,10 +2654,14 @@
* configured threshold
* @NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH: The RSSI is higher than the
* configured threshold
+ * @NL80211_CQM_RSSI_BEACON_LOSS_EVENT: The device experienced beacon loss.
+ * (Note that deauth/disassoc will still follow if the AP is not
+ * available. This event might get used as roaming event, etc.)
*/
enum nl80211_cqm_rssi_threshold_event {
NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW,
NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH,
+ NL80211_CQM_RSSI_BEACON_LOSS_EVENT,
};
@@ -2867,11 +2991,15 @@
* @NL80211_FEATURE_HT_IBSS: This driver supports IBSS with HT datarates.
* @NL80211_FEATURE_INACTIVITY_TIMER: This driver takes care of freeing up
* the connected inactive stations in AP mode.
+ * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested
+ * to work properly to suppport receiving regulatory hints from
+ * cellular base stations.
*/
enum nl80211_feature_flags {
NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
NL80211_FEATURE_HT_IBSS = 1 << 1,
NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2,
+ NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3,
};
/**
Modified: iw/branches/upstream/current/offch.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/offch.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/offch.c (original)
+++ iw/branches/upstream/current/offch.c Sat Aug 4 14:46:06 2012
@@ -10,7 +10,8 @@
#include "iw.h"
static int offchannel(struct nl80211_state *state, struct nl_cb *cb,
- struct nl_msg *msg, int argc, char **argv)
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
{
char *end;
Modified: iw/branches/upstream/current/phy.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/phy.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/phy.c (original)
+++ iw/branches/upstream/current/phy.c Sat Aug 4 14:46:06 2012
@@ -15,7 +15,8 @@
static int handle_name(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
if (argc != 1)
return 1;
@@ -78,7 +79,8 @@
static int handle_freq(struct nl80211_state *state,
struct nl_cb *cb, struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
return handle_freqchan(msg, false, argc, argv);
}
@@ -91,7 +93,8 @@
static int handle_chan(struct nl80211_state *state,
struct nl_cb *cb, struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
return handle_freqchan(msg, true, argc, argv);
}
@@ -102,7 +105,8 @@
static int handle_fragmentation(struct nl80211_state *state,
struct nl_cb *cb, struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
unsigned int frag;
@@ -133,7 +137,8 @@
static int handle_rts(struct nl80211_state *state,
struct nl_cb *cb, struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
unsigned int rts;
@@ -165,7 +170,8 @@
static int handle_netns(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
char *end;
@@ -192,7 +198,8 @@
static int handle_coverage(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
char *end;
unsigned int coverage;
@@ -223,7 +230,8 @@
static int handle_distance(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
char *end;
unsigned int distance, coverage;
@@ -263,7 +271,8 @@
static int handle_txpower(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
enum nl80211_tx_power_setting type;
int mbm;
@@ -314,7 +323,8 @@
static int handle_antenna(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
char *end;
uint32_t tx_ant = 0, rx_ant = 0;
Modified: iw/branches/upstream/current/ps.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/ps.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/ps.c (original)
+++ iw/branches/upstream/current/ps.c Sat Aug 4 14:46:06 2012
@@ -11,7 +11,8 @@
static int set_power_save(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
enum nl80211_ps_state ps_state;
@@ -71,7 +72,8 @@
static int get_power_save(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM,
print_power_save_handler, NULL);
Modified: iw/branches/upstream/current/reg.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/reg.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/reg.c (original)
+++ iw/branches/upstream/current/reg.c Sat Aug 4 14:46:06 2012
@@ -62,7 +62,8 @@
static int handle_reg_set(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
char alpha2[3];
@@ -182,7 +183,8 @@
static int handle_reg_get(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, print_reg_handler, NULL);
return 0;
Modified: iw/branches/upstream/current/roc.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/roc.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/roc.c (original)
+++ iw/branches/upstream/current/roc.c Sat Aug 4 14:46:06 2012
@@ -14,7 +14,8 @@
SECTION(roc);
static int handle_roc_start(struct nl80211_state *state, struct nl_cb *cb,
- struct nl_msg *msg, int argc, char **argv)
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
{
char *end;
int freq, time;
Modified: iw/branches/upstream/current/scan.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/scan.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/scan.c (original)
+++ iw/branches/upstream/current/scan.c Sat Aug 4 14:46:06 2012
@@ -55,7 +55,8 @@
static int handle_scan(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
struct nl_msg *ssids = NULL, *freqs = NULL;
char *eptr;
@@ -304,6 +305,9 @@
break;
case 6:
printf("AES-128-CMAC");
+ break;
+ case 8:
+ printf("GCMP");
break;
default:
printf("%.02x-%.02x-%.02x:%d",
@@ -1244,7 +1248,8 @@
static int handle_scan_dump(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
if (argc > 1)
return 1;
@@ -1266,7 +1271,8 @@
static int handle_scan_combined(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
char **trig_argv;
static char *dump_argv[] = {
@@ -1300,7 +1306,7 @@
int i;
for (i = 0; i < argc - 2 - (dump_argc - 3); i++)
trig_argv[i + 3] = argv[i + 2 + (dump_argc - 3)];
- err = handle_cmd(state, II_NETDEV, trig_argc, trig_argv);
+ err = handle_cmd(state, id, trig_argc, trig_argv);
free(trig_argv);
if (err)
return err;
@@ -1336,7 +1342,7 @@
}
dump_argv[0] = argv[0];
- return handle_cmd(state, II_NETDEV, dump_argc, dump_argv);
+ return handle_cmd(state, id, dump_argc, dump_argv);
}
TOPLEVEL(scan, "[-u] [freq <freq>*] [ies <hex as 00:11:..>] [ssid <ssid>*|passive]", 0, 0,
CIB_NETDEV, handle_scan_combined,
Modified: iw/branches/upstream/current/station.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/station.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/station.c (original)
+++ iw/branches/upstream/current/station.c Sat Aug 4 14:46:06 2012
@@ -58,6 +58,7 @@
static struct nla_policy rate_policy[NL80211_RATE_INFO_MAX + 1] = {
[NL80211_RATE_INFO_BITRATE] = { .type = NLA_U16 },
+ [NL80211_RATE_INFO_BITRATE32] = { .type = NLA_U32 },
[NL80211_RATE_INFO_MCS] = { .type = NLA_U8 },
[NL80211_RATE_INFO_40_MHZ_WIDTH] = { .type = NLA_FLAG },
[NL80211_RATE_INFO_SHORT_GI] = { .type = NLA_FLAG },
@@ -123,11 +124,14 @@
sinfo[NL80211_STA_INFO_TX_BITRATE], rate_policy)) {
fprintf(stderr, "failed to parse nested rate attributes!\n");
} else {
+ int rate = 0;
printf("\n\ttx bitrate:\t");
- if (rinfo[NL80211_RATE_INFO_BITRATE]) {
- int rate = nla_get_u16(rinfo[NL80211_RATE_INFO_BITRATE]);
+ if (rinfo[NL80211_RATE_INFO_BITRATE32])
+ rate = nla_get_u32(rinfo[NL80211_RATE_INFO_BITRATE32]);
+ else if (rinfo[NL80211_RATE_INFO_BITRATE])
+ rate = nla_get_u16(rinfo[NL80211_RATE_INFO_BITRATE]);
+ if (rate > 0)
printf("%d.%d MBit/s", rate / 10, rate % 10);
- }
if (rinfo[NL80211_RATE_INFO_MCS])
printf(" MCS %d", nla_get_u8(rinfo[NL80211_RATE_INFO_MCS]));
@@ -234,7 +238,8 @@
static int handle_station_get(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
unsigned char mac_addr[ETH_ALEN];
@@ -284,7 +289,8 @@
static int handle_station_set_plink(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
unsigned char plink_action;
unsigned char mac_addr[ETH_ALEN];
@@ -331,9 +337,10 @@
select_station_cmd, station_set_plink);
static int handle_station_set_vlan(struct nl80211_state *state,
- struct nl_cb *cb,
- struct nl_msg *msg,
- int argc, char **argv)
+ struct nl_cb *cb,
+ struct nl_msg *msg,
+ int argc, char **argv,
+ enum id_input id)
{
unsigned char mac_addr[ETH_ALEN];
unsigned long sta_vlan = 0;
@@ -381,7 +388,8 @@
static int handle_station_dump(struct nl80211_state *state,
struct nl_cb *cb,
struct nl_msg *msg,
- int argc, char **argv)
+ int argc, char **argv,
+ enum id_input id)
{
nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, print_sta_handler, NULL);
return 0;
Modified: iw/branches/upstream/current/survey.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/survey.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/survey.c (original)
+++ iw/branches/upstream/current/survey.c Sat Aug 4 14:46:06 2012
@@ -69,9 +69,10 @@
}
static int handle_survey_dump(struct nl80211_state *state,
- struct nl_cb *cb,
- struct nl_msg *msg,
- int argc, char **argv)
+ struct nl_cb *cb,
+ struct nl_msg *msg,
+ int argc, char **argv,
+ enum id_input id)
{
nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, print_survey_handler, NULL);
return 0;
Modified: iw/branches/upstream/current/util.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/util.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/util.c (original)
+++ iw/branches/upstream/current/util.c Sat Aug 4 14:46:06 2012
@@ -269,7 +269,13 @@
return (freq - 2407) / 5;
/* FIXME: dot11ChannelStartingFactor (802.11-2007 17.3.8.3.2) */
- return freq/5 - 1000;
+ if (freq < 45000)
+ return freq/5 - 1000;
+
+ if (freq >= 58320 && freq <= 64800)
+ return (freq - 56160) / 2160;
+
+ return 0;
}
void print_ssid_escaped(const uint8_t len, const uint8_t *data)
Modified: iw/branches/upstream/current/version.sh
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/version.sh?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/version.sh (original)
+++ iw/branches/upstream/current/version.sh Sat Aug 4 14:46:06 2012
@@ -1,6 +1,6 @@
#!/bin/sh
-VERSION="3.5"
+VERSION="3.6"
OUT="$1"
if head=`git rev-parse --verify HEAD 2>/dev/null`; then
Modified: iw/branches/upstream/current/wowlan.c
URL: http://svn.debian.org/wsvn/iw/branches/upstream/current/wowlan.c?rev=1777&op=diff
==============================================================================
--- iw/branches/upstream/current/wowlan.c (original)
+++ iw/branches/upstream/current/wowlan.c Sat Aug 4 14:46:06 2012
@@ -14,7 +14,8 @@
SECTION(wowlan);
static int handle_wowlan_enable(struct nl80211_state *state, struct nl_cb *cb,
- struct nl_msg *msg, int argc, char **argv)
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
{
struct nlattr *wowlan, *pattern;
struct nl_msg *patterns = NULL;
@@ -99,7 +100,8 @@
static int handle_wowlan_disable(struct nl80211_state *state, struct nl_cb *cb,
- struct nl_msg *msg, int argc, char **argv)
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
{
/* just a set w/o wowlan attribute */
return 0;
@@ -185,7 +187,8 @@
}
static int handle_wowlan_show(struct nl80211_state *state, struct nl_cb *cb,
- struct nl_msg *msg, int argc, char **argv)
+ struct nl_msg *msg, int argc, char **argv,
+ enum id_input id)
{
nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM,
print_wowlan_handler, NULL);
More information about the Pkg-wpa-devel
mailing list