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 |