diff options
author | B3n30 <bene_thomas@web.de> | 2017-09-25 08:16:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-25 08:16:27 +0200 |
commit | d673d508dd1ca463dc72ff68b5582ee56d62f142 (patch) | |
tree | e6c7d39198a7bb7a0b8d07c89bb15854ddd4c8e8 /src/core/hle/service/nwm/uds_data.h | |
parent | Merge pull request #2944 from huwpascoe/perf-3 (diff) | |
download | yuzu-d673d508dd1ca463dc72ff68b5582ee56d62f142.tar yuzu-d673d508dd1ca463dc72ff68b5582ee56d62f142.tar.gz yuzu-d673d508dd1ca463dc72ff68b5582ee56d62f142.tar.bz2 yuzu-d673d508dd1ca463dc72ff68b5582ee56d62f142.tar.lz yuzu-d673d508dd1ca463dc72ff68b5582ee56d62f142.tar.xz yuzu-d673d508dd1ca463dc72ff68b5582ee56d62f142.tar.zst yuzu-d673d508dd1ca463dc72ff68b5582ee56d62f142.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/nwm/uds_data.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/core/hle/service/nwm/uds_data.h b/src/core/hle/service/nwm/uds_data.h index a23520a41..76e8f546b 100644 --- a/src/core/hle/service/nwm/uds_data.h +++ b/src/core/hle/service/nwm/uds_data.h @@ -67,6 +67,27 @@ struct DataFrameCryptoCTR { static_assert(sizeof(DataFrameCryptoCTR) == 16, "DataFrameCryptoCTR has the wrong size"); +constexpr u16 EAPoLStartMagic = 0x201; + +/* + * Nintendo EAPoLStartPacket, is used to initaliaze a connection between client and host + */ +struct EAPoLStartPacket { + u16_be magic = EAPoLStartMagic; + u16_be association_id; + // This value is hardcoded to 1 in the NWM module. + u16_be unknown = 1; + INSERT_PADDING_BYTES(2); + + u64_be friend_code_seed; + std::array<u16_be, 10> username; + INSERT_PADDING_BYTES(4); + u16_be network_node_id; + INSERT_PADDING_BYTES(6); +}; + +static_assert(sizeof(EAPoLStartPacket) == 0x30, "EAPoLStartPacket has the wrong size"); + /** * Generates an unencrypted 802.11 data payload. * @returns The generated frame payload. @@ -74,5 +95,12 @@ static_assert(sizeof(DataFrameCryptoCTR) == 16, "DataFrameCryptoCTR has the wron std::vector<u8> GenerateDataPayload(const std::vector<u8>& data, u8 channel, u16 dest_node, u16 src_node, u16 sequence_number); +/* + * Generates an unencrypted 802.11 data frame body with the EAPoL-Start format for UDS + * communication. + * @returns The generated frame body. + */ +std::vector<u8> GenerateEAPoLStartFrame(u16 association_id, const NodeInfo& node_info); + } // namespace NWM } // namespace Service |