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

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

Issue 1572033003: relnote: Allowing multipath support negotiation. Protected by --quic_enable_multipath, default valu… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@0044_CL_111708360
Patch Set: rebase after removing 111628983 Created 4 years, 11 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 | « net/quic/crypto/crypto_protocol.h ('k') | net/quic/quic_config.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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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_CONFIG_H_ 5 #ifndef NET_QUIC_QUIC_CONFIG_H_
6 #define NET_QUIC_QUIC_CONFIG_H_ 6 #define NET_QUIC_QUIC_CONFIG_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 bool negotiated() const { return negotiated_; } 68 bool negotiated() const { return negotiated_; }
69 69
70 protected: 70 protected:
71 void set_negotiated(bool negotiated) { negotiated_ = negotiated; } 71 void set_negotiated(bool negotiated) { negotiated_ = negotiated; }
72 72
73 private: 73 private:
74 bool negotiated_; 74 bool negotiated_;
75 }; 75 };
76 76
77 class NET_EXPORT_PRIVATE QuicNegotiableUint32 : public QuicNegotiableValue { 77 class NET_EXPORT_PRIVATE QuicNegotiableUint32 : public QuicNegotiableValue {
78 // TODO(fayang): some negotiated values use uint32 as bool (e.g., silent
79 // close). Consider adding a QuicNegotiableBool type.
78 public: 80 public:
79 // Default and max values default to 0. 81 // Default and max values default to 0.
80 QuicNegotiableUint32(QuicTag name, QuicConfigPresence presence); 82 QuicNegotiableUint32(QuicTag name, QuicConfigPresence presence);
81 ~QuicNegotiableUint32() override; 83 ~QuicNegotiableUint32() override;
82 84
83 // Sets the maximum possible value that can be achieved after negotiation and 85 // Sets the maximum possible value that can be achieved after negotiation and
84 // also the default values to be assumed if PRESENCE_OPTIONAL and the *HLO msg 86 // also the default values to be assumed if PRESENCE_OPTIONAL and the *HLO msg
85 // doesn't contain a value corresponding to |name_|. |max| is serialised via 87 // doesn't contain a value corresponding to |name_|. |max| is serialised via
86 // ToHandshakeMessage call if |negotiated_| is false. 88 // ToHandshakeMessage call if |negotiated_| is false.
87 void set(uint32_t max, uint32_t default_value); 89 void set(uint32_t max, uint32_t default_value);
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 322
321 uint32_t ReceivedInitialSessionFlowControlWindowBytes() const; 323 uint32_t ReceivedInitialSessionFlowControlWindowBytes() const;
322 324
323 // Sets socket receive buffer to transmit to the peer. 325 // Sets socket receive buffer to transmit to the peer.
324 void SetSocketReceiveBufferToSend(uint32_t window_bytes); 326 void SetSocketReceiveBufferToSend(uint32_t window_bytes);
325 327
326 bool HasReceivedSocketReceiveBuffer() const; 328 bool HasReceivedSocketReceiveBuffer() const;
327 329
328 uint32_t ReceivedSocketReceiveBuffer() const; 330 uint32_t ReceivedSocketReceiveBuffer() const;
329 331
332 void SetMultipathEnabled(bool multipath_enabled);
333
334 bool MultipathEnabled() const;
335
330 bool negotiated() const; 336 bool negotiated() const;
331 337
332 // ToHandshakeMessage serialises the settings in this object as a series of 338 // ToHandshakeMessage serialises the settings in this object as a series of
333 // tags /value pairs and adds them to |out|. 339 // tags /value pairs and adds them to |out|.
334 void ToHandshakeMessage(CryptoHandshakeMessage* out) const; 340 void ToHandshakeMessage(CryptoHandshakeMessage* out) const;
335 341
336 // Calls ProcessPeerHello on each negotiable parameter. On failure returns 342 // Calls ProcessPeerHello on each negotiable parameter. On failure returns
337 // the corresponding QuicErrorCode and sets detailed error in |error_details|. 343 // the corresponding QuicErrorCode and sets detailed error in |error_details|.
338 QuicErrorCode ProcessPeerHello(const CryptoHandshakeMessage& peer_hello, 344 QuicErrorCode ProcessPeerHello(const CryptoHandshakeMessage& peer_hello,
339 HelloType hello_type, 345 HelloType hello_type,
(...skipping 26 matching lines...) Expand all
366 // Initial round trip time estimate in microseconds. 372 // Initial round trip time estimate in microseconds.
367 QuicFixedUint32 initial_round_trip_time_us_; 373 QuicFixedUint32 initial_round_trip_time_us_;
368 374
369 // Initial stream flow control receive window in bytes. 375 // Initial stream flow control receive window in bytes.
370 QuicFixedUint32 initial_stream_flow_control_window_bytes_; 376 QuicFixedUint32 initial_stream_flow_control_window_bytes_;
371 // Initial session flow control receive window in bytes. 377 // Initial session flow control receive window in bytes.
372 QuicFixedUint32 initial_session_flow_control_window_bytes_; 378 QuicFixedUint32 initial_session_flow_control_window_bytes_;
373 379
374 // Socket receive buffer in bytes. 380 // Socket receive buffer in bytes.
375 QuicFixedUint32 socket_receive_buffer_; 381 QuicFixedUint32 socket_receive_buffer_;
382
383 // Whether to support multipath for this connection.
384 QuicNegotiableUint32 multipath_enabled_;
376 }; 385 };
377 386
378 } // namespace net 387 } // namespace net
379 388
380 #endif // NET_QUIC_QUIC_CONFIG_H_ 389 #endif // NET_QUIC_QUIC_CONFIG_H_
OLDNEW
« no previous file with comments | « net/quic/crypto/crypto_protocol.h ('k') | net/quic/quic_config.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698