| 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 <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakePingPacket( | 40 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakePingPacket( |
| 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; | |
| 51 | 50 |
| 52 QuicPingFrame ping; | 51 QuicPingFrame ping; |
| 53 return std::unique_ptr<QuicReceivedPacket>( | 52 return std::unique_ptr<QuicReceivedPacket>( |
| 54 MakePacket(header, QuicFrame(ping))); | 53 MakePacket(header, QuicFrame(ping))); |
| 55 } | 54 } |
| 56 | 55 |
| 57 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeRstPacket( | 56 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeRstPacket( |
| 58 QuicPacketNumber num, | 57 QuicPacketNumber num, |
| 59 bool include_version, | 58 bool include_version, |
| 60 QuicStreamId stream_id, | 59 QuicStreamId stream_id, |
| 61 QuicRstStreamErrorCode error_code) { | 60 QuicRstStreamErrorCode error_code) { |
| 62 return MakeRstPacket(num, include_version, stream_id, error_code, 0); | 61 return MakeRstPacket(num, include_version, stream_id, error_code, 0); |
| 63 } | 62 } |
| 64 | 63 |
| 65 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeRstPacket( | 64 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeRstPacket( |
| 66 QuicPacketNumber num, | 65 QuicPacketNumber num, |
| 67 bool include_version, | 66 bool include_version, |
| 68 QuicStreamId stream_id, | 67 QuicStreamId stream_id, |
| 69 QuicRstStreamErrorCode error_code, | 68 QuicRstStreamErrorCode error_code, |
| 70 size_t bytes_written) { | 69 size_t bytes_written) { |
| 71 QuicPacketHeader header; | 70 QuicPacketHeader header; |
| 72 header.public_header.connection_id = connection_id_; | 71 header.public_header.connection_id = connection_id_; |
| 73 header.public_header.reset_flag = false; | 72 header.public_header.reset_flag = false; |
| 74 header.public_header.version_flag = include_version; | 73 header.public_header.version_flag = include_version; |
| 75 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 74 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 76 header.packet_number = num; | 75 header.packet_number = num; |
| 77 header.entropy_flag = false; | 76 header.entropy_flag = false; |
| 78 header.fec_flag = false; | |
| 79 | 77 |
| 80 QuicRstStreamFrame rst(stream_id, error_code, bytes_written); | 78 QuicRstStreamFrame rst(stream_id, error_code, bytes_written); |
| 81 DVLOG(1) << "Adding frame: " << QuicFrame(&rst); | 79 DVLOG(1) << "Adding frame: " << QuicFrame(&rst); |
| 82 return std::unique_ptr<QuicReceivedPacket>( | 80 return std::unique_ptr<QuicReceivedPacket>( |
| 83 MakePacket(header, QuicFrame(&rst))); | 81 MakePacket(header, QuicFrame(&rst))); |
| 84 } | 82 } |
| 85 | 83 |
| 86 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckAndRstPacket( | 84 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckAndRstPacket( |
| 87 QuicPacketNumber num, | 85 QuicPacketNumber num, |
| 88 bool include_version, | 86 bool include_version, |
| 89 QuicStreamId stream_id, | 87 QuicStreamId stream_id, |
| 90 QuicRstStreamErrorCode error_code, | 88 QuicRstStreamErrorCode error_code, |
| 91 QuicPacketNumber largest_received, | 89 QuicPacketNumber largest_received, |
| 92 QuicPacketNumber ack_least_unacked, | 90 QuicPacketNumber ack_least_unacked, |
| 93 QuicPacketNumber stop_least_unacked, | 91 QuicPacketNumber stop_least_unacked, |
| 94 bool send_feedback) { | 92 bool send_feedback) { |
| 95 QuicPacketHeader header; | 93 QuicPacketHeader header; |
| 96 header.public_header.connection_id = connection_id_; | 94 header.public_header.connection_id = connection_id_; |
| 97 header.public_header.reset_flag = false; | 95 header.public_header.reset_flag = false; |
| 98 header.public_header.version_flag = include_version; | 96 header.public_header.version_flag = include_version; |
| 99 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 97 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 100 header.packet_number = num; | 98 header.packet_number = num; |
| 101 header.entropy_flag = false; | 99 header.entropy_flag = false; |
| 102 header.fec_flag = false; | |
| 103 | 100 |
| 104 QuicAckFrame ack(MakeAckFrame(largest_received)); | 101 QuicAckFrame ack(MakeAckFrame(largest_received)); |
| 105 ack.ack_delay_time = QuicTime::Delta::Zero(); | 102 ack.ack_delay_time = QuicTime::Delta::Zero(); |
| 106 for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) { | 103 for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) { |
| 107 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); | 104 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); |
| 108 } | 105 } |
| 109 if (largest_received > 0 && version_ > QUIC_VERSION_33) { | 106 if (largest_received > 0 && version_ > QUIC_VERSION_33) { |
| 110 ack.missing = false; | 107 ack.missing = false; |
| 111 ack.packets.Add(1, largest_received + 1); | 108 ack.packets.Add(1, largest_received + 1); |
| 112 } | 109 } |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 QuicPacketNumber least_unacked, | 141 QuicPacketNumber least_unacked, |
| 145 QuicErrorCode quic_error, | 142 QuicErrorCode quic_error, |
| 146 const std::string& quic_error_details) { | 143 const std::string& quic_error_details) { |
| 147 QuicPacketHeader header; | 144 QuicPacketHeader header; |
| 148 header.public_header.connection_id = connection_id_; | 145 header.public_header.connection_id = connection_id_; |
| 149 header.public_header.reset_flag = false; | 146 header.public_header.reset_flag = false; |
| 150 header.public_header.version_flag = include_version; | 147 header.public_header.version_flag = include_version; |
| 151 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 148 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 152 header.packet_number = num; | 149 header.packet_number = num; |
| 153 header.entropy_flag = false; | 150 header.entropy_flag = false; |
| 154 header.fec_flag = false; | |
| 155 | 151 |
| 156 QuicAckFrame ack(MakeAckFrame(largest_received)); | 152 QuicAckFrame ack(MakeAckFrame(largest_received)); |
| 157 ack.ack_delay_time = ack_delay_time; | 153 ack.ack_delay_time = ack_delay_time; |
| 158 for (QuicPacketNumber i = least_unacked; i <= largest_received; ++i) { | 154 for (QuicPacketNumber i = least_unacked; i <= largest_received; ++i) { |
| 159 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); | 155 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); |
| 160 } | 156 } |
| 161 if (largest_received > 0 && version_ > QUIC_VERSION_33) { | 157 if (largest_received > 0 && version_ > QUIC_VERSION_33) { |
| 162 ack.missing = false; | 158 ack.missing = false; |
| 163 ack.packets.Add(1, largest_received + 1); | 159 ack.packets.Add(1, largest_received + 1); |
| 164 } | 160 } |
| (...skipping 27 matching lines...) Expand all Loading... |
| 192 | 188 |
| 193 std::unique_ptr<QuicReceivedPacket> | 189 std::unique_ptr<QuicReceivedPacket> |
| 194 QuicTestPacketMaker::MakeConnectionClosePacket(QuicPacketNumber num) { | 190 QuicTestPacketMaker::MakeConnectionClosePacket(QuicPacketNumber num) { |
| 195 QuicPacketHeader header; | 191 QuicPacketHeader header; |
| 196 header.public_header.connection_id = connection_id_; | 192 header.public_header.connection_id = connection_id_; |
| 197 header.public_header.reset_flag = false; | 193 header.public_header.reset_flag = false; |
| 198 header.public_header.version_flag = false; | 194 header.public_header.version_flag = false; |
| 199 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 195 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 200 header.packet_number = num; | 196 header.packet_number = num; |
| 201 header.entropy_flag = false; | 197 header.entropy_flag = false; |
| 202 header.fec_flag = false; | |
| 203 | 198 |
| 204 QuicConnectionCloseFrame close; | 199 QuicConnectionCloseFrame close; |
| 205 close.error_code = QUIC_CRYPTO_VERSION_NOT_SUPPORTED; | 200 close.error_code = QUIC_CRYPTO_VERSION_NOT_SUPPORTED; |
| 206 close.error_details = "Time to panic!"; | 201 close.error_details = "Time to panic!"; |
| 207 return std::unique_ptr<QuicReceivedPacket>( | 202 return std::unique_ptr<QuicReceivedPacket>( |
| 208 MakePacket(header, QuicFrame(&close))); | 203 MakePacket(header, QuicFrame(&close))); |
| 209 } | 204 } |
| 210 | 205 |
| 211 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeGoAwayPacket( | 206 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeGoAwayPacket( |
| 212 QuicPacketNumber num, | 207 QuicPacketNumber num, |
| 213 QuicErrorCode error_code, | 208 QuicErrorCode error_code, |
| 214 std::string reason_phrase) { | 209 std::string reason_phrase) { |
| 215 QuicPacketHeader header; | 210 QuicPacketHeader header; |
| 216 header.public_header.connection_id = connection_id_; | 211 header.public_header.connection_id = connection_id_; |
| 217 header.public_header.reset_flag = false; | 212 header.public_header.reset_flag = false; |
| 218 header.public_header.version_flag = false; | 213 header.public_header.version_flag = false; |
| 219 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 214 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 220 header.packet_number = num; | 215 header.packet_number = num; |
| 221 header.entropy_flag = false; | 216 header.entropy_flag = false; |
| 222 header.fec_flag = false; | |
| 223 | 217 |
| 224 QuicGoAwayFrame goaway; | 218 QuicGoAwayFrame goaway; |
| 225 goaway.error_code = error_code; | 219 goaway.error_code = error_code; |
| 226 goaway.last_good_stream_id = 0; | 220 goaway.last_good_stream_id = 0; |
| 227 goaway.reason_phrase = reason_phrase; | 221 goaway.reason_phrase = reason_phrase; |
| 228 return std::unique_ptr<QuicReceivedPacket>( | 222 return std::unique_ptr<QuicReceivedPacket>( |
| 229 MakePacket(header, QuicFrame(&goaway))); | 223 MakePacket(header, QuicFrame(&goaway))); |
| 230 } | 224 } |
| 231 | 225 |
| 232 // Sets both least_unacked fields in stop waiting frame and ack frame | 226 // Sets both least_unacked fields in stop waiting frame and ack frame |
| (...skipping 13 matching lines...) Expand all Loading... |
| 246 QuicPacketNumber ack_least_unacked, | 240 QuicPacketNumber ack_least_unacked, |
| 247 QuicPacketNumber stop_least_unacked, | 241 QuicPacketNumber stop_least_unacked, |
| 248 bool send_feedback) { | 242 bool send_feedback) { |
| 249 QuicPacketHeader header; | 243 QuicPacketHeader header; |
| 250 header.public_header.connection_id = connection_id_; | 244 header.public_header.connection_id = connection_id_; |
| 251 header.public_header.reset_flag = false; | 245 header.public_header.reset_flag = false; |
| 252 header.public_header.version_flag = false; | 246 header.public_header.version_flag = false; |
| 253 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 247 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 254 header.packet_number = packet_number; | 248 header.packet_number = packet_number; |
| 255 header.entropy_flag = false; | 249 header.entropy_flag = false; |
| 256 header.fec_flag = false; | |
| 257 | 250 |
| 258 QuicAckFrame ack(MakeAckFrame(largest_received)); | 251 QuicAckFrame ack(MakeAckFrame(largest_received)); |
| 259 ack.ack_delay_time = QuicTime::Delta::Zero(); | 252 ack.ack_delay_time = QuicTime::Delta::Zero(); |
| 260 for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) { | 253 for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) { |
| 261 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); | 254 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); |
| 262 } | 255 } |
| 263 if (largest_received > 0 && version_ > QUIC_VERSION_33) { | 256 if (largest_received > 0 && version_ > QUIC_VERSION_33) { |
| 264 ack.missing = false; | 257 ack.missing = false; |
| 265 ack.packets.Add(1, largest_received + 1); | 258 ack.packets.Add(1, largest_received + 1); |
| 266 } | 259 } |
| (...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 658 } | 651 } |
| 659 | 652 |
| 660 void QuicTestPacketMaker::InitializeHeader(QuicPacketNumber packet_number, | 653 void QuicTestPacketMaker::InitializeHeader(QuicPacketNumber packet_number, |
| 661 bool should_include_version) { | 654 bool should_include_version) { |
| 662 header_.public_header.connection_id = connection_id_; | 655 header_.public_header.connection_id = connection_id_; |
| 663 header_.public_header.reset_flag = false; | 656 header_.public_header.reset_flag = false; |
| 664 header_.public_header.version_flag = should_include_version; | 657 header_.public_header.version_flag = should_include_version; |
| 665 header_.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 658 header_.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 666 header_.packet_number = packet_number; | 659 header_.packet_number = packet_number; |
| 667 header_.entropy_flag = false; | 660 header_.entropy_flag = false; |
| 668 header_.fec_flag = false; | |
| 669 } | 661 } |
| 670 | 662 |
| 671 } // namespace test | 663 } // namespace test |
| 672 } // namespace net | 664 } // namespace net |
| OLD | NEW |