OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ | 5 #ifndef NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ |
6 #define NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ | 6 #define NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 size_t max_tail_loss_probes_; | 380 size_t max_tail_loss_probes_; |
381 // If true, send the TLP at 0.5 RTT. | 381 // If true, send the TLP at 0.5 RTT. |
382 bool enable_half_rtt_tail_loss_probe_; | 382 bool enable_half_rtt_tail_loss_probe_; |
383 bool using_pacing_; | 383 bool using_pacing_; |
384 // If true, use the new RTO with loss based CWND reduction instead of the send | 384 // If true, use the new RTO with loss based CWND reduction instead of the send |
385 // algorithms's OnRetransmissionTimeout to reduce the congestion window. | 385 // algorithms's OnRetransmissionTimeout to reduce the congestion window. |
386 bool use_new_rto_; | 386 bool use_new_rto_; |
387 // If true, cancel pending retransmissions if they're larger than | 387 // If true, cancel pending retransmissions if they're larger than |
388 // largest_newly_acked. | 388 // largest_newly_acked. |
389 bool undo_pending_retransmits_; | 389 bool undo_pending_retransmits_; |
| 390 // If true, use a more conservative handshake retransmission policy. |
| 391 bool conservative_handshake_retransmits_; |
390 | 392 |
391 // Vectors packets acked and lost as a result of the last congestion event. | 393 // Vectors packets acked and lost as a result of the last congestion event. |
392 SendAlgorithmInterface::CongestionVector packets_acked_; | 394 SendAlgorithmInterface::CongestionVector packets_acked_; |
393 SendAlgorithmInterface::CongestionVector packets_lost_; | 395 SendAlgorithmInterface::CongestionVector packets_lost_; |
394 // Largest newly acknowledged packet. | 396 // Largest newly acknowledged packet. |
395 QuicPacketNumber largest_newly_acked_; | 397 QuicPacketNumber largest_newly_acked_; |
396 // Largest packet in bytes ever acknowledged. | 398 // Largest packet in bytes ever acknowledged. |
397 QuicPacketLength largest_mtu_acked_; | 399 QuicPacketLength largest_mtu_acked_; |
398 | 400 |
399 // Replaces certain calls to |send_algorithm_| when |using_pacing_| is true. | 401 // Replaces certain calls to |send_algorithm_| when |using_pacing_| is true. |
400 // Calls into |send_algorithm_| for the underlying congestion control. | 402 // Calls into |send_algorithm_| for the underlying congestion control. |
401 PacingSender pacing_sender_; | 403 PacingSender pacing_sender_; |
402 | 404 |
403 // Set to true after the crypto handshake has successfully completed. After | 405 // Set to true after the crypto handshake has successfully completed. After |
404 // this is true we no longer use HANDSHAKE_MODE, and further frames sent on | 406 // this is true we no longer use HANDSHAKE_MODE, and further frames sent on |
405 // the crypto stream (i.e. SCUP messages) are treated like normal | 407 // the crypto stream (i.e. SCUP messages) are treated like normal |
406 // retransmittable frames. | 408 // retransmittable frames. |
407 bool handshake_confirmed_; | 409 bool handshake_confirmed_; |
408 | 410 |
409 // Records bandwidth from server to client in normal operation, over periods | 411 // Records bandwidth from server to client in normal operation, over periods |
410 // of time with no loss events. | 412 // of time with no loss events. |
411 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; | 413 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; |
412 | 414 |
413 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); | 415 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); |
414 }; | 416 }; |
415 | 417 |
416 } // namespace net | 418 } // namespace net |
417 | 419 |
418 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ | 420 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ |
OLD | NEW |