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

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

Issue 446283002: Include the socket receive buffer in the connection handshake. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@improve_SendAlgorithmSimulator_72332690
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 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 initial_congestion_window_(kSWND, PRESENCE_OPTIONAL), 436 initial_congestion_window_(kSWND, PRESENCE_OPTIONAL),
437 initial_round_trip_time_us_(kIRTT, PRESENCE_OPTIONAL), 437 initial_round_trip_time_us_(kIRTT, PRESENCE_OPTIONAL),
438 // TODO(rjshade): Make this PRESENCE_REQUIRED when QUIC_VERSION_16 is 438 // TODO(rjshade): Make this PRESENCE_REQUIRED when QUIC_VERSION_16 is
439 // retired. 439 // retired.
440 initial_flow_control_window_bytes_(kIFCW, PRESENCE_OPTIONAL), 440 initial_flow_control_window_bytes_(kIFCW, PRESENCE_OPTIONAL),
441 // TODO(rjshade): Make this PRESENCE_REQUIRED when retiring 441 // TODO(rjshade): Make this PRESENCE_REQUIRED when retiring
442 // QUIC_VERSION_19. 442 // QUIC_VERSION_19.
443 initial_stream_flow_control_window_bytes_(kSFCW, PRESENCE_OPTIONAL), 443 initial_stream_flow_control_window_bytes_(kSFCW, PRESENCE_OPTIONAL),
444 // TODO(rjshade): Make this PRESENCE_REQUIRED when retiring 444 // TODO(rjshade): Make this PRESENCE_REQUIRED when retiring
445 // QUIC_VERSION_19. 445 // QUIC_VERSION_19.
446 initial_session_flow_control_window_bytes_(kCFCW, PRESENCE_OPTIONAL) { 446 initial_session_flow_control_window_bytes_(kCFCW, PRESENCE_OPTIONAL),
447 socket_receive_buffer_(kSRBF, PRESENCE_OPTIONAL) {
447 } 448 }
448 449
449 QuicConfig::~QuicConfig() {} 450 QuicConfig::~QuicConfig() {}
450 451
451 void QuicConfig::set_congestion_feedback( 452 void QuicConfig::set_congestion_feedback(
452 const QuicTagVector& congestion_feedback, 453 const QuicTagVector& congestion_feedback,
453 QuicTag default_congestion_feedback) { 454 QuicTag default_congestion_feedback) {
454 congestion_feedback_.set(congestion_feedback, default_congestion_feedback); 455 congestion_feedback_.set(congestion_feedback, default_congestion_feedback);
455 } 456 }
456 457
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
610 } 611 }
611 612
612 bool QuicConfig::HasReceivedInitialSessionFlowControlWindowBytes() const { 613 bool QuicConfig::HasReceivedInitialSessionFlowControlWindowBytes() const {
613 return initial_session_flow_control_window_bytes_.HasReceivedValue(); 614 return initial_session_flow_control_window_bytes_.HasReceivedValue();
614 } 615 }
615 616
616 uint32 QuicConfig::ReceivedInitialSessionFlowControlWindowBytes() const { 617 uint32 QuicConfig::ReceivedInitialSessionFlowControlWindowBytes() const {
617 return initial_session_flow_control_window_bytes_.GetReceivedValue(); 618 return initial_session_flow_control_window_bytes_.GetReceivedValue();
618 } 619 }
619 620
621 void QuicConfig::SetSocketReceiveBufferToSend(uint32 tcp_receive_window) {
622 socket_receive_buffer_.SetSendValue(tcp_receive_window);
623 }
624
625 uint32 QuicConfig::GetSocketReceiveBufferToSend() const {
626 return socket_receive_buffer_.GetSendValue();
627 }
628
629 bool QuicConfig::HasReceivedSocketReceiveBuffer() const {
630 return socket_receive_buffer_.HasReceivedValue();
631 }
632
633 uint32 QuicConfig::ReceivedSocketReceiveBuffer() const {
634 return socket_receive_buffer_.GetReceivedValue();
635 }
636
620 bool QuicConfig::negotiated() { 637 bool QuicConfig::negotiated() {
621 // TODO(ianswett): Add the negotiated parameters once and iterate over all 638 // TODO(ianswett): Add the negotiated parameters once and iterate over all
622 // of them in negotiated, ToHandshakeMessage, ProcessClientHello, and 639 // of them in negotiated, ToHandshakeMessage, ProcessClientHello, and
623 // ProcessServerHello. 640 // ProcessServerHello.
624 return congestion_feedback_.negotiated() && 641 return congestion_feedback_.negotiated() &&
625 idle_connection_state_lifetime_seconds_.negotiated() && 642 idle_connection_state_lifetime_seconds_.negotiated() &&
626 keepalive_timeout_seconds_.negotiated() && 643 keepalive_timeout_seconds_.negotiated() &&
627 max_streams_per_connection_.negotiated(); 644 max_streams_per_connection_.negotiated();
628 } 645 }
629 646
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 congestion_feedback_.ToHandshakeMessage(out); 678 congestion_feedback_.ToHandshakeMessage(out);
662 idle_connection_state_lifetime_seconds_.ToHandshakeMessage(out); 679 idle_connection_state_lifetime_seconds_.ToHandshakeMessage(out);
663 keepalive_timeout_seconds_.ToHandshakeMessage(out); 680 keepalive_timeout_seconds_.ToHandshakeMessage(out);
664 max_streams_per_connection_.ToHandshakeMessage(out); 681 max_streams_per_connection_.ToHandshakeMessage(out);
665 initial_congestion_window_.ToHandshakeMessage(out); 682 initial_congestion_window_.ToHandshakeMessage(out);
666 initial_round_trip_time_us_.ToHandshakeMessage(out); 683 initial_round_trip_time_us_.ToHandshakeMessage(out);
667 loss_detection_.ToHandshakeMessage(out); 684 loss_detection_.ToHandshakeMessage(out);
668 initial_flow_control_window_bytes_.ToHandshakeMessage(out); 685 initial_flow_control_window_bytes_.ToHandshakeMessage(out);
669 initial_stream_flow_control_window_bytes_.ToHandshakeMessage(out); 686 initial_stream_flow_control_window_bytes_.ToHandshakeMessage(out);
670 initial_session_flow_control_window_bytes_.ToHandshakeMessage(out); 687 initial_session_flow_control_window_bytes_.ToHandshakeMessage(out);
688 socket_receive_buffer_.ToHandshakeMessage(out);
671 connection_options_.ToHandshakeMessage(out); 689 connection_options_.ToHandshakeMessage(out);
672 } 690 }
673 691
674 QuicErrorCode QuicConfig::ProcessPeerHello( 692 QuicErrorCode QuicConfig::ProcessPeerHello(
675 const CryptoHandshakeMessage& peer_hello, 693 const CryptoHandshakeMessage& peer_hello,
676 HelloType hello_type, 694 HelloType hello_type,
677 string* error_details) { 695 string* error_details) {
678 DCHECK(error_details != NULL); 696 DCHECK(error_details != NULL);
679 697
680 QuicErrorCode error = QUIC_NO_ERROR; 698 QuicErrorCode error = QUIC_NO_ERROR;
(...skipping 27 matching lines...) Expand all
708 } 726 }
709 if (error == QUIC_NO_ERROR) { 727 if (error == QUIC_NO_ERROR) {
710 error = initial_stream_flow_control_window_bytes_.ProcessPeerHello( 728 error = initial_stream_flow_control_window_bytes_.ProcessPeerHello(
711 peer_hello, hello_type, error_details); 729 peer_hello, hello_type, error_details);
712 } 730 }
713 if (error == QUIC_NO_ERROR) { 731 if (error == QUIC_NO_ERROR) {
714 error = initial_session_flow_control_window_bytes_.ProcessPeerHello( 732 error = initial_session_flow_control_window_bytes_.ProcessPeerHello(
715 peer_hello, hello_type, error_details); 733 peer_hello, hello_type, error_details);
716 } 734 }
717 if (error == QUIC_NO_ERROR) { 735 if (error == QUIC_NO_ERROR) {
736 error = socket_receive_buffer_.ProcessPeerHello(
737 peer_hello, hello_type, error_details);
738 }
739 if (error == QUIC_NO_ERROR) {
718 error = loss_detection_.ProcessPeerHello( 740 error = loss_detection_.ProcessPeerHello(
719 peer_hello, hello_type, error_details); 741 peer_hello, hello_type, error_details);
720 } 742 }
721 if (error == QUIC_NO_ERROR) { 743 if (error == QUIC_NO_ERROR) {
722 error = connection_options_.ProcessPeerHello( 744 error = connection_options_.ProcessPeerHello(
723 peer_hello, hello_type, error_details); 745 peer_hello, hello_type, error_details);
724 } 746 }
725 return error; 747 return error;
726 } 748 }
727 749
728 } // namespace net 750 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_config.h ('k') | net/quic/quic_config_test.cc » ('j') | net/quic/quic_protocol.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698