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

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

Issue 17518002: Add logging to the QUIC write path. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Missed one Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « net/base/net_log_event_type_list.h ('k') | net/quic/quic_connection.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) 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 // The entity that handles framing writes for a Quic client or server. 5 // The entity that handles framing writes for a Quic client or server.
6 // Each QuicSession will have a connection associated with it. 6 // Each QuicSession will have a connection associated with it.
7 // 7 //
8 // On the server side, the Dispatcher handles the raw reads, and hands off 8 // On the server side, the Dispatcher handles the raw reads, and hands off
9 // packets via ProcessUdpPacket for framing and processing. 9 // packets via ProcessUdpPacket for framing and processing.
10 // 10 //
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 75
76 // Called when a blocked socket becomes writable. If all pending bytes for 76 // Called when a blocked socket becomes writable. If all pending bytes for
77 // this visitor are consumed by the connection successfully this should 77 // this visitor are consumed by the connection successfully this should
78 // return true, otherwise it should return false. 78 // return true, otherwise it should return false.
79 virtual bool OnCanWrite() = 0; 79 virtual bool OnCanWrite() = 0;
80 }; 80 };
81 81
82 // Interface which gets callbacks from the QuicConnection at interesting 82 // Interface which gets callbacks from the QuicConnection at interesting
83 // points. Implementations must not mutate the state of the connection 83 // points. Implementations must not mutate the state of the connection
84 // as a result of these callbacks. 84 // as a result of these callbacks.
85 class NET_EXPORT_PRIVATE QuicConnectionDebugVisitorInterface { 85 class NET_EXPORT_PRIVATE QuicConnectionDebugVisitorInterface
86 : public QuicPacketGenerator::DebugDelegateInterface {
86 public: 87 public:
87 virtual ~QuicConnectionDebugVisitorInterface() {} 88 virtual ~QuicConnectionDebugVisitorInterface() {}
88 89
90 // Called when a packet has been sent.
91 virtual void OnPacketSent(QuicPacketSequenceNumber sequence_number,
92 EncryptionLevel level,
93 const QuicEncryptedPacket& packet,
94 int rv) = 0;
95
89 // Called when a packet has been received, but before it is 96 // Called when a packet has been received, but before it is
90 // validated or parsed. 97 // validated or parsed.
91 virtual void OnPacketReceived(const IPEndPoint& self_address, 98 virtual void OnPacketReceived(const IPEndPoint& self_address,
92 const IPEndPoint& peer_address, 99 const IPEndPoint& peer_address,
93 const QuicEncryptedPacket& packet) = 0; 100 const QuicEncryptedPacket& packet) = 0;
94 101
95 // Called when the protocol version on the received packet doensn't match 102 // Called when the protocol version on the received packet doensn't match
96 // current protocol version of the connection. 103 // current protocol version of the connection.
97 virtual void OnProtocolVersionMismatch(QuicTag version) = 0; 104 virtual void OnProtocolVersionMismatch(QuicTag version) = 0;
98 105
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 virtual QuicAckFrame* CreateAckFrame() OVERRIDE; 306 virtual QuicAckFrame* CreateAckFrame() OVERRIDE;
300 virtual QuicCongestionFeedbackFrame* CreateFeedbackFrame() OVERRIDE; 307 virtual QuicCongestionFeedbackFrame* CreateFeedbackFrame() OVERRIDE;
301 virtual bool OnSerializedPacket(const SerializedPacket& packet) OVERRIDE; 308 virtual bool OnSerializedPacket(const SerializedPacket& packet) OVERRIDE;
302 309
303 // Accessors 310 // Accessors
304 void set_visitor(QuicConnectionVisitorInterface* visitor) { 311 void set_visitor(QuicConnectionVisitorInterface* visitor) {
305 visitor_ = visitor; 312 visitor_ = visitor;
306 } 313 }
307 void set_debug_visitor(QuicConnectionDebugVisitorInterface* debug_visitor) { 314 void set_debug_visitor(QuicConnectionDebugVisitorInterface* debug_visitor) {
308 debug_visitor_ = debug_visitor; 315 debug_visitor_ = debug_visitor;
316 packet_generator_.set_debug_delegate(debug_visitor);
309 } 317 }
310 const IPEndPoint& self_address() const { return self_address_; } 318 const IPEndPoint& self_address() const { return self_address_; }
311 const IPEndPoint& peer_address() const { return peer_address_; } 319 const IPEndPoint& peer_address() const { return peer_address_; }
312 QuicGuid guid() const { return guid_; } 320 QuicGuid guid() const { return guid_; }
313 const QuicClock* clock() const { return clock_; } 321 const QuicClock* clock() const { return clock_; }
314 QuicRandom* random_generator() const { return random_generator_; } 322 QuicRandom* random_generator() const { return random_generator_; }
315 323
316 // Updates the internal state concerning which packets have been acked. 324 // Updates the internal state concerning which packets have been acked.
317 void RecordPacketReceived(const QuicPacketHeader& header); 325 void RecordPacketReceived(const QuicPacketHeader& header);
318 326
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 // deleted and should not be accessed. If |sequence_number| is present in 430 // deleted and should not be accessed. If |sequence_number| is present in
423 // |retransmission_map_| it also sets up retransmission of the given packet 431 // |retransmission_map_| it also sets up retransmission of the given packet
424 // in case of successful write. If |force| is FORCE, then the packet will be 432 // in case of successful write. If |force| is FORCE, then the packet will be
425 // sent immediately and the send scheduler will not be consulted. 433 // sent immediately and the send scheduler will not be consulted.
426 bool WritePacket(EncryptionLevel level, 434 bool WritePacket(EncryptionLevel level,
427 QuicPacketSequenceNumber sequence_number, 435 QuicPacketSequenceNumber sequence_number,
428 QuicPacket* packet, 436 QuicPacket* packet,
429 HasRetransmittableData retransmittable, 437 HasRetransmittableData retransmittable,
430 Force force); 438 Force force);
431 439
440 int WritePacketToWire(QuicPacketSequenceNumber sequence_number,
441 EncryptionLevel level,
442 const QuicEncryptedPacket& packet,
443 int* error);
444
432 // Make sure an ack we got from our peer is sane. 445 // Make sure an ack we got from our peer is sane.
433 bool ValidateAckFrame(const QuicAckFrame& incoming_ack); 446 bool ValidateAckFrame(const QuicAckFrame& incoming_ack);
434 447
435 QuicConnectionHelperInterface* helper() { return helper_.get(); } 448 QuicConnectionHelperInterface* helper() { return helper_.get(); }
436 449
437 protected: 450 protected:
438 QuicFramer framer_; 451 QuicFramer framer_;
439 452
440 private: 453 private:
441 friend class test::QuicConnectionPeer; 454 friend class test::QuicConnectionPeer;
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
691 // Set to true if the udp packet headers have a new self or peer address. 704 // Set to true if the udp packet headers have a new self or peer address.
692 // This is checked later on validating a data or version negotiation packet. 705 // This is checked later on validating a data or version negotiation packet.
693 bool address_migrating_; 706 bool address_migrating_;
694 707
695 DISALLOW_COPY_AND_ASSIGN(QuicConnection); 708 DISALLOW_COPY_AND_ASSIGN(QuicConnection);
696 }; 709 };
697 710
698 } // namespace net 711 } // namespace net
699 712
700 #endif // NET_QUIC_QUIC_CONNECTION_H_ 713 #endif // NET_QUIC_QUIC_CONNECTION_H_
OLDNEW
« no previous file with comments | « net/base/net_log_event_type_list.h ('k') | net/quic/quic_connection.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698