876c9d3aeb
Add the Marvell Libertas 8388 802.11 USB driver. Signed-off-by: Marcelo Tosatti <marcelo@kvack.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
1044 lines
30 KiB
Text
1044 lines
30 KiB
Text
================================================================================
|
|
README for USB8388
|
|
|
|
(c) Copyright © 2003-2006, Marvell International Ltd.
|
|
All Rights Reserved
|
|
|
|
This software file (the "File") is distributed by Marvell International
|
|
Ltd. under the terms of the GNU General Public License Version 2, June 1991
|
|
(the "License"). You may use, redistribute and/or modify this File in
|
|
accordance with the terms and conditions of the License, a copy of which
|
|
is available along with the File in the license.txt file or by writing to
|
|
the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
|
|
|
|
THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
|
|
IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
|
|
ARE EXPRESSLY DISCLAIMED. The License provides additional details about
|
|
this warranty disclaimer.
|
|
================================================================================
|
|
|
|
=====================
|
|
DRIVER LOADING
|
|
=====================
|
|
|
|
o. Copy the firmware image (e.g. usb8388.bin) to /lib/firmware/
|
|
|
|
o. Load driver by using the following command:
|
|
|
|
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 version
|
|
iwpriv ethX scantype [sub-command]
|
|
iwpriv ethX getSNR <n>
|
|
iwpriv ethX getNF <n>
|
|
iwpriv ethX getRSSI <n>
|
|
iwpriv ethX setrxant <n>
|
|
iwpriv ethX getrxant
|
|
iwpriv ethX settxant <n>
|
|
iwpriv ethX gettxant
|
|
iwpriv ethX authalgs <n>
|
|
iwpriv ethX pre-TBTT <n>
|
|
iwpriv ethX 8021xauthalgs <n>
|
|
iwpriv ethX encryptionmode <n>
|
|
iwpriv ethX setregioncode <n>
|
|
iwpriv ethX getregioncode
|
|
iwpriv ethX setbcnavg <n>
|
|
iwpriv ethX getbcnavg
|
|
iwpriv ethX setdataavg <n>
|
|
iwpriv ethX setlisteninter <n>
|
|
iwpriv ethX getlisteninter
|
|
iwpriv ethX setmultipledtim <n>
|
|
iwpriv ethX getmultipledtim
|
|
iwpriv ethX atimwindow <n>
|
|
iwpriv ethX deauth
|
|
iwpriv ethX adhocstop
|
|
iwpriv ethX radioon
|
|
iwpriv ethX radiooff
|
|
iwpriv ethX reasso-on
|
|
iwpriv ethX reasso-off
|
|
iwpriv ethX scanmode [sub-command]
|
|
iwpriv ethX setwpaie <n>
|
|
iwpriv ethX wlanidle-off
|
|
iwpriv ethX wlanidle-on
|
|
iwpriv ethX getcis
|
|
iwpriv ethX getlog
|
|
iwpriv ethX getadhocstatus
|
|
iwpriv ethX adhocgrate <n>
|
|
|
|
Version 4 Command:
|
|
iwpriv ethX inactvityto <n>
|
|
iwpriv ethX sleeppd <n>
|
|
iwpriv ethX enable11d <n>
|
|
iwpriv ethX tpccfg <n>
|
|
iwpriv ethX powercfg <n>
|
|
iwpriv ethX setafc <n>
|
|
iwpriv ethX getafc
|
|
|
|
Version 5 Command:
|
|
iwpriv ethX ledgpio <n>
|
|
iwpriv ethX scanprobes <n>
|
|
iwpriv ethX lolisteninter <n>
|
|
iwpriv ethX rateadapt <n> <m>
|
|
iwpriv ethX txcontrol <n>
|
|
iwpriv ethX psnullinterval <n>
|
|
iwpriv ethX prescan <n>
|
|
iwpriv ethX getrxinfo
|
|
iwpriv ethX gettxrate
|
|
iwpriv ethX beaconinterval
|
|
|
|
BT Commands:
|
|
The blinding table (BT) contains a list of mac addresses that should be
|
|
ignored by the firmware. 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>
|
|
|
|
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.
|
|
|
|
version
|
|
This is used to get the current version of the driver and the firmware.
|
|
|
|
scantype
|
|
This command is used to set the scan type to be used by the driver in
|
|
the scan command. This setting will not be used while performing a scan
|
|
for a specific SSID, as it is always done with scan type being active.
|
|
|
|
where the sub-commands are: -
|
|
active -- to set the scan type to active
|
|
passive -- to set the scan type to passive
|
|
get -- to get the scan type set in the driver
|
|
|
|
getSNR
|
|
This command gets the average and non average value of Signal to Noise
|
|
Ratio of Beacon and Data.
|
|
|
|
where value is:-
|
|
0 -- Beacon non-average.
|
|
1 -- Beacon average.
|
|
2 -- Data non-average.
|
|
3 -- Data average.
|
|
|
|
If no value is given, all four values are returned in the order mentioned
|
|
above.
|
|
|
|
Note: This command is available only when STA is connected.
|
|
|
|
getRSSI
|
|
This command gets the average and non average value os Receive Signal
|
|
Strength of Beacon and Data.
|
|
|
|
where value is:-
|
|
0 -- Beacon non-average.
|
|
1 -- Beacon average.
|
|
2 -- Data non-average.
|
|
3 -- Data average.
|
|
|
|
Note: This command is available only when STA is connected.
|
|
|
|
getNF
|
|
This command gets the average and non average value of Noise Floor of
|
|
Beacon and Data.
|
|
|
|
where value is:-
|
|
0 -- Beacon non-average.
|
|
1 -- Beacon average.
|
|
2 -- Data non-average.
|
|
3 -- Data average.
|
|
|
|
Note: This command is available only when STA is connected.
|
|
|
|
setrxant
|
|
This command is used to set the mode for Rx antenna.
|
|
|
|
The options that can be sent are:-
|
|
1 -- Antenna 1.
|
|
2 -- Antenna 2.
|
|
0xFFFF -- Diversity.
|
|
|
|
Usage:
|
|
iwpriv ethX setrxant 0x01: select Antenna 1.
|
|
|
|
getrxant
|
|
This command is used to get the mode for Rx antenna.
|
|
|
|
|
|
settxant
|
|
This command is used to set the mode for Tx antenna.
|
|
The options that can be sent are:-
|
|
1 -- Antenna 1.
|
|
2 -- Antenna 2.
|
|
0xFFFF -- Diversity.
|
|
Usage:
|
|
iwpriv ethX settxant 0x01: select Antenna 1.
|
|
|
|
gettxant
|
|
This command is used to get the mode for Tx antenna.
|
|
|
|
authalgs
|
|
This command is used by the WPA supplicant to set the authentication
|
|
algorithms in the station.
|
|
|
|
8021xauthalgs
|
|
This command is used by the WPA supplicant to set the 8021.x authentication algorithm type
|
|
station.
|
|
|
|
where values can be:-
|
|
1 -- None
|
|
2 -- LEAP
|
|
4 -- TLS
|
|
8 -- TTLs
|
|
16 -- MD5
|
|
|
|
|
|
encryptionmode
|
|
This command is used by the WPA supplicant to set the encryption algorithm.
|
|
|
|
where values can be:-
|
|
0 -- NONE
|
|
1 -- WEP40
|
|
2 -- TKIP
|
|
3 -- CCMP
|
|
4 -- WEP104
|
|
|
|
pre-TBTT
|
|
This command is used to set pre-TBTT time period where value is in microseconds.
|
|
|
|
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.
|
|
|
|
setbcnavg
|
|
Set the weighting factor for calculating RSSI.
|
|
|
|
getbcnavg
|
|
Get weighting factor for calculating RSSI.
|
|
|
|
setdataavg
|
|
Set the weighting factor for calculating SNR.
|
|
|
|
setlisteninter
|
|
This command is used to set the listen interval in the
|
|
station.
|
|
|
|
where the value ranges between 1 - 255
|
|
|
|
getlisteninter
|
|
This command is used to get the listen interval value set in the
|
|
station.
|
|
|
|
setmultipledtim
|
|
This command is used to set the multiple dtim value in the
|
|
station.
|
|
where the value is 1,2,3,4,5,0xfffe
|
|
0xfffe means the firmware will use listen interval in association
|
|
command for waking up
|
|
|
|
getmultipledtim
|
|
This command is used to get the multiple dtim value set in the station.
|
|
|
|
atimwindow
|
|
This command is used to set the atim value in the
|
|
station.
|
|
|
|
where the value ranges between 0 - 50
|
|
|
|
deauth
|
|
This command is used to send the de-authentication to the AP with which
|
|
the station is associated. This command is valid only when
|
|
station is in Infrastructure mode.
|
|
|
|
Note: This command is available only when STA is connected.
|
|
|
|
adhocstop
|
|
This command is used to stop beacon transmission from the station and
|
|
go into idle state in ad-hoc mode.
|
|
|
|
Note: This command is available only when STA is connected.
|
|
|
|
radioon
|
|
This command is used to turn on the RF antenna.
|
|
|
|
radiooff
|
|
This command is sued to turn off the RF antenna.
|
|
|
|
scanmode
|
|
This command is used to set the station to scan for either IBSS
|
|
networks or BSS networks or both BSS and IBSS networks. This
|
|
command can be used with sub commands,
|
|
|
|
where the value for
|
|
bss -- Scan All the BSS networks.
|
|
ibss -- Scan All the IBSS networks.
|
|
any -- Scan both BSS and IBSS networks.
|
|
|
|
|
|
|
|
setwpaie
|
|
This command is used by WPA supplicant to send the WPA-IE to the driver.
|
|
|
|
wlanidle-off
|
|
This command is used to get into idle state.
|
|
|
|
Note: This command is available only when STA is connected.
|
|
|
|
wlanidle-on
|
|
This command is used to get off the idle state.
|
|
|
|
Note: This command is available only when STA is connected.
|
|
|
|
|
|
getlog
|
|
This command is used to get the 802.11 statistics available in the
|
|
station.
|
|
|
|
Note: This command is available only when STA is connected.
|
|
|
|
getadhocstatus
|
|
This command is used to get the ad-hoc Network Status.
|
|
|
|
The various status codes are:
|
|
AdhocStarted
|
|
AdhocJoined
|
|
AdhocIdle
|
|
InfraMode
|
|
AutoUnknownMode
|
|
|
|
Note: This command is available only when STA is connected.
|
|
|
|
adhocgrate
|
|
This command is used to enable(1) g_rate, Disable(0) g_rate
|
|
and request(2) the status which g_rate is disabled/enabled,
|
|
for Ad-hoc creator.
|
|
|
|
where value is:-
|
|
0 -- Disabled
|
|
1 -- Enabled
|
|
2 -- Get
|
|
|
|
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.
|
|
|
|
inactivityto
|
|
This command is used by the host to set/get the inactivity timeout value,
|
|
which specifies when WLAN device is put to sleep.
|
|
|
|
Usage:
|
|
iwpriv ethX inactivityto [<timeout>]
|
|
|
|
where the parameter are:
|
|
timeout: timeout value in milliseconds.
|
|
|
|
Example:
|
|
iwpriv eth1 inactivityto
|
|
"get the timeout value"
|
|
|
|
iwpriv eth1 inactivityto X
|
|
"set timeout value to X ms"
|
|
|
|
|
|
sleeppd
|
|
This command is used to configure the sleep period of the WLAN device.
|
|
|
|
Usage:
|
|
iwpriv ethX sleeppd [<sleep period>]
|
|
|
|
where the parameter are:
|
|
Period: sleep period in milliseconds. Range 10~60.
|
|
|
|
Example:
|
|
iwpriv eth1 sleeppd 10
|
|
"set period as 10 ms"
|
|
iwpriv eth1 sleeppd
|
|
"get the sleep period configuration"
|
|
|
|
enable11d
|
|
This command is used to control 11d
|
|
where value is:-
|
|
1 -- Enabled
|
|
0 -- Disabled
|
|
2 -- Get
|
|
|
|
|
|
|
|
|
|
tpccfg
|
|
Enables or disables automatic transmit power control.
|
|
|
|
The first parameter turns this feature on (1) or off (0). When turning
|
|
on, the user must also supply four more parameters in the following
|
|
order:
|
|
-UseSNR (Use SNR (in addition to PER) for TPC algorithm),
|
|
-P0 (P0 power level for TPC),
|
|
-P1 (P1 power level for TPC),
|
|
-P2 (P2 power level for TPC).
|
|
|
|
Usage:
|
|
iwpriv ethX tpccfg: Get current configuration
|
|
iwpriv ethX tpccfg 0: disable auto TPC
|
|
iwpriv ethX tpccfg 0x01 0x00 0x05 0x0a 0x0d: enable auto TPC; do not use SNR;
|
|
P0=0x05; P1=0x0a; P2=0x0d;
|
|
iwpriv ethX tpccfg 0x01 0x01 0x05 0x0a 0x0d: enable auto TPC; use SNR;
|
|
P0=0x05; P1=0x0a; P2=0x0d.
|
|
|
|
powercfg
|
|
Enables or disables power adaptation.
|
|
|
|
The first parameter turns this feature on (1) or off (0). When turning
|
|
on, the user must also supply three more parameters in the following
|
|
order:
|
|
-P0 (P0 power level for Power Adaptation),
|
|
-P1 (P1 power level for Power Adaptation),
|
|
-P2 (P2 power level for Power Adaptation).
|
|
|
|
Usage:
|
|
iwpriv ethX powercfg: Get current configuration
|
|
iwpriv ethX powercfg 0: disable power adaptation
|
|
iwpriv ethX powercfg 1 0x0d 0x0f 0x12: enable power adaptation;
|
|
P0=0x0d; P1=0x0f; P2=0x12.
|
|
|
|
getafc
|
|
This command returns automatic frequency control parameters. It returns
|
|
three integers:
|
|
-P0: automatic is on (1), or off (0),
|
|
-P1: current timing offset in PPM (part per million), and
|
|
-P2: current frequency offset in PPM.
|
|
|
|
setafc
|
|
Set automatic frequency control options.
|
|
|
|
The first parameter turns automatic on (1) or off (0).
|
|
The user must supply two more parameters in either case, in the following
|
|
order:
|
|
|
|
When auto is on:
|
|
|
|
-P0 (automatic adjustment frequency threshold in PPM),
|
|
-P1 (automatic adjustment period in beacon period),
|
|
|
|
When auto is off:
|
|
|
|
-P0 (manual adjustment timing offset in PPM), and
|
|
-P1 (manual adjustment frequency offset in PPM).
|
|
|
|
Usage:
|
|
iwpriv ethX setafc 0 10 10: manual adjustment, both timing and frequcncy
|
|
offset are 10 PPM.
|
|
|
|
iwpriv ethX setafc 1 10 10 enable afc, automatic adjustment,
|
|
frequency threshold 10 PPM, for every 10 beacon periods.
|
|
|
|
|
|
|
|
scanprobes
|
|
This command sets number of probe requests per channel.
|
|
|
|
Usage:
|
|
iwpriv ethX scanprobes 3 (set scan probes to 3)
|
|
iwpriv ethX scanprobes (get scan probes)
|
|
|
|
lolisteninter
|
|
This command sets the value of listen interval.
|
|
|
|
Usage:
|
|
iwpriv ethX lolisteninter 234 (set the lolisteninter to 234)
|
|
iwpriv ethX lolisteninter (get the lolisteninter value)
|
|
|
|
rateadapt
|
|
This command sets the data rates bitmap.
|
|
Where <n>
|
|
0: Disable auto rate adapt
|
|
1: Enable auto rate adapt
|
|
|
|
<m>
|
|
data rate bitmap
|
|
Bit Data rate
|
|
0 1 Mbps
|
|
1 2 Mbps
|
|
2 5.5 Mbps
|
|
3 11 Mbps
|
|
4 Reserved
|
|
5 6 Mbps
|
|
6 9 Mbps
|
|
7 12 Mbps
|
|
8 18 Mbps
|
|
9 24 Mbps
|
|
10 36 Mbps
|
|
11 48 Mbps
|
|
12 54 Mbps
|
|
12-15 Reserved
|
|
|
|
Usage:
|
|
iwpriv ethX rateadapt
|
|
read the currect data rate setting
|
|
iwpriv ethX rateadapt 1 0x07
|
|
enable auto data rate adapt and
|
|
data rates are 1Mbps, 2Mbsp and 5.5Mbps
|
|
|
|
|
|
txcontrol
|
|
This command is used to set the Tx rate, ack policy, and retry limit on a per packet basis.
|
|
|
|
Where value <n> is:
|
|
if bit[4] == 1:
|
|
bit[3:0] -- 0 1 2 3 4 5 6 7 8 9 10 11 12 13-16
|
|
Data Rate(Mbps) -- 1 2 5.5 11 Rsv 6 9 12 18 24 36 48 54 Rsv
|
|
|
|
bit[12:8]
|
|
if bit[12] == 1, bit[11:8] specifies the Tx retry limit.
|
|
|
|
bit[14:13] specifies per packet ack policy:
|
|
bit[14:13]
|
|
1 0 use immediate ack policy for this packet
|
|
1 1 use no ack policy for this packet
|
|
0 x use the per-packet ack policy setting
|
|
|
|
Usage:
|
|
iwpriv ethX txcontrol 0x7513
|
|
Use no-ack policy, 5 retires for Tx, 11Mbps rate
|
|
|
|
|
|
|
|
psnullinterval
|
|
This command is used to set/request NULL package interval for Power Save
|
|
under infrastructure mode.
|
|
|
|
where value is:-
|
|
-1 -- Disabled
|
|
n>0 -- Set interval as n (seconds)
|
|
|
|
prescan
|
|
This command is used to enable (1)/disable(0) auto prescan before assoicate to the ap
|
|
|
|
where value is:-
|
|
0 -- Disabled
|
|
1 -- Enabled
|
|
2 -- Get
|
|
|
|
getrxinfo
|
|
This command gets non average value of Signal to Noise Ratio of Data and rate index.
|
|
|
|
The following table shows RateIndex and Rate
|
|
|
|
RateIndex Data rate
|
|
0 1 Mbps
|
|
1 2 Mbps
|
|
2 5.5 Mbps
|
|
3 11 Mbps
|
|
4 Reserved
|
|
5 6 Mbps
|
|
6 9 Mbps
|
|
7 12 Mbps
|
|
8 18 Mbps
|
|
9 24 Mbps
|
|
10 36 Mbps
|
|
11 48 Mbps
|
|
12 54 Mbps
|
|
13-15 Reserved
|
|
|
|
gettxrate
|
|
This command gets current Tx rate index of the first packet associated with Rate Adaptation.
|
|
|
|
The following table shows RateIndex and Rate
|
|
|
|
RateIndex Data rate
|
|
0 1 Mbps
|
|
1 2 Mbps
|
|
2 5.5 Mbps
|
|
3 11 Mbps
|
|
4 Reserved
|
|
5 6 Mbps
|
|
6 9 Mbps
|
|
7 12 Mbps
|
|
8 18 Mbps
|
|
9 24 Mbps
|
|
10 36 Mbps
|
|
11 48 Mbps
|
|
12 54 Mbps
|
|
13-15 Reserved
|
|
|
|
bcninterval
|
|
This command is used to sets beacon interval in adhoc mode when an argument is given, and gets current adhoc
|
|
beacon interval when no argument is given. The valid beacon interval is between 20 - 1000,
|
|
default beacon interval is 100.
|
|
|
|
Usage:
|
|
iwpriv ethX bcninterval 100 (set adhoc beacon interval to 100)
|
|
iwpriv ethX bcninterval (get adhoc beacon interval)
|
|
|
|
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 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)
|
|
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 metric dir ssn dsn hopcount ttl expiration sleepmode snr
|
|
|
|
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")
|
|
metric -- route metric (cost: smaller-metric routes are preferred)
|
|
dir -- direction (1 for direct, 0 for reverse)
|
|
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)
|
|
|
|
fwt_list_route
|
|
This command is used to list a route from the FWT table. The only
|
|
parameter is the route ID. If you want to list all the routes in a
|
|
table, start with rid=0, and keep incrementing rid until you get a
|
|
"(null)" string. This function is similar to fwt_list. The only
|
|
difference is the output format. Also note that this command is meant
|
|
for debugging. It is expected that users will use fwt_lookup and
|
|
fwt_list. One important reason for this is that the route id may change
|
|
as the route table is altered.
|
|
|
|
iwpriv ethX fwt_list_route rid
|
|
|
|
The output is a string of the following form:
|
|
|
|
da metric dir nid ssn dsn hopcount ttl expiration
|
|
|
|
where the different fields are:-
|
|
da -- DA MAC address (in the form "00:11:22:33:44:55")
|
|
metric -- route metric (cost: smaller-metric routes are preferred)
|
|
dir -- direction (1 for direct, 0 for reverse)
|
|
nid -- Next-hop (neighbor) host ID (nid)
|
|
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 count (only used in reverse entries)
|
|
expiration -- entry expiration (in ticks, where a tick is 1024us, or ~ 1ms. Use 0 for an indefinite entry)
|
|
|
|
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
|
|
=========================
|
|
|
|
|
|
Use the -i option to retrieve version information from the driver.
|
|
|
|
# ethtool -i eth0
|
|
driver: libertas
|
|
version: COMM-USB8388-318.p4
|
|
firmware-version: 5.110.7
|
|
bus-info:
|
|
|
|
Use the -e option to read the EEPROM contents of the card.
|
|
|
|
Usage:
|
|
ethtool -e ethX [raw on|off] [offset N] [length N]
|
|
|
|
-e retrieves and prints an EEPROM dump for the specified ethernet
|
|
device. When raw is enabled, then it dumps the raw EEPROM data
|
|
to stdout. The length and offset parameters allow dumping cer-
|
|
tain portions of the EEPROM. Default is to dump the entire EEP-
|
|
ROM.
|
|
|
|
# ethtool -e eth0 offset 0 length 16
|
|
Offset Values
|
|
------ ------
|
|
0x0000 38 33 30 58 00 00 34 f4 00 00 10 00 00 c4 17 00
|
|
|
|
========================
|
|
DEBUGFS COMMANDS
|
|
========================
|
|
|
|
those commands are used via debugfs interface
|
|
|
|
===========
|
|
rdmac
|
|
rdbbp
|
|
rdrf
|
|
These commands are used to read the MAC, BBP and RF registers from the
|
|
card. These commands take one parameter that specifies the offset
|
|
location that is to be read. This parameter must be specified in
|
|
hexadecimal (its possible to preceed preceding the number with a "0x").
|
|
|
|
Path: /debugfs/libertas_wireless/ethX/registers/
|
|
|
|
Usage:
|
|
echo "0xa123" > rdmac ; cat rdmac
|
|
echo "0xa123" > rdbbp ; cat rdbbp
|
|
echo "0xa123" > rdrf ; cat rdrf
|
|
wrmac
|
|
wrbbp
|
|
wrrf
|
|
These commands are used to write the MAC, BBP and RF registers in the
|
|
card. These commands take two parameters that specify the offset
|
|
location and the value that is to be written. This parameters must
|
|
be specified in hexadecimal (its possible to preceed the number
|
|
with a "0x").
|
|
|
|
Usage:
|
|
echo "0xa123 0xaa" > wrmac
|
|
echo "0xa123 0xaa" > wrbbp
|
|
echo "0xa123 0xaa" > wrrf
|
|
|
|
sleepparams
|
|
This command is used to set the sleepclock configurations
|
|
|
|
Path: /debugfs/libertas_wireless/ethX/
|
|
|
|
Usage:
|
|
cat sleepparams: reads the current sleepclock configuration
|
|
|
|
echo "p1 p2 p3 p4 p5 p6" > sleepparams: writes the sleepclock configuration.
|
|
|
|
where:
|
|
p1 is Sleep clock error in ppm (0-65535)
|
|
p2 is Wakeup offset in usec (0-65535)
|
|
p3 is Clock stabilization time in usec (0-65535)
|
|
p4 is Control periodic calibration (0-2)
|
|
p5 is Control the use of external sleep clock (0-2)
|
|
p6 is reserved for debug (0-65535)
|
|
|
|
subscribed_events
|
|
|
|
The subscribed_events directory contains the interface for the
|
|
subscribed events API.
|
|
|
|
Path: /debugfs/libertas_wireless/ethX/subscribed_events/
|
|
|
|
Each event is represented by a filename. Each filename consists of the
|
|
following three fields:
|
|
Value Frequency Subscribed
|
|
|
|
To read the current values for a given event, do:
|
|
cat event
|
|
To set the current values, do:
|
|
echo "60 2 1" > event
|
|
|
|
Frequency field specifies the reporting frequency for this event.
|
|
If it is set to 0, then the event is reported only once, and then
|
|
automatically unsubscribed. If it is set to 1, then the event is
|
|
reported every time it occurs. If it is set to N, then the event is
|
|
reported every Nth time it occurs.
|
|
|
|
beacon_missed
|
|
Value field specifies the number of consecutive missing beacons which
|
|
triggers the LINK_LOSS event. This event is generated only once after
|
|
which the firmware resets its state. At initialization, the LINK_LOSS
|
|
event is subscribed by default. The default value of MissedBeacons is
|
|
60.
|
|
|
|
failure_count
|
|
Value field specifies the consecutive failure count threshold which
|
|
triggers the generation of the MAX_FAIL event. Once this event is
|
|
generated, the consecutive failure count is reset to 0.
|
|
At initialization, the MAX_FAIL event is NOT subscribed by
|
|
default.
|
|
|
|
high_rssi
|
|
This event is generated when the average received RSSI in beacons goes
|
|
above a threshold, specified by Value.
|
|
|
|
low_rssi
|
|
This event is generated when the average received RSSI in beacons goes
|
|
below a threshold, specified by Value.
|
|
|
|
high_snr
|
|
This event is generated when the average received SNR in beacons goes
|
|
above a threshold, specified by Value.
|
|
|
|
low_snr
|
|
This event is generated when the average received SNR in beacons goes
|
|
below a threshold, specified by Value.
|
|
|
|
extscan
|
|
This command is used to do a specific scan.
|
|
|
|
Path: /debugfs/libertas_wireless/ethX/
|
|
|
|
Usage: echo "SSID" > extscan
|
|
|
|
Example:
|
|
echo "LINKSYS-AP" > extscan
|
|
|
|
To see the results of use getscantable command.
|
|
|
|
getscantable
|
|
|
|
Display the current contents of the driver scan table (ie. get the
|
|
scan results).
|
|
|
|
Path: /debugfs/libertas_wireless/ethX/
|
|
|
|
Usage:
|
|
cat getscantable
|
|
|
|
setuserscan
|
|
Initiate a customized scan and retrieve the results
|
|
|
|
|
|
Path: /debugfs/libertas_wireless/ethX/
|
|
|
|
Usage:
|
|
echo "[ARGS]" > setuserscan
|
|
|
|
where [ARGS]:
|
|
|
|
chan=[chan#][band][mode] where band is [a,b,g] and mode is
|
|
blank for active or 'p' for passive
|
|
bssid=xx:xx:xx:xx:xx:xx specify a BSSID filter for the scan
|
|
ssid="[SSID]" specify a SSID filter for the scan
|
|
keep=[0 or 1] keep the previous scan results (1), discard (0)
|
|
dur=[scan time] time to scan for each channel in milliseconds
|
|
probes=[#] number of probe requests to send on each chan
|
|
type=[1,2,3] BSS type: 1 (Infra), 2(Adhoc), 3(Any)
|
|
|
|
Any combination of the above arguments can be supplied on the command line.
|
|
If the chan token is absent, a full channel scan will be completed by
|
|
the driver. If the dur or probes tokens are absent, the driver default
|
|
setting will be used. The bssid and ssid fields, if blank,
|
|
will produce an unfiltered scan. The type field will default to 3 (Any)
|
|
and the keep field will default to 0 (Discard).
|
|
|
|
Examples:
|
|
1) Perform an active scan on channels 1, 6, and 11 in the 'g' band:
|
|
echo "chan=1g,6g,11g" > setuserscan
|
|
|
|
2) Perform a passive scan on channel 11 for 20 ms:
|
|
echo "chan=11gp dur=20" > setuserscan
|
|
|
|
3) Perform an active scan on channels 1, 6, and 11; and a passive scan on
|
|
channel 36 in the 'a' band:
|
|
|
|
echo "chan=1g,6g,11g,36ap" > setuserscan
|
|
|
|
4) Perform an active scan on channel 6 and 36 for a specific SSID:
|
|
echo "chan=6g,36a ssid="TestAP"" > setuserscan
|
|
|
|
5) Scan all available channels (B/G, A bands) for a specific BSSID, keep
|
|
the current scan table intact, update existing or append new scan data:
|
|
echo "bssid=00:50:43:20:12:82 keep=1" > setuserscan
|
|
|
|
6) Scan channel 6, for all infrastructure networks, sending two probe
|
|
requests. Keep the previous scan table intact. Update any duplicate
|
|
BSSID/SSID matches with the new scan data:
|
|
echo "chan=6g type=1 probes=2 keep=1" > setuserscan
|
|
|
|
All entries in the scan table (not just the new scan data when keep=1)
|
|
will be displayed upon completion by use of the getscantable ioctl.
|
|
|
|
==============================================================================
|