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

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

Issue 2428623002: Deprecate FLAGS_quic_packet_numbers_largest_received. (Closed)
Patch Set: Created 4 years, 2 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/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 785 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 return QuicTime::Delta::FromMicroseconds(time); 796 return QuicTime::Delta::FromMicroseconds(time);
797 } 797 }
798 798
799 bool QuicFramer::IsValidPath(QuicPathId path_id, 799 bool QuicFramer::IsValidPath(QuicPathId path_id,
800 QuicPacketNumber* base_packet_number) { 800 QuicPacketNumber* base_packet_number) {
801 if (ContainsKey(closed_paths_, path_id)) { 801 if (ContainsKey(closed_paths_, path_id)) {
802 // Path is closed. 802 // Path is closed.
803 return false; 803 return false;
804 } 804 }
805 805
806 if (FLAGS_quic_packet_numbers_largest_received) { 806 if (path_id == last_path_id_) {
807 if (path_id == last_path_id_) { 807 *base_packet_number = largest_packet_number_;
808 *base_packet_number = largest_packet_number_; 808 return true;
809 return true; 809 }
810 }
811 810
812 if (ContainsKey(largest_packet_numbers_, path_id)) { 811 if (ContainsKey(largest_packet_numbers_, path_id)) {
813 *base_packet_number = largest_packet_numbers_[path_id]; 812 *base_packet_number = largest_packet_numbers_[path_id];
814 } else {
815 *base_packet_number = 0;
816 }
817 } else { 813 } else {
818 if (path_id == last_path_id_) { 814 *base_packet_number = 0;
819 *base_packet_number = last_packet_number_;
820 return true;
821 }
822
823 if (ContainsKey(last_packet_numbers_, path_id)) {
824 *base_packet_number = last_packet_numbers_[path_id];
825 } else {
826 *base_packet_number = 0;
827 }
828 } 815 }
829 816
830 return true; 817 return true;
831 } 818 }
832 819
833 void QuicFramer::SetLastPacketNumber(const QuicPacketHeader& header) { 820 void QuicFramer::SetLastPacketNumber(const QuicPacketHeader& header) {
834 if (header.public_header.multipath_flag && header.path_id != last_path_id_) { 821 if (header.public_header.multipath_flag && header.path_id != last_path_id_) {
835 if (last_path_id_ != kInvalidPathId) { 822 if (last_path_id_ != kInvalidPathId) {
836 // Save current last packet number before changing path. 823 // Save current last packet number before changing path.
837 last_packet_numbers_[last_path_id_] = last_packet_number_; 824 largest_packet_numbers_[last_path_id_] = largest_packet_number_;
838 if (FLAGS_quic_packet_numbers_largest_received) {
839 largest_packet_numbers_[last_path_id_] = largest_packet_number_;
840 }
841 } 825 }
842 // Change path. 826 // Change path.
843 last_path_id_ = header.path_id; 827 last_path_id_ = header.path_id;
844 } 828 }
845 last_packet_number_ = header.packet_number; 829 last_packet_number_ = header.packet_number;
846 if (FLAGS_quic_packet_numbers_largest_received) { 830 largest_packet_number_ = max(header.packet_number, largest_packet_number_);
847 largest_packet_number_ = max(header.packet_number, largest_packet_number_);
848 }
849 } 831 }
850 832
851 void QuicFramer::OnPathClosed(QuicPathId path_id) { 833 void QuicFramer::OnPathClosed(QuicPathId path_id) {
852 closed_paths_.insert(path_id); 834 closed_paths_.insert(path_id);
853 last_packet_numbers_.erase(path_id); 835 largest_packet_numbers_.erase(path_id);
854 } 836 }
855 837
856 QuicPacketNumber QuicFramer::CalculatePacketNumberFromWire( 838 QuicPacketNumber QuicFramer::CalculatePacketNumberFromWire(
857 QuicPacketNumberLength packet_number_length, 839 QuicPacketNumberLength packet_number_length,
858 QuicPacketNumber base_packet_number, 840 QuicPacketNumber base_packet_number,
859 QuicPacketNumber packet_number) const { 841 QuicPacketNumber packet_number) const {
860 // The new packet number might have wrapped to the next epoch, or 842 // The new packet number might have wrapped to the next epoch, or
861 // it might have reverse wrapped to the previous epoch, or it might 843 // it might have reverse wrapped to the previous epoch, or it might
862 // remain in the same epoch. Select the packet number closest to the 844 // remain in the same epoch. Select the packet number closest to the
863 // next expected packet number, the previous packet number plus 1. 845 // next expected packet number, the previous packet number plus 1.
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
1061 1043
1062 bool QuicFramer::ProcessUnauthenticatedHeader(QuicDataReader* encrypted_reader, 1044 bool QuicFramer::ProcessUnauthenticatedHeader(QuicDataReader* encrypted_reader,
1063 QuicPacketHeader* header) { 1045 QuicPacketHeader* header) {
1064 header->path_id = kDefaultPathId; 1046 header->path_id = kDefaultPathId;
1065 if (header->public_header.multipath_flag && 1047 if (header->public_header.multipath_flag &&
1066 !ProcessPathId(encrypted_reader, &header->path_id)) { 1048 !ProcessPathId(encrypted_reader, &header->path_id)) {
1067 set_detailed_error("Unable to read path id."); 1049 set_detailed_error("Unable to read path id.");
1068 return RaiseError(QUIC_INVALID_PACKET_HEADER); 1050 return RaiseError(QUIC_INVALID_PACKET_HEADER);
1069 } 1051 }
1070 1052
1071 QuicPacketNumber base_packet_number = 1053 QuicPacketNumber base_packet_number = largest_packet_number_;
1072 FLAGS_quic_packet_numbers_largest_received ? largest_packet_number_
1073 : last_packet_number_;
1074 if (header->public_header.multipath_flag && 1054 if (header->public_header.multipath_flag &&
1075 !IsValidPath(header->path_id, &base_packet_number)) { 1055 !IsValidPath(header->path_id, &base_packet_number)) {
1076 // Stop processing because path is closed. 1056 // Stop processing because path is closed.
1077 return false; 1057 return false;
1078 } 1058 }
1079 1059
1080 if (!ProcessPacketSequenceNumber( 1060 if (!ProcessPacketSequenceNumber(
1081 encrypted_reader, header->public_header.packet_number_length, 1061 encrypted_reader, header->public_header.packet_number_length,
1082 base_packet_number, &header->packet_number)) { 1062 base_packet_number, &header->packet_number)) {
1083 set_detailed_error("Unable to read packet number."); 1063 set_detailed_error("Unable to read packet number.");
(...skipping 1491 matching lines...) Expand 10 before | Expand all | Expand 10 after
2575 2555
2576 bool QuicFramer::RaiseError(QuicErrorCode error) { 2556 bool QuicFramer::RaiseError(QuicErrorCode error) {
2577 DVLOG(1) << "Error: " << QuicUtils::ErrorToString(error) 2557 DVLOG(1) << "Error: " << QuicUtils::ErrorToString(error)
2578 << " detail: " << detailed_error_; 2558 << " detail: " << detailed_error_;
2579 set_error(error); 2559 set_error(error);
2580 visitor_->OnError(this); 2560 visitor_->OnError(this);
2581 return false; 2561 return false;
2582 } 2562 }
2583 2563
2584 } // namespace net 2564 } // 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