diff options
Diffstat (limited to 'net/quic/quic_framer.cc')
-rw-r--r-- | net/quic/quic_framer.cc | 117 |
1 files changed, 8 insertions, 109 deletions
diff --git a/net/quic/quic_framer.cc b/net/quic/quic_framer.cc index 027392c..fe70501 100644 --- a/net/quic/quic_framer.cc +++ b/net/quic/quic_framer.cc @@ -975,16 +975,15 @@ QuicFramer::AckFrameInfo QuicFramer::GetAckFrameInfo( *iter == (last_missing + 1)) { ++cur_range_length; } else { - ack_info.nack_ranges[last_missing - cur_range_length] - = cur_range_length; + ack_info.nack_ranges[last_missing - cur_range_length] = + cur_range_length; cur_range_length = 0; } ack_info.max_delta = max(ack_info.max_delta, *iter - last_missing); last_missing = *iter; } // Include the last nack range. - ack_info.nack_ranges[last_missing - cur_range_length] = - cur_range_length; + ack_info.nack_ranges[last_missing - cur_range_length] = cur_range_length; // Include the range to the largest observed. ack_info.max_delta = max(ack_info.max_delta, frame.largest_observed - last_missing); @@ -1419,53 +1418,8 @@ bool QuicFramer::ProcessQuicCongestionFeedbackFrame( switch (frame->type) { case kTimestamp: { - CongestionFeedbackMessageTimestamp* timestamp = &frame->timestamp; - uint8 num_received_packets; - if (!reader_->ReadBytes(&num_received_packets, 1)) { - set_detailed_error("Unable to read num received packets."); - return false; - } - - if (num_received_packets > 0u) { - uint64 smallest_received; - if (!ProcessPacketSequenceNumber(PACKET_6BYTE_SEQUENCE_NUMBER, - &smallest_received)) { - set_detailed_error("Unable to read smallest received."); - return false; - } - - uint64 time_received_us; - if (!reader_->ReadUInt64(&time_received_us)) { - set_detailed_error("Unable to read time received."); - return false; - } - QuicTime time_received = creation_time_.Add( - QuicTime::Delta::FromMicroseconds(time_received_us)); - - timestamp->received_packet_times.insert( - make_pair(smallest_received, time_received)); - - for (uint8 i = 0; i < num_received_packets - 1; ++i) { - uint16 sequence_delta; - if (!reader_->ReadUInt16(&sequence_delta)) { - set_detailed_error( - "Unable to read sequence delta in received packets."); - return false; - } - - int32 time_delta_us; - if (!reader_->ReadBytes(&time_delta_us, sizeof(time_delta_us))) { - set_detailed_error( - "Unable to read time delta in received packets."); - return false; - } - QuicPacketSequenceNumber packet = smallest_received + sequence_delta; - timestamp->received_packet_times.insert( - make_pair(packet, time_received.Add( - QuicTime::Delta::FromMicroseconds(time_delta_us)))); - } - } - break; + set_detailed_error("Timestamp feedback not supported."); + return false; } case kTCP: { CongestionFeedbackMessageTCP* tcp = &frame->tcp; @@ -1788,16 +1742,7 @@ size_t QuicFramer::ComputeFrameLength( switch (congestion_feedback.type) { case kTimestamp: { - const CongestionFeedbackMessageTimestamp& timestamp = - congestion_feedback.timestamp; - len += 1; // Number received packets. - if (!timestamp.received_packet_times.empty()) { - len += PACKET_6BYTE_SEQUENCE_NUMBER; // Smallest received. - len += 8; // Time. - // 2 bytes per sequence number delta plus 4 bytes per delta time. - len += PACKET_6BYTE_SEQUENCE_NUMBER * - (timestamp.received_packet_times.size() - 1); - } + set_detailed_error("Timestamp feedback not supported."); break; } case kTCP: @@ -2094,7 +2039,8 @@ bool QuicFramer::AppendCongestionFeedbackFrame( switch (frame.type) { case kTimestamp: { - return AppendTimestampFrame(frame, writer); + // Timestamp feedback not supported. + return false; } case kTCP: { const CongestionFeedbackMessageTCP& tcp = frame.tcp; @@ -2113,53 +2059,6 @@ bool QuicFramer::AppendCongestionFeedbackFrame( return true; } -bool QuicFramer::AppendTimestampFrame( - const QuicCongestionFeedbackFrame& frame, - QuicDataWriter* writer) { - const CongestionFeedbackMessageTimestamp& timestamp = frame.timestamp; - DCHECK_GE(numeric_limits<uint8>::max(), - timestamp.received_packet_times.size()); - if (timestamp.received_packet_times.size() > numeric_limits<uint8>::max()) { - return false; - } - uint8 num_received_packets = timestamp.received_packet_times.size(); - if (!writer->WriteBytes(&num_received_packets, 1)) { - return false; - } - if (num_received_packets > 0) { - TimeMap::const_iterator it = timestamp.received_packet_times.begin(); - - QuicPacketSequenceNumber lowest_sequence = it->first; - if (!AppendPacketSequenceNumber(PACKET_6BYTE_SEQUENCE_NUMBER, - lowest_sequence, writer)) { - return false; - } - - QuicTime lowest_time = it->second; - if (!writer->WriteUInt64( - lowest_time.Subtract(creation_time_).ToMicroseconds())) { - return false; - } - - for (++it; it != timestamp.received_packet_times.end(); ++it) { - QuicPacketSequenceNumber sequence_delta = it->first - lowest_sequence; - DCHECK_GE(numeric_limits<uint16>::max(), sequence_delta); - if (sequence_delta > numeric_limits<uint16>::max()) { - return false; - } - if (!writer->WriteUInt16(static_cast<uint16>(sequence_delta))) { - return false; - } - - int32 time_delta_us = it->second.Subtract(lowest_time).ToMicroseconds(); - if (!writer->WriteBytes(&time_delta_us, sizeof(time_delta_us))) { - return false; - } - } - } - return true; -} - bool QuicFramer::AppendStopWaitingFrame( const QuicPacketHeader& header, const QuicStopWaitingFrame& frame, |