gfe-relnote: In QUIC, add getter for largest received packet to QuicConnection. No functional change expected, not protected. Also remove getter of received_packet_manager. PiperOrigin-RevId: 239392053 Change-Id: I3a244583e64df565f7aac57644b5075eb6670821
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc index dcea61d..574dd0c 100644 --- a/quic/core/quic_connection.cc +++ b/quic/core/quic_connection.cc
@@ -887,10 +887,12 @@ current_effective_peer_migration_type_ = NO_CHANGE; if (perspective_ == Perspective::IS_CLIENT) { - if (!received_packet_manager_.GetLargestObserved().IsInitialized() || - header.packet_number > received_packet_manager_.GetLargestObserved()) { + if (!GetLargestReceivedPacket().IsInitialized() || + header.packet_number > GetLargestReceivedPacket()) { // Update peer_address_ and effective_peer_address_ immediately for // client connections. + // TODO(fayang): only change peer addresses in application data packet + // number space. direct_peer_address_ = last_packet_source_address_; effective_peer_address_ = GetEffectivePeerAddressFromCurrentPacket(); } @@ -1432,10 +1434,11 @@ /* is_response= */ true); } - if (last_header_.packet_number == - received_packet_manager_.GetLargestObserved()) { + if (last_header_.packet_number == GetLargestReceivedPacket()) { direct_peer_address_ = last_packet_source_address_; if (current_effective_peer_migration_type_ != NO_CHANGE) { + // TODO(fayang): When multiple packet number spaces is supported, only + // start peer migration for the application data. StartEffectivePeerMigration(current_effective_peer_migration_type_); } } @@ -3645,13 +3648,14 @@ } current_packet_content_ = NOT_PADDED_PING; - if (received_packet_manager_.GetLargestObserved().IsInitialized() && - last_header_.packet_number == - received_packet_manager_.GetLargestObserved()) { + if (GetLargestReceivedPacket().IsInitialized() && + last_header_.packet_number == GetLargestReceivedPacket()) { direct_peer_address_ = last_packet_source_address_; if (current_effective_peer_migration_type_ != NO_CHANGE) { // Start effective peer migration immediately when the current packet is // confirmed not a connectivity probing packet. + // TODO(fayang): When multiple packet number spaces is supported, only + // start peer migration for the application data. StartEffectivePeerMigration(current_effective_peer_migration_type_); } } @@ -3822,6 +3826,10 @@ return sent_packet_manager_.GetLargestObserved(); } +QuicPacketNumber QuicConnection::GetLargestReceivedPacket() const { + return received_packet_manager_.GetLargestObserved(); +} + size_t QuicConnection::min_received_before_ack_decimation() const { if (received_packet_manager_.decide_when_to_send_acks()) { return received_packet_manager_.min_received_before_ack_decimation();
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h index 715a449..ae9d5c3 100644 --- a/quic/core/quic_connection.h +++ b/quic/core/quic_connection.h
@@ -781,10 +781,6 @@ return packet_generator_; } - const QuicReceivedPacketManager& received_packet_manager() const { - return received_packet_manager_; - } - EncryptionLevel encryption_level() const { return encryption_level_; } EncryptionLevel last_decrypted_level() const { return last_decrypted_packet_level_; @@ -865,6 +861,9 @@ return sent_packet_manager_.handshake_confirmed(); } + // Returns the largest received packet number sent by peer. + QuicPacketNumber GetLargestReceivedPacket() const; + // Adds the connection ID to a set of connection IDs that are accepted as // destination on incoming packets. void AddIncomingConnectionId(QuicConnectionId connection_id);
diff --git a/quic/core/quic_trace_visitor.cc b/quic/core/quic_trace_visitor.cc index 246a2e2..728bab4 100644 --- a/quic/core/quic_trace_visitor.cc +++ b/quic/core/quic_trace_visitor.cc
@@ -230,8 +230,7 @@ QuicPacketNumber /*least_unacked_sent_packet*/) { quic_trace::Event* event = trace_.add_events(); event->set_time_us(ConvertTimestampToRecordedFormat(ack_receive_time)); - event->set_packet_number( - connection_->received_packet_manager().GetLargestObserved().ToUint64()); + event->set_packet_number(connection_->GetLargestReceivedPacket().ToUint64()); event->set_event_type(quic_trace::PACKET_RECEIVED); // TODO(vasilvv): consider removing this copy. @@ -255,8 +254,7 @@ quic_trace::Event* event = trace_.add_events(); event->set_time_us(ConvertTimestampToRecordedFormat(receive_time)); event->set_event_type(quic_trace::PACKET_RECEIVED); - event->set_packet_number( - connection_->received_packet_manager().GetLargestObserved().ToUint64()); + event->set_packet_number(connection_->GetLargestReceivedPacket().ToUint64()); // TODO(vasilvv): consider removing this copy. QuicWindowUpdateFrame copy_of_update = frame;