| Index: net/quic/quic_connection.h
|
| diff --git a/net/quic/quic_connection.h b/net/quic/quic_connection.h
|
| index bf4e85cb2e489c071b22a20aae1c6880e81488a9..169145e3ff67ca6559ac3bbcae328bd5c8802145 100644
|
| --- a/net/quic/quic_connection.h
|
| +++ b/net/quic/quic_connection.h
|
| @@ -296,9 +296,12 @@ class NET_EXPORT_PRIVATE QuicConnection
|
| public QuicSentPacketManager::NetworkChangeVisitor {
|
| public:
|
| enum AckBundling {
|
| - NO_ACK = 0,
|
| - SEND_ACK = 1,
|
| - BUNDLE_PENDING_ACK = 2,
|
| + // Send an ack if it's already queued in the connection.
|
| + SEND_ACK_IF_QUEUED,
|
| + // Always send an ack.
|
| + SEND_ACK,
|
| + // Bundle an ack with outgoing data.
|
| + SEND_ACK_IF_PENDING,
|
| };
|
|
|
| enum AckMode { TCP_ACKING, ACK_DECIMATION, ACK_DECIMATION_WITH_REORDERING };
|
| @@ -456,6 +459,7 @@ class NET_EXPORT_PRIVATE QuicConnection
|
| bool ShouldGeneratePacket(HasRetransmittableData retransmittable,
|
| IsHandshake handshake) override;
|
| void PopulateAckFrame(QuicAckFrame* ack) override;
|
| + const QuicFrame GetUpdatedAckFrame() override;
|
| void PopulateStopWaitingFrame(QuicStopWaitingFrame* stop_waiting) override;
|
|
|
| // QuicPacketCreator::DelegateInterface
|
| @@ -613,6 +617,8 @@ class NET_EXPORT_PRIVATE QuicConnection
|
| ~ScopedPacketBundler();
|
|
|
| private:
|
| + bool ShouldSendAck(AckBundling ack_mode) const;
|
| +
|
| QuicConnection* connection_;
|
| bool already_in_batch_mode_;
|
| };
|
| @@ -657,6 +663,8 @@ class NET_EXPORT_PRIVATE QuicConnection
|
| return termination_packets_.get();
|
| }
|
|
|
| + bool ack_queued() const { return ack_queued_; }
|
| +
|
| bool ack_frame_updated() const;
|
|
|
| QuicConnectionHelperInterface* helper() { return helper_; }
|
| @@ -677,14 +685,6 @@ class NET_EXPORT_PRIVATE QuicConnection
|
| // such a version exists, false otherwise.
|
| bool SelectMutualVersion(const QuicVersionVector& available_versions);
|
|
|
| - bool peer_ip_changed() const { return peer_ip_changed_; }
|
| -
|
| - bool peer_port_changed() const { return peer_port_changed_; }
|
| -
|
| - const IPAddress& migrating_peer_ip() const { return migrating_peer_ip_; }
|
| -
|
| - uint16_t migrating_peer_port() const { return migrating_peer_port_; }
|
| -
|
| const IPEndPoint& last_packet_source_address() const {
|
| return last_packet_source_address_;
|
| }
|
| @@ -839,15 +839,10 @@ class NET_EXPORT_PRIVATE QuicConnection
|
| IPEndPoint self_address_;
|
| IPEndPoint peer_address_;
|
|
|
| - // Used to store latest peer IP address for IP address migration.
|
| - IPAddress migrating_peer_ip_;
|
| - // Used to store latest peer port to possibly migrate to later.
|
| - uint16_t migrating_peer_port_;
|
| -
|
| // True if the last packet has gotten far enough in the framer to be
|
| // decrypted.
|
| bool last_packet_decrypted_;
|
| - QuicByteCount last_size_; // Size of the last received packet.
|
| + QuicByteCount last_size_; // Size of the last received packet.
|
| // TODO(rch): remove this when b/27221014 is fixed.
|
| const char* current_packet_data_; // UDP payload of packet currently being
|
| // parsed or nullptr.
|
| @@ -894,6 +889,10 @@ class NET_EXPORT_PRIVATE QuicConnection
|
| // This is particularly important on mobile, where connections are short.
|
| bool silent_close_enabled_;
|
|
|
| + // When true, close the QUIC connection after 5 RTOs. Due to the min rto of
|
| + // 200ms, this is over 5 seconds.
|
| + bool close_connection_after_five_rtos_;
|
| +
|
| QuicReceivedPacketManager received_packet_manager_;
|
| QuicSentEntropyManager sent_entropy_manager_;
|
|
|
| @@ -986,20 +985,6 @@ class NET_EXPORT_PRIVATE QuicConnection
|
| // close.
|
| bool connected_;
|
|
|
| - // Set to true if the UDP packet headers have a new IP address for the peer.
|
| - bool peer_ip_changed_;
|
| -
|
| - // Set to true if the UDP packet headers have a new port for the peer.
|
| - bool peer_port_changed_;
|
| -
|
| - // Set to true if the UDP packet headers are addressed to a different IP.
|
| - // We do not support connection migration when the self IP changed.
|
| - bool self_ip_changed_;
|
| -
|
| - // Set to true if the UDP packet headers are addressed to a different port.
|
| - // We do not support connection migration when the self port changed.
|
| - bool self_port_changed_;
|
| -
|
| // Destination address of the last received packet.
|
| IPEndPoint last_packet_destination_address_;
|
|
|
|
|