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

Side by Side Diff: net/quic/test_tools/quic_test_packet_maker.cc

Issue 1327923002: Migrates QUIC sessions to a new network when old network is (about to be) disconnected. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@home
Patch Set: Rebase. Created 4 years, 11 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 unified diff | Download patch
« no previous file with comments | « net/quic/test_tools/quic_test_packet_maker.h ('k') | net/socket/socket_test_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 8
9 #include "net/quic/quic_framer.h" 9 #include "net/quic/quic_framer.h"
10 #include "net/quic/quic_http_utils.h" 10 #include "net/quic/quic_http_utils.h"
(...skipping 15 matching lines...) Expand all
26 host_(host), 26 host_(host),
27 spdy_request_framer_(HTTP2), 27 spdy_request_framer_(HTTP2),
28 spdy_response_framer_(HTTP2) {} 28 spdy_response_framer_(HTTP2) {}
29 29
30 QuicTestPacketMaker::~QuicTestPacketMaker() {} 30 QuicTestPacketMaker::~QuicTestPacketMaker() {}
31 31
32 void QuicTestPacketMaker::set_hostname(const std::string& host) { 32 void QuicTestPacketMaker::set_hostname(const std::string& host) {
33 host_.assign(host); 33 host_.assign(host);
34 } 34 }
35 35
36 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakePingPacket(
37 QuicPacketNumber num,
38 bool include_version) {
39 QuicPacketHeader header;
40 header.public_header.connection_id = connection_id_;
41 header.public_header.reset_flag = false;
42 header.public_header.version_flag = include_version;
43 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER;
44 header.packet_number = num;
45 header.entropy_flag = false;
46 header.fec_flag = false;
47 header.fec_group = 0;
48
49 QuicPingFrame ping;
50 return scoped_ptr<QuicEncryptedPacket>(MakePacket(header, QuicFrame(ping)));
51 }
52
36 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRstPacket( 53 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRstPacket(
37 QuicPacketNumber num, 54 QuicPacketNumber num,
38 bool include_version, 55 bool include_version,
39 QuicStreamId stream_id, 56 QuicStreamId stream_id,
40 QuicRstStreamErrorCode error_code) { 57 QuicRstStreamErrorCode error_code) {
41 QuicPacketHeader header; 58 QuicPacketHeader header;
42 header.public_header.connection_id = connection_id_; 59 header.public_header.connection_id = connection_id_;
43 header.public_header.reset_flag = false; 60 header.public_header.reset_flag = false;
44 header.public_header.version_flag = include_version; 61 header.public_header.version_flag = include_version;
45 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; 62 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER;
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 QuicStreamId stream_id, 242 QuicStreamId stream_id,
226 bool should_include_version, 243 bool should_include_version,
227 bool fin, 244 bool fin,
228 QuicStreamOffset offset, 245 QuicStreamOffset offset,
229 base::StringPiece data) { 246 base::StringPiece data) {
230 InitializeHeader(packet_number, should_include_version); 247 InitializeHeader(packet_number, should_include_version);
231 QuicStreamFrame frame(stream_id, fin, offset, data); 248 QuicStreamFrame frame(stream_id, fin, offset, data);
232 return MakePacket(header_, QuicFrame(&frame)); 249 return MakePacket(header_, QuicFrame(&frame));
233 } 250 }
234 251
252 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckAndDataPacket(
253 QuicPacketNumber packet_number,
254 bool include_version,
255 QuicStreamId stream_id,
256 QuicPacketNumber largest_received,
257 QuicPacketNumber least_unacked,
258 bool fin,
259 QuicStreamOffset offset,
260 base::StringPiece data) {
261 InitializeHeader(packet_number, include_version);
262
263 QuicAckFrame ack(MakeAckFrame(largest_received));
264 ack.delta_time_largest_observed = QuicTime::Delta::Zero();
265 for (QuicPacketNumber i = least_unacked; i <= largest_received; ++i) {
266 ack.received_packet_times.push_back(make_pair(i, clock_->Now()));
267 }
268 QuicFrames frames;
269 frames.push_back(QuicFrame(&ack));
270
271 QuicStopWaitingFrame stop_waiting;
272 stop_waiting.least_unacked = least_unacked;
273 frames.push_back(QuicFrame(&stop_waiting));
274
275 QuicStreamFrame stream_frame(stream_id, fin, offset, data);
276 frames.push_back(QuicFrame(&stream_frame));
277
278 return MakeMultipleFramesPacket(header_, frames);
279 }
280
235 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRequestHeadersPacket( 281 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRequestHeadersPacket(
236 QuicPacketNumber packet_number, 282 QuicPacketNumber packet_number,
237 QuicStreamId stream_id, 283 QuicStreamId stream_id,
238 bool should_include_version, 284 bool should_include_version,
239 bool fin, 285 bool fin,
240 SpdyPriority priority, 286 SpdyPriority priority,
241 const SpdyHeaderBlock& headers, 287 const SpdyHeaderBlock& headers,
242 size_t* spdy_headers_frame_length) { 288 size_t* spdy_headers_frame_length) {
243 return MakeRequestHeadersPacket(packet_number, stream_id, 289 return MakeRequestHeadersPacket(packet_number, stream_id,
244 should_include_version, fin, priority, 290 should_include_version, fin, priority,
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 SpdyHeaderBlock headers; 445 SpdyHeaderBlock headers;
400 headers[":status"] = status; 446 headers[":status"] = status;
401 headers["Alt-Svc"] = alt_svc; 447 headers["Alt-Svc"] = alt_svc;
402 headers["content-type"] = "text/plain"; 448 headers["content-type"] = "text/plain";
403 return headers; 449 return headers;
404 } 450 }
405 451
406 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakePacket( 452 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakePacket(
407 const QuicPacketHeader& header, 453 const QuicPacketHeader& header,
408 const QuicFrame& frame) { 454 const QuicFrame& frame) {
455 QuicFrames frames;
456 frames.push_back(frame);
457 return MakeMultipleFramesPacket(header, frames);
458 }
459
460 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeMultipleFramesPacket(
461 const QuicPacketHeader& header,
462 const QuicFrames& frames) {
409 QuicFramer framer(SupportedVersions(version_), QuicTime::Zero(), 463 QuicFramer framer(SupportedVersions(version_), QuicTime::Zero(),
410 Perspective::IS_CLIENT); 464 Perspective::IS_CLIENT);
411 QuicFrames frames;
412 frames.push_back(frame);
413 scoped_ptr<QuicPacket> packet( 465 scoped_ptr<QuicPacket> packet(
414 BuildUnsizedDataPacket(&framer, header, frames)); 466 BuildUnsizedDataPacket(&framer, header, frames));
415 char buffer[kMaxPacketSize]; 467 char buffer[kMaxPacketSize];
416 size_t encrypted_size = framer.EncryptPayload( 468 size_t encrypted_size = framer.EncryptPayload(
417 ENCRYPTION_NONE, header.packet_number, *packet, buffer, kMaxPacketSize); 469 ENCRYPTION_NONE, header.packet_number, *packet, buffer, kMaxPacketSize);
418 EXPECT_NE(0u, encrypted_size); 470 EXPECT_NE(0u, encrypted_size);
419 QuicEncryptedPacket encrypted(buffer, encrypted_size, false); 471 QuicEncryptedPacket encrypted(buffer, encrypted_size, false);
420 return scoped_ptr<QuicEncryptedPacket>(encrypted.Clone()); 472 return scoped_ptr<QuicEncryptedPacket>(encrypted.Clone());
421 } 473 }
422 474
423 void QuicTestPacketMaker::InitializeHeader(QuicPacketNumber packet_number, 475 void QuicTestPacketMaker::InitializeHeader(QuicPacketNumber packet_number,
424 bool should_include_version) { 476 bool should_include_version) {
425 header_.public_header.connection_id = connection_id_; 477 header_.public_header.connection_id = connection_id_;
426 header_.public_header.reset_flag = false; 478 header_.public_header.reset_flag = false;
427 header_.public_header.version_flag = should_include_version; 479 header_.public_header.version_flag = should_include_version;
428 header_.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; 480 header_.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER;
429 header_.packet_number = packet_number; 481 header_.packet_number = packet_number;
430 header_.fec_group = 0; 482 header_.fec_group = 0;
431 header_.entropy_flag = false; 483 header_.entropy_flag = false;
432 header_.fec_flag = false; 484 header_.fec_flag = false;
433 } 485 }
434 486
435 } // namespace test 487 } // namespace test
436 } // namespace net 488 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/test_tools/quic_test_packet_maker.h ('k') | net/socket/socket_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698