Add has_ack to QuicTransmissionInfo. Currently, only used for logging purpose, not protected.
Add GetLastPacketContent to return a bitfield indicating the retransmittable frames in the last packet.
PiperOrigin-RevId: 326496264
Change-Id: I181c101907a85b1070c42fae32a61e3034e111d5
diff --git a/quic/core/quic_unacked_packet_map.cc b/quic/core/quic_unacked_packet_map.cc
index a18663f..e6328a7 100644
--- a/quic/core/quic_unacked_packet_map.cc
+++ b/quic/core/quic_unacked_packet_map.cc
@@ -529,4 +529,21 @@
supports_multiple_packet_number_spaces_ = true;
}
+uint32_t QuicUnackedPacketMap::GetLastPacketContent() const {
+ if (empty()) {
+ // Use max uint32_t to distinguish with packets with no retransmittable
+ // frames nor acks.
+ return std::numeric_limits<uint32_t>::max();
+ }
+ uint32_t content = 0;
+ const QuicTransmissionInfo& last_packet = unacked_packets_.back();
+ for (const auto& frame : last_packet.retransmittable_frames) {
+ content |= (1 << frame.type);
+ }
+ if (last_packet.largest_acked.IsInitialized()) {
+ content |= (1 << ACK_FRAME);
+ }
+ return content;
+}
+
} // namespace quic