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

Unified Diff: net/quic/quic_stream_factory.h

Issue 2124753005: Implements migration of a QUIC connection to a different destination address if specified by the se… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@write-error
Patch Set: fixing linker error. Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_config.h ('k') | net/quic/quic_stream_factory.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_stream_factory.h
diff --git a/net/quic/quic_stream_factory.h b/net/quic/quic_stream_factory.h
index fbb91abb3650f00e02c2d183e2e4f10f41e74381..45af96327cacbc5d264af1ae116de3788ef7703a 100644
--- a/net/quic/quic_stream_factory.h
+++ b/net/quic/quic_stream_factory.h
@@ -192,6 +192,7 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
int idle_connection_timeout_seconds,
bool migrate_sessions_on_network_change,
bool migrate_sessions_early,
+ bool allow_server_migration,
bool force_hol_blocking,
const QuicTagVector& connection_options,
bool enable_token_binding);
@@ -297,13 +298,20 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
MigrationCause migration_cause,
scoped_refptr<StringIOBuffer> packet);
- // Method that migrates |session| over to using |new_network|. If
- // not null, |packet| is sent on the new network, else a PING frame
- // is sent. Returns ERR_QUIC_PROTOCOL_ERROR if migration fails.
- void MigrateSessionToNetwork(QuicChromiumClientSession* session,
- NetworkChangeNotifier::NetworkHandle new_network,
- const BoundNetLog& bound_net_log,
- scoped_refptr<StringIOBuffer> packet);
+ // Migrates |session| over to using |network|. If |network| is
+ // kInvalidNetworkHandle, default network is used. If |packet| is
+ // not null, it is sent on the new network, else a PING frame is
+ // sent.
+ void MigrateSessionToNewNetwork(QuicChromiumClientSession* session,
+ NetworkChangeNotifier::NetworkHandle network,
+ const BoundNetLog& bound_net_log,
+ scoped_refptr<StringIOBuffer> packet);
+
+ // Migrates |session| over to using |peer_address|. Causes a PING frame
+ // to be sent to the new peer address.
+ void MigrateSessionToNewPeerAddress(QuicChromiumClientSession* session,
+ IPEndPoint peer_address,
+ const BoundNetLog& bound_net_log);
// NetworkChangeNotifier::IPAddressObserver methods:
@@ -447,6 +455,16 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
void MaybeDisableQuic(uint16_t port);
+ // Internal method that migrates |session| over to using
+ // |peer_address| and |network|. If |network| is kInvalidNetworkHandle,
+ // default network is used. If |packet| is not null, it is sent
+ // on the new network, else a PING frame is sent.
+ void MigrateSession(QuicChromiumClientSession* session,
+ IPEndPoint peer_address,
+ NetworkChangeNotifier::NetworkHandle network,
+ const BoundNetLog& bound_net_log,
+ scoped_refptr<StringIOBuffer> packet);
+
bool require_confirmation_;
NetLog* net_log_;
HostResolver* host_resolver_;
@@ -573,6 +591,10 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
// experiences poor connectivity.
const bool migrate_sessions_early_;
+ // If set, allows migration of connection to server-specified alternate
+ // server address.
+ const bool allow_server_migration_;
+
// If set, force HOL blocking. For measurement purposes.
const bool force_hol_blocking_;
« no previous file with comments | « net/quic/quic_config.h ('k') | net/quic/quic_stream_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698