| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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/test_tools/quic_test_packet_maker.h" | 5 #include "net/quic/test_tools/quic_test_packet_maker.h" |
| 6 | 6 |
| 7 #include <list> | 7 #include <list> |
| 8 #include <memory> | 8 #include <memory> |
| 9 | 9 |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 QuicPacketNumber num, | 41 QuicPacketNumber num, |
| 42 bool include_version) { | 42 bool include_version) { |
| 43 QuicPacketHeader header; | 43 QuicPacketHeader header; |
| 44 header.public_header.connection_id = connection_id_; | 44 header.public_header.connection_id = connection_id_; |
| 45 header.public_header.reset_flag = false; | 45 header.public_header.reset_flag = false; |
| 46 header.public_header.version_flag = include_version; | 46 header.public_header.version_flag = include_version; |
| 47 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 47 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 48 header.packet_number = num; | 48 header.packet_number = num; |
| 49 header.entropy_flag = false; | 49 header.entropy_flag = false; |
| 50 header.fec_flag = false; | 50 header.fec_flag = false; |
| 51 header.fec_group = 0; | |
| 52 | 51 |
| 53 QuicPingFrame ping; | 52 QuicPingFrame ping; |
| 54 return std::unique_ptr<QuicReceivedPacket>( | 53 return std::unique_ptr<QuicReceivedPacket>( |
| 55 MakePacket(header, QuicFrame(ping))); | 54 MakePacket(header, QuicFrame(ping))); |
| 56 } | 55 } |
| 57 | 56 |
| 58 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeRstPacket( | 57 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeRstPacket( |
| 59 QuicPacketNumber num, | 58 QuicPacketNumber num, |
| 60 bool include_version, | 59 bool include_version, |
| 61 QuicStreamId stream_id, | 60 QuicStreamId stream_id, |
| 62 QuicRstStreamErrorCode error_code) { | 61 QuicRstStreamErrorCode error_code) { |
| 63 return MakeRstPacket(num, include_version, stream_id, error_code, 0); | 62 return MakeRstPacket(num, include_version, stream_id, error_code, 0); |
| 64 } | 63 } |
| 65 | 64 |
| 66 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeRstPacket( | 65 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeRstPacket( |
| 67 QuicPacketNumber num, | 66 QuicPacketNumber num, |
| 68 bool include_version, | 67 bool include_version, |
| 69 QuicStreamId stream_id, | 68 QuicStreamId stream_id, |
| 70 QuicRstStreamErrorCode error_code, | 69 QuicRstStreamErrorCode error_code, |
| 71 size_t bytes_written) { | 70 size_t bytes_written) { |
| 72 QuicPacketHeader header; | 71 QuicPacketHeader header; |
| 73 header.public_header.connection_id = connection_id_; | 72 header.public_header.connection_id = connection_id_; |
| 74 header.public_header.reset_flag = false; | 73 header.public_header.reset_flag = false; |
| 75 header.public_header.version_flag = include_version; | 74 header.public_header.version_flag = include_version; |
| 76 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 75 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 77 header.packet_number = num; | 76 header.packet_number = num; |
| 78 header.entropy_flag = false; | 77 header.entropy_flag = false; |
| 79 header.fec_flag = false; | 78 header.fec_flag = false; |
| 80 header.fec_group = 0; | |
| 81 | 79 |
| 82 QuicRstStreamFrame rst(stream_id, error_code, bytes_written); | 80 QuicRstStreamFrame rst(stream_id, error_code, bytes_written); |
| 83 DVLOG(1) << "Adding frame: " << QuicFrame(&rst); | 81 DVLOG(1) << "Adding frame: " << QuicFrame(&rst); |
| 84 return std::unique_ptr<QuicReceivedPacket>( | 82 return std::unique_ptr<QuicReceivedPacket>( |
| 85 MakePacket(header, QuicFrame(&rst))); | 83 MakePacket(header, QuicFrame(&rst))); |
| 86 } | 84 } |
| 87 | 85 |
| 88 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckAndRstPacket( | 86 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckAndRstPacket( |
| 89 QuicPacketNumber num, | 87 QuicPacketNumber num, |
| 90 bool include_version, | 88 bool include_version, |
| 91 QuicStreamId stream_id, | 89 QuicStreamId stream_id, |
| 92 QuicRstStreamErrorCode error_code, | 90 QuicRstStreamErrorCode error_code, |
| 93 QuicPacketNumber largest_received, | 91 QuicPacketNumber largest_received, |
| 94 QuicPacketNumber ack_least_unacked, | 92 QuicPacketNumber ack_least_unacked, |
| 95 QuicPacketNumber stop_least_unacked, | 93 QuicPacketNumber stop_least_unacked, |
| 96 bool send_feedback) { | 94 bool send_feedback) { |
| 97 QuicPacketHeader header; | 95 QuicPacketHeader header; |
| 98 header.public_header.connection_id = connection_id_; | 96 header.public_header.connection_id = connection_id_; |
| 99 header.public_header.reset_flag = false; | 97 header.public_header.reset_flag = false; |
| 100 header.public_header.version_flag = include_version; | 98 header.public_header.version_flag = include_version; |
| 101 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 99 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 102 header.packet_number = num; | 100 header.packet_number = num; |
| 103 header.entropy_flag = false; | 101 header.entropy_flag = false; |
| 104 header.fec_flag = false; | 102 header.fec_flag = false; |
| 105 header.fec_group = 0; | |
| 106 | 103 |
| 107 QuicAckFrame ack(MakeAckFrame(largest_received)); | 104 QuicAckFrame ack(MakeAckFrame(largest_received)); |
| 108 ack.ack_delay_time = QuicTime::Delta::Zero(); | 105 ack.ack_delay_time = QuicTime::Delta::Zero(); |
| 109 for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) { | 106 for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) { |
| 110 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); | 107 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); |
| 111 } | 108 } |
| 112 if (largest_received > 0 && version_ > QUIC_VERSION_33) { | 109 if (largest_received > 0 && version_ > QUIC_VERSION_33) { |
| 113 ack.missing = false; | 110 ack.missing = false; |
| 114 ack.packets.Add(1, largest_received + 1); | 111 ack.packets.Add(1, largest_received + 1); |
| 115 } | 112 } |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 QuicErrorCode quic_error, | 145 QuicErrorCode quic_error, |
| 149 const std::string& quic_error_details) { | 146 const std::string& quic_error_details) { |
| 150 QuicPacketHeader header; | 147 QuicPacketHeader header; |
| 151 header.public_header.connection_id = connection_id_; | 148 header.public_header.connection_id = connection_id_; |
| 152 header.public_header.reset_flag = false; | 149 header.public_header.reset_flag = false; |
| 153 header.public_header.version_flag = include_version; | 150 header.public_header.version_flag = include_version; |
| 154 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 151 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 155 header.packet_number = num; | 152 header.packet_number = num; |
| 156 header.entropy_flag = false; | 153 header.entropy_flag = false; |
| 157 header.fec_flag = false; | 154 header.fec_flag = false; |
| 158 header.fec_group = 0; | |
| 159 | 155 |
| 160 QuicAckFrame ack(MakeAckFrame(largest_received)); | 156 QuicAckFrame ack(MakeAckFrame(largest_received)); |
| 161 ack.ack_delay_time = ack_delay_time; | 157 ack.ack_delay_time = ack_delay_time; |
| 162 for (QuicPacketNumber i = least_unacked; i <= largest_received; ++i) { | 158 for (QuicPacketNumber i = least_unacked; i <= largest_received; ++i) { |
| 163 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); | 159 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); |
| 164 } | 160 } |
| 165 if (largest_received > 0 && version_ > QUIC_VERSION_33) { | 161 if (largest_received > 0 && version_ > QUIC_VERSION_33) { |
| 166 ack.missing = false; | 162 ack.missing = false; |
| 167 ack.packets.Add(1, largest_received + 1); | 163 ack.packets.Add(1, largest_received + 1); |
| 168 } | 164 } |
| (...skipping 28 matching lines...) Expand all Loading... |
| 197 std::unique_ptr<QuicReceivedPacket> | 193 std::unique_ptr<QuicReceivedPacket> |
| 198 QuicTestPacketMaker::MakeConnectionClosePacket(QuicPacketNumber num) { | 194 QuicTestPacketMaker::MakeConnectionClosePacket(QuicPacketNumber num) { |
| 199 QuicPacketHeader header; | 195 QuicPacketHeader header; |
| 200 header.public_header.connection_id = connection_id_; | 196 header.public_header.connection_id = connection_id_; |
| 201 header.public_header.reset_flag = false; | 197 header.public_header.reset_flag = false; |
| 202 header.public_header.version_flag = false; | 198 header.public_header.version_flag = false; |
| 203 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 199 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 204 header.packet_number = num; | 200 header.packet_number = num; |
| 205 header.entropy_flag = false; | 201 header.entropy_flag = false; |
| 206 header.fec_flag = false; | 202 header.fec_flag = false; |
| 207 header.fec_group = 0; | |
| 208 | 203 |
| 209 QuicConnectionCloseFrame close; | 204 QuicConnectionCloseFrame close; |
| 210 close.error_code = QUIC_CRYPTO_VERSION_NOT_SUPPORTED; | 205 close.error_code = QUIC_CRYPTO_VERSION_NOT_SUPPORTED; |
| 211 close.error_details = "Time to panic!"; | 206 close.error_details = "Time to panic!"; |
| 212 return std::unique_ptr<QuicReceivedPacket>( | 207 return std::unique_ptr<QuicReceivedPacket>( |
| 213 MakePacket(header, QuicFrame(&close))); | 208 MakePacket(header, QuicFrame(&close))); |
| 214 } | 209 } |
| 215 | 210 |
| 216 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeGoAwayPacket( | 211 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeGoAwayPacket( |
| 217 QuicPacketNumber num, | 212 QuicPacketNumber num, |
| 218 QuicErrorCode error_code, | 213 QuicErrorCode error_code, |
| 219 std::string reason_phrase) { | 214 std::string reason_phrase) { |
| 220 QuicPacketHeader header; | 215 QuicPacketHeader header; |
| 221 header.public_header.connection_id = connection_id_; | 216 header.public_header.connection_id = connection_id_; |
| 222 header.public_header.reset_flag = false; | 217 header.public_header.reset_flag = false; |
| 223 header.public_header.version_flag = false; | 218 header.public_header.version_flag = false; |
| 224 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 219 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 225 header.packet_number = num; | 220 header.packet_number = num; |
| 226 header.entropy_flag = false; | 221 header.entropy_flag = false; |
| 227 header.fec_flag = false; | 222 header.fec_flag = false; |
| 228 header.fec_group = 0; | |
| 229 | 223 |
| 230 QuicGoAwayFrame goaway; | 224 QuicGoAwayFrame goaway; |
| 231 goaway.error_code = error_code; | 225 goaway.error_code = error_code; |
| 232 goaway.last_good_stream_id = 0; | 226 goaway.last_good_stream_id = 0; |
| 233 goaway.reason_phrase = reason_phrase; | 227 goaway.reason_phrase = reason_phrase; |
| 234 return std::unique_ptr<QuicReceivedPacket>( | 228 return std::unique_ptr<QuicReceivedPacket>( |
| 235 MakePacket(header, QuicFrame(&goaway))); | 229 MakePacket(header, QuicFrame(&goaway))); |
| 236 } | 230 } |
| 237 | 231 |
| 238 // Sets both least_unacked fields in stop waiting frame and ack frame | 232 // Sets both least_unacked fields in stop waiting frame and ack frame |
| (...skipping 14 matching lines...) Expand all Loading... |
| 253 QuicPacketNumber stop_least_unacked, | 247 QuicPacketNumber stop_least_unacked, |
| 254 bool send_feedback) { | 248 bool send_feedback) { |
| 255 QuicPacketHeader header; | 249 QuicPacketHeader header; |
| 256 header.public_header.connection_id = connection_id_; | 250 header.public_header.connection_id = connection_id_; |
| 257 header.public_header.reset_flag = false; | 251 header.public_header.reset_flag = false; |
| 258 header.public_header.version_flag = false; | 252 header.public_header.version_flag = false; |
| 259 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 253 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 260 header.packet_number = packet_number; | 254 header.packet_number = packet_number; |
| 261 header.entropy_flag = false; | 255 header.entropy_flag = false; |
| 262 header.fec_flag = false; | 256 header.fec_flag = false; |
| 263 header.fec_group = 0; | |
| 264 | 257 |
| 265 QuicAckFrame ack(MakeAckFrame(largest_received)); | 258 QuicAckFrame ack(MakeAckFrame(largest_received)); |
| 266 ack.ack_delay_time = QuicTime::Delta::Zero(); | 259 ack.ack_delay_time = QuicTime::Delta::Zero(); |
| 267 for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) { | 260 for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) { |
| 268 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); | 261 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); |
| 269 } | 262 } |
| 270 if (largest_received > 0 && version_ > QUIC_VERSION_33) { | 263 if (largest_received > 0 && version_ > QUIC_VERSION_33) { |
| 271 ack.missing = false; | 264 ack.missing = false; |
| 272 ack.packets.Add(1, largest_received + 1); | 265 ack.packets.Add(1, largest_received + 1); |
| 273 } | 266 } |
| (...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 615 return std::unique_ptr<QuicReceivedPacket>(encrypted.Clone()); | 608 return std::unique_ptr<QuicReceivedPacket>(encrypted.Clone()); |
| 616 } | 609 } |
| 617 | 610 |
| 618 void QuicTestPacketMaker::InitializeHeader(QuicPacketNumber packet_number, | 611 void QuicTestPacketMaker::InitializeHeader(QuicPacketNumber packet_number, |
| 619 bool should_include_version) { | 612 bool should_include_version) { |
| 620 header_.public_header.connection_id = connection_id_; | 613 header_.public_header.connection_id = connection_id_; |
| 621 header_.public_header.reset_flag = false; | 614 header_.public_header.reset_flag = false; |
| 622 header_.public_header.version_flag = should_include_version; | 615 header_.public_header.version_flag = should_include_version; |
| 623 header_.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 616 header_.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 624 header_.packet_number = packet_number; | 617 header_.packet_number = packet_number; |
| 625 header_.fec_group = 0; | |
| 626 header_.entropy_flag = false; | 618 header_.entropy_flag = false; |
| 627 header_.fec_flag = false; | 619 header_.fec_flag = false; |
| 628 } | 620 } |
| 629 | 621 |
| 630 } // namespace test | 622 } // namespace test |
| 631 } // namespace net | 623 } // namespace net |
| OLD | NEW |