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);