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

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

Issue 471613002: Change how QUIC negotiates pacing from congestion feedback to QUIC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@Add_max_bandwidth_max_bandwidth_timestamp_73055131
Patch Set: Created 6 years, 4 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
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 #include "net/quic/quic_config.h" 5 #include "net/quic/quic_config.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "net/quic/crypto/crypto_handshake_message.h" 10 #include "net/quic/crypto/crypto_handshake_message.h"
(...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 // of them in negotiated, ToHandshakeMessage, ProcessClientHello, and 639 // of them in negotiated, ToHandshakeMessage, ProcessClientHello, and
640 // ProcessServerHello. 640 // ProcessServerHello.
641 return congestion_feedback_.negotiated() && 641 return congestion_feedback_.negotiated() &&
642 idle_connection_state_lifetime_seconds_.negotiated() && 642 idle_connection_state_lifetime_seconds_.negotiated() &&
643 keepalive_timeout_seconds_.negotiated() && 643 keepalive_timeout_seconds_.negotiated() &&
644 max_streams_per_connection_.negotiated(); 644 max_streams_per_connection_.negotiated();
645 } 645 }
646 646
647 void QuicConfig::SetDefaults() { 647 void QuicConfig::SetDefaults() {
648 QuicTagVector congestion_feedback; 648 QuicTagVector congestion_feedback;
649 if (FLAGS_enable_quic_pacing) {
650 congestion_feedback.push_back(kPACE);
651 }
652 congestion_feedback.push_back(kQBIC); 649 congestion_feedback.push_back(kQBIC);
653 congestion_feedback_.set(congestion_feedback, kQBIC); 650 congestion_feedback_.set(congestion_feedback, kQBIC);
654 idle_connection_state_lifetime_seconds_.set(kDefaultTimeoutSecs, 651 idle_connection_state_lifetime_seconds_.set(kDefaultTimeoutSecs,
655 kDefaultInitialTimeoutSecs); 652 kDefaultInitialTimeoutSecs);
656 // kKATO is optional. Return 0 if not negotiated. 653 // kKATO is optional. Return 0 if not negotiated.
657 keepalive_timeout_seconds_.set(0, 0); 654 keepalive_timeout_seconds_.set(0, 0);
658 max_streams_per_connection_.set(kDefaultMaxStreamsPerConnection, 655 max_streams_per_connection_.set(kDefaultMaxStreamsPerConnection,
659 kDefaultMaxStreamsPerConnection); 656 kDefaultMaxStreamsPerConnection);
660 max_time_before_crypto_handshake_ = QuicTime::Delta::FromSeconds( 657 max_time_before_crypto_handshake_ = QuicTime::Delta::FromSeconds(
661 kDefaultMaxTimeForCryptoHandshakeSecs); 658 kDefaultMaxTimeForCryptoHandshakeSecs);
662 659
663 SetInitialFlowControlWindowToSend(kDefaultFlowControlSendWindow); 660 SetInitialFlowControlWindowToSend(kDefaultFlowControlSendWindow);
664 SetInitialStreamFlowControlWindowToSend(kDefaultFlowControlSendWindow); 661 SetInitialStreamFlowControlWindowToSend(kDefaultFlowControlSendWindow);
665 SetInitialSessionFlowControlWindowToSend(kDefaultFlowControlSendWindow); 662 SetInitialSessionFlowControlWindowToSend(kDefaultFlowControlSendWindow);
666 } 663 }
667 664
668 void QuicConfig::EnablePacing(bool enable_pacing) {
669 QuicTagVector congestion_feedback;
670 if (enable_pacing) {
671 congestion_feedback.push_back(kPACE);
672 }
673 congestion_feedback.push_back(kQBIC);
674 congestion_feedback_.set(congestion_feedback, kQBIC);
675 }
676
677 void QuicConfig::ToHandshakeMessage(CryptoHandshakeMessage* out) const { 665 void QuicConfig::ToHandshakeMessage(CryptoHandshakeMessage* out) const {
678 congestion_feedback_.ToHandshakeMessage(out); 666 congestion_feedback_.ToHandshakeMessage(out);
679 idle_connection_state_lifetime_seconds_.ToHandshakeMessage(out); 667 idle_connection_state_lifetime_seconds_.ToHandshakeMessage(out);
680 keepalive_timeout_seconds_.ToHandshakeMessage(out); 668 keepalive_timeout_seconds_.ToHandshakeMessage(out);
681 max_streams_per_connection_.ToHandshakeMessage(out); 669 max_streams_per_connection_.ToHandshakeMessage(out);
682 initial_congestion_window_.ToHandshakeMessage(out); 670 initial_congestion_window_.ToHandshakeMessage(out);
683 initial_round_trip_time_us_.ToHandshakeMessage(out); 671 initial_round_trip_time_us_.ToHandshakeMessage(out);
684 loss_detection_.ToHandshakeMessage(out); 672 loss_detection_.ToHandshakeMessage(out);
685 initial_flow_control_window_bytes_.ToHandshakeMessage(out); 673 initial_flow_control_window_bytes_.ToHandshakeMessage(out);
686 initial_stream_flow_control_window_bytes_.ToHandshakeMessage(out); 674 initial_stream_flow_control_window_bytes_.ToHandshakeMessage(out);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
741 peer_hello, hello_type, error_details); 729 peer_hello, hello_type, error_details);
742 } 730 }
743 if (error == QUIC_NO_ERROR) { 731 if (error == QUIC_NO_ERROR) {
744 error = connection_options_.ProcessPeerHello( 732 error = connection_options_.ProcessPeerHello(
745 peer_hello, hello_type, error_details); 733 peer_hello, hello_type, error_details);
746 } 734 }
747 return error; 735 return error;
748 } 736 }
749 737
750 } // namespace net 738 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698