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;