Home | History | Annotate | Download | only in congestion_control
      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
      3 // found in the LICENSE file.
      4 
      5 #include "net/quic/congestion_control/send_algorithm_interface.h"
      6 
      7 #include "net/quic/congestion_control/fix_rate_sender.h"
      8 #include "net/quic/congestion_control/tcp_cubic_sender.h"
      9 #include "net/quic/quic_protocol.h"
     10 
     11 namespace net {
     12 
     13 const bool kUseReno = false;
     14 
     15 class RttStats;
     16 
     17 // Factory for send side congestion control algorithm.
     18 SendAlgorithmInterface* SendAlgorithmInterface::Create(
     19     const QuicClock* clock,
     20     const RttStats* rtt_stats,
     21     CongestionFeedbackType type,
     22     QuicConnectionStats* stats) {
     23   switch (type) {
     24     case kTCP:
     25       return new TcpCubicSender(clock, rtt_stats, kUseReno,
     26                                 kMaxTcpCongestionWindow, stats);
     27     case kInterArrival:
     28       LOG(DFATAL) << "InterArrivalSendAlgorithm no longer supported.";
     29       return NULL;
     30     case kFixRate:
     31       return new FixRateSender(rtt_stats);
     32     case kTCPBBR:
     33       LOG(DFATAL) << "BbrTcpSender is not supported.";
     34       return NULL;
     35   }
     36   return NULL;
     37 }
     38 
     39 }  // namespace net
     40