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

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

Issue 2543953003: Remove the "New" prefix from various Ack-related structs/methods in QuicFramer now that there are o… (Closed)
Patch Set: Created 4 years 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/core/quic_framer.h ('k') | net/quic/core/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/core/quic_framer.h" 5 #include "net/quic/core/quic_framer.h"
6 6
7 #include <cstdint> 7 #include <cstdint>
8 #include <memory> 8 #include <memory>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 if (can_truncate) { 308 if (can_truncate) {
309 // Truncate the frame so the packet will not exceed kMaxPacketSize. 309 // Truncate the frame so the packet will not exceed kMaxPacketSize.
310 // Note that we may not use every byte of the writer in this case. 310 // Note that we may not use every byte of the writer in this case.
311 DVLOG(1) << ENDPOINT 311 DVLOG(1) << ENDPOINT
312 << "Truncating large frame, free bytes: " << free_bytes; 312 << "Truncating large frame, free bytes: " << free_bytes;
313 return free_bytes; 313 return free_bytes;
314 } 314 }
315 return 0; 315 return 0;
316 } 316 }
317 317
318 QuicFramer::NewAckFrameInfo::NewAckFrameInfo() 318 QuicFramer::AckFrameInfo::AckFrameInfo()
319 : max_block_length(0), first_block_length(0), num_ack_blocks(0) {} 319 : max_block_length(0), first_block_length(0), num_ack_blocks(0) {}
320 320
321 QuicFramer::NewAckFrameInfo::NewAckFrameInfo(const NewAckFrameInfo& other) = 321 QuicFramer::AckFrameInfo::AckFrameInfo(const AckFrameInfo& other) = default;
322 default;
323 322
324 QuicFramer::NewAckFrameInfo::~NewAckFrameInfo() {} 323 QuicFramer::AckFrameInfo::~AckFrameInfo() {}
325 324
326 size_t QuicFramer::BuildDataPacket(const QuicPacketHeader& header, 325 size_t QuicFramer::BuildDataPacket(const QuicPacketHeader& header,
327 const QuicFrames& frames, 326 const QuicFrames& frames,
328 char* buffer, 327 char* buffer,
329 size_t packet_length) { 328 size_t packet_length) {
330 QuicDataWriter writer(packet_length, buffer); 329 QuicDataWriter writer(packet_length, buffer);
331 if (!AppendPacketHeader(header, &writer)) { 330 if (!AppendPacketHeader(header, &writer)) {
332 QUIC_BUG << "AppendPacketHeader failed"; 331 QUIC_BUG << "AppendPacketHeader failed";
333 return 0; 332 return 0;
334 } 333 }
(...skipping 12 matching lines...) Expand all
347 writer.WritePadding(); 346 writer.WritePadding();
348 break; 347 break;
349 case STREAM_FRAME: 348 case STREAM_FRAME:
350 if (!AppendStreamFrame(*frame.stream_frame, no_stream_frame_length, 349 if (!AppendStreamFrame(*frame.stream_frame, no_stream_frame_length,
351 &writer)) { 350 &writer)) {
352 QUIC_BUG << "AppendStreamFrame failed"; 351 QUIC_BUG << "AppendStreamFrame failed";
353 return 0; 352 return 0;
354 } 353 }
355 break; 354 break;
356 case ACK_FRAME: 355 case ACK_FRAME:
357 if (!AppendNewAckFrameAndTypeByte(*frame.ack_frame, &writer)) { 356 if (!AppendAckFrameAndTypeByte(*frame.ack_frame, &writer)) {
358 QUIC_BUG << "AppendNewAckFrameAndTypeByte failed"; 357 QUIC_BUG << "AppendAckFrameAndTypeByte failed";
359 return 0; 358 return 0;
360 } 359 }
361 break; 360 break;
362 case STOP_WAITING_FRAME: 361 case STOP_WAITING_FRAME:
363 if (!AppendStopWaitingFrame(header, *frame.stop_waiting_frame, 362 if (!AppendStopWaitingFrame(header, *frame.stop_waiting_frame,
364 &writer)) { 363 &writer)) {
365 QUIC_BUG << "AppendStopWaitingFrame failed"; 364 QUIC_BUG << "AppendStopWaitingFrame failed";
366 return 0; 365 return 0;
367 } 366 }
368 break; 367 break;
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 return PACKET_FLAGS_4BYTE_PACKET; 920 return PACKET_FLAGS_4BYTE_PACKET;
922 case PACKET_6BYTE_PACKET_NUMBER: 921 case PACKET_6BYTE_PACKET_NUMBER:
923 return PACKET_FLAGS_6BYTE_PACKET; 922 return PACKET_FLAGS_6BYTE_PACKET;
924 default: 923 default:
925 QUIC_BUG << "Unreachable case statement."; 924 QUIC_BUG << "Unreachable case statement.";
926 return PACKET_FLAGS_6BYTE_PACKET; 925 return PACKET_FLAGS_6BYTE_PACKET;
927 } 926 }
928 } 927 }
929 928
930 // static 929 // static
931 QuicFramer::NewAckFrameInfo QuicFramer::GetNewAckFrameInfo( 930 QuicFramer::AckFrameInfo QuicFramer::GetAckFrameInfo(
932 const QuicAckFrame& frame) { 931 const QuicAckFrame& frame) {
933 NewAckFrameInfo new_ack_info; 932 AckFrameInfo new_ack_info;
934 if (frame.packets.Empty()) { 933 if (frame.packets.Empty()) {
935 return new_ack_info; 934 return new_ack_info;
936 } 935 }
937 // The first block is the last interval. It isn't encoded with the gap-length 936 // The first block is the last interval. It isn't encoded with the gap-length
938 // encoding, so skip it. 937 // encoding, so skip it.
939 new_ack_info.first_block_length = frame.packets.LastIntervalLength(); 938 new_ack_info.first_block_length = frame.packets.LastIntervalLength();
940 auto itr = frame.packets.rbegin(); 939 auto itr = frame.packets.rbegin();
941 QuicPacketNumber previous_start = itr->min(); 940 QuicPacketNumber previous_start = itr->min();
942 new_ack_info.max_block_length = itr->Length(); 941 new_ack_info.max_block_length = itr->Length();
943 ++itr; 942 ++itr;
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1044 DVLOG(1) << ENDPOINT << "Visitor asked to stop further processing."; 1043 DVLOG(1) << ENDPOINT << "Visitor asked to stop further processing.";
1045 // Returning true since there was no parsing error. 1044 // Returning true since there was no parsing error.
1046 return true; 1045 return true;
1047 } 1046 }
1048 continue; 1047 continue;
1049 } 1048 }
1050 1049
1051 // Ack Frame 1050 // Ack Frame
1052 if (frame_type & kQuicFrameTypeAckMask) { 1051 if (frame_type & kQuicFrameTypeAckMask) {
1053 QuicAckFrame frame; 1052 QuicAckFrame frame;
1054 if (!ProcessNewAckFrame(reader, frame_type, &frame)) { 1053 if (!ProcessAckFrame(reader, frame_type, &frame)) {
1055 return RaiseError(QUIC_INVALID_ACK_DATA); 1054 return RaiseError(QUIC_INVALID_ACK_DATA);
1056 } 1055 }
1057 if (!visitor_->OnAckFrame(frame)) { 1056 if (!visitor_->OnAckFrame(frame)) {
1058 DVLOG(1) << ENDPOINT << "Visitor asked to stop further processing."; 1057 DVLOG(1) << ENDPOINT << "Visitor asked to stop further processing.";
1059 // Returning true since there was no parsing error. 1058 // Returning true since there was no parsing error.
1060 return true; 1059 return true;
1061 } 1060 }
1062 continue; 1061 continue;
1063 } 1062 }
1064 1063
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1240 set_detailed_error("Unable to read frame data."); 1239 set_detailed_error("Unable to read frame data.");
1241 return false; 1240 return false;
1242 } 1241 }
1243 } 1242 }
1244 frame->data_buffer = data.data(); 1243 frame->data_buffer = data.data();
1245 frame->data_length = static_cast<uint16_t>(data.length()); 1244 frame->data_length = static_cast<uint16_t>(data.length());
1246 1245
1247 return true; 1246 return true;
1248 } 1247 }
1249 1248
1250 bool QuicFramer::ProcessNewAckFrame(QuicDataReader* reader, 1249 bool QuicFramer::ProcessAckFrame(QuicDataReader* reader,
1251 uint8_t frame_type, 1250 uint8_t frame_type,
1252 QuicAckFrame* ack_frame) { 1251 QuicAckFrame* ack_frame) {
1253 // Determine the two lengths from the frame type: largest acked length, 1252 // Determine the two lengths from the frame type: largest acked length,
1254 // ack block length. 1253 // ack block length.
1255 const QuicPacketNumberLength ack_block_length = 1254 const QuicPacketNumberLength ack_block_length =
1256 ReadSequenceNumberLength(frame_type); 1255 ReadSequenceNumberLength(frame_type);
1257 frame_type >>= kQuicSequenceNumberLengthShift; 1256 frame_type >>= kQuicSequenceNumberLengthShift;
1258 const QuicPacketNumberLength largest_acked_length = 1257 const QuicPacketNumberLength largest_acked_length =
1259 ReadSequenceNumberLength(frame_type); 1258 ReadSequenceNumberLength(frame_type);
1260 frame_type >>= kQuicSequenceNumberLengthShift; 1259 frame_type >>= kQuicSequenceNumberLengthShift;
1261 frame_type >>= kQuicHasMultipleAckBlocksShift; 1260 frame_type >>= kQuicHasMultipleAckBlocksShift;
1262 bool has_ack_blocks = frame_type & kQuicHasMultipleAckBlocksMask; 1261 bool has_ack_blocks = frame_type & kQuicHasMultipleAckBlocksMask;
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
1698 } 1697 }
1699 1698
1700 return 5 + 3 * (ack.received_packet_times.size() - 1); 1699 return 5 + 3 * (ack.received_packet_times.size() - 1);
1701 } 1700 }
1702 1701
1703 size_t QuicFramer::GetAckFrameSize( 1702 size_t QuicFramer::GetAckFrameSize(
1704 const QuicAckFrame& ack, 1703 const QuicAckFrame& ack,
1705 QuicPacketNumberLength packet_number_length) { 1704 QuicPacketNumberLength packet_number_length) {
1706 size_t ack_size = 0; 1705 size_t ack_size = 0;
1707 1706
1708 NewAckFrameInfo ack_info = GetNewAckFrameInfo(ack); 1707 AckFrameInfo ack_info = GetAckFrameInfo(ack);
1709 QuicPacketNumberLength largest_acked_length = 1708 QuicPacketNumberLength largest_acked_length =
1710 GetMinSequenceNumberLength(ack.largest_observed); 1709 GetMinSequenceNumberLength(ack.largest_observed);
1711 QuicPacketNumberLength ack_block_length = 1710 QuicPacketNumberLength ack_block_length =
1712 GetMinSequenceNumberLength(ack_info.max_block_length); 1711 GetMinSequenceNumberLength(ack_info.max_block_length);
1713 1712
1714 ack_size = GetMinAckFrameSize(quic_version_, largest_acked_length); 1713 ack_size = GetMinAckFrameSize(quic_version_, largest_acked_length);
1715 // First ack block length. 1714 // First ack block length.
1716 ack_size += ack_block_length; 1715 ack_size += ack_block_length;
1717 if (ack_info.num_ack_blocks != 0) { 1716 if (ack_info.num_ack_blocks != 0) {
1718 ack_size += kNumberOfAckBlocksSize; 1717 ack_size += kNumberOfAckBlocksSize;
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
1876 return false; 1875 return false;
1877 } 1876 }
1878 return true; 1877 return true;
1879 } 1878 }
1880 1879
1881 void QuicFramer::set_version(const QuicVersion version) { 1880 void QuicFramer::set_version(const QuicVersion version) {
1882 DCHECK(IsSupportedVersion(version)) << QuicVersionToString(version); 1881 DCHECK(IsSupportedVersion(version)) << QuicVersionToString(version);
1883 quic_version_ = version; 1882 quic_version_ = version;
1884 } 1883 }
1885 1884
1886 bool QuicFramer::AppendNewAckFrameAndTypeByte(const QuicAckFrame& frame, 1885 bool QuicFramer::AppendAckFrameAndTypeByte(const QuicAckFrame& frame,
1887 QuicDataWriter* writer) { 1886 QuicDataWriter* writer) {
1888 const NewAckFrameInfo new_ack_info = GetNewAckFrameInfo(frame); 1887 const AckFrameInfo new_ack_info = GetAckFrameInfo(frame);
1889 QuicPacketNumber largest_acked = frame.largest_observed; 1888 QuicPacketNumber largest_acked = frame.largest_observed;
1890 QuicPacketNumberLength largest_acked_length = 1889 QuicPacketNumberLength largest_acked_length =
1891 GetMinSequenceNumberLength(largest_acked); 1890 GetMinSequenceNumberLength(largest_acked);
1892 QuicPacketNumberLength ack_block_length = 1891 QuicPacketNumberLength ack_block_length =
1893 GetMinSequenceNumberLength(new_ack_info.max_block_length); 1892 GetMinSequenceNumberLength(new_ack_info.max_block_length);
1894 // Calculate available bytes for timestamps and ack blocks. 1893 // Calculate available bytes for timestamps and ack blocks.
1895 int32_t available_timestamp_and_ack_block_bytes = 1894 int32_t available_timestamp_and_ack_block_bytes =
1896 writer->capacity() - writer->length() - ack_block_length - 1895 writer->capacity() - writer->length() - ack_block_length -
1897 GetMinAckFrameSize(quic_version_, largest_acked_length) - 1896 GetMinAckFrameSize(quic_version_, largest_acked_length) -
1898 (new_ack_info.num_ack_blocks != 0 ? kNumberOfAckBlocksSize : 0); 1897 (new_ack_info.num_ack_blocks != 0 ? kNumberOfAckBlocksSize : 0);
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
2202 2201
2203 bool QuicFramer::RaiseError(QuicErrorCode error) { 2202 bool QuicFramer::RaiseError(QuicErrorCode error) {
2204 DVLOG(1) << ENDPOINT << "Error: " << QuicErrorCodeToString(error) 2203 DVLOG(1) << ENDPOINT << "Error: " << QuicErrorCodeToString(error)
2205 << " detail: " << detailed_error_; 2204 << " detail: " << detailed_error_;
2206 set_error(error); 2205 set_error(error);
2207 visitor_->OnError(this); 2206 visitor_->OnError(this);
2208 return false; 2207 return false;
2209 } 2208 }
2210 2209
2211 } // namespace net 2210 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/quic_framer.h ('k') | net/quic/core/quic_framer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698