| =============================================================================== | |
| 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*/ |