Index: net/quic/quic_framer.cc |
diff --git a/net/quic/quic_framer.cc b/net/quic/quic_framer.cc |
index b0b3afcb3a05fa52697e3bad1e2277d29f83226c..5cde3c23fcf3851ca7612ca13075fa524fe4d59c 100644 |
--- a/net/quic/quic_framer.cc |
+++ b/net/quic/quic_framer.cc |
@@ -62,7 +62,6 @@ const uint8 kPublicHeaderSequenceNumberShift = 4; |
// all in the Frame Type byte. Currently defined Special Frame Types are: |
// Stream : 0b 1xxxxxxx |
// Ack : 0b 01xxxxxx |
-// CongestionFeedback : 0b 001xxxxx |
// |
// Semantics of the flag bits above (the x bits) depends on the frame type. |
@@ -71,7 +70,6 @@ const uint8 kPublicHeaderSequenceNumberShift = 4; |
const uint8 kQuicFrameTypeSpecialMask = 0xE0; // 0b 11100000 |
const uint8 kQuicFrameTypeStreamMask = 0x80; |
const uint8 kQuicFrameTypeAckMask = 0x40; |
-const uint8 kQuicFrameTypeCongestionFeedbackMask = 0x20; |
// Stream frame relative shifts and masks for interpreting the stream flags. |
// StreamID may be 1, 2, 3, or 4 bytes. |
@@ -359,13 +357,6 @@ SerializedPacket QuicFramer::BuildDataPacket( |
return kNoPacket; |
} |
break; |
- case CONGESTION_FEEDBACK_FRAME: |
- if (!AppendCongestionFeedbackFrame( |
- *frame.congestion_feedback_frame, &writer)) { |
- LOG(DFATAL) << "AppendCongestionFeedbackFrame failed"; |
- return kNoPacket; |
- } |
- break; |
case STOP_WAITING_FRAME: |
if (!AppendStopWaitingFrame( |
header, *frame.stop_waiting_frame, &writer)) { |
@@ -1124,24 +1115,6 @@ bool QuicFramer::ProcessFrameData(const QuicPacketHeader& header) { |
continue; |
} |
- // Congestion Feedback Frame |
- if (frame_type & kQuicFrameTypeCongestionFeedbackMask) { |
- if (quic_version_ > QUIC_VERSION_22) { |
- set_detailed_error("Congestion Feedback Frame has been deprecated."); |
- DLOG(WARNING) << "Congestion Feedback Frame has been deprecated."; |
- } |
- QuicCongestionFeedbackFrame frame; |
- if (!ProcessCongestionFeedbackFrame(&frame)) { |
- return RaiseError(QUIC_INVALID_CONGESTION_FEEDBACK_DATA); |
- } |
- if (!visitor_->OnCongestionFeedbackFrame(frame)) { |
- DVLOG(1) << "Visitor asked to stop further processing."; |
- // Returning true since there was no parsing error. |
- return true; |
- } |
- continue; |
- } |
- |
// This was a special frame type that did not match any |
// of the known ones. Error. |
set_detailed_error("Illegal frame type."); |
@@ -1406,7 +1379,7 @@ bool QuicFramer::ProcessAckFrame(uint8 frame_type, QuicAckFrame* ack_frame) { |
} |
bool QuicFramer::ProcessTimestampsInAckFrame(QuicAckFrame* ack_frame) { |
- if (version() > QUIC_VERSION_22 && !ack_frame->is_truncated) { |
+ if (!ack_frame->is_truncated) { |
uint8 num_received_packets; |
if (!reader_->ReadBytes(&num_received_packets, 1)) { |
set_detailed_error("Unable to read num received packets."); |
@@ -1483,38 +1456,6 @@ bool QuicFramer::ProcessStopWaitingFrame(const QuicPacketHeader& header, |
return true; |
} |
-bool QuicFramer::ProcessCongestionFeedbackFrame( |
- QuicCongestionFeedbackFrame* frame) { |
- uint8 feedback_type; |
- if (!reader_->ReadBytes(&feedback_type, 1)) { |
- set_detailed_error("Unable to read congestion feedback type."); |
- return false; |
- } |
- frame->type = |
- static_cast<CongestionFeedbackType>(feedback_type); |
- |
- switch (frame->type) { |
- case kTCP: { |
- CongestionFeedbackMessageTCP* tcp = &frame->tcp; |
- uint16 receive_window = 0; |
- if (!reader_->ReadUInt16(&receive_window)) { |
- set_detailed_error("Unable to read receive window."); |
- return false; |
- } |
- // Simple bit packing, don't send the 4 least significant bits. |
- tcp->receive_window = static_cast<QuicByteCount>(receive_window) << 4; |
- break; |
- } |
- default: |
- set_detailed_error("Illegal congestion feedback type."); |
- DLOG(WARNING) << "Illegal congestion feedback type: " |
- << frame->type; |
- return RaiseError(QUIC_INVALID_FRAME_DATA); |
- } |
- |
- return true; |
-} |
- |
bool QuicFramer::ProcessRstStreamFrame(QuicRstStreamFrame* frame) { |
if (!reader_->ReadUInt32(&frame->stream_id)) { |
set_detailed_error("Unable to read stream_id."); |
@@ -1789,8 +1730,7 @@ size_t QuicFramer::GetAckFrameSize( |
// In version 23, if the ack will be truncated due to too many nack ranges, |
// then do not include the number of timestamps (1 byte). |
- if (version() > QUIC_VERSION_22 && |
- ack_info.nack_ranges.size() <= kMaxNackRanges) { |
+ if (ack_info.nack_ranges.size() <= kMaxNackRanges) { |
// 1 byte for the number of timestamps. |
ack_size += 1; |
if (ack.received_packet_times.size() > 0) { |
@@ -1822,23 +1762,6 @@ size_t QuicFramer::ComputeFrameLength( |
case ACK_FRAME: { |
return GetAckFrameSize(*frame.ack_frame, sequence_number_length); |
} |
- case CONGESTION_FEEDBACK_FRAME: { |
- size_t len = kQuicFrameTypeSize; |
- const QuicCongestionFeedbackFrame& congestion_feedback = |
- *frame.congestion_feedback_frame; |
- len += 1; // Congestion feedback type. |
- |
- switch (congestion_feedback.type) { |
- case kTCP: |
- len += 2; // Receive window. |
- break; |
- default: |
- set_detailed_error("Illegal feedback type."); |
- DVLOG(1) << "Illegal feedback type: " << congestion_feedback.type; |
- break; |
- } |
- return len; |
- } |
case STOP_WAITING_FRAME: |
return GetStopWaitingFrameSize(sequence_number_length); |
case PING_FRAME: |
@@ -1900,11 +1823,6 @@ bool QuicFramer::AppendTypeByte(const QuicFrame& frame, |
} |
case ACK_FRAME: |
return true; |
- case CONGESTION_FEEDBACK_FRAME: { |
- // TODO(ianswett): Use extra 5 bits in the congestion feedback framing. |
- type_byte = kQuicFrameTypeCongestionFeedbackMask; |
- break; |
- } |
default: |
type_byte = static_cast<uint8>(frame.type); |
break; |
@@ -2064,7 +1982,7 @@ bool QuicFramer::AppendAckFrameAndTypeByte( |
} |
// Timestamp goes at the end of the required fields. |
- if (version() > QUIC_VERSION_22 && !truncated) { |
+ if (!truncated) { |
if (!AppendTimestampToAckFrame(frame, writer)) { |
return false; |
} |
@@ -2123,31 +2041,6 @@ bool QuicFramer::AppendAckFrameAndTypeByte( |
return true; |
} |
-bool QuicFramer::AppendCongestionFeedbackFrame( |
- const QuicCongestionFeedbackFrame& frame, |
- QuicDataWriter* writer) { |
- if (!writer->WriteBytes(&frame.type, 1)) { |
- return false; |
- } |
- |
- switch (frame.type) { |
- case kTCP: { |
- const CongestionFeedbackMessageTCP& tcp = frame.tcp; |
- DCHECK_LE(tcp.receive_window, 1u << 20); |
- // Simple bit packing, don't send the 4 least significant bits. |
- uint16 receive_window = static_cast<uint16>(tcp.receive_window >> 4); |
- if (!writer->WriteUInt16(receive_window)) { |
- return false; |
- } |
- break; |
- } |
- default: |
- return false; |
- } |
- |
- return true; |
-} |
- |
bool QuicFramer::AppendTimestampToAckFrame(const QuicAckFrame& frame, |
QuicDataWriter* writer) { |
DCHECK_GE(version(), QUIC_VERSION_23); |