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

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

Issue 1665303003: Adds plumbing for QUIC early connection migration. No behavior change. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@home
Patch Set: Created 4 years, 10 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
« no previous file with comments | « no previous file | net/quic/quic_connection.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 125
126 // Called when a blocked socket becomes writable. 126 // Called when a blocked socket becomes writable.
127 virtual void OnCanWrite() = 0; 127 virtual void OnCanWrite() = 0;
128 128
129 // Called when the connection experiences a change in congestion window. 129 // Called when the connection experiences a change in congestion window.
130 virtual void OnCongestionWindowChange(QuicTime now) = 0; 130 virtual void OnCongestionWindowChange(QuicTime now) = 0;
131 131
132 // Called when the connection receives a packet from a migrated client. 132 // Called when the connection receives a packet from a migrated client.
133 virtual void OnConnectionMigration() = 0; 133 virtual void OnConnectionMigration() = 0;
134 134
135 // Called when the peer seems unreachable over the current path.
136 virtual void OnPathDegrading() = 0;
137
135 // Called after OnStreamFrame, OnRstStream, OnGoAway, OnWindowUpdateFrame, 138 // Called after OnStreamFrame, OnRstStream, OnGoAway, OnWindowUpdateFrame,
136 // OnBlockedFrame, and OnCanWrite to allow post-processing once the work has 139 // OnBlockedFrame, and OnCanWrite to allow post-processing once the work has
137 // been done. 140 // been done.
138 virtual void PostProcessAfterData() = 0; 141 virtual void PostProcessAfterData() = 0;
139 142
140 // Called to ask if the visitor wants to schedule write resumption as it both 143 // Called to ask if the visitor wants to schedule write resumption as it both
141 // has pending data to write, and is able to write (e.g. based on flow control 144 // has pending data to write, and is able to write (e.g. based on flow control
142 // limits). 145 // limits).
143 // Writes may be pending because they were write-blocked, congestion-throttled 146 // Writes may be pending because they were write-blocked, congestion-throttled
144 // or yielded to other connections. 147 // or yielded to other connections.
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 void PopulateAckFrame(QuicAckFrame* ack) override; 461 void PopulateAckFrame(QuicAckFrame* ack) override;
459 void PopulateStopWaitingFrame(QuicStopWaitingFrame* stop_waiting) override; 462 void PopulateStopWaitingFrame(QuicStopWaitingFrame* stop_waiting) override;
460 463
461 // QuicPacketCreator::DelegateInterface 464 // QuicPacketCreator::DelegateInterface
462 void OnSerializedPacket(SerializedPacket* packet) override; 465 void OnSerializedPacket(SerializedPacket* packet) override;
463 void OnResetFecGroup() override; 466 void OnResetFecGroup() override;
464 467
465 // QuicSentPacketManager::NetworkChangeVisitor 468 // QuicSentPacketManager::NetworkChangeVisitor
466 void OnCongestionWindowChange() override; 469 void OnCongestionWindowChange() override;
467 void OnRttChange() override; 470 void OnRttChange() override;
471 void OnPathDegrading() override;
468 472
469 // Called by the crypto stream when the handshake completes. In the server's 473 // Called by the crypto stream when the handshake completes. In the server's
470 // case this is when the SHLO has been ACKed. Clients call this on receipt of 474 // case this is when the SHLO has been ACKed. Clients call this on receipt of
471 // the SHLO. 475 // the SHLO.
472 void OnHandshakeComplete(); 476 void OnHandshakeComplete();
473 477
474 // Accessors 478 // Accessors
475 void set_visitor(QuicConnectionVisitorInterface* visitor) { 479 void set_visitor(QuicConnectionVisitorInterface* visitor) {
476 visitor_ = visitor; 480 visitor_ = visitor;
477 } 481 }
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after
1038 1042
1039 // If true, multipath is enabled for this connection. 1043 // If true, multipath is enabled for this connection.
1040 bool multipath_enabled_; 1044 bool multipath_enabled_;
1041 1045
1042 DISALLOW_COPY_AND_ASSIGN(QuicConnection); 1046 DISALLOW_COPY_AND_ASSIGN(QuicConnection);
1043 }; 1047 };
1044 1048
1045 } // namespace net 1049 } // namespace net
1046 1050
1047 #endif // NET_QUIC_QUIC_CONNECTION_H_ 1051 #endif // NET_QUIC_QUIC_CONNECTION_H_
OLDNEW
« no previous file with comments | « no previous file | net/quic/quic_connection.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698