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

Side by Side Diff: net/quic/quic_connection.h

Issue 25443002: Land Recent QUIC changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 | Annotate | Revision Log
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 // The entity that handles framing writes for a Quic client or server. 5 // The entity that handles framing writes for a Quic client or server.
6 // Each QuicSession will have a connection associated with it. 6 // Each QuicSession will have a connection associated with it.
7 // 7 //
8 // On the server side, the Dispatcher handles the raw reads, and hands off 8 // On the server side, the Dispatcher handles the raw reads, and hands off
9 // packets via ProcessUdpPacket for framing and processing. 9 // packets via ProcessUdpPacket for framing and processing.
10 // 10 //
(...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after
698 698
699 // An alarm that fires when an ACK should be sent to the peer. 699 // An alarm that fires when an ACK should be sent to the peer.
700 scoped_ptr<QuicAlarm> ack_alarm_; 700 scoped_ptr<QuicAlarm> ack_alarm_;
701 // An alarm that fires when a packet needs to be retransmitted. 701 // An alarm that fires when a packet needs to be retransmitted.
702 scoped_ptr<QuicAlarm> retransmission_alarm_; 702 scoped_ptr<QuicAlarm> retransmission_alarm_;
703 // An alarm that fires when one or more FEC packets are to be discarded. 703 // An alarm that fires when one or more FEC packets are to be discarded.
704 scoped_ptr<QuicAlarm> abandon_fec_alarm_; 704 scoped_ptr<QuicAlarm> abandon_fec_alarm_;
705 // An alarm that is scheduled when the sent scheduler requires a 705 // An alarm that is scheduled when the sent scheduler requires a
706 // a delay before sending packets and fires when the packet may be sent. 706 // a delay before sending packets and fires when the packet may be sent.
707 scoped_ptr<QuicAlarm> send_alarm_; 707 scoped_ptr<QuicAlarm> send_alarm_;
708 // An alarm that is scheduled when the connection can still write and there
709 // may be more data to send.
710 scoped_ptr<QuicAlarm> resume_writes_alarm_;
708 // An alarm that fires when the connection may have timed out. 711 // An alarm that fires when the connection may have timed out.
709 scoped_ptr<QuicAlarm> timeout_alarm_; 712 scoped_ptr<QuicAlarm> timeout_alarm_;
710 713
711 QuicConnectionVisitorInterface* visitor_; 714 QuicConnectionVisitorInterface* visitor_;
712 QuicConnectionDebugVisitorInterface* debug_visitor_; 715 QuicConnectionDebugVisitorInterface* debug_visitor_;
713 QuicPacketCreator packet_creator_; 716 QuicPacketCreator packet_creator_;
714 QuicPacketGenerator packet_generator_; 717 QuicPacketGenerator packet_generator_;
715 718
716 // Network idle time before we kill of this connection. 719 // Network idle time before we kill of this connection.
717 QuicTime::Delta idle_network_timeout_; 720 QuicTime::Delta idle_network_timeout_;
718 // Overall connection timeout. 721 // Overall connection timeout.
719 QuicTime::Delta overall_connection_timeout_; 722 QuicTime::Delta overall_connection_timeout_;
720 // Connection creation time. 723 // Connection creation time.
721 QuicTime creation_time_; 724 QuicTime creation_time_;
722 725
723 // Statistics for this session. 726 // Statistics for this session.
724 QuicConnectionStats stats_; 727 QuicConnectionStats stats_;
725 728
726 // The time that we got a packet for this connection. 729 // The time that we got a packet for this connection.
727 // This is used for timeouts, and does not indicate the packet was processed. 730 // This is used for timeouts, and does not indicate the packet was processed.
728 QuicTime time_of_last_received_packet_; 731 QuicTime time_of_last_received_packet_;
729 732
730 // The time that we last sent a packet for this connection. 733 // The time that we last sent a packet for this connection.
731 QuicTime time_of_last_sent_packet_; 734 QuicTime time_of_last_sent_packet_;
732 735
736 // Sequence number of the last packet guaranteed to be sent in packet sequence
737 // number order. Not set when packets are queued, since that may cause
738 // re-ordering.
739 QuicPacketSequenceNumber sequence_number_of_last_inorder_packet_;
740
733 // Congestion manager which controls the rate the connection sends packets 741 // Congestion manager which controls the rate the connection sends packets
734 // as well as collecting and generating congestion feedback. 742 // as well as collecting and generating congestion feedback.
735 QuicCongestionManager congestion_manager_; 743 QuicCongestionManager congestion_manager_;
736 744
737 // Sent packet manager which tracks the status of packets sent by this 745 // Sent packet manager which tracks the status of packets sent by this
738 // connection. 746 // connection.
739 QuicSentPacketManager sent_packet_manager_; 747 QuicSentPacketManager sent_packet_manager_;
740 748
741 // The state of connection in version negotiation finite state machine. 749 // The state of connection in version negotiation finite state machine.
742 QuicVersionNegotiationState version_negotiation_state_; 750 QuicVersionNegotiationState version_negotiation_state_;
(...skipping 10 matching lines...) Expand all
753 761
754 // True if the last ack received from the peer may have been truncated. False 762 // True if the last ack received from the peer may have been truncated. False
755 // otherwise. 763 // otherwise.
756 bool received_truncated_ack_; 764 bool received_truncated_ack_;
757 bool send_ack_in_response_to_packet_; 765 bool send_ack_in_response_to_packet_;
758 766
759 // Set to true if the udp packet headers have a new self or peer address. 767 // Set to true if the udp packet headers have a new self or peer address.
760 // This is checked later on validating a data or version negotiation packet. 768 // This is checked later on validating a data or version negotiation packet.
761 bool address_migrating_; 769 bool address_migrating_;
762 770
763 // An AckNotifier can register to be informed when ACKs have been received for
764 // all packets that a given block of data was sent in. The AckNotifierManager
765 // maintains the currently active notifiers.
766 AckNotifierManager ack_notifier_manager_;
767
768 DISALLOW_COPY_AND_ASSIGN(QuicConnection); 771 DISALLOW_COPY_AND_ASSIGN(QuicConnection);
769 }; 772 };
770 773
771 } // namespace net 774 } // namespace net
772 775
773 #endif // NET_QUIC_QUIC_CONNECTION_H_ 776 #endif // NET_QUIC_QUIC_CONNECTION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698