LDN services: Difference between revisions

No edit summary
No edit summary
Line 218: Line 218:


=== Reject ===
=== Reject ===
Takes an input [[#Ipv4Address]], no output.


=== SetAdvertiseData ===
=== SetAdvertiseData ===
Takes a type-0x21 input buffer, no output.
The input buffer contains arbitrary user data.


=== SetStationAcceptPolicy ===
=== SetStationAcceptPolicy ===
Takes an input [[#AcceptPolicy]], no output.


=== AddAcceptFilterEntry ===
=== AddAcceptFilterEntry ===
Takes an input [[#MacAddress]], no output.
There are two sdknso funcs implementing this: one which takes a [[#MacAddress]] directly, the other loads the [[#MacAddress]] from the input [[#NodeInfo]].


=== ClearAcceptFilter ===
=== ClearAcceptFilter ===
Line 235: Line 243:


=== Connect ===
=== Connect ===
Takes a type-0x19 input buffer containing a [[#NetworkInfo]], a [[#SecurityConfig]], a 0x30-byte struct with 1-byte alignment, a s32, a [[#ConnectOption]], no output.


=== ConnectPrivate ===
=== ConnectPrivate ===
Takes a [[#SecurityConfig]], [[#SecurityParameter]], a 0x30-byte struct with 1-byte alignment, a s32, a [[#ConnectOption]], a 0x20-byte struct with 8-byte alignment, no output.


=== Disconnect ===
=== Disconnect ===
Line 254: Line 264:


=== SetOperationMode ===
=== SetOperationMode ===
Takes an input [[#OperationMode]], no output.


=== InitializeSystem2 ===
=== InitializeSystem2 ===
Line 599: Line 610:
= AddressEntry =
= AddressEntry =
This is "nn::ldn::AddressEntry". This is a 0x24-byte struct.
This is "nn::ldn::AddressEntry". This is a 0x24-byte struct.
= AcceptPolicy =
This is "nn::ldn::AcceptPolicy". This is an u8.
= MacAddress =
This is "nn::ldn::MacAddress". This is a 6-byte struct with 1-byte alignment.
= NodeInfo =
This is "nn::ldn::NodeInfo".
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0 || 0x4 ||
|-
| 0x4 || 0x6 || [[#MacAddress]]
|}
= ConnectOption =
This is "nn::ldn::ConnectOption". This is an u32 bitmask.
There's two versions of the sdknso funcs for [[#Connect]]/[[#ConnectPrivate]]: the version where the ConnectOption isn't user-specified uses a default value of 0x1 for it, with the same ShowError code without the bit0 check.
When bit0 here is set after using the above cmds, the sdknso funcs will use [[Error_Applet|ShowError]] with the returned Result if: (rc & 0x3FE1FF) == 0xE0CB.
= OperationMode =
This is "nn::ldn::OperationMode". This is an u32.


[[Category:Services]]
[[Category:Services]]