dcsctp: Pack state cookie

The elements in it can be packet better. This saves one byte.

The state cookie is only used from one peer to itself, so there is no
considerations around backwards or forwards compatibility.

Bug: None
Change-Id: I4f9a44f4c825626c7ed84bff52ed3155f5025a69
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/353142
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Auto-Submit: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42421}
This commit is contained in:
Victor Boivie 2024-04-29 15:28:44 +02:00 committed by WebRTC LUCI CQ
parent 6071f044e1
commit 135f781b94
2 changed files with 3 additions and 3 deletions

View File

@ -42,9 +42,9 @@ std::vector<uint8_t> StateCookie::Serialize() {
buffer.Store8<36>(capabilities_.partial_reliability);
buffer.Store8<37>(capabilities_.message_interleaving);
buffer.Store8<38>(capabilities_.reconfig);
buffer.Store8<39>(capabilities_.zero_checksum);
buffer.Store16<40>(capabilities_.negotiated_maximum_incoming_streams);
buffer.Store16<42>(capabilities_.negotiated_maximum_outgoing_streams);
buffer.Store8<44>(capabilities_.zero_checksum);
return cookie;
}
@ -77,9 +77,9 @@ absl::optional<StateCookie> StateCookie::Deserialize(
capabilities.partial_reliability = buffer.Load8<36>() != 0;
capabilities.message_interleaving = buffer.Load8<37>() != 0;
capabilities.reconfig = buffer.Load8<38>() != 0;
capabilities.zero_checksum = buffer.Load8<39>() != 0;
capabilities.negotiated_maximum_incoming_streams = buffer.Load16<40>();
capabilities.negotiated_maximum_outgoing_streams = buffer.Load16<42>();
capabilities.zero_checksum = buffer.Load8<44>() != 0;
return StateCookie(peer_tag, my_tag, peer_initial_tsn, my_initial_tsn, a_rwnd,
tie_tag, capabilities);

View File

@ -27,7 +27,7 @@ namespace dcsctp {
// Do not trust anything in it; no pointers or anything like that.
class StateCookie {
public:
static constexpr size_t kCookieSize = 45;
static constexpr size_t kCookieSize = 44;
StateCookie(VerificationTag peer_tag,
VerificationTag my_tag,