Remove some obsolete TODOs from QUIC code that were owned by Frank and rewrite some others.
gfe-relnote: n/a (Clean-up TODOs)
PiperOrigin-RevId: 285181290
Change-Id: Ibc49c594fc914047e352a92eb34afe2567096140
diff --git a/quic/core/frames/quic_blocked_frame.h b/quic/core/frames/quic_blocked_frame.h
index a4be664..30dcdf4 100644
--- a/quic/core/frames/quic_blocked_frame.h
+++ b/quic/core/frames/quic_blocked_frame.h
@@ -30,13 +30,9 @@
// and non-zero when sent.
QuicControlFrameId control_frame_id;
- // The stream this frame applies to. 0 is a special case meaning the overall
- // connection rather than a specific stream.
- //
- // For IETF QUIC, the stream_id controls whether an IETF QUIC
- // BLOCKED or STREAM_BLOCKED frame is generated.
- // If stream_id is 0 then a BLOCKED frame is generated and transmitted,
- // if non-0, a STREAM_BLOCKED.
+ // 0 is a special case meaning the connection is blocked, rather than a
+ // stream. So stream_id 0 corresponds to a BLOCKED frame and non-0
+ // corresponds to a STREAM_BLOCKED.
// TODO(fkastenholz): This should be converted to use
// QuicUtils::GetInvalidStreamId to get the correct invalid stream id value
// and not rely on 0.
diff --git a/quic/core/quic_constants.h b/quic/core/quic_constants.h
index 0c6c4ff..0b087b4 100644
--- a/quic/core/quic_constants.h
+++ b/quic/core/quic_constants.h
@@ -223,7 +223,6 @@
const uint64_t kMaxIetfVarInt = UINT64_C(0x3fffffffffffffff);
// The maximum stream id value that is supported - (2^32)-1
-// TODO(fkastenholz): Should update this to 64 bits for IETF Quic.
const QuicStreamId kMaxQuicStreamId = 0xffffffff;
// The maximum value that can be stored in a 32-bit QuicStreamCount.
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index c5708b9..51f4aec 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -3024,8 +3024,6 @@
if (!ProcessMaxDataFrame(reader, &frame)) {
return RaiseError(QUIC_INVALID_MAX_DATA_FRAME_DATA);
}
- // TODO(fkastenholz): Or should we create a new visitor function,
- // OnMaxDataFrame()?
QUIC_DVLOG(2) << ENDPOINT << "Processing IETF max data frame "
<< frame;
if (!visitor_->OnWindowUpdateFrame(frame)) {
@@ -3040,8 +3038,6 @@
if (!ProcessMaxStreamDataFrame(reader, &frame)) {
return RaiseError(QUIC_INVALID_MAX_STREAM_DATA_FRAME_DATA);
}
- // TODO(fkastenholz): Or should we create a new visitor function,
- // OnMaxStreamDataFrame()?
QUIC_DVLOG(2) << ENDPOINT << "Processing IETF max stream data frame "
<< frame;
if (!visitor_->OnWindowUpdateFrame(frame)) {
@@ -3113,7 +3109,6 @@
if (!ProcessStreamsBlockedFrame(reader, &frame, frame_type)) {
return RaiseError(QUIC_STREAMS_BLOCKED_DATA);
}
- QUIC_CODE_COUNT_N(quic_streams_blocked_received, 1, 2);
QUIC_DVLOG(2) << ENDPOINT << "Processing IETF streams blocked frame "
<< frame;
if (!visitor_->OnStreamsBlockedFrame(frame)) {
@@ -5944,9 +5939,6 @@
return false;
}
frame->unidirectional = (frame_type == IETF_STREAMS_BLOCKED_UNIDIRECTIONAL);
-
- // TODO(fkastenholz): handle properly when the STREAMS_BLOCKED
- // frame is implemented and passed up to the stream ID manager.
if (frame->stream_count >
QuicUtils::GetMaxStreamCount(
(frame_type == IETF_STREAMS_BLOCKED_UNIDIRECTIONAL),
diff --git a/quic/core/quic_packet_creator.cc b/quic/core/quic_packet_creator.cc
index f95fe63..b223205 100644
--- a/quic/core/quic_packet_creator.cc
+++ b/quic/core/quic_packet_creator.cc
@@ -329,17 +329,6 @@
return BytesFree() >= message_frame_size;
}
-// TODO(fkastenholz): this method should not use constant values for
-// the last-frame-in-packet and data-length parameters to
-// GetMinStreamFrameSize. Proper values should be plumbed in from
-// higher up. This was left this way for now for a few reasons. First,
-// higher up calls to StreamFramePacketOverhead() do not always know
-// this information, leading to a cascade of changes and B) the
-// higher-up software does not always loop, calling
-// StreamFramePacketOverhead() once for every packet -- eg there is
-// a test in quic_connection_test that calls it once and assumes that
-// the value is the same for all packets.
-
// static
size_t QuicPacketCreator::StreamFramePacketOverhead(
QuicTransportVersion version,
@@ -357,21 +346,10 @@
packet_number_length, retry_token_length_length, 0,
length_length) +
- // Assumes this is a packet with a single stream frame in it. Since
- // last_frame_in_packet is set true, the size of the length field is
- // not included in the calculation. This is OK because in other places
- // in the code, the logic adds back 2 (the size of the Google QUIC
- // length) when a frame is not the last frame of the packet. This is
- // also acceptable for IETF Quic; even though the length field could be
- // 8 bytes long, in practice it will not be longer than 2 bytes (enough
- // to encode 16K). A length that would be encoded in 2 bytes (0xfff)
- // is passed just for cleanliness.
- //
- // TODO(fkastenholz): This is very hacky and feels brittle. Ideally we
- // would calculate the correct lengths at the correct time, based on
- // the state at that time/place.
+ // Assumes a packet with a single stream frame, which omits the length,
+ // causing the data length argument to be ignored.
QuicFramer::GetMinStreamFrameSize(version, 1u, offset, true,
- kMaxOutgoingPacketSize);
+ kMaxOutgoingPacketSize /* unused */);
}
void QuicPacketCreator::CreateStreamFrame(QuicStreamId id,
diff --git a/quic/core/quic_stream_id_manager.cc b/quic/core/quic_stream_id_manager.cc
index d9f3477..0d570d2 100644
--- a/quic/core/quic_stream_id_manager.cc
+++ b/quic/core/quic_stream_id_manager.cc
@@ -69,8 +69,6 @@
const QuicStreamsBlockedFrame& frame) {
// Ensure that the frame has the correct directionality.
DCHECK_EQ(frame.unidirectional, unidirectional_);
- QUIC_CODE_COUNT_N(quic_streams_blocked_received, 2, 2);
-
if (frame.stream_count > incoming_advertised_max_streams_) {
// Peer thinks it can send more streams that we've told it.
// This is a protocol error.
diff --git a/quic/core/quic_types.h b/quic/core/quic_types.h
index b14e513..5a8ce07 100644
--- a/quic/core/quic_types.h
+++ b/quic/core/quic_types.h
@@ -26,7 +26,6 @@
typedef uint32_t QuicMessageId;
typedef uint64_t QuicDatagramFlowId;
-// TODO(fkastenholz): Should update this to 64 bits for V99.
typedef uint32_t QuicStreamId;
// Count of stream IDs. Used in MAX_STREAMS and STREAMS_BLOCKED
diff --git a/quic/core/quic_utils.cc b/quic/core/quic_utils.cc
index a69efcd..8529dca 100644
--- a/quic/core/quic_utils.cc
+++ b/quic/core/quic_utils.cc
@@ -572,18 +572,10 @@
QuicStringPiece(connection_id.data(), connection_id.length()));
}
-// Returns the maximum value that a stream count may have, taking into account
-// the fact that bidirectional, client initiated, streams have one fewer stream
-// available than the others. This is because the old crypto streams, with ID ==
-// 0 are not included in the count.
-// The version is not included in the call, nor does the method take the version
-// into account, because this is called only from code used for IETF QUIC.
-// TODO(fkastenholz): Remove this method and replace calls to it with direct
-// references to kMaxQuicStreamIdCount when streamid 0 becomes a normal stream
-// id.
// static
QuicStreamCount QuicUtils::GetMaxStreamCount(bool unidirectional,
Perspective perspective) {
+ // gQUIC uses one client initiated bidi stream for the crypto stream.
if (!unidirectional && perspective == Perspective::IS_CLIENT) {
return kMaxQuicStreamCount >> 2;
}