From: Hugo Landau Date: Wed, 7 Feb 2024 08:49:30 +0000 (+0000) Subject: QUIC CHANNEL: Optimise struct packing X-Git-Tag: openssl-3.3.0-alpha1~144 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=827475fc8b255f912a90295b3dac5864a0a7614a;p=thirdparty%2Fopenssl.git QUIC CHANNEL: Optimise struct packing Reviewed-by: Neil Horman Reviewed-by: Matt Caswell Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/23360) --- diff --git a/doc/man3/SSL_get_value_uint.pod b/doc/man3/SSL_get_value_uint.pod index 69652bec9a6..4d342ceebbf 100644 --- a/doc/man3/SSL_get_value_uint.pod +++ b/doc/man3/SSL_get_value_uint.pod @@ -77,7 +77,7 @@ SSL_get_generic_value_uint() and SSL_set_generic_value_uint() for brevity. Values in this class are read-write, and represent what the local party is requesting during feature negotiation. Such a request will not necessarily be -honoured; see B. +honoured; see B. A value in this class may become read-only in certain circumstances; for example, after a connection has been established, for a value which cannot be @@ -100,7 +100,7 @@ SSL_get_feature_peer_request_uint() for brevity. =item B Values in this value class are read-only, and represent the value which was -actually negotated based on both local and peer input during feature +actually negotiated based on both local and peer input during feature negotiation. This is the effective value in actual use. Attempting to read a value in this class will generally fail if the feature diff --git a/ssl/quic/quic_channel_local.h b/ssl/quic/quic_channel_local.h index 88122f04358..16d96ef7d99 100644 --- a/ssl/quic/quic_channel_local.h +++ b/ssl/quic/quic_channel_local.h @@ -119,6 +119,9 @@ struct quic_channel_st { */ QUIC_CONN_ID retry_scid; + /* Server only: The DCID we currently expect the peer to use to talk to us. */ + QUIC_CONN_ID cur_local_cid; + /* * The DCID we currently use to talk to the peer and its sequence num. */ @@ -126,9 +129,6 @@ struct quic_channel_st { uint64_t cur_remote_seq_num; uint64_t cur_retire_prior_to; - /* Server only: The DCID we currently expect the peer to use to talk to us. */ - QUIC_CONN_ID cur_local_cid; - /* Transport parameter values we send to our peer. */ uint64_t tx_init_max_stream_data_bidi_local; uint64_t tx_init_max_stream_data_bidi_remote; @@ -142,6 +142,9 @@ struct quic_channel_st { uint64_t rx_max_ack_delay; /* ms */ unsigned char rx_ack_delay_exp; + /* Diagnostic counters for testing purposes only. May roll over. */ + uint16_t diag_num_rx_ack; /* Number of ACK frames received */ + /* * Temporary staging area to store information about the incoming packet we * are currently processing. @@ -201,9 +204,6 @@ struct quic_channel_st { */ uint64_t txku_threshold_override; - /* Diagnostic counters for testing purposes only. May roll over. */ - uint16_t diag_num_rx_ack; /* Number of ACK frames received */ - /* Valid if we are in the TERMINATING or TERMINATED states. */ QUIC_TERMINATE_CAUSE terminate_cause;