Update QUIC transport parameters for draft-22
gfe-relnote: update QUIC transport parameters, protected by disabled QUIC_TLS flag
PiperOrigin-RevId: 258663796
Change-Id: Idabf673943c783b39940cdcc0ddb80db3adeaa3e
diff --git a/quic/core/crypto/transport_parameters.cc b/quic/core/crypto/transport_parameters.cc
index e5df9fe..247f407 100644
--- a/quic/core/crypto/transport_parameters.cc
+++ b/quic/core/crypto/transport_parameters.cc
@@ -40,6 +40,7 @@
kMaxAckDelay = 0xb,
kDisableMigration = 0xc,
kPreferredAddress = 0xd,
+ kActiveConnectionIdLimit = 0xe,
kGoogleQuicParam = 18257, // Used for non-standard Google-specific params.
kGoogleQuicVersion =
@@ -90,6 +91,8 @@
return "disable_migration";
case TransportParameters::kPreferredAddress:
return "preferred_address";
+ case TransportParameters::kActiveConnectionIdLimit:
+ return "active_connection_id_limit";
case TransportParameters::kGoogleQuicParam:
return "google";
case TransportParameters::kGoogleQuicVersion:
@@ -273,6 +276,7 @@
rv += " " + TransportParameterIdToString(kPreferredAddress) + " " +
preferred_address->ToString();
}
+ rv += active_connection_id_limit.ToString(/*for_use_in_list=*/true);
if (google_quic_params) {
rv += " " + TransportParameterIdToString(kGoogleQuicParam);
}
@@ -302,7 +306,8 @@
kDefaultMaxAckDelayTransportParam,
0,
kMaxMaxAckDelayTransportParam),
- disable_migration(false)
+ disable_migration(false),
+ active_connection_id_limit(kActiveConnectionIdLimit)
// Important note: any new transport parameters must be added
// to TransportParameters::AreValid, SerializeTransportParameters and
// ParseTransportParameters.
@@ -350,7 +355,8 @@
initial_max_stream_data_uni.IsValid() &&
initial_max_streams_bidi.IsValid() &&
initial_max_streams_uni.IsValid() &&
- ack_delay_exponent.IsValid() && max_ack_delay.IsValid();
+ ack_delay_exponent.IsValid() && max_ack_delay.IsValid() &&
+ active_connection_id_limit.IsValid();
if (!ok) {
QUIC_DLOG(ERROR) << "Invalid transport parameters " << *this;
}
@@ -431,7 +437,8 @@
!in.initial_max_streams_bidi.WriteToCbb(¶ms) ||
!in.initial_max_streams_uni.WriteToCbb(¶ms) ||
!in.ack_delay_exponent.WriteToCbb(¶ms) ||
- !in.max_ack_delay.WriteToCbb(¶ms)) {
+ !in.max_ack_delay.WriteToCbb(¶ms) ||
+ !in.active_connection_id_limit.WriteToCbb(¶ms)) {
QUIC_BUG << "Failed to write integers for " << in;
return false;
}
@@ -692,6 +699,9 @@
QuicMakeUnique<TransportParameters::PreferredAddress>(
preferred_address);
} break;
+ case TransportParameters::kActiveConnectionIdLimit:
+ parse_success = out->active_connection_id_limit.ReadFromCbs(&value);
+ break;
case TransportParameters::kGoogleQuicParam: {
if (out->google_quic_params) {
QUIC_DLOG(ERROR) << "Received a second Google parameter";