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

Unified Diff: net/quic/quic_framer_test.cc

Issue 11439003: Revert 171096 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_framer.cc ('k') | net/quic/quic_protocol.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_framer_test.cc
===================================================================
--- net/quic/quic_framer_test.cc (revision 171102)
+++ net/quic/quic_framer_test.cc (working copy)
@@ -3,8 +3,6 @@
// found in the LICENSE file.
#include <algorithm>
-#include <map>
-#include <string>
#include <vector>
#include "base/hash_tables.h"
@@ -19,7 +17,6 @@
using base::hash_set;
using base::StringPiece;
-using std::map;
using std::string;
using std::vector;
@@ -61,7 +58,7 @@
// The offset of congestion info in our tests, given the size of our usual ack
// frame. This does NOT work for all packets.
-const int kCongestionInfoOffset = kPacketHeaderSize + 33;
+const int kCongestionInfoOffset = kPacketHeaderSize + 54;
class TestQuicVisitor : public ::net::QuicFramerVisitorInterface {
public:
@@ -541,25 +538,34 @@
0x01,
// frame type (ack frame)
0x02,
- // num_acked_packets
- 0x03,
- // smallest received packet sequence number
- 0xBA, 0x9A, 0x78, 0x56,
+ // largest received packet sequence number
+ 0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // time
+ // time delta
0x87, 0x96, 0xA5, 0xB4,
0xC3, 0xD2, 0xE1, 0x07,
- // sequence delta
- 0x01,
- // time delta
- 0x01, 0x00, 0x00, 0x00,
- // sequence delta (skip one packet)
- 0x03,
- // time delta
- 0x02, 0x00, 0x00, 0x00,
+ // num_unacked_packets
+ 0x02,
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
// least packet sequence number awaiting an ack
0xA0, 0x9A, 0x78, 0x56,
0x34, 0x12,
+ // num non retransmitting packets
+ 0x03,
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
// congestion feedback type (none)
0x00,
};
@@ -574,45 +580,45 @@
EXPECT_EQ(0u, visitor_.stream_frames_.size());
ASSERT_EQ(1u, visitor_.ack_frames_.size());
const QuicAckFrame& frame = *visitor_.ack_frames_[0];
- ASSERT_EQ(3u, frame.received_info.received_packet_times.size());
- map<QuicPacketSequenceNumber, QuicTime>::const_iterator iter =
- frame.received_info.received_packet_times.begin();
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABA), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59687), iter->second);
- ++iter;
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABB), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59688), iter->second);
- ++iter;
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABD), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59689), iter->second);
+ EXPECT_EQ(GG_UINT64_C(0x0123456789ABC),
+ frame.received_info.largest_received);
+ EXPECT_EQ(QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687)),
+ frame.received_info.time_received);
+ const SequenceSet& sequence_nums = frame.received_info.missing_packets;
+ ASSERT_EQ(2u, sequence_nums.size());
+ EXPECT_EQ(1u, sequence_nums.count(GG_UINT64_C(0x0123456789ABB)));
+ EXPECT_EQ(1u, sequence_nums.count(GG_UINT64_C(0x0123456789ABA)));
EXPECT_EQ(GG_UINT64_C(0x0123456789AA0), frame.sent_info.least_unacked);
+ ASSERT_EQ(3u, frame.sent_info.non_retransmiting.size());
+ const SequenceSet& non_retrans = frame.sent_info.non_retransmiting;
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AB0)));
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AAF)));
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AAE)));
ASSERT_EQ(kNone, frame.congestion_info.type);
// Now test framing boundaries
- for (size_t i = kPacketHeaderSize; i < kPacketHeaderSize + 34; ++i) {
+ for (size_t i = kPacketHeaderSize; i < kPacketHeaderSize + 55; ++i) {
string expected_error;
if (i < kPacketHeaderSize + 1) {
expected_error = "Unable to read frame count.";
} else if (i < kPacketHeaderSize + 2) {
expected_error = "Unable to read frame type.";
- } else if (i < kPacketHeaderSize + 3) {
- expected_error = "Unable to read num acked packets.";
- } else if (i < kPacketHeaderSize + 9) {
- expected_error = "Unable to read smallest received.";
+ } else if (i < kPacketHeaderSize + 8) {
+ expected_error = "Unable to read largest received.";
+ } else if (i < kPacketHeaderSize + 16) {
+ expected_error = "Unable to read time received.";
} else if (i < kPacketHeaderSize + 17) {
- expected_error = "Unable to read time received.";
- } else if (i < kPacketHeaderSize + 18) {
- expected_error = "Unable to read sequence delta in acked packets.";
- } else if (i < kPacketHeaderSize + 22) {
- expected_error = "Unable to read time delta in acked packets.";
- } else if (i < kPacketHeaderSize + 23) {
- expected_error = "Unable to read sequence delta in acked packets.";
- } else if (i < kPacketHeaderSize + 27) {
- expected_error = "Unable to read time delta in acked packets.";
- } else if (i < kPacketHeaderSize + 33) {
+ expected_error = "Unable to read num unacked packets.";
+ } else if (i < kPacketHeaderSize + 29) {
+ expected_error = "Unable to read sequence number in unacked packets.";
+ } else if (i < kPacketHeaderSize + 35) {
expected_error = "Unable to read least unacked.";
- } else if (i < kPacketHeaderSize + 34) {
+ } else if (i < kPacketHeaderSize + 36) {
+ expected_error = "Unable to read num non-retransmitting.";
+ } else if (i < kPacketHeaderSize + 54) {
+ expected_error = "Unable to read sequence number in non-retransmitting.";
+ } else if (i < kPacketHeaderSize + 55) {
expected_error = "Unable to read congestion info type.";
}
@@ -641,25 +647,34 @@
0x01,
// frame type (ack frame)
0x02,
- // num_acked_packets
- 0x03,
- // smallest received packet sequence number
- 0xBA, 0x9A, 0x78, 0x56,
+ // largest received packet sequence number
+ 0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // time
+ // time delta
0x87, 0x96, 0xA5, 0xB4,
0xC3, 0xD2, 0xE1, 0x07,
- // sequence delta
- 0x01,
- // time delta
- 0x01, 0x00, 0x00, 0x00,
- // sequence delta (skip one packet)
- 0x03,
- // time delta
- 0x02, 0x00, 0x00, 0x00,
+ // num_unacked_packets
+ 0x02,
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
// least packet sequence number awaiting an ack
0xA0, 0x9A, 0x78, 0x56,
0x34, 0x12,
+ // num non retransmitting packets
+ 0x03,
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
// congestion feedback type (tcp)
0x01,
// ack_frame.congestion_info.tcp.accumulated_number_of_lost_packets
@@ -678,19 +693,21 @@
EXPECT_EQ(0u, visitor_.stream_frames_.size());
ASSERT_EQ(1u, visitor_.ack_frames_.size());
const QuicAckFrame& frame = *visitor_.ack_frames_[0];
- ASSERT_EQ(3u, frame.received_info.received_packet_times.size());
- map<QuicPacketSequenceNumber, QuicTime>::const_iterator iter =
- frame.received_info.received_packet_times.begin();
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABA), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59687), iter->second);
- ++iter;
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABB), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59688), iter->second);
- ++iter;
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABD), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59689), iter->second);
+ EXPECT_EQ(GG_UINT64_C(0x0123456789ABC),
+ frame.received_info.largest_received);
+ EXPECT_EQ(QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687)),
+ frame.received_info.time_received);
+ const SequenceSet& sequence_nums = frame.received_info.missing_packets;
+ ASSERT_EQ(2u, sequence_nums.size());
+ EXPECT_EQ(1u, sequence_nums.count(GG_UINT64_C(0x0123456789ABB)));
+ EXPECT_EQ(1u, sequence_nums.count(GG_UINT64_C(0x0123456789ABA)));
EXPECT_EQ(GG_UINT64_C(0x0123456789AA0), frame.sent_info.least_unacked);
+ ASSERT_EQ(3u, frame.sent_info.non_retransmiting.size());
+ const SequenceSet& non_retrans = frame.sent_info.non_retransmiting;
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AB0)));
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AAF)));
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AAE)));
ASSERT_EQ(kTCP, frame.congestion_info.type);
EXPECT_EQ(0x0201,
frame.congestion_info.tcp.accumulated_number_of_lost_packets);
@@ -732,25 +749,34 @@
0x01,
// frame type (ack frame)
0x02,
- // num_acked_packets
- 0x03,
- // smallest received packet sequence number
- 0xBA, 0x9A, 0x78, 0x56,
+ // largest received packet sequence number
+ 0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // time
+ // time delta
0x87, 0x96, 0xA5, 0xB4,
0xC3, 0xD2, 0xE1, 0x07,
- // sequence delta
- 0x01,
- // time delta
- 0x01, 0x00, 0x00, 0x00,
- // sequence delta (skip one packet)
- 0x03,
- // time delta
- 0x02, 0x00, 0x00, 0x00,
+ // num_unacked_packets
+ 0x02,
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
// least packet sequence number awaiting an ack
0xA0, 0x9A, 0x78, 0x56,
0x34, 0x12,
+ // num non retransmitting packets
+ 0x03,
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
// congestion feedback type (inter arrival)
0x02,
// accumulated_number_of_lost_packets
@@ -771,20 +797,21 @@
EXPECT_EQ(0u, visitor_.stream_frames_.size());
ASSERT_EQ(1u, visitor_.ack_frames_.size());
const QuicAckFrame& frame = *visitor_.ack_frames_[0];
- ASSERT_EQ(3u, frame.received_info.received_packet_times.size());
- map<QuicPacketSequenceNumber, QuicTime>::const_iterator iter =
- frame.received_info.received_packet_times.begin();
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABA), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59687), iter->second);
- ++iter;
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABB), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59688), iter->second);
- ++iter;
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABD), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59689), iter->second);
+ EXPECT_EQ(GG_UINT64_C(0x0123456789ABC),
+ frame.received_info.largest_received);
+ EXPECT_EQ(QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687)),
+ frame.received_info.time_received);
- EXPECT_EQ(GG_UINT64_C(0x0123456789AA0),
- frame.sent_info.least_unacked);
+ const SequenceSet& sequence_nums = frame.received_info.missing_packets;
+ ASSERT_EQ(2u, sequence_nums.size());
+ EXPECT_EQ(1u, sequence_nums.count(GG_UINT64_C(0x0123456789ABB)));
+ EXPECT_EQ(1u, sequence_nums.count(GG_UINT64_C(0x0123456789ABA)));
+ EXPECT_EQ(GG_UINT64_C(0x0123456789AA0), frame.sent_info.least_unacked);
+ ASSERT_EQ(3u, frame.sent_info.non_retransmiting.size());
+ const SequenceSet& non_retrans = frame.sent_info.non_retransmiting;
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AB0)));
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AAF)));
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AAE)));
ASSERT_EQ(kInterArrival, frame.congestion_info.type);
EXPECT_EQ(0x0302, frame.congestion_info.inter_arrival.
accumulated_number_of_lost_packets);
@@ -828,25 +855,34 @@
0x01,
// frame type (ack frame)
0x02,
- // num_acked_packets
- 0x03,
- // smallest received packet sequence number
- 0xBA, 0x9A, 0x78, 0x56,
+ // largest received packet sequence number
+ 0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // time
+ // time delta
0x87, 0x96, 0xA5, 0xB4,
0xC3, 0xD2, 0xE1, 0x07,
- // sequence delta
- 0x01,
- // time delta
- 0x01, 0x00, 0x00, 0x00,
- // sequence delta (skip one packet)
- 0x03,
- // time delta
- 0x02, 0x00, 0x00, 0x00,
+ // num_unacked_packets
+ 0x02,
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
// least packet sequence number awaiting an ack
0xA0, 0x9A, 0x78, 0x56,
0x34, 0x12,
+ // num non retransmitting packets
+ 0x03,
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
// congestion feedback type (fix rate)
0x03,
// bitrate_in_bytes_per_second;
@@ -863,19 +899,21 @@
EXPECT_EQ(0u, visitor_.stream_frames_.size());
ASSERT_EQ(1u, visitor_.ack_frames_.size());
const QuicAckFrame& frame = *visitor_.ack_frames_[0];
- ASSERT_EQ(3u, frame.received_info.received_packet_times.size());
- map<QuicPacketSequenceNumber, QuicTime>::const_iterator iter =
- frame.received_info.received_packet_times.begin();
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABA), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59687), iter->second);
- ++iter;
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABB), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59688), iter->second);
- ++iter;
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABD), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59689), iter->second);
- EXPECT_EQ(GG_UINT64_C(0x0123456789AA0),
- frame.sent_info.least_unacked);
+ EXPECT_EQ(GG_UINT64_C(0x0123456789ABC),
+ frame.received_info.largest_received);
+ EXPECT_EQ(QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687)),
+ frame.received_info.time_received);
+
+ const SequenceSet& sequence_nums = frame.received_info.missing_packets;
+ ASSERT_EQ(2u, sequence_nums.size());
+ EXPECT_EQ(1u, sequence_nums.count(GG_UINT64_C(0x0123456789ABB)));
+ EXPECT_EQ(1u, sequence_nums.count(GG_UINT64_C(0x0123456789ABA)));
+ EXPECT_EQ(GG_UINT64_C(0x0123456789AA0), frame.sent_info.least_unacked);
+ ASSERT_EQ(3u, frame.sent_info.non_retransmiting.size());
+ const SequenceSet& non_retrans = frame.sent_info.non_retransmiting;
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AB0)));
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AAF)));
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AAE)));
ASSERT_EQ(kFixRate, frame.congestion_info.type);
EXPECT_EQ(static_cast<uint32>(0x04030201),
frame.congestion_info.fix_rate.bitrate_in_bytes_per_second);
@@ -914,25 +952,34 @@
0x01,
// frame type (ack frame)
0x02,
- // num_acked_packets
- 0x03,
- // smallest received packet sequence number
- 0xBA, 0x9A, 0x78, 0x56,
+ // largest received packet sequence number
+ 0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // time
+ // time delta
0x87, 0x96, 0xA5, 0xB4,
0xC3, 0xD2, 0xE1, 0x07,
- // sequence delta
- 0x01,
- // time delta
- 0x01, 0x00, 0x00, 0x00,
- // sequence delta (skip one packet)
- 0x03,
- // time delta
- 0x02, 0x00, 0x00, 0x00,
+ // num_unacked_packets
+ 0x02,
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
// least packet sequence number awaiting an ack
0xA0, 0x9A, 0x78, 0x56,
0x34, 0x12,
+ // num non retransmitting packets
+ 0x03,
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
// congestion feedback type (invalid)
0x04,
};
@@ -1041,25 +1088,35 @@
'n',
// Ack frame.
- // num_acked_packets
- 0x03,
- // smallest received packet sequence number
- 0xBA, 0x9A, 0x78, 0x56,
+
+ // largest received packet sequence number
+ 0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // time
+ // time delta
0x87, 0x96, 0xA5, 0xB4,
0xC3, 0xD2, 0xE1, 0x07,
- // sequence delta
- 0x01,
- // time delta
- 0x01, 0x00, 0x00, 0x00,
- // sequence delta (skip one packet)
- 0x03,
- // time delta
- 0x02, 0x00, 0x00, 0x00,
+ // num_unacked_packets
+ 0x02,
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
// least packet sequence number awaiting an ack
0xA0, 0x9A, 0x78, 0x56,
0x34, 0x12,
+ // num non retransmitting packets
+ 0x03,
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
// congestion feedback type (inter arrival)
0x02,
// accumulated_number_of_lost_packets
@@ -1084,19 +1141,21 @@
ASSERT_EQ(1u, visitor_.ack_frames_.size());
const QuicAckFrame& frame = *visitor_.ack_frames_[0];
- ASSERT_EQ(3u, frame.received_info.received_packet_times.size());
- map<QuicPacketSequenceNumber, QuicTime>::const_iterator iter =
- frame.received_info.received_packet_times.begin();
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABA), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59687), iter->second);
- ++iter;
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABB), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59688), iter->second);
- ++iter;
- EXPECT_EQ(GG_UINT64_C(0x0123456789ABD), iter->first);
- EXPECT_EQ(QuicTime::FromMicroseconds(0x07E1D2C3B4A59689), iter->second);
- EXPECT_EQ(GG_UINT64_C(0x0123456789AA0),
- frame.sent_info.least_unacked);
+ EXPECT_EQ(GG_UINT64_C(0x0123456789ABC),
+ frame.received_info.largest_received);
+ EXPECT_EQ(QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687)),
+ frame.received_info.time_received);
+
+ const SequenceSet& sequence_nums = frame.received_info.missing_packets;
+ ASSERT_EQ(2u, sequence_nums.size());
+ EXPECT_EQ(1u, sequence_nums.count(GG_UINT64_C(0x0123456789ABB)));
+ EXPECT_EQ(1u, sequence_nums.count(GG_UINT64_C(0x0123456789ABA)));
+ EXPECT_EQ(GG_UINT64_C(0x0123456789AA0), frame.sent_info.least_unacked);
+ ASSERT_EQ(3u, frame.sent_info.non_retransmiting.size());
+ const SequenceSet& non_retrans = frame.sent_info.non_retransmiting;
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AB0)));
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AAF)));
+ EXPECT_EQ(1u, non_retrans.count(GG_UINT64_C(0x0123456789AAE)));
ASSERT_EQ(kInterArrival, frame.congestion_info.type);
EXPECT_EQ(0x0302, frame.congestion_info.inter_arrival.
accumulated_number_of_lost_packets);
@@ -1230,16 +1289,20 @@
header.fec_group = 0;
QuicAckFrame ack_frame;
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABA),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687)));
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABB),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59688)));
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABD),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59689)));
+ ack_frame.received_info.largest_received = GG_UINT64_C(0x0123456789ABC);
+ ack_frame.received_info.time_received =
+ QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687));
+ ack_frame.received_info.missing_packets.insert(
+ GG_UINT64_C(0x0123456789ABB));
+ ack_frame.received_info.missing_packets.insert(
+ GG_UINT64_C(0x0123456789ABA));
ack_frame.sent_info.least_unacked = GG_UINT64_C(0x0123456789AA0);
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AB0));
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AAF));
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AAE));
ack_frame.congestion_info.type = kNone;
QuicFrame frame;
@@ -1265,25 +1328,57 @@
0x01,
// frame type (ack frame)
0x02,
- // num_acked_packets
- 0x03,
- // smallest received packet sequence number
- 0xBA, 0x9A, 0x78, 0x56,
+ // largest received packet sequence number
+ 0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // time
+ // time delta
0x87, 0x96, 0xA5, 0xB4,
0xC3, 0xD2, 0xE1, 0x07,
- // sequence delta
- 0x01,
- // time delta
- 0x01, 0x00, 0x00, 0x00,
- // sequence delta (skip one packet)
- 0x03,
- // time delta
- 0x02, 0x00, 0x00, 0x00,
+ // num_unacked_packets
+ 0x02,
+#if defined(OS_WIN)
+ // Windows hash_set order is different.
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#else
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#endif
// least packet sequence number awaiting an ack
0xA0, 0x9A, 0x78, 0x56,
0x34, 0x12,
+ // num non retransmitting packets
+ 0x03,
+#if defined(OS_WIN)
+ // Windows hash_set order is different.
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#else
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#endif
// congestion feedback type (none)
0x00,
};
@@ -1306,16 +1401,20 @@
header.fec_group = 0;
QuicAckFrame ack_frame;
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABA),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687)));
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABB),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59688)));
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABD),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59689)));
+ ack_frame.received_info.largest_received = GG_UINT64_C(0x0123456789ABC);
+ ack_frame.received_info.time_received =
+ QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687));
+ ack_frame.received_info.missing_packets.insert(
+ GG_UINT64_C(0x0123456789ABB));
+ ack_frame.received_info.missing_packets.insert(
+ GG_UINT64_C(0x0123456789ABA));
ack_frame.sent_info.least_unacked = GG_UINT64_C(0x0123456789AA0);
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AB0));
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AAF));
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AAE));
ack_frame.congestion_info.type = kTCP;
ack_frame.congestion_info.tcp.accumulated_number_of_lost_packets = 0x0201;
ack_frame.congestion_info.tcp.receive_window = 0x0403;
@@ -1343,25 +1442,57 @@
0x01,
// frame type (ack frame)
0x02,
- // num_acked_packets
- 0x03,
- // smallest received packet sequence number
- 0xBA, 0x9A, 0x78, 0x56,
+ // largest received packet sequence number
+ 0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // time
+ // time delta
0x87, 0x96, 0xA5, 0xB4,
0xC3, 0xD2, 0xE1, 0x07,
- // sequence delta
- 0x01,
- // time delta
- 0x01, 0x00, 0x00, 0x00,
- // sequence delta (skip one packet)
- 0x03,
- // time delta
- 0x02, 0x00, 0x00, 0x00,
+ // num_unacked_packets
+ 0x02,
+#if defined(OS_WIN)
+ // Windows hash_set order is different.
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#else
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#endif
// least packet sequence number awaiting an ack
0xA0, 0x9A, 0x78, 0x56,
0x34, 0x12,
+ // num non retransmitting packets
+ 0x03,
+#if defined(OS_WIN)
+ // Windows hash_set order is different.
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#else
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#endif
// congestion feedback type (tcp)
0x01,
// ack_frame.congestion_info.tcp.accumulated_number_of_lost_packets
@@ -1388,16 +1519,20 @@
header.fec_group = 0;
QuicAckFrame ack_frame;
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABA),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687)));
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABB),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59688)));
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABD),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59689)));
+ ack_frame.received_info.largest_received = GG_UINT64_C(0x0123456789ABC);
+ ack_frame.received_info.time_received =
+ QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687));
+ ack_frame.received_info.missing_packets.insert(
+ GG_UINT64_C(0x0123456789ABB));
+ ack_frame.received_info.missing_packets.insert(
+ GG_UINT64_C(0x0123456789ABA));
ack_frame.sent_info.least_unacked = GG_UINT64_C(0x0123456789AA0);
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AB0));
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AAF));
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AAE));
ack_frame.congestion_info.type = kInterArrival;
ack_frame.congestion_info.inter_arrival.accumulated_number_of_lost_packets
= 0x0302;
@@ -1427,25 +1562,57 @@
0x01,
// frame type (ack frame)
0x02,
- // num_acked_packets
- 0x03,
- // smallest received packet sequence number
- 0xBA, 0x9A, 0x78, 0x56,
+ // largest received packet sequence number
+ 0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // time
+ // time delta
0x87, 0x96, 0xA5, 0xB4,
0xC3, 0xD2, 0xE1, 0x07,
- // sequence delta
- 0x01,
- // time delta
- 0x01, 0x00, 0x00, 0x00,
- // sequence delta (skip one packet)
- 0x03,
- // time delta
- 0x02, 0x00, 0x00, 0x00,
+ // num_unacked_packets
+ 0x02,
+#if defined(OS_WIN)
+ // Windows hash_set order is different.
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#else
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#endif
// least packet sequence number awaiting an ack
0xA0, 0x9A, 0x78, 0x56,
0x34, 0x12,
+ // num non retransmitting packets
+ 0x03,
+#if defined(OS_WIN)
+ // Windows hash_set order is different.
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#else
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#endif
// congestion feedback type (inter arrival)
0x02,
// accumulated_number_of_lost_packets
@@ -1474,16 +1641,20 @@
header.fec_group = 0;
QuicAckFrame ack_frame;
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABA),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687)));
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABB),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59688)));
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABD),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59689)));
+ ack_frame.received_info.largest_received = GG_UINT64_C(0x0123456789ABC);
+ ack_frame.received_info.time_received =
+ QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687));
+ ack_frame.received_info.missing_packets.insert(
+ GG_UINT64_C(0x0123456789ABB));
+ ack_frame.received_info.missing_packets.insert(
+ GG_UINT64_C(0x0123456789ABA));
ack_frame.sent_info.least_unacked = GG_UINT64_C(0x0123456789AA0);
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AB0));
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AAF));
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AAE));
ack_frame.congestion_info.type = kFixRate;
ack_frame.congestion_info.fix_rate.bitrate_in_bytes_per_second
= 0x04030201;
@@ -1511,25 +1682,57 @@
0x01,
// frame type (ack frame)
0x02,
- // num_acked_packets
- 0x03,
- // smallest received packet sequence number
- 0xBA, 0x9A, 0x78, 0x56,
+ // largest received packet sequence number
+ 0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // time
+ // time delta
0x87, 0x96, 0xA5, 0xB4,
0xC3, 0xD2, 0xE1, 0x07,
- // sequence delta
- 0x01,
- // time delta
- 0x01, 0x00, 0x00, 0x00,
- // sequence delta (skip one packet)
- 0x03,
- // time delta
- 0x02, 0x00, 0x00, 0x00,
+ // num_unacked_packets
+ 0x02,
+#if defined(OS_WIN)
+ // Windows hash_set order is different.
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#else
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#endif
// least packet sequence number awaiting an ack
0xA0, 0x9A, 0x78, 0x56,
0x34, 0x12,
+ // num non retransmitting packets
+ 0x03,
+#if defined(OS_WIN)
+ // Windows hash_set order is different.
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#else
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#endif
// congestion feedback type (fix rate)
0x03,
// bitrate_in_bytes_per_second;
@@ -1554,16 +1757,20 @@
header.fec_group = 0;
QuicAckFrame ack_frame;
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABA),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687)));
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABB),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59688)));
- ack_frame.received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABD),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59689)));
+ ack_frame.received_info.largest_received = GG_UINT64_C(0x0123456789ABC);
+ ack_frame.received_info.time_received =
+ QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687));
+ ack_frame.received_info.missing_packets.insert(
+ GG_UINT64_C(0x0123456789ABB));
+ ack_frame.received_info.missing_packets.insert(
+ GG_UINT64_C(0x0123456789ABA));
ack_frame.sent_info.least_unacked = GG_UINT64_C(0x0123456789AA0);
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AB0));
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AAF));
+ ack_frame.sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AAE));
ack_frame.congestion_info.type =
static_cast<CongestionFeedbackType>(kFixRate + 1);
@@ -1650,16 +1857,20 @@
close_frame.error_details = "because I can";
QuicAckFrame* ack_frame = &close_frame.ack_frame;
- ack_frame->received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABA),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687)));
- ack_frame->received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABB),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59688)));
- ack_frame->received_info.RecordAck(
- GG_UINT64_C(0x0123456789ABD),
- QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59689)));
+ ack_frame->received_info.largest_received = GG_UINT64_C(0x0123456789ABC);
+ ack_frame->received_info.time_received =
+ QuicTime::FromMicroseconds(GG_UINT64_C(0x07E1D2C3B4A59687));
+ ack_frame->received_info.missing_packets.insert(
+ GG_UINT64_C(0x0123456789ABB));
+ ack_frame->received_info.missing_packets.insert(
+ GG_UINT64_C(0x0123456789ABA));
ack_frame->sent_info.least_unacked = GG_UINT64_C(0x0123456789AA0);
+ ack_frame->sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AB0));
+ ack_frame->sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AAF));
+ ack_frame->sent_info.non_retransmiting.insert(
+ GG_UINT64_C(0x0123456789AAE));
ack_frame->congestion_info.type = kInterArrival;
ack_frame->congestion_info.inter_arrival.accumulated_number_of_lost_packets
= 0x0302;
@@ -1698,26 +1909,58 @@
'n',
// Ack frame.
- // num_acked_packets
- 0x03,
- // smallest received packet sequence number
- 0xBA, 0x9A, 0x78, 0x56,
+
+ // largest received packet sequence number
+ 0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // time
+ // time delta
0x87, 0x96, 0xA5, 0xB4,
0xC3, 0xD2, 0xE1, 0x07,
- // sequence delta
- 0x01,
- // time delta
- 0x01, 0x00, 0x00, 0x00,
- // sequence delta (skip one packet)
- 0x03,
- // time delta
- 0x02, 0x00, 0x00, 0x00,
-
+ // num_unacked_packets
+ 0x02,
+#if defined(OS_WIN)
+ // Windows hash_set order is different.
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#else
+ // unacked packet sequence number
+ 0xBA, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // unacked packet sequence number
+ 0xBB, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#endif
// least packet sequence number awaiting an ack
0xA0, 0x9A, 0x78, 0x56,
0x34, 0x12,
+ // num non retransmitting packets
+ 0x03,
+#if defined(OS_WIN)
+ // Windows hash_set order is different.
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#else
+ // non retransmitting packet sequence number
+ 0xAE, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xAF, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+ // non retransmitting packet sequence number
+ 0xB0, 0x9A, 0x78, 0x56,
+ 0x34, 0x12,
+#endif
// congestion feedback type (inter arrival)
0x02,
// accumulated_number_of_lost_packets
« no previous file with comments | « net/quic/quic_framer.cc ('k') | net/quic/quic_protocol.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698