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_protocol.h" | 5 #include "net/quic/quic_protocol.h" |
6 | 6 |
7 #include "base/stl_util.h" | 7 #include "base/stl_util.h" |
8 #include "net/quic/quic_utils.h" | 8 #include "net/quic/quic_utils.h" |
9 | 9 |
10 using base::StringPiece; | 10 using base::StringPiece; |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 } | 231 } |
232 os << ", fec_flag: " << header.fec_flag | 232 os << ", fec_flag: " << header.fec_flag |
233 << ", entropy_flag: " << header.entropy_flag | 233 << ", entropy_flag: " << header.entropy_flag |
234 << ", entropy hash: " << static_cast<int>(header.entropy_hash) | 234 << ", entropy hash: " << static_cast<int>(header.entropy_hash) |
235 << ", sequence_number: " << header.packet_sequence_number | 235 << ", sequence_number: " << header.packet_sequence_number |
236 << ", is_in_fec_group:" << header.is_in_fec_group | 236 << ", is_in_fec_group:" << header.is_in_fec_group |
237 << ", fec_group: " << header.fec_group<< "}\n"; | 237 << ", fec_group: " << header.fec_group<< "}\n"; |
238 return os; | 238 return os; |
239 } | 239 } |
240 | 240 |
241 ReceivedPacketInfo::ReceivedPacketInfo() | 241 bool IsAwaitingPacket(const QuicAckFrame& ack_frame, |
242 : entropy_hash(0), | |
243 largest_observed(0), | |
244 delta_time_largest_observed(QuicTime::Delta::Infinite()), | |
245 is_truncated(false) {} | |
246 | |
247 ReceivedPacketInfo::~ReceivedPacketInfo() {} | |
248 | |
249 bool IsAwaitingPacket(const ReceivedPacketInfo& received_info, | |
250 QuicPacketSequenceNumber sequence_number) { | 242 QuicPacketSequenceNumber sequence_number) { |
251 return sequence_number > received_info.largest_observed || | 243 return sequence_number > ack_frame.largest_observed || |
252 ContainsKey(received_info.missing_packets, sequence_number); | 244 ContainsKey(ack_frame.missing_packets, sequence_number); |
253 } | 245 } |
254 | 246 |
255 void InsertMissingPacketsBetween(ReceivedPacketInfo* received_info, | 247 void InsertMissingPacketsBetween(QuicAckFrame* ack_frame, |
256 QuicPacketSequenceNumber lower, | 248 QuicPacketSequenceNumber lower, |
257 QuicPacketSequenceNumber higher) { | 249 QuicPacketSequenceNumber higher) { |
258 for (QuicPacketSequenceNumber i = lower; i < higher; ++i) { | 250 for (QuicPacketSequenceNumber i = lower; i < higher; ++i) { |
259 received_info->missing_packets.insert(i); | 251 ack_frame->missing_packets.insert(i); |
260 } | 252 } |
261 } | 253 } |
262 | 254 |
263 QuicStopWaitingFrame::QuicStopWaitingFrame() | 255 QuicStopWaitingFrame::QuicStopWaitingFrame() |
264 : entropy_hash(0), | 256 : entropy_hash(0), |
265 least_unacked(0) { | 257 least_unacked(0) { |
266 } | 258 } |
267 | 259 |
268 QuicStopWaitingFrame::~QuicStopWaitingFrame() {} | 260 QuicStopWaitingFrame::~QuicStopWaitingFrame() {} |
269 | 261 |
270 QuicAckFrame::QuicAckFrame() {} | 262 QuicAckFrame::QuicAckFrame() |
| 263 : entropy_hash(0), |
| 264 largest_observed(0), |
| 265 delta_time_largest_observed(QuicTime::Delta::Infinite()), |
| 266 is_truncated(false) {} |
| 267 |
| 268 QuicAckFrame::~QuicAckFrame() {} |
271 | 269 |
272 CongestionFeedbackMessageTCP::CongestionFeedbackMessageTCP() | 270 CongestionFeedbackMessageTCP::CongestionFeedbackMessageTCP() |
273 : receive_window(0) { | 271 : receive_window(0) { |
274 } | 272 } |
275 | 273 |
276 CongestionFeedbackMessageInterArrival::CongestionFeedbackMessageInterArrival() { | 274 CongestionFeedbackMessageInterArrival::CongestionFeedbackMessageInterArrival() { |
277 } | 275 } |
278 | 276 |
279 CongestionFeedbackMessageInterArrival:: | 277 CongestionFeedbackMessageInterArrival:: |
280 ~CongestionFeedbackMessageInterArrival() {} | 278 ~CongestionFeedbackMessageInterArrival() {} |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
374 } | 372 } |
375 | 373 |
376 QuicFecData::QuicFecData() : fec_group(0) {} | 374 QuicFecData::QuicFecData() : fec_group(0) {} |
377 | 375 |
378 ostream& operator<<(ostream& os, const QuicStopWaitingFrame& sent_info) { | 376 ostream& operator<<(ostream& os, const QuicStopWaitingFrame& sent_info) { |
379 os << "entropy_hash: " << static_cast<int>(sent_info.entropy_hash) | 377 os << "entropy_hash: " << static_cast<int>(sent_info.entropy_hash) |
380 << " least_unacked: " << sent_info.least_unacked; | 378 << " least_unacked: " << sent_info.least_unacked; |
381 return os; | 379 return os; |
382 } | 380 } |
383 | 381 |
384 ostream& operator<<(ostream& os, const ReceivedPacketInfo& received_info) { | 382 ostream& operator<<(ostream& os, const QuicAckFrame& ack_frame) { |
385 os << "entropy_hash: " << static_cast<int>(received_info.entropy_hash) | 383 os << "entropy_hash: " << static_cast<int>(ack_frame.entropy_hash) |
386 << " is_truncated: " << received_info.is_truncated | 384 << " is_truncated: " << ack_frame.is_truncated |
387 << " largest_observed: " << received_info.largest_observed | 385 << " largest_observed: " << ack_frame.largest_observed |
388 << " delta_time_largest_observed: " | 386 << " delta_time_largest_observed: " |
389 << received_info.delta_time_largest_observed.ToMicroseconds() | 387 << ack_frame.delta_time_largest_observed.ToMicroseconds() |
390 << " missing_packets: [ "; | 388 << " missing_packets: [ "; |
391 for (SequenceNumberSet::const_iterator it = | 389 for (SequenceNumberSet::const_iterator it = ack_frame.missing_packets.begin(); |
392 received_info.missing_packets.begin(); | 390 it != ack_frame.missing_packets.end(); ++it) { |
393 it != received_info.missing_packets.end(); ++it) { | |
394 os << *it << " "; | 391 os << *it << " "; |
395 } | 392 } |
396 os << " ] revived_packets: [ "; | 393 os << " ] revived_packets: [ "; |
397 for (SequenceNumberSet::const_iterator it = | 394 for (SequenceNumberSet::const_iterator it = ack_frame.revived_packets.begin(); |
398 received_info.revived_packets.begin(); | 395 it != ack_frame.revived_packets.end(); ++it) { |
399 it != received_info.revived_packets.end(); ++it) { | |
400 os << *it << " "; | 396 os << *it << " "; |
401 } | 397 } |
402 os << " ]"; | 398 os << " ]"; |
403 return os; | 399 return os; |
404 } | 400 } |
405 | 401 |
406 ostream& operator<<(ostream& os, const QuicFrame& frame) { | 402 ostream& operator<<(ostream& os, const QuicFrame& frame) { |
407 switch (frame.type) { | 403 switch (frame.type) { |
408 case PADDING_FRAME: { | 404 case PADDING_FRAME: { |
409 os << "type { PADDING_FRAME } "; | 405 os << "type { PADDING_FRAME } "; |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
491 ostream& operator<<(ostream& os, const QuicStreamFrame& stream_frame) { | 487 ostream& operator<<(ostream& os, const QuicStreamFrame& stream_frame) { |
492 os << "stream_id { " << stream_frame.stream_id << " } " | 488 os << "stream_id { " << stream_frame.stream_id << " } " |
493 << "fin { " << stream_frame.fin << " } " | 489 << "fin { " << stream_frame.fin << " } " |
494 << "offset { " << stream_frame.offset << " } " | 490 << "offset { " << stream_frame.offset << " } " |
495 << "data { " | 491 << "data { " |
496 << QuicUtils::StringToHexASCIIDump(*(stream_frame.GetDataAsString())) | 492 << QuicUtils::StringToHexASCIIDump(*(stream_frame.GetDataAsString())) |
497 << " }\n"; | 493 << " }\n"; |
498 return os; | 494 return os; |
499 } | 495 } |
500 | 496 |
501 ostream& operator<<(ostream& os, const QuicAckFrame& ack_frame) { | |
502 os << "received info { " << ack_frame.received_info << " }\n"; | |
503 return os; | |
504 } | |
505 | |
506 ostream& operator<<(ostream& os, | 497 ostream& operator<<(ostream& os, |
507 const QuicCongestionFeedbackFrame& congestion_frame) { | 498 const QuicCongestionFeedbackFrame& congestion_frame) { |
508 os << "type: " << congestion_frame.type; | 499 os << "type: " << congestion_frame.type; |
509 switch (congestion_frame.type) { | 500 switch (congestion_frame.type) { |
510 case kInterArrival: { | 501 case kInterArrival: { |
511 const CongestionFeedbackMessageInterArrival& inter_arrival = | 502 const CongestionFeedbackMessageInterArrival& inter_arrival = |
512 congestion_frame.inter_arrival; | 503 congestion_frame.inter_arrival; |
513 os << " received packets: [ "; | 504 os << " received packets: [ "; |
514 for (TimeMap::const_iterator it = | 505 for (TimeMap::const_iterator it = |
515 inter_arrival.received_packet_times.begin(); | 506 inter_arrival.received_packet_times.begin(); |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
767 sent_time(QuicTime::Zero()), | 758 sent_time(QuicTime::Zero()), |
768 bytes_sent(0), | 759 bytes_sent(0), |
769 nack_count(0), | 760 nack_count(0), |
770 transmission_type(transmission_type), | 761 transmission_type(transmission_type), |
771 all_transmissions(all_transmissions), | 762 all_transmissions(all_transmissions), |
772 in_flight(false) { | 763 in_flight(false) { |
773 all_transmissions->insert(sequence_number); | 764 all_transmissions->insert(sequence_number); |
774 } | 765 } |
775 | 766 |
776 } // namespace net | 767 } // namespace net |
OLD | NEW |