Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(359)

Side by Side Diff: net/quic/quic_framer.cc

Issue 1787443002: Remove lastest_revived_packet from QuicAckFrame since FEC is gone. No functional change expected. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@116391846
Patch Set: Removed revived packet from QuicConnectionLogger Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/quic_connection_test.cc ('k') | net/quic/quic_framer_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/quic/quic_framer.h" 5 #include "net/quic/quic_framer.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 1366 matching lines...) Expand 10 before | Expand all | Expand 10 after
1377 return false; 1377 return false;
1378 } 1378 }
1379 1379
1380 for (size_t i = 0; i < num_revived_packets; ++i) { 1380 for (size_t i = 0; i < num_revived_packets; ++i) {
1381 QuicPacketNumber revived_packet = 0; 1381 QuicPacketNumber revived_packet = 0;
1382 if (!reader->ReadBytes(&revived_packet, 1382 if (!reader->ReadBytes(&revived_packet,
1383 largest_observed_packet_number_length)) { 1383 largest_observed_packet_number_length)) {
1384 set_detailed_error("Unable to read revived packet."); 1384 set_detailed_error("Unable to read revived packet.");
1385 return false; 1385 return false;
1386 } 1386 }
1387 ack_frame->latest_revived_packet = revived_packet;
1388 } 1387 }
1389 1388
1390 return true; 1389 return true;
1391 } 1390 }
1392 1391
1393 bool QuicFramer::ProcessTimestampsInAckFrame(QuicDataReader* reader, 1392 bool QuicFramer::ProcessTimestampsInAckFrame(QuicDataReader* reader,
1394 QuicAckFrame* ack_frame) { 1393 QuicAckFrame* ack_frame) {
1395 if (ack_frame->is_truncated) { 1394 if (ack_frame->is_truncated) {
1396 return true; 1395 return true;
1397 } 1396 }
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
1750 QuicPacketNumberLength largest_observed_length = 1749 QuicPacketNumberLength largest_observed_length =
1751 GetMinSequenceNumberLength(ack.largest_observed); 1750 GetMinSequenceNumberLength(ack.largest_observed);
1752 QuicPacketNumberLength missing_packet_number_length = 1751 QuicPacketNumberLength missing_packet_number_length =
1753 GetMinSequenceNumberLength(ack_info.max_delta); 1752 GetMinSequenceNumberLength(ack_info.max_delta);
1754 1753
1755 size_t ack_size = GetMinAckFrameSize(largest_observed_length); 1754 size_t ack_size = GetMinAckFrameSize(largest_observed_length);
1756 if (!ack_info.nack_ranges.empty()) { 1755 if (!ack_info.nack_ranges.empty()) {
1757 ack_size += kNumberOfNackRangesSize + kNumberOfRevivedPacketsSize; 1756 ack_size += kNumberOfNackRangesSize + kNumberOfRevivedPacketsSize;
1758 ack_size += min(ack_info.nack_ranges.size(), kMaxNackRanges) * 1757 ack_size += min(ack_info.nack_ranges.size(), kMaxNackRanges) *
1759 (missing_packet_number_length + PACKET_1BYTE_PACKET_NUMBER); 1758 (missing_packet_number_length + PACKET_1BYTE_PACKET_NUMBER);
1760 if (ack.latest_revived_packet != 0) {
1761 ack_size += largest_observed_length;
1762 }
1763 } 1759 }
1764 1760
1765 // In version 23, if the ack will be truncated due to too many nack ranges, 1761 // In version 23, if the ack will be truncated due to too many nack ranges,
1766 // then do not include the number of timestamps (1 byte). 1762 // then do not include the number of timestamps (1 byte).
1767 if (ack_info.nack_ranges.size() <= kMaxNackRanges) { 1763 if (ack_info.nack_ranges.size() <= kMaxNackRanges) {
1768 // 1 byte for the number of timestamps. 1764 // 1 byte for the number of timestamps.
1769 ack_size += 1; 1765 ack_size += 1;
1770 if (ack.received_packet_times.size() > 0) { 1766 if (ack.received_packet_times.size() > 0) {
1771 // 1 byte for packet number, 4 bytes for timestamp for the first 1767 // 1 byte for packet number, 4 bytes for timestamp for the first
1772 // packet. 1768 // packet.
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
2041 ack_iter->second, writer)) { 2037 ack_iter->second, writer)) {
2042 return false; 2038 return false;
2043 } 2039 }
2044 // Subtract 1 so a missing_delta of 0 means an adjacent range. 2040 // Subtract 1 so a missing_delta of 0 means an adjacent range.
2045 last_sequence_written = ack_iter->first - 1; 2041 last_sequence_written = ack_iter->first - 1;
2046 ++num_ranges_written; 2042 ++num_ranges_written;
2047 } 2043 }
2048 DCHECK_EQ(num_missing_ranges, num_ranges_written); 2044 DCHECK_EQ(num_missing_ranges, num_ranges_written);
2049 2045
2050 // Append revived packets. 2046 // Append revived packets.
2051 // If not all the revived packets fit, only mention the ones that do. 2047 // FEC is not supported.
2052 uint8_t num_revived_packets = frame.latest_revived_packet == 0 ? 0 : 1; 2048 uint8_t num_revived_packets = 0;
2053 if (((writer->capacity() - writer->length()) / largest_observed_length) ==
2054 0) {
2055 num_revived_packets = 0;
2056 }
2057 if (!writer->WriteBytes(&num_revived_packets, 1)) { 2049 if (!writer->WriteBytes(&num_revived_packets, 1)) {
2058 return false; 2050 return false;
2059 } 2051 }
2060 2052
2061 if (num_revived_packets > 0) {
2062 QUIC_BUG_IF(!frame.missing_packets.Contains(frame.latest_revived_packet));
2063 if (!AppendPacketSequenceNumber(largest_observed_length,
2064 frame.latest_revived_packet, writer)) {
2065 return false;
2066 }
2067 }
2068
2069 return true; 2053 return true;
2070 } 2054 }
2071 2055
2072 bool QuicFramer::AppendTimestampToAckFrame(const QuicAckFrame& frame, 2056 bool QuicFramer::AppendTimestampToAckFrame(const QuicAckFrame& frame,
2073 QuicDataWriter* writer) { 2057 QuicDataWriter* writer) {
2074 DCHECK_GE(numeric_limits<uint8_t>::max(), frame.received_packet_times.size()); 2058 DCHECK_GE(numeric_limits<uint8_t>::max(), frame.received_packet_times.size());
2075 // num_received_packets is only 1 byte. 2059 // num_received_packets is only 1 byte.
2076 if (frame.received_packet_times.size() > numeric_limits<uint8_t>::max()) { 2060 if (frame.received_packet_times.size() > numeric_limits<uint8_t>::max()) {
2077 return false; 2061 return false;
2078 } 2062 }
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
2242 2226
2243 bool QuicFramer::RaiseError(QuicErrorCode error) { 2227 bool QuicFramer::RaiseError(QuicErrorCode error) {
2244 DVLOG(1) << "Error: " << QuicUtils::ErrorToString(error) 2228 DVLOG(1) << "Error: " << QuicUtils::ErrorToString(error)
2245 << " detail: " << detailed_error_; 2229 << " detail: " << detailed_error_;
2246 set_error(error); 2230 set_error(error);
2247 visitor_->OnError(this); 2231 visitor_->OnError(this);
2248 return false; 2232 return false;
2249 } 2233 }
2250 2234
2251 } // namespace net 2235 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_connection_test.cc ('k') | net/quic/quic_framer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698