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

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

Issue 1495243002: Remove EncryptionLevel from QUIC's RetransmittableFrames and add it to TransmissionInfo. No functi… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@108735153
Patch Set: Created 5 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/quic_packet_creator.h ('k') | net/quic/quic_packet_creator_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_packet_creator.h" 5 #include "net/quic/quic_packet_creator.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 length -= copy_len; 389 length -= copy_len;
390 buffer += copy_len; 390 buffer += copy_len;
391 ++iovnum; 391 ++iovnum;
392 } 392 }
393 } 393 }
394 LOG_IF(DFATAL, length > 0) << "Failed to copy entire length to buffer."; 394 LOG_IF(DFATAL, length > 0) << "Failed to copy entire length to buffer.";
395 } 395 }
396 396
397 SerializedPacket QuicPacketCreator::ReserializeAllFrames( 397 SerializedPacket QuicPacketCreator::ReserializeAllFrames(
398 const RetransmittableFrames& frames, 398 const RetransmittableFrames& frames,
399 EncryptionLevel original_encryption_level,
399 QuicPacketNumberLength original_length, 400 QuicPacketNumberLength original_length,
400 char* buffer, 401 char* buffer,
401 size_t buffer_len) { 402 size_t buffer_len) {
402 DCHECK(fec_group_.get() == nullptr); 403 DCHECK(fec_group_.get() == nullptr);
403 const QuicPacketNumberLength saved_length = packet_number_length_; 404 const QuicPacketNumberLength saved_length = packet_number_length_;
404 const QuicPacketNumberLength saved_next_length = next_packet_number_length_; 405 const QuicPacketNumberLength saved_next_length = next_packet_number_length_;
405 const bool saved_should_fec_protect = fec_protect_; 406 const bool saved_should_fec_protect = fec_protect_;
406 const bool needs_padding = needs_padding_; 407 const bool needs_padding = needs_padding_;
407 const EncryptionLevel default_encryption_level = encryption_level_; 408 const EncryptionLevel default_encryption_level = encryption_level_;
408 409
409 // Temporarily set the packet number length, stop FEC protection, 410 // Temporarily set the packet number length, stop FEC protection,
410 // and change the encryption level. 411 // and change the encryption level.
411 packet_number_length_ = original_length; 412 packet_number_length_ = original_length;
412 next_packet_number_length_ = original_length; 413 next_packet_number_length_ = original_length;
413 fec_protect_ = false; 414 fec_protect_ = false;
414 encryption_level_ = frames.encryption_level(); 415 encryption_level_ = original_encryption_level;
415 needs_padding_ = frames.needs_padding(); 416 needs_padding_ = frames.needs_padding();
416 417
417 // Serialize the packet and restore the FEC and packet number length state. 418 // Serialize the packet and restore the FEC and packet number length state.
418 SerializedPacket serialized_packet = 419 SerializedPacket serialized_packet =
419 SerializeAllFrames(frames.frames(), buffer, buffer_len); 420 SerializeAllFrames(frames.frames(), buffer, buffer_len);
420 packet_number_length_ = saved_length; 421 packet_number_length_ = saved_length;
421 next_packet_number_length_ = saved_next_length; 422 next_packet_number_length_ = saved_next_length;
422 fec_protect_ = saved_should_fec_protect; 423 fec_protect_ = saved_should_fec_protect;
423 needs_padding_ = needs_padding; 424 needs_padding_ = needs_padding;
424 encryption_level_ = default_encryption_level; 425 encryption_level_ = default_encryption_level;
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
695 if (frame_len == 0) { 696 if (frame_len == 0) {
696 // Current open packet is full. 697 // Current open packet is full.
697 Flush(); 698 Flush();
698 return false; 699 return false;
699 } 700 }
700 DCHECK_LT(0u, packet_size_); 701 DCHECK_LT(0u, packet_size_);
701 packet_size_ += ExpansionOnNewFrame() + frame_len; 702 packet_size_ += ExpansionOnNewFrame() + frame_len;
702 703
703 if (save_retransmittable_frames && ShouldRetransmit(frame)) { 704 if (save_retransmittable_frames && ShouldRetransmit(frame)) {
704 if (queued_retransmittable_frames_.get() == nullptr) { 705 if (queued_retransmittable_frames_.get() == nullptr) {
705 queued_retransmittable_frames_.reset( 706 queued_retransmittable_frames_.reset(new RetransmittableFrames());
706 new RetransmittableFrames(encryption_level_));
707 } 707 }
708 queued_frames_.push_back( 708 queued_frames_.push_back(
709 queued_retransmittable_frames_->AddFrame(frame, buffer.Pass())); 709 queued_retransmittable_frames_->AddFrame(frame, buffer.Pass()));
710 } else { 710 } else {
711 queued_frames_.push_back(frame); 711 queued_frames_.push_back(frame);
712 } 712 }
713 713
714 if (needs_padding) { 714 if (needs_padding) {
715 needs_padding_ = true; 715 needs_padding_ = true;
716 } 716 }
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
783 QuicPacketCount max_packets_in_flight) { 783 QuicPacketCount max_packets_in_flight) {
784 set_max_packets_per_fec_group(static_cast<size_t>( 784 set_max_packets_per_fec_group(static_cast<size_t>(
785 kMaxPacketsInFlightMultiplierForFecGroupSize * max_packets_in_flight)); 785 kMaxPacketsInFlightMultiplierForFecGroupSize * max_packets_in_flight));
786 } 786 }
787 787
788 void QuicPacketCreator::OnRttChange(QuicTime::Delta rtt) { 788 void QuicPacketCreator::OnRttChange(QuicTime::Delta rtt) {
789 fec_timeout_ = rtt.Multiply(rtt_multiplier_for_fec_timeout_); 789 fec_timeout_ = rtt.Multiply(rtt_multiplier_for_fec_timeout_);
790 } 790 }
791 791
792 } // namespace net 792 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_packet_creator.h ('k') | net/quic/quic_packet_creator_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698