diff --git a/bazel/external/quiche.BUILD b/bazel/external/quiche.BUILD index 2ec3f85a4e67..50f9f8443c21 100644 --- a/bazel/external/quiche.BUILD +++ b/bazel/external/quiche.BUILD @@ -3731,6 +3731,25 @@ envoy_cc_test_library( ], ) +envoy_cc_test_library( + name = "quic_test_tools_session_peer_lib", + srcs = [ + "quiche/quic/test_tools/quic_session_peer.cc", + ], + hdrs = [ + "quiche/quic/test_tools/quic_session_peer.h", + ], + copts = quiche_copts, + repository = "@envoy", + tags = ["nofips"], + deps = [ + ":quic_core_packets_lib", + ":quic_core_session_lib", + ":quic_core_utils_lib", + ":quic_platform", + ], +) + envoy_cc_test_library( name = "quic_test_tools_unacked_packet_map_peer_lib", srcs = ["quiche/quic/test_tools/quic_unacked_packet_map_peer.cc"], diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl index 145da07e7f25..14c8b6d625be 100644 --- a/bazel/repository_locations.bzl +++ b/bazel/repository_locations.bzl @@ -410,9 +410,9 @@ DEPENDENCY_REPOSITORIES = dict( cpe = "N/A", ), com_googlesource_quiche = dict( - # Static snapshot of https://quiche.googlesource.com/quiche/+archive/b2b8ff25f5a565324b93411ca29c3403ccbca969.tar.gz - sha256 = "792924bbf27203bb0d1d08c99597a30793ef8f4cfa2df99792aea7200f1b27e3", - urls = ["https://storage.googleapis.com/quiche-envoy-integration/b2b8ff25f5a565324b93411ca29c3403ccbca969.tar.gz"], + # Static snapshot of https://quiche.googlesource.com/quiche/+archive/96bd860bec207d4b722ab7f319fa47be129a85cd.tar.gz + sha256 = "d7129a2f41f2bd00a8a38b33f9b7b955d3e7de3dec20f69b70d7000d3a856360", + urls = ["https://storage.googleapis.com/quiche-envoy-integration/96bd860bec207d4b722ab7f319fa47be129a85cd.tar.gz"], use_category = ["dataplane"], cpe = "N/A", ), diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.cc b/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.cc index 08564b722580..ba8f7f3a8239 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.cc +++ b/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.cc @@ -48,8 +48,9 @@ void EnvoyQuicDispatcher::OnConnectionClosed(quic::QuicConnectionId connection_i } std::unique_ptr EnvoyQuicDispatcher::CreateQuicSession( - quic::QuicConnectionId server_connection_id, const quic::QuicSocketAddress& peer_address, - quiche::QuicheStringPiece /*alpn*/, const quic::ParsedQuicVersion& version) { + quic::QuicConnectionId server_connection_id, const quic::QuicSocketAddress& /*self_address*/, + const quic::QuicSocketAddress& peer_address, quiche::QuicheStringPiece /*alpn*/, + const quic::ParsedQuicVersion& version) { auto quic_connection = std::make_unique( server_connection_id, peer_address, *helper(), *alarm_factory(), writer(), /*owns_writer=*/false, quic::ParsedQuicVersionVector{version}, listen_socket_); diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.h b/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.h index ede0c5b42625..5921342b84bf 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.h @@ -59,6 +59,7 @@ class EnvoyQuicDispatcher : public quic::QuicDispatcher { protected: std::unique_ptr CreateQuicSession(quic::QuicConnectionId server_connection_id, + const quic::QuicSocketAddress& self_address, const quic::QuicSocketAddress& peer_address, quiche::QuicheStringPiece alpn, const quic::ParsedQuicVersion& version) override; diff --git a/source/extensions/quic_listeners/quiche/platform/flags_list.h b/source/extensions/quic_listeners/quiche/platform/flags_list.h index 776521f42d0d..587e80054c0a 100644 --- a/source/extensions/quic_listeners/quiche/platform/flags_list.h +++ b/source/extensions/quic_listeners/quiche/platform/flags_list.h @@ -17,6 +17,10 @@ QUICHE_FLAG( bool, http2_reloadable_flag_http2_backend_alpn_failure_error_code, false, "If true, the GFE will return a new ResponseCodeDetails error when ALPN to the backend fails.") +QUICHE_FLAG(bool, http2_reloadable_flag_http2_ip_based_cwnd_exp, false, + "If true, enable IP address based CWND bootstrapping experiment with different " + "bandwidth models and priorities in HTTP2.") + QUICHE_FLAG(bool, http2_reloadable_flag_http2_security_requirement_for_client3, false, "If true, check whether client meets security requirements during SSL handshake. If " "flag is true and client does not meet security requirements, do not negotiate HTTP/2 " @@ -31,10 +35,18 @@ QUICHE_FLAG(bool, quic_reloadable_flag_advertise_quic_for_https_for_debugips, fa QUICHE_FLAG(bool, quic_reloadable_flag_advertise_quic_for_https_for_external_users, false, "") +QUICHE_FLAG(bool, quic_reloadable_flag_gclb_quic_allow_alia, true, + "If gfe2_reloadable_flag_gclb_use_alia is also true, use Alia for GCLB QUIC " + "handshakes. To be used as a big red button if there's a problem with Alia/QUIC.") + QUICHE_FLAG(bool, quic_reloadable_flag_quic_ack_delay_alarm_granularity, false, "When true, ensure the ACK delay is never less than the alarm granularity when ACK " "decimation is enabled.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_add_silent_idle_timeout, false, + "If true, when server is silently closing connections due to idle timeout, serialize " + "the connection close packets which will be added to time wait list.") + QUICHE_FLAG(bool, quic_reloadable_flag_quic_allow_backend_set_stream_ttl, false, "If true, check backend response header for X-Response-Ttl. If it is provided, the " "stream TTL is set. A QUIC stream will be immediately canceled when tries to write " @@ -46,17 +58,6 @@ QUICHE_FLAG(bool, quic_reloadable_flag_quic_allow_client_enabled_bbr_v2, true, QUICHE_FLAG(bool, quic_reloadable_flag_quic_alpn_dispatch, false, "Support different QUIC sessions, as indicated by ALPN. Used for QBONE.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_always_send_earliest_ack, false, - "If true, SendAllPendingAcks always send the earliest ACK.") - -QUICHE_FLAG( - bool, quic_reloadable_flag_quic_avoid_leak_writer_buffer, true, - "If true, QUIC will free writer-allocated packet buffer if writer->WritePacket is not called.") - -QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr2_add_ack_height_to_queueing_threshold, true, - "If true, QUIC BBRv2 to take ack height into account when calculating " - "queuing_threshold in PROBE_UP.") - QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr2_avoid_too_low_probe_bw_cwnd, false, "If true, QUIC BBRv2's PROBE_BW mode will not reduce cwnd below BDP+ack_height.") @@ -67,31 +68,36 @@ QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr2_fewer_startup_round_trips, fals QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr2_ignore_inflight_lo, false, "When true, QUIC's BBRv2 ignores inflight_lo in PROBE_BW.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr2_improve_adjust_network_parameters, false, + "If true, improve Bbr2Sender::AdjustNetworkParameters by 1) do not inject a bandwidth " + "sample to the bandwidth filter, and 2) re-calculate pacing rate after cwnd updated..") + QUICHE_FLAG( bool, quic_reloadable_flag_quic_bbr2_limit_inflight_hi, false, "When true, the B2HI connection option limits reduction of inflight_hi to (1-Beta)*CWND.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr_donot_inject_bandwidth, true, - "If true, do not inject bandwidth in BbrSender::AdjustNetworkParameters.") - -QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr_fix_pacing_rate, true, - "If true, re-calculate pacing rate when cwnd gets bootstrapped.") - QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr_flexible_app_limited, false, "When true and the BBR9 connection option is present, BBR only considers bandwidth " "samples app-limited if they're not filling the pipe.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr_mitigate_overly_large_bandwidth_sample, true, - "If true, when cwnd gets bootstrapped and causing badly overshoot, reset cwnd and " - "pacing rate based on measured bw.") - QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr_no_bytes_acked_in_startup_recovery, false, "When in STARTUP and recovery, do not add bytes_acked to QUIC BBR's CWND in " "CalculateCongestionWindow()") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_bootstrap_cwnd_by_gfe_bandwidth, false, + "If true, bootstrap initial QUIC cwnd by GFE measured bandwidth models.") + QUICHE_FLAG(bool, quic_reloadable_flag_quic_bootstrap_cwnd_by_spdy_priority, true, "If true, bootstrap initial QUIC cwnd by SPDY priorities.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_check_encryption_level_in_fast_path, false, + "If true, when data is sending in fast path mode in the creator, making sure stream " + "data is sent in the right encryption level.") + +QUICHE_FLAG(bool, quic_reloadable_flag_quic_coalesced_packet_of_higher_space2, false, + "If true, try to coalesce packet of higher space with retransmissions to mitigate RTT " + "inflations.") + QUICHE_FLAG(bool, quic_reloadable_flag_quic_conservative_bursts, false, "If true, set burst token to 2 in cwnd bootstrapping experiment.") @@ -114,24 +120,24 @@ QUICHE_FLAG(bool, quic_reloadable_flag_quic_default_to_bbr_v2, false, QUICHE_FLAG(bool, quic_reloadable_flag_quic_determine_serialized_packet_fate_early, false, "If true, determine a serialized packet's fate before the packet gets serialized.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_draft_25, false, +QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_server_blackhole_detection, false, + "If true, disable blackhole detection on server side.") + +QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_draft_25, true, "If true, disable QUIC version h3-25.") QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_draft_27, false, "If true, disable QUIC version h3-27.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_draft_29, false, + "If true, disable QUIC version h3-29.") + QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_q043, false, "If true, disable QUIC version Q043.") QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_q046, false, "If true, disable QUIC version Q046.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_q048, true, - "If true, disable QUIC version Q048.") - -QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_q049, true, - "If true, disable QUIC version Q049.") - QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_q050, false, "If true, disable QUIC version Q050.") @@ -150,66 +156,66 @@ QUICHE_FLAG( bool, quic_reloadable_flag_quic_do_not_close_stream_again_on_connection_close, false, "If true, do not try to close stream again if stream fails to be closed upon connection close.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_do_not_use_stream_map, false, + "If true, QUIC subclasses will no longer directly access stream_map for its content.") + QUICHE_FLAG(bool, quic_reloadable_flag_quic_donot_reset_ideal_next_packet_send_time, false, "If true, stop resetting ideal_next_packet_send_time_ in pacing sender.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_dont_pad_chlo, false, +QUICHE_FLAG(bool, quic_reloadable_flag_quic_dont_pad_chlo, true, "When true, do not pad the QUIC_CRYPTO CHLO message itself. Note that the packet " "containing the CHLO will still be padded.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_dont_send_max_ack_delay_if_default, false, +QUICHE_FLAG(bool, quic_reloadable_flag_quic_dont_send_max_ack_delay_if_default, true, "When true, QUIC_CRYPTO versions of QUIC will not send the max ACK delay unless it is " "configured to a non-default value.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_enable_ack_decimation, true, - "Default enables QUIC ack decimation and adds a connection option to disable it.") - QUICHE_FLAG(bool, quic_reloadable_flag_quic_enable_loss_detection_experiment_at_gfe, false, "If ture, enable GFE-picked loss detection experiment.") QUICHE_FLAG(bool, quic_reloadable_flag_quic_enable_loss_detection_tuner, false, "If true, allow QUIC loss detection tuning to be enabled by connection option ELDT.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_enable_tls_resumption_v2, false, - "If true, enables support for TLS resumption in QUIC.") - -QUICHE_FLAG(bool, quic_reloadable_flag_quic_enable_version_draft_29, false, - "If true, enable QUIC version h3-29.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_enable_overshooting_detection, false, + "If true, enable overshooting detection when the DTOS connection option is supplied.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_enable_zero_rtt_for_tls, false, - "If true, support for IETF QUIC 0-rtt is enabled.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_enable_version_t051, false, + "If true, enable QUIC version h3-T051.") QUICHE_FLAG(bool, quic_reloadable_flag_quic_enabled, false, "") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_bbr_cwnd_in_bandwidth_resumption, true, - "If true, adjust congestion window when doing bandwidth resumption in BBR.") - QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_extra_padding_bytes, false, "If true, consider frame expansion when calculating extra padding bytes to meet " "minimum plaintext packet size required for header protection.") -QUICHE_FLAG( - bool, quic_reloadable_flag_quic_fix_gquic_stream_type, false, - "If true, do not use QuicUtil::IsBidirectionalStreamId() to determine gQUIC stream type.") - -QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_min_crypto_frame_size, true, - "If true, include MinPlaintextPacketSize when deterine whether removing soft limit for " - "crypto frames.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_neuter_handshake_data, false, + "If true, fix a case where data is marked lost in HANDSHAKE level but HANDSHAKE key " + "gets decrypted later.") QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_packet_number_length, false, "If true, take the largest acked packet into account when computing the sent packet " "number length.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_pto_timeout, true, - "If true, use 0 as ack_delay when calculate PTO timeout for INITIAL and HANDSHAKE " - "packet number space.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_print_draft_version, false, + "When true, ParsedQuicVersionToString will print IETF drafts with format draft29 " + "instead of ff00001d.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_server_pto_timeout, true, - "If true, do not arm PTO on half RTT packets if they are the only ones in flight.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_get_stream_information_from_stream_map, false, + "If true, gQUIC will only consult stream_map in QuicSession::GetNumActiveStreams().") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_undecryptable_packets, false, - "If true, remove the head of line blocking caused by an unprocessable packet in the " - "undecryptable packets list.") +QUICHE_FLAG( + bool, quic_reloadable_flag_quic_http3_goaway_new_behavior, false, + "If true, server accepts GOAWAY (draft-28 behavior), client receiving GOAWAY with stream ID " + "that is not client-initiated bidirectional stream ID closes connection with H3_ID_ERROR " + "(draft-28 behavior). Also, receiving a GOAWAY with ID larger than previously received closes " + "connection with H3_ID_ERROR. If false, server receiving GOAWAY closes connection with " + "H3_FRAME_UNEXPECTED (draft-27 behavior), client receiving GOAWAY with stream ID that is not " + "client-initiated bidirectional stream ID closes connection with PROTOCOL_VIOLATION (draft-04 " + "behavior), larger ID than previously received does not trigger connection close.") + +QUICHE_FLAG(bool, quic_reloadable_flag_quic_ip_based_cwnd_exp, false, + "If true, enable IP address based CWND bootstrapping experiment with different " + "bandwidth models and priorities. ") QUICHE_FLAG(bool, quic_reloadable_flag_quic_listener_never_fake_epollout, false, "If true, QuicListener::OnSocketIsWritable will always return false, which means there " @@ -230,15 +236,43 @@ QUICHE_FLAG(bool, quic_reloadable_flag_quic_record_frontend_service_vip_mapping, "If true, for L1 GFE, as requests come in, record frontend service to VIP mapping " "which is used to announce VIP in SHLO for proxied sessions. ") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_record_received_min_ack_delay, false, + "If true, record the received min_ack_delay in transport parameters to QUIC config.") + QUICHE_FLAG(bool, quic_reloadable_flag_quic_reject_all_traffic, false, "") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_remove_streams_waiting_for_acks, false, + "If true, QuicSession will no longer need streams_waiting_for_acks_.") + +QUICHE_FLAG(bool, quic_reloadable_flag_quic_remove_unused_ack_options, false, + "Remove ACK_DECIMATION_WITH_REORDERING mode and fast_ack_after_quiescence option in " + "QUIC received packet manager.") + +QUICHE_FLAG(bool, quic_reloadable_flag_quic_remove_zombie_streams, false, + "If true, QuicSession doesn't keep a separate zombie_streams. Instead, all streams are " + "stored in stream_map_.") + QUICHE_FLAG(bool, quic_reloadable_flag_quic_require_handshake_confirmation, false, "If true, require handshake confirmation for QUIC connections, functionally disabling " "0-rtt handshakes.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_save_user_agent_in_quic_session, false, +QUICHE_FLAG(bool, quic_reloadable_flag_quic_retransmit_handshake_data_early, false, + "If true, retransmit unacked handshake data before PTO expiry.") + +QUICHE_FLAG( + bool, quic_reloadable_flag_quic_revert_mtu_after_two_ptos, false, + "If true, QUIC connection will revert to a previously validated MTU(if exists) after two PTOs.") + +QUICHE_FLAG(bool, quic_reloadable_flag_quic_save_user_agent_in_quic_session, true, "If true, save user agent into in QuicSession.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_send_early_data_header_to_backend, false, + "If true, for 0RTT IETF QUIC requests, GFE will append a Early-Data header and send it " + "to backend.") + +QUICHE_FLAG(bool, quic_reloadable_flag_quic_send_path_response, false, + "If true, send PATH_RESPONSE upon receiving PATH_CHALLENGE regardless of perspective.") + QUICHE_FLAG(bool, quic_reloadable_flag_quic_send_timestamps, false, "When the STMP connection option is sent by the client, timestamps in the QUIC ACK " "frame are sent and processed.") @@ -246,10 +280,10 @@ QUICHE_FLAG(bool, quic_reloadable_flag_quic_send_timestamps, false, QUICHE_FLAG(bool, quic_reloadable_flag_quic_server_push, true, "If true, enable server push feature on QUIC.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_stop_sending_duplicate_max_streams, false, - "If true, session does not send duplicate MAX_STREAMS.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_simplify_received_packet_manager_ack, false, + "Simplify the ACK code in quic_received_packet_manager.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_support_handshake_done_in_t050, false, +QUICHE_FLAG(bool, quic_reloadable_flag_quic_support_handshake_done_in_t050, true, "If true, support HANDSHAKE_DONE frame in T050.") QUICHE_FLAG(bool, quic_reloadable_flag_quic_testonly_default_false, false, @@ -265,9 +299,8 @@ QUICHE_FLAG(bool, quic_reloadable_flag_quic_unified_iw_options, false, QUICHE_FLAG(bool, quic_reloadable_flag_quic_update_packet_size, false, "If true, update packet size when the first frame gets queued.") -QUICHE_FLAG(bool, quic_reloadable_flag_quic_use_dispatcher_clock_for_read_timestamp, true, - "If true, in QuicListener, use QuicDispatcher's clock as the source for packet read " - "timestamps.") +QUICHE_FLAG(bool, quic_reloadable_flag_quic_use_half_rtt_as_first_pto, false, + "If true, when TLPR copt is used, enable half RTT as first PTO timeout.") QUICHE_FLAG(bool, quic_reloadable_flag_quic_use_header_stage_idle_list2, false, "If true, use header stage idle list for QUIC connections in GFE.") @@ -294,19 +327,16 @@ QUICHE_FLAG( bool, quic_restart_flag_quic_allow_loas_multipacket_chlo, false, "If true, inspects QUIC CHLOs for kLOAS and early creates sessions to allow multi-packet CHLOs") -QUICHE_FLAG(bool, quic_restart_flag_quic_dispatcher_track_top_1k_client_ip, true, - "If true, GfeQuicDispatcher will track the top 1000 client IPs.") +QUICHE_FLAG(bool, quic_restart_flag_quic_enable_tls_resumption_v4, false, + "If true, enables support for TLS resumption in QUIC.") + +QUICHE_FLAG(bool, quic_restart_flag_quic_enable_zero_rtt_for_tls_v2, false, + "If true, support for IETF QUIC 0-rtt is enabled.") -QUICHE_FLAG(bool, quic_restart_flag_quic_google_transport_param_omit_old, false, +QUICHE_FLAG(bool, quic_restart_flag_quic_google_transport_param_omit_old, true, "When true, QUIC+TLS will not send nor parse the old-format Google-specific transport " "parameters.") -QUICHE_FLAG(bool, quic_restart_flag_quic_ignore_cid_first_byte_in_rx_ring_bpf, true, - "If true, ignore CID first byte in BPF for RX_RING.") - -QUICHE_FLAG(bool, quic_restart_flag_quic_memslice_ensure_ownership, true, - "Call gfe2::MemSlice::EnsureReferenceCounted in the constructor of QuicMemSlice.") - QUICHE_FLAG(bool, quic_restart_flag_quic_offload_pacing_to_usps2, false, "If true, QUIC offload pacing when using USPS as egress method.") @@ -334,10 +364,6 @@ QUICHE_FLAG(bool, quic_restart_flag_quic_use_pigeon_socket_to_backend, false, "If true, create a shared pigeon socket for all quic to backend connections and switch " "to use it after successful handshake.") -QUICHE_FLAG(bool, spdy_reloadable_flag_fix_spdy_header_coalescing, true, - "If true, when coalescing multivalued spdy headers, only headers that exist in spdy " - "headers block are updated.") - QUICHE_FLAG(bool, spdy_reloadable_flag_quic_bootstrap_cwnd_by_spdy_priority, true, "If true, bootstrap initial QUIC cwnd by SPDY priorities.") diff --git a/test/extensions/quic_listeners/quiche/BUILD b/test/extensions/quic_listeners/quiche/BUILD index e14bc1f36fef..b3c4eb70698d 100644 --- a/test/extensions/quic_listeners/quiche/BUILD +++ b/test/extensions/quic_listeners/quiche/BUILD @@ -77,6 +77,7 @@ envoy_cc_test( "//test/mocks/network:network_mocks", "//test/test_common:utility_lib", "@com_googlesource_quiche//:quic_core_http_spdy_session_lib", + "@com_googlesource_quiche//:quic_test_tools_session_peer_lib", ], ) diff --git a/test/extensions/quic_listeners/quiche/active_quic_listener_test.cc b/test/extensions/quic_listeners/quiche/active_quic_listener_test.cc index 8c1e7e222790..747452ccdf78 100644 --- a/test/extensions/quic_listeners/quiche/active_quic_listener_test.cc +++ b/test/extensions/quic_listeners/quiche/active_quic_listener_test.cc @@ -85,7 +85,7 @@ class ActiveQuicListenerTest : public QuicMultiVersionTest { return quic::CurrentSupportedVersionsWithQuicCrypto(); } bool use_http3 = GetParam().second == QuicVersionType::Iquic; - SetQuicReloadableFlag(quic_enable_version_draft_29, use_http3); + SetQuicReloadableFlag(quic_disable_version_draft_29, !use_http3); SetQuicReloadableFlag(quic_disable_version_draft_27, !use_http3); SetQuicReloadableFlag(quic_disable_version_draft_25, !use_http3); return quic::CurrentSupportedVersions(); diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_client_session_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_client_session_test.cc index 5db43230cd7c..488fe023354e 100644 --- a/test/extensions/quic_listeners/quiche/envoy_quic_client_session_test.cc +++ b/test/extensions/quic_listeners/quiche/envoy_quic_client_session_test.cc @@ -95,7 +95,7 @@ class EnvoyQuicClientSessionTest : public testing::TestWithParam { : api_(Api::createApiForTest(time_system_)), dispatcher_(api_->allocateDispatcher("test_thread")), connection_helper_(*dispatcher_), alarm_factory_(*dispatcher_, *connection_helper_.GetClock()), quic_version_([]() { - SetQuicReloadableFlag(quic_enable_version_draft_29, GetParam()); + SetQuicReloadableFlag(quic_disable_version_draft_29, !GetParam()); SetQuicReloadableFlag(quic_disable_version_draft_27, !GetParam()); SetQuicReloadableFlag(quic_disable_version_draft_25, !GetParam()); return quic::ParsedVersionOfIndex(quic::CurrentSupportedVersions(), 0); diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_client_stream_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_client_stream_test.cc index 2a32df6319ed..9784c7231ff2 100644 --- a/test/extensions/quic_listeners/quiche/envoy_quic_client_stream_test.cc +++ b/test/extensions/quic_listeners/quiche/envoy_quic_client_stream_test.cc @@ -25,7 +25,7 @@ class EnvoyQuicClientStreamTest : public testing::TestWithParam { : api_(Api::createApiForTest()), dispatcher_(api_->allocateDispatcher("test_thread")), connection_helper_(*dispatcher_), alarm_factory_(*dispatcher_, *connection_helper_.GetClock()), quic_version_([]() { - SetQuicReloadableFlag(quic_enable_version_draft_29, GetParam()); + SetQuicReloadableFlag(quic_disable_version_draft_29, !GetParam()); SetQuicReloadableFlag(quic_disable_version_draft_27, !GetParam()); SetQuicReloadableFlag(quic_disable_version_draft_25, !GetParam()); return quic::CurrentSupportedVersions()[0]; diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_dispatcher_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_dispatcher_test.cc index c3ab38f57ff5..fb15815fa1db 100644 --- a/test/extensions/quic_listeners/quiche/envoy_quic_dispatcher_test.cc +++ b/test/extensions/quic_listeners/quiche/envoy_quic_dispatcher_test.cc @@ -65,7 +65,7 @@ class EnvoyQuicDispatcherTest : public QuicMultiVersionTest, return quic::CurrentSupportedVersionsWithQuicCrypto(); } bool use_http3 = GetParam().second == QuicVersionType::Iquic; - SetQuicReloadableFlag(quic_enable_version_draft_29, use_http3); + SetQuicReloadableFlag(quic_disable_version_draft_29, !use_http3); SetQuicReloadableFlag(quic_disable_version_draft_27, !use_http3); SetQuicReloadableFlag(quic_disable_version_draft_25, !use_http3); return quic::CurrentSupportedVersions(); diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_server_session_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_server_session_test.cc index 6ddae3c80624..f2ef9fae069e 100644 --- a/test/extensions/quic_listeners/quiche/envoy_quic_server_session_test.cc +++ b/test/extensions/quic_listeners/quiche/envoy_quic_server_session_test.cc @@ -145,7 +145,7 @@ class EnvoyQuicServerSessionTest : public testing::TestWithParam { : api_(Api::createApiForTest(time_system_)), dispatcher_(api_->allocateDispatcher("test_thread")), connection_helper_(*dispatcher_), alarm_factory_(*dispatcher_, *connection_helper_.GetClock()), quic_version_([]() { - SetQuicReloadableFlag(quic_enable_version_draft_29, GetParam()); + SetQuicReloadableFlag(quic_disable_version_draft_29, !GetParam()); SetQuicReloadableFlag(quic_disable_version_draft_27, !GetParam()); SetQuicReloadableFlag(quic_disable_version_draft_25, !GetParam()); return quic::ParsedVersionOfIndex(quic::CurrentSupportedVersions(), 0); diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_server_stream_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_server_stream_test.cc index 6468f95fe9fa..4a4236737bd0 100644 --- a/test/extensions/quic_listeners/quiche/envoy_quic_server_stream_test.cc +++ b/test/extensions/quic_listeners/quiche/envoy_quic_server_stream_test.cc @@ -7,6 +7,7 @@ #pragma GCC diagnostic ignored "-Winvalid-offsetof" #include "quiche/quic/test_tools/quic_connection_peer.h" +#include "quiche/quic/test_tools/quic_session_peer.h" #pragma GCC diagnostic pop #include "common/event/libevent_scheduler.h" @@ -39,7 +40,7 @@ class EnvoyQuicServerStreamTest : public testing::TestWithParam { : api_(Api::createApiForTest()), dispatcher_(api_->allocateDispatcher("test_thread")), connection_helper_(*dispatcher_), alarm_factory_(*dispatcher_, *connection_helper_.GetClock()), quic_version_([]() { - SetQuicReloadableFlag(quic_enable_version_draft_29, GetParam()); + SetQuicReloadableFlag(quic_disable_version_draft_29, !GetParam()); SetQuicReloadableFlag(quic_disable_version_draft_27, !GetParam()); SetQuicReloadableFlag(quic_disable_version_draft_25, !GetParam()); return quic::CurrentSupportedVersions()[0]; diff --git a/test/extensions/quic_listeners/quiche/integration/quic_http_integration_test.cc b/test/extensions/quic_listeners/quiche/integration/quic_http_integration_test.cc index bbe34b658e7b..05fb1e61a7aa 100644 --- a/test/extensions/quic_listeners/quiche/integration/quic_http_integration_test.cc +++ b/test/extensions/quic_listeners/quiche/integration/quic_http_integration_test.cc @@ -54,7 +54,7 @@ class QuicHttpIntegrationTest : public HttpIntegrationTest, public QuicMultiVers return quic::CurrentSupportedVersionsWithQuicCrypto(); } bool use_http3 = GetParam().second == QuicVersionType::Iquic; - SetQuicReloadableFlag(quic_enable_version_draft_29, use_http3); + SetQuicReloadableFlag(quic_disable_version_draft_29, !use_http3); SetQuicReloadableFlag(quic_disable_version_draft_27, !use_http3); SetQuicReloadableFlag(quic_disable_version_draft_25, !use_http3); return quic::CurrentSupportedVersions();