From 812b404492d36d499b4a74019eacb6da2a052a26 Mon Sep 17 00:00:00 2001 From: Subv Date: Wed, 14 Jun 2017 09:43:05 -0500 Subject: UDS: Clarify comment about the first 4 bytes of the SecureData header. It is likely that these 4 bytes are actually a different header, part of some protocol that encapsulates the SecureData protocol. --- src/core/hle/service/nwm/uds_data.cpp | 4 +++- src/core/hle/service/nwm/uds_data.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'src/core') diff --git a/src/core/hle/service/nwm/uds_data.cpp b/src/core/hle/service/nwm/uds_data.cpp index 7e4aec624..9ba2fdcf1 100644 --- a/src/core/hle/service/nwm/uds_data.cpp +++ b/src/core/hle/service/nwm/uds_data.cpp @@ -40,7 +40,9 @@ static std::vector GenerateSecureDataHeader(u16 data_size, u8 channel, u16 d u16 src_node_id, u16 sequence_number) { SecureDataHeader header{}; header.protocol_size = data_size + sizeof(SecureDataHeader); - // TODO(Subv): It is likely that the first 4 bytes of this header are actually a decorator for another protocol. + // Note: This size includes everything except the first 4 bytes of the structure, + // reinforcing the hypotheses that the first 4 bytes are actually the header of + // another container protocol. header.securedata_size = data_size + sizeof(SecureDataHeader) - 4; header.is_management = 0; // Frames sent by the emulated application are never UDS management frames header.data_channel = channel; diff --git a/src/core/hle/service/nwm/uds_data.h b/src/core/hle/service/nwm/uds_data.h index 0dd46bcb1..8480ef94b 100644 --- a/src/core/hle/service/nwm/uds_data.h +++ b/src/core/hle/service/nwm/uds_data.h @@ -45,6 +45,8 @@ static_assert(sizeof(LLCHeader) == 8, "LLCHeader has the wrong size"); * the source and destination network node ids. */ struct SecureDataHeader { + // TODO(Subv): It is likely that the first 4 bytes of this header are + // actually part of another container protocol. u16_be protocol_size; INSERT_PADDING_BYTES(2); u16_be securedata_size; -- cgit v1.2.3