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

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

Issue 180723003: Land Recent QUIC Changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix unintialized memory error Created 6 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 | Annotate | Revision Log
« no previous file with comments | « net/quic/quic_protocol.h ('k') | net/quic/quic_received_packet_manager.h » ('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_protocol.h" 5 #include "net/quic/quic_protocol.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "net/quic/quic_utils.h" 8 #include "net/quic/quic_utils.h"
9 9
10 using base::StringPiece; 10 using base::StringPiece;
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 QuicTag QuicVersionToQuicTag(const QuicVersion version) { 152 QuicTag QuicVersionToQuicTag(const QuicVersion version) {
153 switch (version) { 153 switch (version) {
154 case QUIC_VERSION_12: 154 case QUIC_VERSION_12:
155 return MakeQuicTag('Q', '0', '1', '2'); 155 return MakeQuicTag('Q', '0', '1', '2');
156 case QUIC_VERSION_13: 156 case QUIC_VERSION_13:
157 return MakeQuicTag('Q', '0', '1', '3'); 157 return MakeQuicTag('Q', '0', '1', '3');
158 case QUIC_VERSION_14: 158 case QUIC_VERSION_14:
159 return MakeQuicTag('Q', '0', '1', '4'); 159 return MakeQuicTag('Q', '0', '1', '4');
160 case QUIC_VERSION_15: 160 case QUIC_VERSION_15:
161 return MakeQuicTag('Q', '0', '1', '5'); 161 return MakeQuicTag('Q', '0', '1', '5');
162 case QUIC_VERSION_16:
163 return MakeQuicTag('Q', '0', '1', '6');
162 default: 164 default:
163 // This shold be an ERROR because we should never attempt to convert an 165 // This shold be an ERROR because we should never attempt to convert an
164 // invalid QuicVersion to be written to the wire. 166 // invalid QuicVersion to be written to the wire.
165 LOG(ERROR) << "Unsupported QuicVersion: " << version; 167 LOG(ERROR) << "Unsupported QuicVersion: " << version;
166 return 0; 168 return 0;
167 } 169 }
168 } 170 }
169 171
170 QuicVersion QuicTagToQuicVersion(const QuicTag version_tag) { 172 QuicVersion QuicTagToQuicVersion(const QuicTag version_tag) {
171 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { 173 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) {
(...skipping 10 matching lines...) Expand all
182 #define RETURN_STRING_LITERAL(x) \ 184 #define RETURN_STRING_LITERAL(x) \
183 case x: \ 185 case x: \
184 return #x 186 return #x
185 187
186 string QuicVersionToString(const QuicVersion version) { 188 string QuicVersionToString(const QuicVersion version) {
187 switch (version) { 189 switch (version) {
188 RETURN_STRING_LITERAL(QUIC_VERSION_12); 190 RETURN_STRING_LITERAL(QUIC_VERSION_12);
189 RETURN_STRING_LITERAL(QUIC_VERSION_13); 191 RETURN_STRING_LITERAL(QUIC_VERSION_13);
190 RETURN_STRING_LITERAL(QUIC_VERSION_14); 192 RETURN_STRING_LITERAL(QUIC_VERSION_14);
191 RETURN_STRING_LITERAL(QUIC_VERSION_15); 193 RETURN_STRING_LITERAL(QUIC_VERSION_15);
194 RETURN_STRING_LITERAL(QUIC_VERSION_16);
192 default: 195 default:
193 return "QUIC_VERSION_UNSUPPORTED"; 196 return "QUIC_VERSION_UNSUPPORTED";
194 } 197 }
195 } 198 }
196 199
197 string QuicVersionVectorToString(const QuicVersionVector& versions) { 200 string QuicVersionVectorToString(const QuicVersionVector& versions) {
198 string result = ""; 201 string result = "";
199 for (size_t i = 0; i < versions.size(); ++i) { 202 for (size_t i = 0; i < versions.size(); ++i) {
200 if (i != 0) { 203 if (i != 0) {
201 result.append(","); 204 result.append(",");
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 } 245 }
243 246
244 void InsertMissingPacketsBetween(ReceivedPacketInfo* received_info, 247 void InsertMissingPacketsBetween(ReceivedPacketInfo* received_info,
245 QuicPacketSequenceNumber lower, 248 QuicPacketSequenceNumber lower,
246 QuicPacketSequenceNumber higher) { 249 QuicPacketSequenceNumber higher) {
247 for (QuicPacketSequenceNumber i = lower; i < higher; ++i) { 250 for (QuicPacketSequenceNumber i = lower; i < higher; ++i) {
248 received_info->missing_packets.insert(i); 251 received_info->missing_packets.insert(i);
249 } 252 }
250 } 253 }
251 254
252 SentPacketInfo::SentPacketInfo() 255 QuicStopWaitingFrame::QuicStopWaitingFrame()
253 : entropy_hash(0), 256 : entropy_hash(0),
254 least_unacked(0) { 257 least_unacked(0) {
255 } 258 }
256 259
257 SentPacketInfo::~SentPacketInfo() {} 260 QuicStopWaitingFrame::~QuicStopWaitingFrame() {}
258 261
259 QuicAckFrame::QuicAckFrame() {} 262 QuicAckFrame::QuicAckFrame() {}
260 263
261 QuicAckFrame::QuicAckFrame(QuicPacketSequenceNumber largest_observed, 264 QuicAckFrame::QuicAckFrame(QuicPacketSequenceNumber largest_observed,
262 QuicTime largest_observed_receive_time, 265 QuicTime largest_observed_receive_time,
263 QuicPacketSequenceNumber least_unacked) { 266 QuicPacketSequenceNumber least_unacked) {
264 received_info.largest_observed = largest_observed; 267 received_info.largest_observed = largest_observed;
265 received_info.entropy_hash = 0; 268 received_info.entropy_hash = 0;
266 sent_info.least_unacked = least_unacked; 269 sent_info.least_unacked = least_unacked;
267 sent_info.entropy_hash = 0; 270 sent_info.entropy_hash = 0;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 QuicFrame::QuicFrame(QuicAckFrame* frame) 317 QuicFrame::QuicFrame(QuicAckFrame* frame)
315 : type(ACK_FRAME), 318 : type(ACK_FRAME),
316 ack_frame(frame) { 319 ack_frame(frame) {
317 } 320 }
318 321
319 QuicFrame::QuicFrame(QuicCongestionFeedbackFrame* frame) 322 QuicFrame::QuicFrame(QuicCongestionFeedbackFrame* frame)
320 : type(CONGESTION_FEEDBACK_FRAME), 323 : type(CONGESTION_FEEDBACK_FRAME),
321 congestion_feedback_frame(frame) { 324 congestion_feedback_frame(frame) {
322 } 325 }
323 326
327 QuicFrame::QuicFrame(QuicStopWaitingFrame* frame)
328 : type(STOP_WAITING_FRAME),
329 stop_waiting_frame(frame) {
330 }
331
324 QuicFrame::QuicFrame(QuicRstStreamFrame* frame) 332 QuicFrame::QuicFrame(QuicRstStreamFrame* frame)
325 : type(RST_STREAM_FRAME), 333 : type(RST_STREAM_FRAME),
326 rst_stream_frame(frame) { 334 rst_stream_frame(frame) {
327 } 335 }
328 336
329 QuicFrame::QuicFrame(QuicConnectionCloseFrame* frame) 337 QuicFrame::QuicFrame(QuicConnectionCloseFrame* frame)
330 : type(CONNECTION_CLOSE_FRAME), 338 : type(CONNECTION_CLOSE_FRAME),
331 connection_close_frame(frame) { 339 connection_close_frame(frame) {
332 } 340 }
333 341
334 QuicFrame::QuicFrame(QuicGoAwayFrame* frame) 342 QuicFrame::QuicFrame(QuicGoAwayFrame* frame)
335 : type(GOAWAY_FRAME), 343 : type(GOAWAY_FRAME),
336 goaway_frame(frame) { 344 goaway_frame(frame) {
337 } 345 }
338 346
339 QuicFrame::QuicFrame(QuicWindowUpdateFrame* frame) 347 QuicFrame::QuicFrame(QuicWindowUpdateFrame* frame)
340 : type(WINDOW_UPDATE_FRAME), 348 : type(WINDOW_UPDATE_FRAME),
341 window_update_frame(frame) { 349 window_update_frame(frame) {
342 } 350 }
343 351
344 QuicFrame::QuicFrame(QuicBlockedFrame* frame) 352 QuicFrame::QuicFrame(QuicBlockedFrame* frame)
345 : type(BLOCKED_FRAME), 353 : type(BLOCKED_FRAME),
346 blocked_frame(frame) { 354 blocked_frame(frame) {
347 } 355 }
348 356
349 QuicFecData::QuicFecData() : fec_group(0) {} 357 QuicFecData::QuicFecData() : fec_group(0) {}
350 358
351 ostream& operator<<(ostream& os, const SentPacketInfo& sent_info) { 359 ostream& operator<<(ostream& os, const QuicStopWaitingFrame& sent_info) {
352 os << "entropy_hash: " << static_cast<int>(sent_info.entropy_hash) 360 os << "entropy_hash: " << static_cast<int>(sent_info.entropy_hash)
353 << " least_unacked: " << sent_info.least_unacked; 361 << " least_unacked: " << sent_info.least_unacked;
354 return os; 362 return os;
355 } 363 }
356 364
357 ostream& operator<<(ostream& os, const ReceivedPacketInfo& received_info) { 365 ostream& operator<<(ostream& os, const ReceivedPacketInfo& received_info) {
358 os << "entropy_hash: " << static_cast<int>(received_info.entropy_hash) 366 os << "entropy_hash: " << static_cast<int>(received_info.entropy_hash)
359 << " is_truncated: " << received_info.is_truncated 367 << " is_truncated: " << received_info.is_truncated
360 << " largest_observed: " << received_info.largest_observed 368 << " largest_observed: " << received_info.largest_observed
361 << " missing_packets: [ "; 369 << " missing_packets: [ ";
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 } 415 }
408 case ACK_FRAME: { 416 case ACK_FRAME: {
409 os << "type { ACK_FRAME } " << *(frame.ack_frame); 417 os << "type { ACK_FRAME } " << *(frame.ack_frame);
410 break; 418 break;
411 } 419 }
412 case CONGESTION_FEEDBACK_FRAME: { 420 case CONGESTION_FEEDBACK_FRAME: {
413 os << "type { CONGESTION_FEEDBACK_FRAME } " 421 os << "type { CONGESTION_FEEDBACK_FRAME } "
414 << *(frame.congestion_feedback_frame); 422 << *(frame.congestion_feedback_frame);
415 break; 423 break;
416 } 424 }
425 case STOP_WAITING_FRAME: {
426 os << "type { STOP_WAITING_FRAME } " << *(frame.stop_waiting_frame);
427 break;
428 }
417 default: { 429 default: {
418 LOG(ERROR) << "Unknown frame type: " << frame.type; 430 LOG(ERROR) << "Unknown frame type: " << frame.type;
419 break; 431 break;
420 } 432 }
421 } 433 }
422 return os; 434 return os;
423 } 435 }
424 436
425 ostream& operator<<(ostream& os, const QuicRstStreamFrame& rst_frame) { 437 ostream& operator<<(ostream& os, const QuicRstStreamFrame& rst_frame) {
426 os << "stream_id { " << rst_frame.stream_id << " } " 438 os << "stream_id { " << rst_frame.stream_id << " } "
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 break; 626 break;
615 case STREAM_FRAME: 627 case STREAM_FRAME:
616 delete it->stream_frame; 628 delete it->stream_frame;
617 break; 629 break;
618 case ACK_FRAME: 630 case ACK_FRAME:
619 delete it->ack_frame; 631 delete it->ack_frame;
620 break; 632 break;
621 case CONGESTION_FEEDBACK_FRAME: 633 case CONGESTION_FEEDBACK_FRAME:
622 delete it->congestion_feedback_frame; 634 delete it->congestion_feedback_frame;
623 break; 635 break;
636 case STOP_WAITING_FRAME:
637 delete it->stop_waiting_frame;
638 break;
624 case RST_STREAM_FRAME: 639 case RST_STREAM_FRAME:
625 delete it->rst_stream_frame; 640 delete it->rst_stream_frame;
626 break; 641 break;
627 case CONNECTION_CLOSE_FRAME: 642 case CONNECTION_CLOSE_FRAME:
628 delete it->connection_close_frame; 643 delete it->connection_close_frame;
629 break; 644 break;
630 case GOAWAY_FRAME: 645 case GOAWAY_FRAME:
631 delete it->goaway_frame; 646 delete it->goaway_frame;
632 break; 647 break;
633 case WINDOW_UPDATE_FRAME: 648 case WINDOW_UPDATE_FRAME:
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 return os; 729 return os;
715 } 730 }
716 731
717 WriteResult::WriteResult(WriteStatus status, 732 WriteResult::WriteResult(WriteStatus status,
718 int bytes_written_or_error_code) 733 int bytes_written_or_error_code)
719 : status(status), 734 : status(status),
720 bytes_written(bytes_written_or_error_code) { 735 bytes_written(bytes_written_or_error_code) {
721 } 736 }
722 737
723 } // namespace net 738 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_protocol.h ('k') | net/quic/quic_received_packet_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698