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

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

Issue 17518002: Add logging to the QUIC write path. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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
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_connection_logger.h" 5 #include "net/quic/quic_connection_logger.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/values.h" 10 #include "base/values.h"
11 #include "net/base/net_log.h" 11 #include "net/base/net_log.h"
12 12
13 namespace net { 13 namespace net {
14 14
15 namespace { 15 namespace {
16 16
17 Value* NetLogQuicPacketCallback(const IPEndPoint* self_address, 17 Value* NetLogQuicPacketCallback(const IPEndPoint* self_address,
18 const IPEndPoint* peer_address, 18 const IPEndPoint* peer_address,
19 size_t packet_size, 19 size_t packet_size,
20 NetLog::LogLevel /* log_level */) { 20 NetLog::LogLevel /* log_level */) {
21 DictionaryValue* dict = new DictionaryValue(); 21 DictionaryValue* dict = new DictionaryValue();
22 dict->SetString("self_address", self_address->ToString()); 22 dict->SetString("self_address", self_address->ToString());
23 dict->SetString("peer_address", peer_address->ToString()); 23 dict->SetString("peer_address", peer_address->ToString());
24 dict->SetInteger("size", packet_size); 24 dict->SetInteger("size", packet_size);
25 return dict; 25 return dict;
26 } 26 }
27 27
28 Value* NetLogQuicPacketSentCallback(QuicPacketSequenceNumber sequence_number,
29 EncryptionLevel level,
30 size_t packet_size,
31 int rv,
32 NetLog::LogLevel /* log_level */) {
33 DictionaryValue* dict = new DictionaryValue();
eroman 2013/06/20 22:20:04 Drop the "t". It is cleaner. Nah, just kidding :)
Ryan Hamilton 2013/06/20 22:44:16 :>
34 dict->SetInteger("encryption_level", level);
35 dict->SetString("packet_sequence_number",
36 base::Uint64ToString(sequence_number));
37 dict->SetInteger("size", packet_size);
38 if (rv < 0) {
39 dict->SetInteger("net_error", rv);
40 }
41 return dict;
42 }
43
28 Value* NetLogQuicPacketHeaderCallback(const QuicPacketHeader* header, 44 Value* NetLogQuicPacketHeaderCallback(const QuicPacketHeader* header,
29 NetLog::LogLevel /* log_level */) { 45 NetLog::LogLevel /* log_level */) {
30 DictionaryValue* dict = new DictionaryValue(); 46 DictionaryValue* dict = new DictionaryValue();
31 dict->SetString("guid", 47 dict->SetString("guid",
32 base::Uint64ToString(header->public_header.guid)); 48 base::Uint64ToString(header->public_header.guid));
33 dict->SetInteger("reset_flag", header->public_header.reset_flag); 49 dict->SetInteger("reset_flag", header->public_header.reset_flag);
34 dict->SetInteger("version_flag", header->public_header.version_flag); 50 dict->SetInteger("version_flag", header->public_header.version_flag);
35 dict->SetString("packet_sequence_number", 51 dict->SetString("packet_sequence_number",
36 base::Uint64ToString(header->packet_sequence_number)); 52 base::Uint64ToString(header->packet_sequence_number));
37 dict->SetInteger("entropy_flag", header->entropy_flag); 53 dict->SetInteger("entropy_flag", header->entropy_flag);
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 145
130 } // namespace 146 } // namespace
131 147
132 QuicConnectionLogger::QuicConnectionLogger(const BoundNetLog& net_log) 148 QuicConnectionLogger::QuicConnectionLogger(const BoundNetLog& net_log)
133 : net_log_(net_log) { 149 : net_log_(net_log) {
134 } 150 }
135 151
136 QuicConnectionLogger::~QuicConnectionLogger() { 152 QuicConnectionLogger::~QuicConnectionLogger() {
137 } 153 }
138 154
139 // QuicConnectionDebugVisitorInterface 155 void QuicConnectionLogger::OnFrameAddedToPacket(const QuicFrame& frame) {
156 switch (frame.type) {
157 case PADDING_FRAME:
158 break;
159 case STREAM_FRAME:
160 net_log_.AddEvent(
161 NetLog::TYPE_QUIC_SESSION_STREAM_FRAME_SENT,
162 base::Bind(&NetLogQuicStreamFrameCallback, frame.stream_frame));
163 break;
164 case ACK_FRAME:
165 net_log_.AddEvent(
166 NetLog::TYPE_QUIC_SESSION_ACK_FRAME_SENT,
167 base::Bind(&NetLogQuicAckFrameCallback, frame.ack_frame));
168 break;
169 case CONGESTION_FEEDBACK_FRAME:
170 net_log_.AddEvent(
171 NetLog::TYPE_QUIC_SESSION_CONGESTION_FEEDBACK_FRAME_SENT,
172 base::Bind(&NetLogQuicCongestionFeedbackFrameCallback,
173 frame.congestion_feedback_frame));
174 break;
175 case RST_STREAM_FRAME:
176 net_log_.AddEvent(
177 NetLog::TYPE_QUIC_SESSION_RST_STREAM_FRAME_SENT,
178 base::Bind(&NetLogQuicRstStreamFrameCallback,
179 frame.rst_stream_frame));
180 break;
181 case CONNECTION_CLOSE_FRAME:
182 net_log_.AddEvent(
183 NetLog::TYPE_QUIC_SESSION_CONNECTION_CLOSE_FRAME_SENT,
184 base::Bind(&NetLogQuicConnectionCloseFrameCallback,
185 frame.connection_close_frame));
186 break;
187 case GOAWAY_FRAME:
188 break;
189 default:
190 DCHECK(false) << "Illegal frame type: " << frame.type;
191 }
192 }
193
194 void QuicConnectionLogger::OnPacketSent(
195 QuicPacketSequenceNumber sequence_number,
196 EncryptionLevel level,
197 const QuicEncryptedPacket& packet,
198 int rv) {
199 net_log_.AddEvent(
200 NetLog::TYPE_QUIC_SESSION_PACKET_SENT,
201 base::Bind(&NetLogQuicPacketSentCallback, sequence_number, level,
202 packet.length(), rv));
203 }
204
140 void QuicConnectionLogger::OnPacketReceived(const IPEndPoint& self_address, 205 void QuicConnectionLogger::OnPacketReceived(const IPEndPoint& self_address,
141 const IPEndPoint& peer_address, 206 const IPEndPoint& peer_address,
142 const QuicEncryptedPacket& packet) { 207 const QuicEncryptedPacket& packet) {
143 net_log_.AddEvent( 208 net_log_.AddEvent(
144 NetLog::TYPE_QUIC_SESSION_PACKET_RECEIVED, 209 NetLog::TYPE_QUIC_SESSION_PACKET_RECEIVED,
145 base::Bind(&NetLogQuicPacketCallback, &self_address, &peer_address, 210 base::Bind(&NetLogQuicPacketCallback, &self_address, &peer_address,
146 packet.length())); 211 packet.length()));
147 } 212 }
148 213
149 void QuicConnectionLogger::OnProtocolVersionMismatch(QuicTag received_version) { 214 void QuicConnectionLogger::OnProtocolVersionMismatch(QuicTag received_version) {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 void QuicConnectionLogger::OnVersionNegotiationPacket( 260 void QuicConnectionLogger::OnVersionNegotiationPacket(
196 const QuicVersionNegotiationPacket& packet) { 261 const QuicVersionNegotiationPacket& packet) {
197 } 262 }
198 263
199 void QuicConnectionLogger::OnRevivedPacket( 264 void QuicConnectionLogger::OnRevivedPacket(
200 const QuicPacketHeader& revived_header, 265 const QuicPacketHeader& revived_header,
201 base::StringPiece payload) { 266 base::StringPiece payload) {
202 } 267 }
203 268
204 } // namespace net 269 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698