Add logging only ack_frame accessor. gfe-relnote: n/a (logging only change) PiperOrigin-RevId: 248533601 Change-Id: I1a72e6caed4c322ede61f4378f42ffbc161d55a7
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc index c1d1d76..e61bae4 100644 --- a/quic/core/quic_connection.cc +++ b/quic/core/quic_connection.cc
@@ -1040,7 +1040,7 @@ << "Received an unencrypted data frame: closing connection" << " packet_number:" << last_header_.packet_number << " stream_id:" << frame.stream_id - << " received_packets:" << GetUpdatedAckFrame(); + << " received_packets:" << ack_frame(); CloseConnection(QUIC_UNENCRYPTED_STREAM_DATA, "Unencrypted stream data seen.", ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET); @@ -4204,5 +4204,16 @@ } } +const QuicAckFrame& QuicConnection::ack_frame() const { + if (SupportsMultiplePacketNumberSpaces()) { + return uber_received_packet_manager_.GetAckFrame( + QuicUtils::GetPacketNumberSpace(last_decrypted_packet_level_)); + } + if (use_uber_received_packet_manager_) { + return uber_received_packet_manager_.ack_frame(); + } + return received_packet_manager_.ack_frame(); +} + #undef ENDPOINT // undef for jumbo builds } // namespace quic
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h index 413a582..8c8ed2b 100644 --- a/quic/core/quic_connection.h +++ b/quic/core/quic_connection.h
@@ -526,6 +526,8 @@ bool ShouldGeneratePacket(HasRetransmittableData retransmittable, IsHandshake handshake) override; const QuicFrames MaybeBundleAckOpportunistically() override; + // Please note, this is not a const function. For logging purpose, please use + // ack_frame(). const QuicFrame GetUpdatedAckFrame() override; void PopulateStopWaitingFrame(QuicStopWaitingFrame* stop_waiting) override; @@ -887,6 +889,9 @@ // Returns true if this connection supports multiple packet number spaces. bool SupportsMultiplePacketNumberSpaces() const; + // For logging purpose. + const QuicAckFrame& ack_frame() const; + protected: // Calls cancel() on all the alarms owned by this connection. void CancelAllAlarms();
diff --git a/quic/core/uber_received_packet_manager.cc b/quic/core/uber_received_packet_manager.cc index e887636..a3c79d3 100644 --- a/quic/core/uber_received_packet_manager.cc +++ b/quic/core/uber_received_packet_manager.cc
@@ -195,6 +195,12 @@ return received_packet_managers_[0].ack_frame(); } +const QuicAckFrame& UberReceivedPacketManager::GetAckFrame( + PacketNumberSpace packet_number_space) const { + DCHECK(supports_multiple_packet_number_spaces_); + return received_packet_managers_[packet_number_space].ack_frame(); +} + void UberReceivedPacketManager::set_max_ack_ranges(size_t max_ack_ranges) { for (auto& received_packet_manager : received_packet_managers_) { received_packet_manager.set_max_ack_ranges(max_ack_ranges);
diff --git a/quic/core/uber_received_packet_manager.h b/quic/core/uber_received_packet_manager.h index 5c813e2..21c2c0c 100644 --- a/quic/core/uber_received_packet_manager.h +++ b/quic/core/uber_received_packet_manager.h
@@ -85,6 +85,7 @@ // For logging purposes. const QuicAckFrame& ack_frame() const; + const QuicAckFrame& GetAckFrame(PacketNumberSpace packet_number_space) const; void set_max_ack_ranges(size_t max_ack_ranges);