[PATCH] libertas: remove private ioctls
Signed-off-by: Christoph Hellwig <hch@infradead.org> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
18c96c3497
commit
7dcf5284d1
|
@ -2,7 +2,7 @@ libertas-objs := main.o fw.o wext.o \
|
||||||
rx.o tx.o cmd.o \
|
rx.o tx.o cmd.o \
|
||||||
cmdresp.o scan.o \
|
cmdresp.o scan.o \
|
||||||
join.o 11d.o \
|
join.o 11d.o \
|
||||||
ioctl.o debugfs.o \
|
debugfs.o \
|
||||||
ethtool.o assoc.o
|
ethtool.o assoc.o
|
||||||
|
|
||||||
usb8xxx-objs += if_bootcmd.o
|
usb8xxx-objs += if_bootcmd.o
|
||||||
|
|
|
@ -28,281 +28,6 @@ DRIVER LOADING
|
||||||
|
|
||||||
insmod usb8388.ko [fw_name=usb8388.bin]
|
insmod usb8388.ko [fw_name=usb8388.bin]
|
||||||
|
|
||||||
=====================
|
|
||||||
IWPRIV COMMAND
|
|
||||||
=====================
|
|
||||||
|
|
||||||
NAME
|
|
||||||
This manual describes the usage of private commands used in Marvell WLAN
|
|
||||||
Linux Driver. All the commands available in Wlanconfig will not be available
|
|
||||||
in the iwpriv.
|
|
||||||
|
|
||||||
SYNOPSIS
|
|
||||||
iwpriv <ethX> <command> [sub-command] ...
|
|
||||||
|
|
||||||
iwpriv ethX setregioncode <n>
|
|
||||||
iwpriv ethX getregioncode
|
|
||||||
|
|
||||||
Version 5 Command:
|
|
||||||
iwpriv ethX ledgpio <n>
|
|
||||||
|
|
||||||
BT Commands:
|
|
||||||
The blinding table (BT) contains a list of mac addresses that will be,
|
|
||||||
by default, ignored by the firmware. It is also possible to invert this
|
|
||||||
behavior so that we will ignore all traffic except for the portion
|
|
||||||
coming from mac addresess in the list. It is primarily used for
|
|
||||||
debugging and testing networks. It can be edited and inspected with
|
|
||||||
the following commands:
|
|
||||||
|
|
||||||
iwpriv ethX bt_reset
|
|
||||||
iwpriv ethX bt_add <mac_address>
|
|
||||||
iwpriv ethX bt_del <mac_address>
|
|
||||||
iwpriv ethX bt_list <id>
|
|
||||||
iwpriv ethX bt_get_invert <n>
|
|
||||||
iwpriv ethX bt_set_invert <n>
|
|
||||||
|
|
||||||
FWT Commands:
|
|
||||||
The forwarding table (FWT) is a feature used to manage mesh network
|
|
||||||
routing in the firmware. The FWT is essentially a routing table that
|
|
||||||
associates a destination mac address (da) with a next hop receiver
|
|
||||||
address (ra). The FWT can be inspected and edited with the following
|
|
||||||
iwpriv commands, which are described in greater detail below.
|
|
||||||
Eventually, the table will be automatically maintained by a custom
|
|
||||||
routing protocol.
|
|
||||||
|
|
||||||
NOTE: FWT commands replace the previous DFT commands. What were the DFT
|
|
||||||
commands?, you might ask. They were an earlier API to the firmware that
|
|
||||||
implemented a simple MAC-layer forwarding mechanism. In the unlikely
|
|
||||||
event that you were using these commands, you must migrate to the new
|
|
||||||
FWT commands which can be used to achieve the same functionality.
|
|
||||||
|
|
||||||
iwpriv ethX fwt_add [parameters]
|
|
||||||
iwpriv ethX fwt_del [parameters]
|
|
||||||
iwpriv ethX fwt_lookup [parameters]
|
|
||||||
iwpriv ethX fwt_list [parameters]
|
|
||||||
iwpriv ethX fwt_list_route [parameters]
|
|
||||||
iwpriv ethX fwt_list_neigh [parameters]
|
|
||||||
iwpriv ethX fwt_reset [parameters]
|
|
||||||
iwpriv ethX fwt_cleanup
|
|
||||||
iwpriv ethX fwt_time
|
|
||||||
|
|
||||||
MESH Commands:
|
|
||||||
|
|
||||||
The MESH commands are used to configure various features of the mesh
|
|
||||||
routing protocol. The following commands are supported:
|
|
||||||
|
|
||||||
iwpriv ethX mesh_get_ttl
|
|
||||||
iwpriv ethX mesh_set_ttl ttl
|
|
||||||
|
|
||||||
DESCRIPTION
|
|
||||||
Those commands are used to send additional commands to the Marvell WLAN
|
|
||||||
card via the Linux device driver.
|
|
||||||
|
|
||||||
The ethX parameter specifies the network device that is to be used to
|
|
||||||
perform this command on. it could be eth0, eth1 etc.
|
|
||||||
|
|
||||||
setregioncode
|
|
||||||
This command is used to set the region code in the station.
|
|
||||||
where value is 'region code' for various regions like
|
|
||||||
USA FCC, Canada IC, Spain, France, Europe ETSI, Japan ...
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
iwpriv ethX setregioncode 0x10: set region code to USA (0x10).
|
|
||||||
|
|
||||||
getregioncode
|
|
||||||
This command is used to get the region code information set in the
|
|
||||||
station.
|
|
||||||
|
|
||||||
ledgpio
|
|
||||||
This command is used to set/get LEDs.
|
|
||||||
|
|
||||||
iwpriv ethX ledgpio <LEDs>
|
|
||||||
will set the corresponding LED for the GPIO Line.
|
|
||||||
|
|
||||||
iwpriv ethX ledgpio
|
|
||||||
will give u which LEDs are Enabled.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
iwpriv eth1 ledgpio 1 0 2 1 3 4
|
|
||||||
will enable
|
|
||||||
LED 1 -> GPIO 0
|
|
||||||
LED 2 -> GPIO 1
|
|
||||||
LED 3 -> GPIO 4
|
|
||||||
|
|
||||||
iwpriv eth1 ledgpio
|
|
||||||
shows LED information in the format as mentioned above.
|
|
||||||
|
|
||||||
Note: LED0 is invalid
|
|
||||||
Note: Maximum Number of LEDs are 16.
|
|
||||||
|
|
||||||
fwt_add
|
|
||||||
This command is used to insert an entry into the FWT table. The list of
|
|
||||||
parameters must follow the following structure:
|
|
||||||
|
|
||||||
iwpriv ethX fwt_add da ra [metric dir rate ssn dsn hopcount ttl expiration sleepmode snr]
|
|
||||||
|
|
||||||
The parameters between brackets are optional, but they must appear in
|
|
||||||
the order specified. For example, if you want to specify the metric,
|
|
||||||
you must also specify the dir, ssn, and dsn but you need not specify the
|
|
||||||
hopcount, expiration, sleepmode, or snr. Any unspecified parameters
|
|
||||||
will be assigned the defaults specified below.
|
|
||||||
|
|
||||||
The different parameters are:-
|
|
||||||
da -- DA MAC address in the form 00:11:22:33:44:55
|
|
||||||
ra -- RA MAC address in the form 00:11:22:33:44:55
|
|
||||||
metric -- route metric (cost: smaller-metric routes are
|
|
||||||
preferred, default is 0)
|
|
||||||
dir -- direction (1 for direct, 0 for reverse,
|
|
||||||
default is 1)
|
|
||||||
rate -- data rate used for transmission to the RA,
|
|
||||||
as specified for the rateadapt command,
|
|
||||||
default is 3 (11Mbps)
|
|
||||||
ssn -- Source Sequence Number (time at the RA for
|
|
||||||
reverse routes. Default is 0)
|
|
||||||
dsn -- Destination Sequence Number (time at the DA
|
|
||||||
for direct routes. Default is 0)
|
|
||||||
hopcount -- hop count (currently unused, default is 0)
|
|
||||||
ttl -- TTL (Only used in reverse entries)
|
|
||||||
expiration -- entry expiration (in ticks, where a tick is
|
|
||||||
1024us, or ~ 1ms. Use 0 for an indefinite
|
|
||||||
entry, default is 0)
|
|
||||||
sleepmode -- RA's sleep mode (currently unused, default is
|
|
||||||
0)
|
|
||||||
snr -- SNR in the link to RA (currently unused,
|
|
||||||
default is 0)
|
|
||||||
|
|
||||||
The command does not return anything.
|
|
||||||
|
|
||||||
fwt_del
|
|
||||||
This command is used to remove an entry to the FWT table. The list of
|
|
||||||
parameters must follow the following structure:
|
|
||||||
|
|
||||||
iwpriv ethX fwt_del da ra [dir]
|
|
||||||
|
|
||||||
where the different parameters are:-
|
|
||||||
da -- DA MAC address (in the form "00:11:22:33:44:55")
|
|
||||||
ra -- RA MAC address (in the form "00:11:22:33:44:55")
|
|
||||||
dir -- direction (1 for direct, 0 for reverse,
|
|
||||||
default is 1)
|
|
||||||
|
|
||||||
The command does not return anything.
|
|
||||||
|
|
||||||
fwt_lookup
|
|
||||||
This command is used to get the best route in the FWT table to a given
|
|
||||||
host. The only parameter is the MAC address of the host that is being
|
|
||||||
looked for.
|
|
||||||
|
|
||||||
iwpriv ethX fwt_lookup da
|
|
||||||
|
|
||||||
where:-
|
|
||||||
da -- DA MAC address (in the form "00:11:22:33:44:55")
|
|
||||||
|
|
||||||
The command returns an output string identical to the one returned by
|
|
||||||
fwt_list described below.
|
|
||||||
|
|
||||||
|
|
||||||
fwt_list
|
|
||||||
This command is used to list a route from the FWT table. The only
|
|
||||||
parameter is the index into the table. If you want to list all the
|
|
||||||
routes in a table, start with index=0, and keep listing until you get a
|
|
||||||
"(null)" string. Note that the indicies may change as the fwt is
|
|
||||||
updated. It is expected that most users will not use fwt_list directly,
|
|
||||||
but that a utility similar to the traditional route command will be used
|
|
||||||
to invoke fwt_list over and over.
|
|
||||||
|
|
||||||
iwpriv ethX fwt_list index
|
|
||||||
|
|
||||||
The output is a string of the following form:
|
|
||||||
|
|
||||||
da ra valid metric dir rate ssn dsn hopcount ttl expiration
|
|
||||||
sleepmode snr precursor
|
|
||||||
|
|
||||||
where the different fields are:-
|
|
||||||
da -- DA MAC address (in the form "00:11:22:33:44:55")
|
|
||||||
ra -- RA MAC address (in the form "00:11:22:33:44:55")
|
|
||||||
valid -- whether the route is valid (0 if not valid)
|
|
||||||
metric -- route metric (cost: smaller-metric routes are preferred)
|
|
||||||
dir -- direction (1 for direct, 0 for reverse)
|
|
||||||
rate -- data rate used for transmission to the RA,
|
|
||||||
as specified for the rateadapt command
|
|
||||||
ssn -- Source Sequence Number (time at the RA for reverse routes)
|
|
||||||
dsn -- Destination Sequence Number (time at the DA for direct routes)
|
|
||||||
hopcount -- hop count (currently unused)
|
|
||||||
ttl -- TTL (only used in reverse entries)
|
|
||||||
expiration -- entry expiration (in ticks, where a tick is 1024us, or ~ 1ms. Use 0 for an indefinite entry)
|
|
||||||
sleepmode -- RA's sleep mode (currently unused)
|
|
||||||
snr -- SNR in the link to RA (currently unused)
|
|
||||||
precursor -- predecessor in direct routes
|
|
||||||
|
|
||||||
fwt_list_route
|
|
||||||
This command is equivalent to fwt_list.
|
|
||||||
|
|
||||||
fwt_list_neigh
|
|
||||||
This command is used to list a neighbor from the FWT table. The only
|
|
||||||
parameter is the neighbor ID. If you want to list all the neighbors in a
|
|
||||||
table, start with nid=0, and keep incrementing nid until you get a
|
|
||||||
"(null)" string. Note that the nid from a fwt_list_route command can be
|
|
||||||
used as an input to this command. Also note that this command is meant
|
|
||||||
mostly for debugging. It is expected that users will use fwt_lookup.
|
|
||||||
One important reason for this is that the neighbor id may change as the
|
|
||||||
neighbor table is altered.
|
|
||||||
|
|
||||||
iwpriv ethX fwt_list_neigh nid
|
|
||||||
|
|
||||||
The output is a string of the following form:
|
|
||||||
|
|
||||||
ra sleepmode snr references
|
|
||||||
|
|
||||||
where the different fields are:-
|
|
||||||
ra -- RA MAC address (in the form "00:11:22:33:44:55")
|
|
||||||
sleepmode -- RA's sleep mode (currently unused)
|
|
||||||
snr -- SNR in the link to RA (currently unused)
|
|
||||||
references -- RA's reference counter
|
|
||||||
|
|
||||||
fwt_reset
|
|
||||||
This command is used to reset the FWT table, getting rid of all the
|
|
||||||
entries. There are no input parameters.
|
|
||||||
|
|
||||||
iwpriv ethX fwt_reset
|
|
||||||
|
|
||||||
The command does not return anything.
|
|
||||||
|
|
||||||
fwt_cleanup
|
|
||||||
This command is used to perform user-based garbage recollection. The
|
|
||||||
FWT table is checked, and all the entries that are expired or invalid
|
|
||||||
are cleaned. Note that this is exported to the driver for debugging
|
|
||||||
purposes, as garbage collection is also fired by the firmware when in
|
|
||||||
space problems. There are no input parameters.
|
|
||||||
|
|
||||||
iwpriv ethX fwt_cleanup
|
|
||||||
|
|
||||||
The command does returns the number of invalid/expired routes deleted.
|
|
||||||
|
|
||||||
fwt_time
|
|
||||||
This command returns a card's internal time representation. It is this
|
|
||||||
time that is used to represent the expiration times of FWT entries. The
|
|
||||||
number is not consistent from card to card; it is simply a timer count.
|
|
||||||
The fwt_time command is used to inspect the timer so that expiration
|
|
||||||
times reported by fwt_list can be properly interpreted.
|
|
||||||
|
|
||||||
iwpriv ethX fwt_time
|
|
||||||
|
|
||||||
mesh_get_ttl
|
|
||||||
|
|
||||||
The mesh ttl is the number of hops a mesh packet can traverse before it
|
|
||||||
is dropped. This parameter is used to prevent infinite loops in the
|
|
||||||
mesh network. The value returned by this function is the ttl assigned
|
|
||||||
to all mesh packets. Currently there is no way to control the ttl on a
|
|
||||||
per packet or per socket basis.
|
|
||||||
|
|
||||||
iwpriv ethX mesh_get_ttl
|
|
||||||
|
|
||||||
mesh_set_ttl ttl
|
|
||||||
|
|
||||||
Set the ttl. The argument must be between 0 and 255.
|
|
||||||
|
|
||||||
iwpriv ethX mesh_set_ttl <ttl>
|
|
||||||
|
|
||||||
=========================
|
=========================
|
||||||
ETHTOOL
|
ETHTOOL
|
||||||
=========================
|
=========================
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -801,7 +801,6 @@ wlan_private *libertas_add_card(void *card, struct device *dmdev)
|
||||||
dev->open = wlan_open;
|
dev->open = wlan_open;
|
||||||
dev->hard_start_xmit = wlan_pre_start_xmit;
|
dev->hard_start_xmit = wlan_pre_start_xmit;
|
||||||
dev->stop = wlan_close;
|
dev->stop = wlan_close;
|
||||||
dev->do_ioctl = libertas_do_ioctl;
|
|
||||||
dev->set_mac_address = wlan_set_mac_address;
|
dev->set_mac_address = wlan_set_mac_address;
|
||||||
dev->tx_timeout = wlan_tx_timeout;
|
dev->tx_timeout = wlan_tx_timeout;
|
||||||
dev->get_stats = wlan_get_stats;
|
dev->get_stats = wlan_get_stats;
|
||||||
|
@ -920,7 +919,6 @@ int libertas_add_mesh(wlan_private *priv, struct device *dev)
|
||||||
mesh_dev->open = mesh_open;
|
mesh_dev->open = mesh_open;
|
||||||
mesh_dev->hard_start_xmit = mesh_pre_start_xmit;
|
mesh_dev->hard_start_xmit = mesh_pre_start_xmit;
|
||||||
mesh_dev->stop = mesh_close;
|
mesh_dev->stop = mesh_close;
|
||||||
mesh_dev->do_ioctl = libertas_do_ioctl;
|
|
||||||
mesh_dev->get_stats = wlan_get_stats;
|
mesh_dev->get_stats = wlan_get_stats;
|
||||||
mesh_dev->set_mac_address = wlan_set_mac_address;
|
mesh_dev->set_mac_address = wlan_set_mac_address;
|
||||||
mesh_dev->ethtool_ops = &libertas_ethtool_ops;
|
mesh_dev->ethtool_ops = &libertas_ethtool_ops;
|
||||||
|
|
|
@ -913,148 +913,6 @@ out:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* iwpriv settable callbacks
|
|
||||||
*/
|
|
||||||
|
|
||||||
static const iw_handler wlan_private_handler[] = {
|
|
||||||
NULL, /* SIOCIWFIRSTPRIV */
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct iw_priv_args wlan_private_args[] = {
|
|
||||||
/*
|
|
||||||
* { cmd, set_args, get_args, name }
|
|
||||||
*/
|
|
||||||
/* Using iwpriv sub-command feature */
|
|
||||||
{
|
|
||||||
WLAN_SETONEINT_GETNONE, /* IOCTL: 24 */
|
|
||||||
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
""},
|
|
||||||
{
|
|
||||||
WLANSETREGION,
|
|
||||||
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
"setregioncode"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_MESH_SET_TTL,
|
|
||||||
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
"mesh_set_ttl"},
|
|
||||||
{
|
|
||||||
WLAN_SETNONE_GETONEINT,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
|
|
||||||
""},
|
|
||||||
{
|
|
||||||
WLANGETREGION,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
|
|
||||||
"getregioncode"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_FWT_CLEANUP,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
|
|
||||||
"fwt_cleanup"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_FWT_TIME,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
|
|
||||||
"fwt_time"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_MESH_GET_TTL,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
|
|
||||||
"mesh_get_ttl"},
|
|
||||||
{
|
|
||||||
WLAN_SETNONE_GETNONE,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
""},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_FWT_RESET,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
"fwt_reset"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_BT_RESET,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
"bt_reset"},
|
|
||||||
{
|
|
||||||
WLAN_SET128CHAR_GET128CHAR,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
""},
|
|
||||||
/* BT Management */
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_BT_ADD,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
"bt_add"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_BT_DEL,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
"bt_del"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_BT_LIST,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
"bt_list"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_BT_SET_INVERT,
|
|
||||||
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
"bt_set_invert"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_BT_GET_INVERT,
|
|
||||||
IW_PRIV_TYPE_NONE,
|
|
||||||
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
|
|
||||||
"bt_get_invert"},
|
|
||||||
/* FWT Management */
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_FWT_ADD,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
"fwt_add"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_FWT_DEL,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
"fwt_del"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_FWT_LOOKUP,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
"fwt_lookup"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_FWT_LIST_NEIGHBOR,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
"fwt_list_neigh"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_FWT_LIST,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
"fwt_list"},
|
|
||||||
{
|
|
||||||
WLAN_SUBCMD_FWT_LIST_ROUTE,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
IW_PRIV_TYPE_CHAR | 128,
|
|
||||||
"fwt_list_route"},
|
|
||||||
{
|
|
||||||
WLAN_SET_GET_SIXTEEN_INT,
|
|
||||||
IW_PRIV_TYPE_INT | 16,
|
|
||||||
IW_PRIV_TYPE_INT | 16,
|
|
||||||
""},
|
|
||||||
{
|
|
||||||
WLAN_LED_GPIO_CTRL,
|
|
||||||
IW_PRIV_TYPE_INT | 16,
|
|
||||||
IW_PRIV_TYPE_INT | 16,
|
|
||||||
"ledgpio"},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct iw_statistics *wlan_get_wireless_stats(struct net_device *dev)
|
static struct iw_statistics *wlan_get_wireless_stats(struct net_device *dev)
|
||||||
{
|
{
|
||||||
enum {
|
enum {
|
||||||
|
@ -2444,22 +2302,12 @@ static const iw_handler mesh_wlan_handler[] = {
|
||||||
};
|
};
|
||||||
struct iw_handler_def libertas_handler_def = {
|
struct iw_handler_def libertas_handler_def = {
|
||||||
.num_standard = sizeof(wlan_handler) / sizeof(iw_handler),
|
.num_standard = sizeof(wlan_handler) / sizeof(iw_handler),
|
||||||
.num_private = sizeof(wlan_private_handler) / sizeof(iw_handler),
|
|
||||||
.num_private_args = sizeof(wlan_private_args) /
|
|
||||||
sizeof(struct iw_priv_args),
|
|
||||||
.standard = (iw_handler *) wlan_handler,
|
.standard = (iw_handler *) wlan_handler,
|
||||||
.private = (iw_handler *) wlan_private_handler,
|
|
||||||
.private_args = (struct iw_priv_args *)wlan_private_args,
|
|
||||||
.get_wireless_stats = wlan_get_wireless_stats,
|
.get_wireless_stats = wlan_get_wireless_stats,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct iw_handler_def mesh_handler_def = {
|
struct iw_handler_def mesh_handler_def = {
|
||||||
.num_standard = sizeof(mesh_wlan_handler) / sizeof(iw_handler),
|
.num_standard = sizeof(mesh_wlan_handler) / sizeof(iw_handler),
|
||||||
.num_private = sizeof(wlan_private_handler) / sizeof(iw_handler),
|
|
||||||
.num_private_args = sizeof(wlan_private_args) /
|
|
||||||
sizeof(struct iw_priv_args),
|
|
||||||
.standard = (iw_handler *) mesh_wlan_handler,
|
.standard = (iw_handler *) mesh_wlan_handler,
|
||||||
.private = (iw_handler *) wlan_private_handler,
|
|
||||||
.private_args = (struct iw_priv_args *)wlan_private_args,
|
|
||||||
.get_wireless_stats = wlan_get_wireless_stats,
|
.get_wireless_stats = wlan_get_wireless_stats,
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,45 +7,6 @@
|
||||||
#define SUBCMD_OFFSET 4
|
#define SUBCMD_OFFSET 4
|
||||||
#define SUBCMD_DATA(x) *((int *)(x->u.name + SUBCMD_OFFSET))
|
#define SUBCMD_DATA(x) *((int *)(x->u.name + SUBCMD_OFFSET))
|
||||||
|
|
||||||
/** PRIVATE CMD ID */
|
|
||||||
#define WLANIOCTL SIOCIWFIRSTPRIV
|
|
||||||
|
|
||||||
#define WLAN_SETNONE_GETNONE (WLANIOCTL + 8)
|
|
||||||
#define WLAN_SUBCMD_BT_RESET 13
|
|
||||||
#define WLAN_SUBCMD_FWT_RESET 14
|
|
||||||
|
|
||||||
#define WLAN_SETNONE_GETONEINT (WLANIOCTL + 15)
|
|
||||||
#define WLANGETREGION 1
|
|
||||||
|
|
||||||
#define WLAN_SUBCMD_FWT_CLEANUP 15
|
|
||||||
#define WLAN_SUBCMD_FWT_TIME 16
|
|
||||||
#define WLAN_SUBCMD_MESH_GET_TTL 17
|
|
||||||
#define WLAN_SUBCMD_BT_GET_INVERT 18
|
|
||||||
|
|
||||||
#define WLAN_SETONEINT_GETNONE (WLANIOCTL + 24)
|
|
||||||
#define WLANSETREGION 8
|
|
||||||
#define WLAN_SUBCMD_MESH_SET_TTL 18
|
|
||||||
#define WLAN_SUBCMD_BT_SET_INVERT 19
|
|
||||||
|
|
||||||
#define WLAN_SET128CHAR_GET128CHAR (WLANIOCTL + 25)
|
|
||||||
#define WLAN_SUBCMD_BT_ADD 18
|
|
||||||
#define WLAN_SUBCMD_BT_DEL 19
|
|
||||||
#define WLAN_SUBCMD_BT_LIST 20
|
|
||||||
#define WLAN_SUBCMD_FWT_ADD 21
|
|
||||||
#define WLAN_SUBCMD_FWT_DEL 22
|
|
||||||
#define WLAN_SUBCMD_FWT_LOOKUP 23
|
|
||||||
#define WLAN_SUBCMD_FWT_LIST_NEIGHBOR 24
|
|
||||||
#define WLAN_SUBCMD_FWT_LIST 25
|
|
||||||
#define WLAN_SUBCMD_FWT_LIST_ROUTE 26
|
|
||||||
|
|
||||||
#define WLAN_SET_GET_SIXTEEN_INT (WLANIOCTL + 29)
|
|
||||||
#define WLAN_LED_GPIO_CTRL 5
|
|
||||||
|
|
||||||
#define WLAN_LINKMODE_802_3 0
|
|
||||||
#define WLAN_LINKMODE_802_11 2
|
|
||||||
#define WLAN_RADIOMODE_NONE 0
|
|
||||||
#define WLAN_RADIOMODE_RADIOTAP 2
|
|
||||||
|
|
||||||
/** wlan_ioctl_regrdwr */
|
/** wlan_ioctl_regrdwr */
|
||||||
struct wlan_ioctl_regrdwr {
|
struct wlan_ioctl_regrdwr {
|
||||||
/** Which register to access */
|
/** Which register to access */
|
||||||
|
@ -57,9 +18,13 @@ struct wlan_ioctl_regrdwr {
|
||||||
u32 value;
|
u32 value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define WLAN_LINKMODE_802_3 0
|
||||||
|
#define WLAN_LINKMODE_802_11 2
|
||||||
|
#define WLAN_RADIOMODE_NONE 0
|
||||||
|
#define WLAN_RADIOMODE_RADIOTAP 2
|
||||||
|
|
||||||
extern struct iw_handler_def libertas_handler_def;
|
extern struct iw_handler_def libertas_handler_def;
|
||||||
extern struct iw_handler_def mesh_handler_def;
|
extern struct iw_handler_def mesh_handler_def;
|
||||||
int libertas_do_ioctl(struct net_device *dev, struct ifreq *req, int i);
|
|
||||||
int wlan_radio_ioctl(wlan_private * priv, u8 option);
|
int wlan_radio_ioctl(wlan_private * priv, u8 option);
|
||||||
|
|
||||||
#endif /* _WLAN_WEXT_H_ */
|
#endif /* _WLAN_WEXT_H_ */
|
||||||
|
|
Loading…
Reference in New Issue