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

Unified Diff: net/quic/quic_framer_test.cc

Issue 1782143003: Remove FEC code from receive path. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@115997404
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_framer.cc ('k') | net/quic/quic_multipath_received_packet_manager.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
diff --git a/net/quic/quic_framer_test.cc b/net/quic/quic_framer_test.cc
index 025fb83187729223e85ae736364bab63194788a7..ca160abdfdbb375ce7ee217fef89c0f6e2dcdc13 100644
--- a/net/quic/quic_framer_test.cc
+++ b/net/quic/quic_framer_test.cc
@@ -106,29 +106,6 @@ size_t GetPrivateFlagsOffset(bool include_version,
packet_number_length;
}
-// Index into the fec group offset in the header.
-size_t GetFecGroupOffset(QuicConnectionIdLength connection_id_length,
- bool include_version,
- bool include_path_id) {
- return GetPrivateFlagsOffset(connection_id_length, include_version,
- include_path_id) +
- kPrivateFlagsSize;
-}
-
-size_t GetFecGroupOffset(bool include_version, bool include_path_id) {
- return GetPrivateFlagsOffset(PACKET_8BYTE_CONNECTION_ID, include_version,
- include_path_id) +
- kPrivateFlagsSize;
-}
-
-size_t GetFecGroupOffset(bool include_version,
- bool include_path_id,
- QuicPacketNumberLength packet_number_length) {
- return GetPrivateFlagsOffset(include_version, include_path_id,
- packet_number_length) +
- kPrivateFlagsSize;
-}
-
// Index into the message tag of the public reset packet.
// Public resets always have full connection_ids.
const size_t kPublicResetPacketMessageTagOffset =
@@ -208,9 +185,7 @@ class TestQuicVisitor : public QuicFramerVisitorInterface {
version_mismatch_(0),
packet_count_(0),
frame_count_(0),
- fec_count_(0),
complete_packets_(0),
- revived_packets_(0),
accept_packet_(true),
accept_public_header_(true) {}
@@ -239,8 +214,6 @@ class TestQuicVisitor : public QuicFramerVisitorInterface {
version_negotiation_packet_.reset(new QuicVersionNegotiationPacket(packet));
}
- void OnRevivedPacket() override { ++revived_packets_; }
-
bool OnProtocolVersionMismatch(QuicVersion version) override {
DVLOG(1) << "QuicFramer Version Mismatch, version: " << version;
++version_mismatch_;
@@ -260,6 +233,10 @@ class TestQuicVisitor : public QuicFramerVisitorInterface {
void OnDecryptedPacket(EncryptionLevel level) override {}
bool OnPacketHeader(const QuicPacketHeader& header) override {
+ if (header.fec_flag) {
+ // Drop any FEC packet.
+ return false;
+ }
++packet_count_;
header_.reset(new QuicPacketHeader(header));
return accept_packet_;
@@ -277,10 +254,6 @@ class TestQuicVisitor : public QuicFramerVisitorInterface {
return true;
}
- void OnFecProtectedPayload(StringPiece payload) override {
- fec_protected_payload_ = payload.as_string();
- }
-
bool OnAckFrame(const QuicAckFrame& frame) override {
++frame_count_;
ack_frames_.push_back(new QuicAckFrame(frame));
@@ -299,11 +272,6 @@ class TestQuicVisitor : public QuicFramerVisitorInterface {
return true;
}
- void OnFecData(StringPiece redundancy) override {
- ++fec_count_;
- fec_data_redundancy_.push_back(redundancy.as_string());
- }
-
void OnPacketComplete() override { ++complete_packets_; }
bool OnRstStreamFrame(const QuicRstStreamFrame& frame) override {
@@ -341,9 +309,7 @@ class TestQuicVisitor : public QuicFramerVisitorInterface {
int version_mismatch_;
int packet_count_;
int frame_count_;
- int fec_count_;
int complete_packets_;
- int revived_packets_;
bool accept_packet_;
bool accept_public_header_;
@@ -355,7 +321,6 @@ class TestQuicVisitor : public QuicFramerVisitorInterface {
vector<QuicAckFrame*> ack_frames_;
vector<QuicStopWaitingFrame*> stop_waiting_frames_;
vector<QuicPingFrame*> ping_frames_;
- string fec_protected_payload_;
QuicRstStreamFrame rst_stream_frame_;
QuicConnectionCloseFrame connection_close_frame_;
QuicGoAwayFrame goaway_frame_;
@@ -363,7 +328,6 @@ class TestQuicVisitor : public QuicFramerVisitorInterface {
QuicBlockedFrame blocked_frame_;
QuicPathCloseFrame path_close_frame_;
vector<string*> stream_data_;
- vector<string> fec_data_redundancy_;
};
class QuicFramerTest : public ::testing::TestWithParam<QuicVersion> {
@@ -481,8 +445,7 @@ class QuicFramerTest : public ::testing::TestWithParam<QuicVersion> {
CheckProcessingFails(
packet,
i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, include_version,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
expected_error, QUIC_INVALID_STREAM_DATA);
}
}
@@ -648,10 +611,10 @@ TEST_P(QuicFramerTest, LargePacket) {
memset(packet + GetPacketHeaderSize(
PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, !kIncludePathId,
- PACKET_6BYTE_PACKET_NUMBER, NOT_IN_FEC_GROUP), 0,
+ PACKET_6BYTE_PACKET_NUMBER), 0,
kMaxPacketSize - GetPacketHeaderSize(
PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, !kIncludePathId,
- PACKET_6BYTE_PACKET_NUMBER, NOT_IN_FEC_GROUP) + 1);
+ PACKET_6BYTE_PACKET_NUMBER) + 1);
// clang-format on
QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
@@ -696,8 +659,7 @@ TEST_P(QuicFramerTest, PacketHeader) {
// Now test framing boundaries.
for (size_t i = 0;
i < GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP);
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER);
++i) {
string expected_error;
if (i < kConnectionIdOffset) {
@@ -706,10 +668,8 @@ TEST_P(QuicFramerTest, PacketHeader) {
expected_error = "Unable to read ConnectionId.";
} else if (i < GetPrivateFlagsOffset(!kIncludeVersion, !kIncludePathId)) {
expected_error = "Unable to read packet number.";
- } else if (i < GetFecGroupOffset(!kIncludeVersion, !kIncludePathId)) {
- expected_error = "Unable to read private flags.";
} else {
- expected_error = "Unable to read first fec protected packet offset.";
+ expected_error = "Unable to read private flags.";
}
CheckProcessingFails(packet, i, expected_error, QUIC_INVALID_PACKET_HEADER);
}
@@ -749,8 +709,7 @@ TEST_P(QuicFramerTest, PacketHeaderWith4ByteConnectionId) {
// Now test framing boundaries.
for (size_t i = 0;
i < GetPacketHeaderSize(PACKET_4BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP);
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER);
++i) {
string expected_error;
if (i < kConnectionIdOffset) {
@@ -761,11 +720,8 @@ TEST_P(QuicFramerTest, PacketHeaderWith4ByteConnectionId) {
} else if (i < GetPrivateFlagsOffset(PACKET_4BYTE_CONNECTION_ID,
!kIncludeVersion, !kIncludePathId)) {
expected_error = "Unable to read packet number.";
- } else if (i < GetFecGroupOffset(PACKET_4BYTE_CONNECTION_ID,
- !kIncludeVersion, !kIncludePathId)) {
- expected_error = "Unable to read private flags.";
} else {
- expected_error = "Unable to read first fec protected packet offset.";
+ expected_error = "Unable to read private flags.";
}
CheckProcessingFails(packet, i, expected_error, QUIC_INVALID_PACKET_HEADER);
}
@@ -805,8 +761,7 @@ TEST_P(QuicFramerTest, PacketHeader1ByteConnectionId) {
// Now test framing boundaries.
for (size_t i = 0;
i < GetPacketHeaderSize(PACKET_1BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP);
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER);
++i) {
string expected_error;
if (i < kConnectionIdOffset) {
@@ -817,11 +772,8 @@ TEST_P(QuicFramerTest, PacketHeader1ByteConnectionId) {
} else if (i < GetPrivateFlagsOffset(PACKET_1BYTE_CONNECTION_ID,
!kIncludeVersion, !kIncludePathId)) {
expected_error = "Unable to read packet number.";
- } else if (i < GetFecGroupOffset(PACKET_1BYTE_CONNECTION_ID,
- !kIncludeVersion, !kIncludePathId)) {
- expected_error = "Unable to read private flags.";
} else {
- expected_error = "Unable to read first fec protected packet offset.";
+ expected_error = "Unable to read private flags.";
}
CheckProcessingFails(packet, i, expected_error, QUIC_INVALID_PACKET_HEADER);
}
@@ -861,8 +813,7 @@ TEST_P(QuicFramerTest, PacketHeaderWith0ByteConnectionId) {
// Now test framing boundaries.
for (size_t i = 0;
i < GetPacketHeaderSize(PACKET_0BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP);
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER);
++i) {
string expected_error;
if (i < kConnectionIdOffset) {
@@ -873,11 +824,8 @@ TEST_P(QuicFramerTest, PacketHeaderWith0ByteConnectionId) {
} else if (i < GetPrivateFlagsOffset(PACKET_0BYTE_CONNECTION_ID,
!kIncludeVersion, !kIncludePathId)) {
expected_error = "Unable to read packet number.";
- } else if (i < GetFecGroupOffset(PACKET_0BYTE_CONNECTION_ID,
- !kIncludeVersion, !kIncludePathId)) {
- expected_error = "Unable to read private flags.";
} else {
- expected_error = "Unable to read first fec protected packet offset.";
+ expected_error = "Unable to read private flags.";
}
CheckProcessingFails(packet, i, expected_error, QUIC_INVALID_PACKET_HEADER);
}
@@ -918,8 +866,7 @@ TEST_P(QuicFramerTest, PacketHeaderWithVersionFlag) {
// Now test framing boundaries.
for (size_t i = 0;
i < GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP);
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER);
++i) {
string expected_error;
if (i < kConnectionIdOffset) {
@@ -930,10 +877,8 @@ TEST_P(QuicFramerTest, PacketHeaderWithVersionFlag) {
expected_error = "Unable to read protocol version.";
} else if (i < GetPrivateFlagsOffset(kIncludeVersion, !kIncludePathId)) {
expected_error = "Unable to read packet number.";
- } else if (i < GetFecGroupOffset(kIncludeVersion, !kIncludePathId)) {
- expected_error = "Unable to read private flags.";
} else {
- expected_error = "Unable to read first fec protected packet offset.";
+ expected_error = "Unable to read private flags.";
}
CheckProcessingFails(packet, i, expected_error, QUIC_INVALID_PACKET_HEADER);
}
@@ -975,8 +920,7 @@ TEST_P(QuicFramerTest, PacketHeaderWithMultipathFlag) {
// Now test framing boundaries.
for (size_t i = 0;
i < GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP);
+ kIncludePathId, PACKET_6BYTE_PACKET_NUMBER);
++i) {
string expected_error;
if (i < kConnectionIdOffset) {
@@ -988,10 +932,8 @@ TEST_P(QuicFramerTest, PacketHeaderWithMultipathFlag) {
expected_error = "Unable to read path id.";
} else if (i < GetPrivateFlagsOffset(!kIncludeVersion, kIncludePathId)) {
expected_error = "Unable to read packet number.";
- } else if (i < GetFecGroupOffset(!kIncludeVersion, kIncludePathId)) {
- expected_error = "Unable to read private flags.";
} else {
- expected_error = "Unable to read first fec protected packet offset.";
+ expected_error = "Unable to read private flags.";
}
CheckProcessingFails(packet, i, expected_error, QUIC_INVALID_PACKET_HEADER);
}
@@ -1036,8 +978,7 @@ TEST_P(QuicFramerTest, PacketHeaderWithBothVersionFlagAndMultipathFlag) {
// Now test framing boundaries.
for (size_t i = 0;
i < GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP);
+ kIncludePathId, PACKET_6BYTE_PACKET_NUMBER);
++i) {
string expected_error;
if (i < kConnectionIdOffset) {
@@ -1051,10 +992,8 @@ TEST_P(QuicFramerTest, PacketHeaderWithBothVersionFlagAndMultipathFlag) {
expected_error = "Unable to read path id.";
} else if (i < GetPrivateFlagsOffset(kIncludeVersion, kIncludePathId)) {
expected_error = "Unable to read packet number.";
- } else if (i < GetFecGroupOffset(kIncludeVersion, kIncludePathId)) {
- expected_error = "Unable to read private flags.";
} else {
- expected_error = "Unable to read first fec protected packet offset.";
+ expected_error = "Unable to read private flags.";
}
CheckProcessingFails(packet, i, expected_error, QUIC_INVALID_PACKET_HEADER);
}
@@ -1201,8 +1140,7 @@ TEST_P(QuicFramerTest, PacketHeaderWith4BytePacketNumber) {
// Now test framing boundaries.
for (size_t i = 0;
i < GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_4BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP);
+ !kIncludePathId, PACKET_4BYTE_PACKET_NUMBER);
++i) {
string expected_error;
if (i < kConnectionIdOffset) {
@@ -1212,11 +1150,8 @@ TEST_P(QuicFramerTest, PacketHeaderWith4BytePacketNumber) {
} else if (i < GetPrivateFlagsOffset(!kIncludeVersion, !kIncludePathId,
PACKET_4BYTE_PACKET_NUMBER)) {
expected_error = "Unable to read packet number.";
- } else if (i < GetFecGroupOffset(!kIncludeVersion, !kIncludePathId,
- PACKET_4BYTE_PACKET_NUMBER)) {
- expected_error = "Unable to read private flags.";
} else {
- expected_error = "Unable to read first fec protected packet offset.";
+ expected_error = "Unable to read private flags.";
}
CheckProcessingFails(packet, i, expected_error, QUIC_INVALID_PACKET_HEADER);
}
@@ -1256,8 +1191,7 @@ TEST_P(QuicFramerTest, PacketHeaderWith2BytePacketNumber) {
// Now test framing boundaries.
for (size_t i = 0;
i < GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_2BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP);
+ !kIncludePathId, PACKET_2BYTE_PACKET_NUMBER);
++i) {
string expected_error;
if (i < kConnectionIdOffset) {
@@ -1267,11 +1201,8 @@ TEST_P(QuicFramerTest, PacketHeaderWith2BytePacketNumber) {
} else if (i < GetPrivateFlagsOffset(!kIncludeVersion, !kIncludePathId,
PACKET_2BYTE_PACKET_NUMBER)) {
expected_error = "Unable to read packet number.";
- } else if (i < GetFecGroupOffset(!kIncludeVersion, !kIncludePathId,
- PACKET_2BYTE_PACKET_NUMBER)) {
- expected_error = "Unable to read private flags.";
} else {
- expected_error = "Unable to read first fec protected packet offset.";
+ expected_error = "Unable to read private flags.";
}
CheckProcessingFails(packet, i, expected_error, QUIC_INVALID_PACKET_HEADER);
}
@@ -1311,8 +1242,7 @@ TEST_P(QuicFramerTest, PacketHeaderWith1BytePacketNumber) {
// Now test framing boundaries.
for (size_t i = 0;
i < GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_1BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP);
+ !kIncludePathId, PACKET_1BYTE_PACKET_NUMBER);
++i) {
string expected_error;
if (i < kConnectionIdOffset) {
@@ -1322,11 +1252,8 @@ TEST_P(QuicFramerTest, PacketHeaderWith1BytePacketNumber) {
} else if (i < GetPrivateFlagsOffset(!kIncludeVersion, !kIncludePathId,
PACKET_1BYTE_PACKET_NUMBER)) {
expected_error = "Unable to read packet number.";
- } else if (i < GetFecGroupOffset(!kIncludeVersion, !kIncludePathId,
- PACKET_1BYTE_PACKET_NUMBER)) {
- expected_error = "Unable to read private flags.";
} else {
- expected_error = "Unable to read first fec protected packet offset.";
+ expected_error = "Unable to read private flags.";
}
CheckProcessingFails(packet, i, expected_error, QUIC_INVALID_PACKET_HEADER);
}
@@ -1504,8 +1431,7 @@ TEST_P(QuicFramerTest, PaddingFrame) {
// A packet with no frames is not acceptable.
CheckProcessingFails(
packet, GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
"Packet has no frames.", QUIC_MISSING_PAYLOAD);
}
@@ -1823,114 +1749,6 @@ TEST_P(QuicFramerTest, RejectPublicHeader) {
ASSERT_FALSE(visitor_.header_.get());
}
-TEST_P(QuicFramerTest, RevivedStreamFrame) {
- // clang-format off
- unsigned char payload[] = {
- // frame type (stream frame with fin)
- 0xFF,
- // stream id
- 0x04, 0x03, 0x02, 0x01,
- // offset
- 0x54, 0x76, 0x10, 0x32,
- 0xDC, 0xFE, 0x98, 0xBA,
- // data length
- 0x0c, 0x00,
- // data
- 'h', 'e', 'l', 'l',
- 'o', ' ', 'w', 'o',
- 'r', 'l', 'd', '!',
- };
- // clang-format on
-
- QuicPacketHeader header;
- header.public_header.connection_id = kConnectionId;
- header.public_header.reset_flag = false;
- header.public_header.version_flag = false;
- header.fec_flag = true;
- header.entropy_flag = true;
- header.packet_number = kPacketNumber;
- header.fec_group = 0;
-
- // Do not encrypt the payload because the revived payload is post-encryption.
- EXPECT_TRUE(framer_.ProcessRevivedPacket(
- &header, StringPiece(AsChars(payload), arraysize(payload))));
-
- EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
- ASSERT_EQ(1, visitor_.revived_packets_);
- ASSERT_TRUE(visitor_.header_.get());
- EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id);
- EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
- EXPECT_FALSE(visitor_.header_->public_header.version_flag);
- EXPECT_TRUE(visitor_.header_->fec_flag);
- EXPECT_TRUE(visitor_.header_->entropy_flag);
- EXPECT_EQ(1 << (header.packet_number % 8), visitor_.header_->entropy_hash);
- EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
- EXPECT_EQ(NOT_IN_FEC_GROUP, visitor_.header_->is_in_fec_group);
- EXPECT_EQ(0u, visitor_.header_->fec_group);
-
- ASSERT_EQ(1u, visitor_.stream_frames_.size());
- EXPECT_EQ(0u, visitor_.ack_frames_.size());
- EXPECT_EQ(kStreamId, visitor_.stream_frames_[0]->stream_id);
- EXPECT_TRUE(visitor_.stream_frames_[0]->fin);
- EXPECT_EQ(kStreamOffset, visitor_.stream_frames_[0]->offset);
- CheckStreamFrameData("hello world!", visitor_.stream_frames_[0]);
-}
-
-TEST_P(QuicFramerTest, StreamFrameInFecGroup) {
- // clang-format off
- unsigned char packet[] = {
- // public flags (8 byte connection_id)
- 0x3C,
- // connection_id
- 0x10, 0x32, 0x54, 0x76,
- 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xBC, 0x9A, 0x78, 0x56,
- 0x34, 0x12,
- // private flags (fec group)
- 0x02,
- // first fec protected packet offset
- 0x02,
-
- // frame type (stream frame with fin)
- 0xFF,
- // stream id
- 0x04, 0x03, 0x02, 0x01,
- // offset
- 0x54, 0x76, 0x10, 0x32,
- 0xDC, 0xFE, 0x98, 0xBA,
- // data length
- 0x0c, 0x00,
- // data
- 'h', 'e', 'l', 'l',
- 'o', ' ', 'w', 'o',
- 'r', 'l', 'd', '!',
- };
- // clang-format on
-
- QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
- EXPECT_TRUE(framer_.ProcessPacket(encrypted));
-
- EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
- ASSERT_TRUE(visitor_.header_.get());
- EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion, !kIncludePathId));
- EXPECT_EQ(IN_FEC_GROUP, visitor_.header_->is_in_fec_group);
- EXPECT_EQ(kPacketNumber - 2, visitor_.header_->fec_group);
- const size_t fec_offset =
- GetStartOfFecProtectedData(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER);
- EXPECT_EQ(
- string(AsChars(packet) + fec_offset, arraysize(packet) - fec_offset),
- visitor_.fec_protected_payload_);
-
- ASSERT_EQ(1u, visitor_.stream_frames_.size());
- EXPECT_EQ(0u, visitor_.ack_frames_.size());
- EXPECT_EQ(kStreamId, visitor_.stream_frames_[0]->stream_id);
- EXPECT_TRUE(visitor_.stream_frames_[0]->fin);
- EXPECT_EQ(kStreamOffset, visitor_.stream_frames_[0]->offset);
- CheckStreamFrameData("hello world!", visitor_.stream_frames_[0]);
-}
-
TEST_P(QuicFramerTest, AckFrameTwoTimestamp) {
// clang-format off
unsigned char packet[] = {
@@ -2046,8 +1864,7 @@ TEST_P(QuicFramerTest, AckFrameTwoTimestamp) {
CheckProcessingFails(
packet,
i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
expected_error, QUIC_INVALID_ACK_DATA);
}
}
@@ -2153,8 +1970,7 @@ TEST_P(QuicFramerTest, AckFrameOneTimestamp) {
CheckProcessingFails(
packet,
i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
expected_error, QUIC_INVALID_ACK_DATA);
}
}
@@ -2248,8 +2064,7 @@ TEST_P(QuicFramerTest, AckFrame) {
CheckProcessingFails(
packet,
i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
expected_error, QUIC_INVALID_ACK_DATA);
}
}
@@ -2353,8 +2168,7 @@ TEST_P(QuicFramerTest, AckFrameRevivedPackets) {
CheckProcessingFails(
packet,
i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
expected_error, QUIC_INVALID_ACK_DATA);
}
}
@@ -2529,8 +2343,7 @@ TEST_P(QuicFramerTest, StopWaitingFrame) {
CheckProcessingFails(
packet,
i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
expected_error, QUIC_INVALID_STOP_WAITING_DATA);
}
}
@@ -2590,8 +2403,7 @@ TEST_P(QuicFramerTest, RstStreamFrameQuic) {
CheckProcessingFails(
packet,
i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
expected_error, QUIC_INVALID_RST_STREAM_DATA);
}
}
@@ -2651,8 +2463,7 @@ TEST_P(QuicFramerTest, ConnectionCloseFrame) {
CheckProcessingFails(
packet,
i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
expected_error, QUIC_INVALID_CONNECTION_CLOSE_DATA);
}
}
@@ -2714,8 +2525,7 @@ TEST_P(QuicFramerTest, GoAwayFrame) {
CheckProcessingFails(
packet,
i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
expected_error, QUIC_INVALID_GOAWAY_DATA);
}
}
@@ -2767,8 +2577,7 @@ TEST_P(QuicFramerTest, WindowUpdateFrame) {
CheckProcessingFails(
packet,
i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
expected_error, QUIC_INVALID_WINDOW_UPDATE_DATA);
}
}
@@ -2811,8 +2620,7 @@ TEST_P(QuicFramerTest, BlockedFrame) {
CheckProcessingFails(
packet,
i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
expected_error, QUIC_INVALID_BLOCKED_DATA);
}
}
@@ -2887,8 +2695,7 @@ TEST_P(QuicFramerTest, PathCloseFrame) {
CheckProcessingFails(
packet,
i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- kIncludePathId, PACKET_6BYTE_PACKET_NUMBER,
- NOT_IN_FEC_GROUP),
+ kIncludePathId, PACKET_6BYTE_PACKET_NUMBER),
expected_error, QUIC_INVALID_PATH_CLOSE_DATA);
}
}
@@ -3102,7 +2909,7 @@ TEST_P(QuicFramerTest, VersionNegotiationPacket) {
}
}
-TEST_P(QuicFramerTest, FecPacket) {
+TEST_P(QuicFramerTest, DropFecPacket) {
// clang-format off
unsigned char packet[] = {
// public flags (8 byte connection_id)
@@ -3130,13 +2937,7 @@ TEST_P(QuicFramerTest, FecPacket) {
EXPECT_TRUE(framer_.ProcessPacket(encrypted));
EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
- ASSERT_TRUE(visitor_.header_.get());
- EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion, !kIncludePathId));
-
- EXPECT_EQ(0u, visitor_.stream_frames_.size());
- EXPECT_EQ(0u, visitor_.ack_frames_.size());
- ASSERT_EQ(1, visitor_.fec_count_);
- EXPECT_EQ("abcdefghijklmnop", visitor_.fec_data_redundancy_[0]);
+ EXPECT_FALSE(visitor_.header_.get());
}
TEST_P(QuicFramerTest, BuildPaddingFramePacket) {
@@ -3173,9 +2974,9 @@ TEST_P(QuicFramerTest, BuildPaddingFramePacket) {
};
// clang-format on
- uint64_t header_size = GetPacketHeaderSize(
- PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, !kIncludePathId,
- PACKET_6BYTE_PACKET_NUMBER, NOT_IN_FEC_GROUP);
+ uint64_t header_size =
+ GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
+ !kIncludePathId, PACKET_6BYTE_PACKET_NUMBER);
memset(packet + header_size + 1, 0x00, kMaxPacketSize - header_size - 1);
scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames));
@@ -3220,9 +3021,9 @@ TEST_P(QuicFramerTest, Build4ByteSequenceNumberPaddingFramePacket) {
};
// clang-format on
- uint64_t header_size = GetPacketHeaderSize(
- PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, !kIncludePathId,
- PACKET_4BYTE_PACKET_NUMBER, NOT_IN_FEC_GROUP);
+ uint64_t header_size =
+ GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
+ !kIncludePathId, PACKET_4BYTE_PACKET_NUMBER);
memset(packet + header_size + 1, 0x00, kMaxPacketSize - header_size - 1);
scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames));
@@ -3267,9 +3068,9 @@ TEST_P(QuicFramerTest, Build2ByteSequenceNumberPaddingFramePacket) {
};
// clang-format on
- uint64_t header_size = GetPacketHeaderSize(
- PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, !kIncludePathId,
- PACKET_2BYTE_PACKET_NUMBER, NOT_IN_FEC_GROUP);
+ uint64_t header_size =
+ GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
+ !kIncludePathId, PACKET_2BYTE_PACKET_NUMBER);
memset(packet + header_size + 1, 0x00, kMaxPacketSize - header_size - 1);
scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames));
@@ -3314,9 +3115,9 @@ TEST_P(QuicFramerTest, Build1ByteSequenceNumberPaddingFramePacket) {
};
// clang-format on
- uint64_t header_size = GetPacketHeaderSize(
- PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, !kIncludePathId,
- PACKET_1BYTE_PACKET_NUMBER, NOT_IN_FEC_GROUP);
+ uint64_t header_size =
+ GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
+ !kIncludePathId, PACKET_1BYTE_PACKET_NUMBER);
memset(packet + header_size + 1, 0x00, kMaxPacketSize - header_size - 1);
scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames));
@@ -3378,55 +3179,6 @@ TEST_P(QuicFramerTest, BuildStreamFramePacket) {
arraysize(packet));
}
-TEST_P(QuicFramerTest, BuildStreamFramePacketInFecGroup) {
- QuicPacketHeader header;
- header.public_header.connection_id = kConnectionId;
- header.public_header.reset_flag = false;
- header.public_header.version_flag = false;
- header.fec_flag = false;
- header.entropy_flag = true;
- header.packet_number = kPacketNumber;
- header.is_in_fec_group = IN_FEC_GROUP;
- header.fec_group = kPacketNumber;
-
- QuicStreamFrame stream_frame(kStreamId, true, kStreamOffset,
- StringPiece("hello world!"));
-
- QuicFrames frames;
- frames.push_back(QuicFrame(&stream_frame));
- // clang-format off
- unsigned char packet[] = {
- // public flags (8 byte connection_id)
- 0x3C,
- // connection_id
- 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // private flags (entropy, is_in_fec_group)
- 0x03,
- // FEC group
- 0x00,
- // frame type (stream frame with fin and data length field)
- 0xFF,
- // stream id
- 0x04, 0x03, 0x02, 0x01,
- // offset
- 0x54, 0x76, 0x10, 0x32, 0xDC, 0xFE, 0x98, 0xBA,
- // data length (since packet is in an FEC group)
- 0x0C, 0x00,
- // data
- 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!',
- };
- // clang-format on
-
- scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames));
- ASSERT_TRUE(data != nullptr);
-
- test::CompareCharArraysWithHexError("constructed packet", data->data(),
- data->length(), AsChars(packet),
- arraysize(packet));
-}
-
TEST_P(QuicFramerTest, BuildStreamFramePacketWithVersionFlag) {
QuicPacketHeader header;
header.public_header.connection_id = kConnectionId;
@@ -4372,50 +4124,6 @@ TEST_P(QuicFramerTest, BuildPublicResetPacketWithClientAddress) {
arraysize(packet));
}
-TEST_P(QuicFramerTest, BuildFecPacket) {
- QuicPacketHeader header;
- header.public_header.connection_id = kConnectionId;
- header.public_header.reset_flag = false;
- header.public_header.version_flag = false;
- header.fec_flag = true;
- header.entropy_flag = true;
- header.packet_number = kPacketNumber;
- header.is_in_fec_group = IN_FEC_GROUP;
- header.fec_group = kPacketNumber - 1;
-
- string redundancy = "abcdefghijklmnop";
-
- // clang-format off
- unsigned char packet[] = {
- // public flags (8 byte connection_id)
- 0x3C,
- // connection_id
- 0x10, 0x32, 0x54, 0x76,
- 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xBC, 0x9A, 0x78, 0x56,
- 0x34, 0x12,
- // private flags (entropy & fec group & fec packet)
- 0x07,
- // first fec protected packet offset
- 0x01,
-
- // redundancy
- 'a', 'b', 'c', 'd',
- 'e', 'f', 'g', 'h',
- 'i', 'j', 'k', 'l',
- 'm', 'n', 'o', 'p',
- };
- // clang-format on
-
- scoped_ptr<QuicPacket> data(framer_.BuildFecPacket(header, redundancy));
- ASSERT_TRUE(data != nullptr);
-
- test::CompareCharArraysWithHexError("constructed packet", data->data(),
- data->length(), AsChars(packet),
- arraysize(packet));
-}
-
TEST_P(QuicFramerTest, EncryptPacket) {
QuicPacketNumber packet_number = kPacketNumber;
// clang-format off
@@ -4428,10 +4136,8 @@ TEST_P(QuicFramerTest, EncryptPacket) {
// packet number
0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // private flags (fec group & fec packet)
- 0x06,
- // first fec protected packet offset
- 0x01,
+ // private flags
+ 0x00,
// redundancy
'a', 'b', 'c', 'd',
@@ -4467,10 +4173,8 @@ TEST_P(QuicFramerTest, EncryptPacketWithVersionFlag) {
// packet number
0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // private flags (fec group & fec flags)
- 0x06,
- // first fec protected packet offset
- 0x01,
+ // private flags
+ 0x00,
// redundancy
'a', 'b', 'c', 'd',
@@ -4506,10 +4210,8 @@ TEST_P(QuicFramerTest, EncryptPacketWithMultipathFlag) {
// packet number
0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // private flags (fec group & fec flags)
- 0x06,
- // first fec protected packet offset
- 0x01,
+ // private flags
+ 0x00,
// redundancy
'a', 'b', 'c', 'd',
@@ -4546,10 +4248,8 @@ TEST_P(QuicFramerTest, EncryptPacketWithBothVersionFlagAndMultipathFlag) {
// packet number
0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12,
- // private flags (fec group & fec flags)
- 0x06,
- // first fec protected packet offset
- 0x01,
+ // private flags
+ 0x00,
// redundancy
'a', 'b', 'c', 'd',
@@ -4731,45 +4431,6 @@ TEST_P(QuicFramerTest, EntropyFlagTest) {
EXPECT_FALSE(visitor_.header_->fec_flag);
};
-TEST_P(QuicFramerTest, FecEntropyTest) {
- // clang-format off
- unsigned char packet[] = {
- // public flags (8 byte connection_id)
- 0x3C,
- // connection_id
- 0x10, 0x32, 0x54, 0x76,
- 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xBC, 0x9A, 0x78, 0x56,
- 0x34, 0x12,
- // private flags (Entropy & fec group & FEC)
- 0x07,
- // first fec protected packet offset
- 0xFF,
-
- // frame type (stream frame with fin and no length)
- 0xDF,
- // stream id
- 0x04, 0x03, 0x02, 0x01,
- // offset
- 0x54, 0x76, 0x10, 0x32,
- 0xDC, 0xFE, 0x98, 0xBA,
- // data
- 'h', 'e', 'l', 'l',
- 'o', ' ', 'w', 'o',
- 'r', 'l', 'd', '!',
- };
- // clang-format on
-
- QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
- EXPECT_TRUE(framer_.ProcessPacket(encrypted));
- EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
- ASSERT_TRUE(visitor_.header_.get());
- EXPECT_TRUE(visitor_.header_->fec_flag);
- EXPECT_TRUE(visitor_.header_->entropy_flag);
- EXPECT_EQ(1 << 4, visitor_.header_->entropy_hash);
-};
-
TEST_P(QuicFramerTest, StopPacketProcessing) {
// clang-format off
unsigned char packet[] = {
« no previous file with comments | « net/quic/quic_framer.cc ('k') | net/quic/quic_multipath_received_packet_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698