From 135f781b942177c3bd73ac8655683bda62e0eb62 Mon Sep 17 00:00:00 2001 From: Victor Boivie Date: Mon, 29 Apr 2024 15:28:44 +0200 Subject: [PATCH] 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 Commit-Queue: Florent Castelli Auto-Submit: Victor Boivie Cr-Commit-Position: refs/heads/main@{#42421} --- net/dcsctp/socket/state_cookie.cc | 4 ++-- net/dcsctp/socket/state_cookie.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/net/dcsctp/socket/state_cookie.cc b/net/dcsctp/socket/state_cookie.cc index c5ed1d8620..1e7c43f680 100644 --- a/net/dcsctp/socket/state_cookie.cc +++ b/net/dcsctp/socket/state_cookie.cc @@ -42,9 +42,9 @@ std::vector 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::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); diff --git a/net/dcsctp/socket/state_cookie.h b/net/dcsctp/socket/state_cookie.h index b94eedafd4..734d64d653 100644 --- a/net/dcsctp/socket/state_cookie.h +++ b/net/dcsctp/socket/state_cookie.h @@ -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,