OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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_connection.h" | 5 #include "net/quic/quic_connection.h" |
6 | 6 |
7 #include <string.h> | 7 #include <string.h> |
8 #include <sys/types.h> | 8 #include <sys/types.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
311 largest_received_packet_size_(0), | 311 largest_received_packet_size_(0), |
312 goaway_sent_(false), | 312 goaway_sent_(false), |
313 goaway_received_(false), | 313 goaway_received_(false), |
314 multipath_enabled_(false) { | 314 multipath_enabled_(false) { |
315 DVLOG(1) << ENDPOINT | 315 DVLOG(1) << ENDPOINT |
316 << "Created connection with connection_id: " << connection_id; | 316 << "Created connection with connection_id: " << connection_id; |
317 framer_.set_visitor(this); | 317 framer_.set_visitor(this); |
318 framer_.set_received_entropy_calculator(&received_packet_manager_); | 318 framer_.set_received_entropy_calculator(&received_packet_manager_); |
319 last_stop_waiting_frame_.least_unacked = 0; | 319 last_stop_waiting_frame_.least_unacked = 0; |
320 stats_.connection_creation_time = clock_->ApproximateNow(); | 320 stats_.connection_creation_time = clock_->ApproximateNow(); |
| 321 if (FLAGS_quic_enable_multipath) { |
| 322 sent_packet_manager_.reset(new QuicMultipathSentPacketManager( |
| 323 sent_packet_manager_.release(), this)); |
| 324 } |
321 // TODO(ianswett): Supply the NetworkChangeVisitor as a constructor argument | 325 // TODO(ianswett): Supply the NetworkChangeVisitor as a constructor argument |
322 // and make it required non-null, because it's always used. | 326 // and make it required non-null, because it's always used. |
323 sent_packet_manager_->SetNetworkChangeVisitor(this); | 327 sent_packet_manager_->SetNetworkChangeVisitor(this); |
324 // Allow the packet writer to potentially reduce the packet size to a value | 328 // Allow the packet writer to potentially reduce the packet size to a value |
325 // even smaller than kDefaultMaxPacketSize. | 329 // even smaller than kDefaultMaxPacketSize. |
326 SetMaxPacketLength(perspective_ == Perspective::IS_SERVER | 330 SetMaxPacketLength(perspective_ == Perspective::IS_SERVER |
327 ? kDefaultServerMaxPacketSize | 331 ? kDefaultServerMaxPacketSize |
328 : kDefaultMaxPacketSize); | 332 : kDefaultMaxPacketSize); |
329 received_packet_manager_.SetVersion(version()); | 333 received_packet_manager_.SetVersion(version()); |
330 } | 334 } |
(...skipping 2178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2509 // the sender and a signaling mechanism -- if the sender uses a | 2513 // the sender and a signaling mechanism -- if the sender uses a |
2510 // different MinRTO, we may get spurious retransmissions. May not have | 2514 // different MinRTO, we may get spurious retransmissions. May not have |
2511 // any benefits, but if the delayed ack becomes a significant source | 2515 // any benefits, but if the delayed ack becomes a significant source |
2512 // of (likely, tail) latency, then consider such a mechanism. | 2516 // of (likely, tail) latency, then consider such a mechanism. |
2513 const QuicTime::Delta QuicConnection::DelayedAckTime() { | 2517 const QuicTime::Delta QuicConnection::DelayedAckTime() { |
2514 return QuicTime::Delta::FromMilliseconds( | 2518 return QuicTime::Delta::FromMilliseconds( |
2515 min(kMaxDelayedAckTimeMs, kMinRetransmissionTimeMs / 2)); | 2519 min(kMaxDelayedAckTimeMs, kMinRetransmissionTimeMs / 2)); |
2516 } | 2520 } |
2517 | 2521 |
2518 } // namespace net | 2522 } // namespace net |
OLD | NEW |