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

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

Issue 1502503002: Move encryption_level from QueuedPacket into SerializedPacket. No functional change. Not flag pro… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@108718393
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_connection_test.cc ('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 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 has_stop_waiting |= frame.type == STOP_WAITING_FRAME; 593 has_stop_waiting |= frame.type == STOP_WAITING_FRAME;
594 } 594 }
595 595
596 packet_size_ = 0; 596 packet_size_ = 0;
597 queued_frames_.clear(); 597 queued_frames_.clear();
598 needs_padding_ = false; 598 needs_padding_ = false;
599 return SerializedPacket( 599 return SerializedPacket(
600 header.packet_number, header.public_header.packet_number_length, 600 header.packet_number, header.public_header.packet_number_length,
601 encrypted_buffer, encrypted_length, /* owns_buffer*/ false, 601 encrypted_buffer, encrypted_length, /* owns_buffer*/ false,
602 QuicFramer::GetPacketEntropyHash(header), 602 QuicFramer::GetPacketEntropyHash(header),
603 queued_retransmittable_frames_.release(), has_ack, has_stop_waiting); 603 queued_retransmittable_frames_.release(), has_ack, has_stop_waiting,
604 encryption_level_);
604 } 605 }
605 606
606 SerializedPacket QuicPacketCreator::SerializeFec(char* buffer, 607 SerializedPacket QuicPacketCreator::SerializeFec(char* buffer,
607 size_t buffer_len) { 608 size_t buffer_len) {
608 DCHECK_LT(0u, buffer_len); 609 DCHECK_LT(0u, buffer_len);
609 if (fec_group_.get() == nullptr || fec_group_->NumReceivedPackets() <= 0) { 610 if (fec_group_.get() == nullptr || fec_group_->NumReceivedPackets() <= 0) {
610 LOG(DFATAL) << "SerializeFEC called but no group or zero packets in group."; 611 LOG(DFATAL) << "SerializeFEC called but no group or zero packets in group.";
611 // TODO(jri): Make this a public method of framer? 612 // TODO(jri): Make this a public method of framer?
612 return NoPacket(); 613 return NoPacket();
613 } 614 }
614 DCHECK_EQ(0u, queued_frames_.size()); 615 DCHECK_EQ(0u, queued_frames_.size());
615 QuicPacketHeader header; 616 QuicPacketHeader header;
616 FillPacketHeader(fec_group_->FecGroupNumber(), true, &header); 617 FillPacketHeader(fec_group_->FecGroupNumber(), true, &header);
617 scoped_ptr<QuicPacket> packet( 618 scoped_ptr<QuicPacket> packet(
618 framer_->BuildFecPacket(header, fec_group_->PayloadParity())); 619 framer_->BuildFecPacket(header, fec_group_->PayloadParity()));
619 fec_group_.reset(nullptr); 620 fec_group_.reset(nullptr);
620 packet_size_ = 0; 621 packet_size_ = 0;
621 LOG_IF(DFATAL, packet == nullptr) 622 LOG_IF(DFATAL, packet == nullptr)
622 << "Failed to serialize fec packet for group:" 623 << "Failed to serialize fec packet for group:"
623 << fec_group_->FecGroupNumber(); 624 << fec_group_->FecGroupNumber();
624 DCHECK_GE(max_packet_length_, packet->length()); 625 DCHECK_GE(max_packet_length_, packet->length());
625 // Immediately encrypt the packet, to ensure we don't encrypt the same packet 626 // Immediately encrypt the packet, to ensure we don't encrypt the same packet
626 // packet number multiple times. 627 // packet number multiple times.
627 size_t encrypted_length = framer_->EncryptPayload( 628 size_t encrypted_length = framer_->EncryptPayload(
628 encryption_level_, packet_number_, *packet, buffer, buffer_len); 629 encryption_level_, packet_number_, *packet, buffer, buffer_len);
629 if (encrypted_length == 0) { 630 if (encrypted_length == 0) {
630 LOG(DFATAL) << "Failed to encrypt packet number " << packet_number_; 631 LOG(DFATAL) << "Failed to encrypt packet number " << packet_number_;
631 return NoPacket(); 632 return NoPacket();
632 } 633 }
633 SerializedPacket serialized( 634 SerializedPacket serialized(header.packet_number,
634 header.packet_number, header.public_header.packet_number_length, buffer, 635 header.public_header.packet_number_length, buffer,
635 encrypted_length, /* owns_buffer */ false, 636 encrypted_length, /* owns_buffer */ false,
636 QuicFramer::GetPacketEntropyHash(header), nullptr, false, false); 637 QuicFramer::GetPacketEntropyHash(header), nullptr,
638 false, false, encryption_level_);
637 serialized.is_fec_packet = true; 639 serialized.is_fec_packet = true;
638 return serialized; 640 return serialized;
639 } 641 }
640 642
641 QuicEncryptedPacket* QuicPacketCreator::SerializeVersionNegotiationPacket( 643 QuicEncryptedPacket* QuicPacketCreator::SerializeVersionNegotiationPacket(
642 const QuicVersionVector& supported_versions) { 644 const QuicVersionVector& supported_versions) {
643 DCHECK_EQ(Perspective::IS_SERVER, framer_->perspective()); 645 DCHECK_EQ(Perspective::IS_SERVER, framer_->perspective());
644 QuicEncryptedPacket* encrypted = QuicFramer::BuildVersionNegotiationPacket( 646 QuicEncryptedPacket* encrypted = QuicFramer::BuildVersionNegotiationPacket(
645 connection_id_, supported_versions); 647 connection_id_, supported_versions);
646 DCHECK(encrypted); 648 DCHECK(encrypted);
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 QuicPacketCount max_packets_in_flight) { 783 QuicPacketCount max_packets_in_flight) {
782 set_max_packets_per_fec_group(static_cast<size_t>( 784 set_max_packets_per_fec_group(static_cast<size_t>(
783 kMaxPacketsInFlightMultiplierForFecGroupSize * max_packets_in_flight)); 785 kMaxPacketsInFlightMultiplierForFecGroupSize * max_packets_in_flight));
784 } 786 }
785 787
786 void QuicPacketCreator::OnRttChange(QuicTime::Delta rtt) { 788 void QuicPacketCreator::OnRttChange(QuicTime::Delta rtt) {
787 fec_timeout_ = rtt.Multiply(rtt_multiplier_for_fec_timeout_); 789 fec_timeout_ = rtt.Multiply(rtt_multiplier_for_fec_timeout_);
788 } 790 }
789 791
790 } // namespace net 792 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_connection_test.cc ('k') | net/quic/quic_packet_creator_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698