blob: e0475fcab84152750875f0f11ebea2f7148741a8 [file] [log] [blame] [edit]
===============================================================================
USER MANUAL FOR MLANWLS APP
Copyright 2024 NXP
1) FOR MLANWLS APP ONLY BUILD
Goto source code directory wlan_src/app/linux/mlanwls
make [clean] build
The app binaries can be found in mlanwls/ directory.
2) Supported Features
- Location R1
- Dot11mc FTM session ISTA mode
- Location R2
- Dot11az Non-Trigger based FTM ISTA mode
- Dot11az Non-Trigger based FTM RSTA mode
- Dot11az Trigger based ISTA
- STA-STA FTM
3) Usage:
The app can be run in 2 different modes.
- FTM command execution mode
- In this mode, user can run ftm commands to configure FTM session, Start / Stop FTM session.
This mode supports ISTA function testing
- To Run the mlanwls driver app in command mode for wifi location measurements
Command Format :
- mlanwls <interface> <cmd> <subcommand> <args>
Commands Supported :
- mlanwls mlanX ftm session_cfg [<args>]
- mlanwls mlanX ftm session_ctrl [<args>]
- mlanwls mlanX ftm anqp_req [<args>]
- Event monitoring mode (For uAP)
- In this mode, The app monitors the events received from WLAN FW and process it.
Typical use case would be, in AP mode to receives CSI events for csi processing.
Events Processed :
- CSI event from FW
- FTM Event with Radio Measurement Request
- FTM complete event to get measured distance
- To Run the mlanwls driver app in event monitoring mode
Command Format :
- mlanwls <interface> event <wlan_device_number>
Where:
<interface> : uap0 / muap0 (for multiple mac chipset)
<wlan_device_number> : To capture the events from FW on the corresponding interface,
user need to provide wifi device number argument for the selected <interface>,
0: mac1 / radio0 / mlan0 / uap0 interface,
1: mac2 / radio1 / mmlan0 /muap0 interface,
Default: 0 / if not specified,
eg:
./mlanwls uap0 event - Capture the events for uap0 interface
For Multiple mac chipsets,
./mlanwls muap0 event 1 - Capture the events for muap0 interface
4) Command To Configure FTM session
session_cfg
This sub command is used to configure FTM session params.
The default configuration set is Dot11mc at the start of the application and after every FTM session complete
the FTM session configuration in FW is reset to default 11mc protocol.
Important Note:
So to run 11az session, session_Cfg <1> <ftm.conf> command should be run before each session_ctrl to set 11az config.
This session_cfg for 11az will not persist after session gets completed and it will be reset to 11mc.
Usage:
mlanwls mlanX ftm session_cfg [<ftm_protocol> <config_file>]
Where,
<ftm_protocol> : 0:Dot11mc, 1:Dot11az-NTB 2:Dot11az-TB
<config_file> : Config file with Dot11mc / dot11az parameters
: Default config file ( ftm.conf ) is present in config folder in release
eg:
mlanwls mlan0 ftm session_cfg 0 config/ftm.conf - Sets dot11mc FTM session params from config file
mlanwls mlan0 ftm session_cfg 1 config/ftm.conf - Sets dot11az Non Trigger Based (NTB)session params from config file
mlanwls mlan0 ftm session_cfg 2 config/ftm.conf - Sets dot11az Trigger Based (TB) session params from config file
5) Command To Start FTM session
session_ctrl
This sub command is used to start FTM session in specific mode.
- Associated with PMF Session
- Associated without PMF Session
- Unassociated with PMF Session
- Unassociated without PMF session
Usage:
mlanwls <interface> ftm session_ctrl [<action> <chan> <mac_address> <loop_cnt> <wlan_device_number>]
Where:
<interface> : mlan0 / mmlan0(for multiple mac chipset)
<action> :
1: Start 11mc/11az FTM with associated Peer AP,
2: Stop FTM session
3: Start protected 11az FTM with associated Peer AP,
4: Start 11az/11mc FTM with unassoc Peer,
5: Start protected 11az FTM with unassoc Peer with PASN,
6: Start 11mc/11az FTM with unassociated Peer STA
<loop_cnt> : number of ftm sessions to run repeatedly ( default:1, 0:non-stop, n>1: n times).
Note this <loop_cnt> option can be used only with 11mc config as 11az session needs explicit session_cfg command to be given before every session start.
<chan> : Channel on which FTM must be started
For 6GHz channel, specify suffix 'e' to channel number. eg. '37e'
<mac_address> : Mac address of the associated peer with whom FTM session is required
<wlan_device_number> : wifi device number for the selected <interface>/<radio>,
0: mac1 / radio0 / mlan0 / uap0 interface,
1: mac2 / radio1 / mmlan0 /muap0 interface,
Default: 0 / if not specified,
Note:
- Run session_cfg command before running session_ctrl to set the required protocol (11mc/11az) and
the corresponding ftm params.
- In current implementation, STA FW default protocol is set to 11mc.
So if we need to run 11az session multiple times continuosly,each run needs session_cfg command given before session_ctrl.
For 11az session, run session_cfg every time before session_ctrl as below:
mlanwls mlan0 ftm session_cfg 1 config/ftm.conf - Sets dot11az Non Trigger Based (NTB)session params from config file
mlanwls mlan0 ftm session_ctrl <1/3/4/5> 6 00:50:43:20:bc:4 - Run corresponding 11az FTM session
- If session_ctrl should be run on radio1 / mac2 interface for multiple mac chipsets, wlan_dev_number=1 should be given to bind the
netlink event socket to mac2 interface
eg:
mlanwls mlan0 ftm session_ctrl 1 6 00:50:43:20:bc:4 - Run non-secure FTM session (11az/mc as configured by session_cfg command )
mlanwls mlan0 ftm session_ctrl 3 6 00:50:43:20:bc:4 - Runs secure 11az FTM session ( TB/NTB as configured by session_cfg command ),
mlanwls mlan0 ftm session_ctrl 4 6 00:50:43:20:bc:4 - Runs non-secure FTM session with unassoc peer until user terminate,
mlanwls mlan0 ftm session_ctrl 5 6 00:50:43:20:bc:4 - Runs Secure FTM session with unassociated Peer AP,
mlanwls mlan0 ftm session_ctrl 2 - Stop the FTM session
mlanwls mmlan0 ftm session_ctrl 1 11 00:50:43:20:bc:4 2 1 - Runs 2 associated FTM sessions on radio1 (11az/mc as configured ) without PMF on channel 11
mlanwls mlan0 ftm session_ctrl 1 37e 00:50:43:20:bc:4 - Run non-secure FTM session on 6G channel 37 (11az/mc as configured by session_cfg command )
6) Command To Send ANQP Request frame
anqp_req
This sub command is used to send ANQP GAS Request to peer
Usage:
mlanwls mlanX ftm anqp_req [<conf> <chan> <mac_address>]
Where:
<config_file> : Config file with Dot11mc ANQP Query Request list
<chan> : Channel on which FTM must be started
<mac_address> : Mac address of the peer
eg.
mlanwls mlan0 ftm anqp_req ftm.conf 6 00:50:43:20:bc:04 - Sends ANQP Req frame to peer
8)Enable FTM for unassociated STA state
dot11mc_unassoc_ftm_cfg
This command is used to enable or disable the configuration for
DOT11MC FTM frames exchanges in un-associated state for STA or uAP
Usage:
mlanutl <mlanX/uAPX> dot11mc_unassoc_ftm_cfg [enable]
[enable] : 0 - Disable unassociated state FTM
1 - Enable unassociated state FTM
Examples:
mlanutl mlan0 dot11mc_unassoc_ftm_cfg
- Get current state of unassociated state FTM cfg
mlanutl mlan0 dot11mc_unassoc_ftm_cfg 1
- Set the unassociated state FTM cfg to Enabled
===============================================================================
REVISION LOG
V5.2 - Added new error codes (Ref. WSW-46943)
V5.1 - Added event mode support for mac2 (mmlan0) interface
V5.0 - CSI processing code moved to libcsi
V4.1 - Added Session_ctrl with action code 5 for Secure unassociated FTM session with PASN
V4.0 - Added dedicated Session control Action Code for FTM session types
V3.2 - Added support to send ANQP GAS Request frame
V3.1 - Added support to process Radio measurement FTM Request event
V3.0 - Restructured app usage - Independant command mode and Event monitoring mode*/
V2.1 - Integrated CSI event processing as part of FTM session ctrl command */
V2.0 - Added support to process FW CSI events on host*/
V1.2 - Added support to process ANQP event*/
V1.1 - Added support to read the config from file*/
V1.0 - Initial version that supported FTM session cfg and ctrl command*/