LDN services: Difference between revisions
Line 1,493: | Line 1,493: | ||
This is used for communicating with accessories over local wifi - in particular, [[Mario Kart Live: Home Circuit]] uses this. | This is used for communicating with accessories over local wifi - in particular, [[Mario Kart Live: Home Circuit]] uses this. | ||
A beacon is broadcasted | A beacon is broadcasted. | ||
Action frames are only sent when done so by [[#SendToOtherGroup]]. | Action frames are only sent when done so by [[#SendToOtherGroup]]. | ||
Line 1,505: | Line 1,502: | ||
The DHCP server thread is started by the "nn.lp2p.StateMachine" thread eventually during group [[#CreateGroup|creation]]. | The DHCP server thread is started by the "nn.lp2p.StateMachine" thread eventually during group [[#CreateGroup|creation]]. | ||
=== Beacon === | |||
The SSID in the beacon is hidden (all-zero with the same length as the original SSID). The beacon contains two custom Nintendo tags with OUI <code>00:22:aa</code>. The beacon is identical to ldn, except for the following (besides SSID length difference and the lp2p-only Nintendo tags): | |||
* "Tag: Traffic Indication Map (TIM)": "DTIM count" for lp2p is 1, with ldn it's 0. | |||
* "Tag: HT Capabilities (802.11n D1.10)": "HT Short GI for 20MHz" is set to "Not supported", for ldn it's "Supported". | |||
* "Tag: Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element" "Ac Parameters ACI 0": "CW Min: 15" for lp2p, "CW Min: 63" for ldn. | |||
Note that during group creation the beacon may be missing the Nintendo tags in some cases, since group creation didn't finish yet. | |||
The first Nintendo tag contains the following data: | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x2 || Usually 06 00? | |||
|- | |||
| 0x2 || 0x2 || Usually 20 02?(Second byte depends on whether encryption is used?) | |||
|- | |||
| 0x4 || 0x2 || Usually 01 00 or 02 00?(varies) | |||
|- | |||
| 0x6 || 0x8 || Big-endian version of [[#GroupInfo]]+0x10. | |||
|- | |||
| 0xE || 0x10 || Same as [[#GroupInfo]]+0x0. | |||
|- | |||
| 0x1E || || Start of encrypted (and crypto-related) data if enabled. 0x22-bytes when encrypted, 0xE-bytes when plaintext. | |||
|} | |||
The second Nintendo tag contains the following data (data starting at +0x2 is encrypted if enabled, there's also an additional 0x14-bytes when encrypted): | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x2 || Usually 06 01? | |||
|- | |||
| 0x2 || 0x1 || Plaintext: usually 21? | |||
|- | |||
| 0x3 || 0x1 || Plaintext: AdvertiseData size | |||
|- | |||
| 0x4 || {above size} || Plaintext: AdvertiseData | |||
|} | |||
=== ActionFrame === | === ActionFrame === |