WLAN services

From Nintendo Switch Brew
Revision as of 20:09, 30 May 2022 by Hexkyz (talk | contribs)
Jump to navigation Jump to search

wlan:inf

This is "nn::wlan::detail::IInfraManager".

Cmd Name
0 OpenMode
1 CloseMode
2 GetMacAddress
3 StartScan
4 StopScan
5 Connect
6 CancelConnect
7 Disconnect
8 GetSystemEvent
9 GetConnectionStatus
10 GetState
11 GetScanResult
12 GetRssi
13 ChangeRxAntenna
14 GetFwVersion
15 RequestSleep
16 RequestWakeUp
17 ConnectWithWps
18 [3.0.0+]
19 [3.0.0+]
20 [3.0.0+]
21 [3.0.0+]
22 [3.0.0+]
23 [3.0.0+]
24 [3.0.0+]
25 [3.0.0+]
26 [4.0.0+]
27 [4.0.0+]
28 [5.0.0+] InitializeWlan
29 [7.0.0+] FinalizeWlan
30 [8.0.0+]
31 [11.0.0+]
32 [11.0.0+]
33 [11.0.0+]
34 [11.0.0+]
35 [11.0.0+]
36 [11.0.0+]
37 [11.0.0+]
38 [13.0.0+]

[4.0.0+] Connect now takes an additional 4-bytes of input.

[5.0.0+] Cmd24 now returns a total of 0x58-bytes of output instead of 0x5C.

[7.0.0+] Input/output for cmds 27/28 were swapped, perhaps these cmds were swapped?

Cmd19

Takes a total of 0x18-bytes of input, no output.

This copies the input data into state, and sets a flag in state.

This data is used during RequestSleep if a state field is set for using it (the codepath using this will throw an error if this data was not set). This data is cleared afterwards regardless of whether it was used. This is used for configuring various config related to wowl/tcpka/etc (wake-on-WLAN/TCP keep-alive). Note that an error is thrown if "wowl_activate" isn't set but sysmodule-side doesn't do so (unless wifi-controller sets it automatically?).

This is used by nifm.

Cmd26

No input/output.

This sends a request which sets a global flag.

This flag is eventually checked by code which runs via RequestSleep, and in one case with wlan:dtc cmd19 (also used by requests done by nnMain).

Cmd27

Takes a type-0xA output buffer containing an array of 2-byte entries, returns an output u32 total_out.

This memcpys data from state into the output buffer, clamped to a maximum of 0x40 entries (nifm hard-codes the count to 0x26).

Cmd30

Takes an input s32, no output.

The input s32 must be <=0xE10 (3600) and >= -1. The input value is written into state, then this returns 0.

The user-process code using this cmd also has the above bounds check.

This cmd is used by nifm with a value from state, prior to using RequestSleep.

Cmd38

Takes an input u32 enum, no output.

The input value must be 0-1.

This internally sends a request which is then eventually handled (if the input doesn't match state already + other state fields are valid) by configuring "pm2_sleep_ret_ext" with a global struct selected via the input value. Afterwards another func is called with input value 2.

wlan:lcl

This is "nn::wlan::detail::ILocalManager".

Cmd Name
0 OpenMasterMode
1 CloseMasterMode
2 OpenClientMode
3 CloseClientMode
4 OpenSpectatorMode
5 CloseSpectatorMode
6 GetMacAddress
7 CreateBss
8 DestroyBss
9 StartScan
10 StopScan
11 Connect
12 CancelConnect
13 Join
14 CancelJoin
15 Disconnect
16 SetBeaconLostCount
17 GetSystemEvent
18 GetConnectionStatus
19 GetClientStatus
20 GetBssIndicationEvent
21 GetBssIndicationInfo
22 GetState
23 GetAllowedChannels
24 AddIe
25 DeleteIe
26 PutFrameRaw
27 CancelGetFrame
28 CreateRxEntry
29 DeleteRxEntry
30 AddEthertypeToRxEntry
31 DeleteEthertypeFromRxEntry
32 AddMatchingDataToRxEntry
33 RemoveMatchingDataFromRxEntry
34 GetScanResult
35 PutActionFrameOneShot
36 SetActionFrameWithBeacon
37 CancelActionFrameWithBeacon
38 CreateRxEntryForActionFrame
39 DeleteRxEntryForActionFrame
40 AddSubtypeToRxEntryForActionFrame
41 DeleteSubtypeFromRxEntryForActionFrame
42 CancelGetActionFrame
43 GetRssi
44 SetMaxAssociationNumber
45 [4.0.0+]
46 [4.0.0+]
47 [4.0.0+]
48 [10.0.0+] ([4.0.0-8.1.0])
49 [6.0.0-8.1.0]
50 [6.0.0-8.1.0]
51 [8.0.0-8.1.0]
52 [8.0.0-8.1.0]
49 [13.0.0+]
50 [13.0.0+]
51 [13.0.0+]

[4.0.0+] CreateBss, Connect, and Join now takes an additional 4-bytes of input.

[5.0.0+] GetAllowedChannels now returns a total of 4-bytes of output instead of 0x50, and now takes a type-0xA output buffer.

[9.0.0+] Almost all cmds had input/output changed / cmds moved around (?).

[10.0.0+] Cmd46 now takes a total of 1-byte of input instead of 6-bytes, while cmd47 now takes a total of 6-bytes of input instead of 1-byte.

wlan:lg

This is "nn::wlan::detail::ILocalGetFrame".

Cmd Name
0 GetFrameRaw

wlan:lga

This is "nn::wlan::detail::ILocalGetActionFrame".

Cmd Name
0 GetActionFrame

[5.0.0+] Cmd0 now takes an additional 4-bytes of input, and returns an additional 4-bytes of output.

wlan:sg

This is "nn::wlan::detail::ISocketGetFrame".

Cmd Name
0 GetFrameRaw

wlan:soc

This is "nn::wlan::detail::ISocketManager".

Cmd Name
0 PutFrameRaw
1 CancelGetFrame
2 CreateRxEntry
3 DeleteRxEntry
4 AddEthertypeToRxEntry
5 DeleteEthertypeFromRxEntry
6 GetMacAddress
7 SwitchTsfTimerFunction
8 GetDeltaTimeBetweenSystemAndTsf
9 RegisterSharedMemory
10 UnregisterSharedMemory
11 EnableSharedMemory
12 [6.0.0+]

wlan:dtc

This is "nn::wlan::detail::IDetectManager".

This was added with [6.0.0+].

Cmd Name
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

[7.0.0+] Cmd14 now takes an input u8.

Notes

Versions

System Version Firmware string
[1.0.0] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-aoe Version: 7.35.252.58 CRC: f592f3bf Date: Tue 2016-10-04 23:54:54 PDT Ucode Ver: 1020.221 FWID: 01-5ec2fbfd
[2.0.0-2.2.0] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe Version: 7.35.64.1 CRC: 301f7804 Date: Fri 2017-02-17 01:03:01 PST Ucode Ver: 1020.223 FWID: 01-82d1f902
[3.0.0-3.0.2] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe Version: 7.35.252.70 CRC: f3b554fd Date: Thu 2017-05-04 19:04:04 PDT Ucode Ver: 1020.223 FWID: 01-5d27fda5
[4.0.0] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe Version: 7.35.252.75 (r666384) CRC: 58f59a6f Date: Wed 2017-08-16 22:27:11 PDT Ucode Ver: 1020.223
[5.0.0-5.1.0] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe Version: 7.78.1.1 (r683984) CRC: 6a10caf9 Date: Wed 2018-02-21 21:43:01 PST Ucode Ver: 1020.223 FWID 01-ae4e196d
[6.0.0-6.2.0] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-clm_4356a3_ntd-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe-aloe Version: 7.35.252.84 (r692035) CRC: 937bcfc9 Date: Tue 2018-06-19 19:36:54 PDT Ucode Ver: 1020.225 FWID 01-71fd007e
[7.0.0] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-clm_4356a3_ntd-noclminc-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe-aloe Version: 7.35.252.87 (r708450) CRC: 5f41af12 Date: Thu 2018-10-25 19:11:47 PDT Ucode Ver: 1020.226 FWID 01-377c0939
[8.0.0-8.1.0] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-clm_4356a3_ntd-noclminc-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe-aloe Version: 7.35.252.90 (r711053) CRC: 30dcf8a5 Date: Thu 2019-02-28 18:12:24 PST Ucode Ver: 1020.226 FWID 01-e691490c
[9.0.0-9.1.0] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-clm_4356a3_ntd-noclminc-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe-aloe Version: 7.35.252.93 (r717555) CRC: d8363dad Date: Mon 2019-07-01 23:43:14 PDT Ucode Ver: 1020.228 FWID 01-c90a462
[10.0.0-10.1.0] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-clm_4356a3_ntd-noclminc-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe-aloe Version: 7.35.252.96 (r723441) CRC: f6823c05 Date: Tue 2019-11-19 22:31:29 PST Ucode Ver: 1020.228 FWID 01-a1b7e0a4
[11.0.0] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-clm_4356a3_ntd-noclminc-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe-aloe Version: 7.35.252.99 (r725630) CRC: 320007b0 Date: Mon 2020-05-25 19:51:18 PDT Ucode Ver: 1020.228 FWID 01-822b442d
[12.0.0-13.0.0] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-clm_4356a3_ntd-noclminc-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe-aloe Version: 7.35.252.104 (r728022) CRC: f0b454ec Date: Wed 2021-02-24 04:39:25 PST Ucode Ver: 1020.228 FWID 01-fbba058
[14.0.0] 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-clm_4356a3_ntd-noclminc-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe-aloe Version: 7.35.252.108 (c216b7c) CRC: 1be69227 Date: Sun 2021-08-29 19:24:39 PDT Ucode Ver: 1020.228 FWID 01-65333037
  • [2.0.0+] Besides the version update, added "gtkoe" to the string.
  • [3.0.0+] Besides the version update, added "tcpkaoe" to the string.
  • [6.0.0+] Besides the version update, added "clm_4356a3_ntd" to the string.
  • [7.0.0+] Besides the version update, added "noclminc" to the string.