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

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

Issue 804813010: QUIC - enabled FLAGS_allow_truncated_connection_ids_for_quic (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Enable FLAGS_allow_truncated_connection_ids_for_quic by default Created 5 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
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 13 matching lines...) Expand all
24 clock_(clock), 24 clock_(clock),
25 spdy_request_framer_(SPDY3), 25 spdy_request_framer_(SPDY3),
26 spdy_response_framer_(SPDY3) { 26 spdy_response_framer_(SPDY3) {
27 } 27 }
28 28
29 QuicTestPacketMaker::~QuicTestPacketMaker() { 29 QuicTestPacketMaker::~QuicTestPacketMaker() {
30 } 30 }
31 31
32 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRstPacket( 32 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRstPacket(
33 QuicPacketSequenceNumber num, 33 QuicPacketSequenceNumber num,
34 QuicConnectionIdLength connection_id_length,
34 bool include_version, 35 bool include_version,
35 QuicStreamId stream_id, 36 QuicStreamId stream_id,
36 QuicRstStreamErrorCode error_code) { 37 QuicRstStreamErrorCode error_code) {
37 QuicPacketHeader header; 38 QuicPacketHeader header;
38 header.public_header.connection_id = connection_id_; 39 header.public_header.connection_id = connection_id_;
40 header.public_header.connection_id_length = connection_id_length;
39 header.public_header.reset_flag = false; 41 header.public_header.reset_flag = false;
40 header.public_header.version_flag = include_version; 42 header.public_header.version_flag = include_version;
41 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; 43 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER;
42 header.packet_sequence_number = num; 44 header.packet_sequence_number = num;
43 header.entropy_flag = false; 45 header.entropy_flag = false;
44 header.fec_flag = false; 46 header.fec_flag = false;
45 header.fec_group = 0; 47 header.fec_group = 0;
46 48
47 QuicRstStreamFrame rst(stream_id, error_code, 0); 49 QuicRstStreamFrame rst(stream_id, error_code, 0);
48 return scoped_ptr<QuicEncryptedPacket>(MakePacket(header, QuicFrame(&rst))); 50 return scoped_ptr<QuicEncryptedPacket>(MakePacket(header, QuicFrame(&rst)));
49 } 51 }
50 52
51 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckAndRstPacket( 53 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckAndRstPacket(
52 QuicPacketSequenceNumber num, 54 QuicPacketSequenceNumber num,
53 bool include_version, 55 bool include_version,
54 QuicStreamId stream_id, 56 QuicStreamId stream_id,
55 QuicRstStreamErrorCode error_code, 57 QuicRstStreamErrorCode error_code,
56 QuicPacketSequenceNumber largest_received, 58 QuicPacketSequenceNumber largest_received,
57 QuicPacketSequenceNumber least_unacked, 59 QuicPacketSequenceNumber least_unacked,
58 bool send_feedback) { 60 bool send_feedback) {
59
60 QuicPacketHeader header; 61 QuicPacketHeader header;
61 header.public_header.connection_id = connection_id_; 62 header.public_header.connection_id = connection_id_;
63 header.public_header.connection_id_length = PACKET_8BYTE_CONNECTION_ID;
62 header.public_header.reset_flag = false; 64 header.public_header.reset_flag = false;
63 header.public_header.version_flag = include_version; 65 header.public_header.version_flag = include_version;
64 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; 66 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER;
65 header.packet_sequence_number = num; 67 header.packet_sequence_number = num;
66 header.entropy_flag = false; 68 header.entropy_flag = false;
67 header.fec_flag = false; 69 header.fec_flag = false;
68 header.fec_group = 0; 70 header.fec_group = 0;
69 71
70 QuicAckFrame ack(MakeAckFrame(largest_received)); 72 QuicAckFrame ack(MakeAckFrame(largest_received));
71 ack.delta_time_largest_observed = QuicTime::Delta::Zero(); 73 ack.delta_time_largest_observed = QuicTime::Delta::Zero();
(...skipping 24 matching lines...) Expand all
96 scoped_ptr<QuicPacket> packet( 98 scoped_ptr<QuicPacket> packet(
97 BuildUnsizedDataPacket(&framer, header, frames).packet); 99 BuildUnsizedDataPacket(&framer, header, frames).packet);
98 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket( 100 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket(
99 ENCRYPTION_NONE, header.packet_sequence_number, *packet)); 101 ENCRYPTION_NONE, header.packet_sequence_number, *packet));
100 } 102 }
101 103
102 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeConnectionClosePacket( 104 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeConnectionClosePacket(
103 QuicPacketSequenceNumber num) { 105 QuicPacketSequenceNumber num) {
104 QuicPacketHeader header; 106 QuicPacketHeader header;
105 header.public_header.connection_id = connection_id_; 107 header.public_header.connection_id = connection_id_;
108 header.public_header.connection_id_length = PACKET_0BYTE_CONNECTION_ID;
106 header.public_header.reset_flag = false; 109 header.public_header.reset_flag = false;
107 header.public_header.version_flag = false; 110 header.public_header.version_flag = false;
108 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; 111 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER;
109 header.packet_sequence_number = num; 112 header.packet_sequence_number = num;
110 header.entropy_flag = false; 113 header.entropy_flag = false;
111 header.fec_flag = false; 114 header.fec_flag = false;
112 header.fec_group = 0; 115 header.fec_group = 0;
113 116
114 QuicConnectionCloseFrame close; 117 QuicConnectionCloseFrame close;
115 close.error_code = QUIC_CRYPTO_VERSION_NOT_SUPPORTED; 118 close.error_code = QUIC_CRYPTO_VERSION_NOT_SUPPORTED;
116 close.error_details = "Time to panic!"; 119 close.error_details = "Time to panic!";
117 return scoped_ptr<QuicEncryptedPacket>(MakePacket(header, QuicFrame(&close))); 120 return scoped_ptr<QuicEncryptedPacket>(MakePacket(header, QuicFrame(&close)));
118 } 121 }
119 122
120 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckPacket( 123 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckPacket(
121 QuicPacketSequenceNumber sequence_number, 124 QuicPacketSequenceNumber sequence_number,
125 QuicConnectionIdLength connection_id_length,
122 QuicPacketSequenceNumber largest_received, 126 QuicPacketSequenceNumber largest_received,
123 QuicPacketSequenceNumber least_unacked, 127 QuicPacketSequenceNumber least_unacked,
124 bool send_feedback) { 128 bool send_feedback) {
125 QuicPacketHeader header; 129 QuicPacketHeader header;
126 header.public_header.connection_id = connection_id_; 130 header.public_header.connection_id = connection_id_;
131 header.public_header.connection_id_length = connection_id_length;
127 header.public_header.reset_flag = false; 132 header.public_header.reset_flag = false;
128 header.public_header.version_flag = false; 133 header.public_header.version_flag = false;
129 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; 134 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER;
130 header.packet_sequence_number = sequence_number; 135 header.packet_sequence_number = sequence_number;
131 header.entropy_flag = false; 136 header.entropy_flag = false;
132 header.fec_flag = false; 137 header.fec_flag = false;
133 header.fec_group = 0; 138 header.fec_group = 0;
134 139
135 QuicAckFrame ack(MakeAckFrame(largest_received)); 140 QuicAckFrame ack(MakeAckFrame(largest_received));
136 ack.delta_time_largest_observed = QuicTime::Delta::Zero(); 141 ack.delta_time_largest_observed = QuicTime::Delta::Zero();
(...skipping 25 matching lines...) Expand all
162 } 167 }
163 168
164 // Returns a newly created packet to send kData on stream 1. 169 // Returns a newly created packet to send kData on stream 1.
165 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeDataPacket( 170 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeDataPacket(
166 QuicPacketSequenceNumber sequence_number, 171 QuicPacketSequenceNumber sequence_number,
167 QuicStreamId stream_id, 172 QuicStreamId stream_id,
168 bool should_include_version, 173 bool should_include_version,
169 bool fin, 174 bool fin,
170 QuicStreamOffset offset, 175 QuicStreamOffset offset,
171 base::StringPiece data) { 176 base::StringPiece data) {
172 InitializeHeader(sequence_number, should_include_version); 177 InitializeHeader(sequence_number, PACKET_8BYTE_CONNECTION_ID,
178 should_include_version);
173 QuicStreamFrame frame(stream_id, fin, offset, MakeIOVector(data)); 179 QuicStreamFrame frame(stream_id, fin, offset, MakeIOVector(data));
174 return MakePacket(header_, QuicFrame(&frame)); 180 return MakePacket(header_, QuicFrame(&frame));
175 } 181 }
176 182
177 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRequestHeadersPacket( 183 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRequestHeadersPacket(
178 QuicPacketSequenceNumber sequence_number, 184 QuicPacketSequenceNumber sequence_number,
179 QuicStreamId stream_id, 185 QuicStreamId stream_id,
186 QuicConnectionIdLength connection_id_length,
180 bool should_include_version, 187 bool should_include_version,
181 bool fin, 188 bool fin,
182 const SpdyHeaderBlock& headers) { 189 const SpdyHeaderBlock& headers) {
183 InitializeHeader(sequence_number, should_include_version); 190 InitializeHeader(sequence_number, connection_id_length,
191 should_include_version);
184 SpdySynStreamIR syn_stream(stream_id); 192 SpdySynStreamIR syn_stream(stream_id);
185 syn_stream.set_name_value_block(headers); 193 syn_stream.set_name_value_block(headers);
186 syn_stream.set_fin(fin); 194 syn_stream.set_fin(fin);
187 syn_stream.set_priority(0); 195 syn_stream.set_priority(0);
188 scoped_ptr<SpdySerializedFrame> spdy_frame( 196 scoped_ptr<SpdySerializedFrame> spdy_frame(
189 spdy_request_framer_.SerializeSynStream(syn_stream)); 197 spdy_request_framer_.SerializeSynStream(syn_stream));
190 QuicStreamFrame frame(kHeadersStreamId, false, 0, 198 QuicStreamFrame frame(kHeadersStreamId, false, 0,
191 MakeIOVector(base::StringPiece(spdy_frame->data(), 199 MakeIOVector(base::StringPiece(spdy_frame->data(),
192 spdy_frame->size()))); 200 spdy_frame->size())));
193 return MakePacket(header_, QuicFrame(&frame)); 201 return MakePacket(header_, QuicFrame(&frame));
194 } 202 }
195 203
196 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeResponseHeadersPacket( 204 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeResponseHeadersPacket(
197 QuicPacketSequenceNumber sequence_number, 205 QuicPacketSequenceNumber sequence_number,
198 QuicStreamId stream_id, 206 QuicStreamId stream_id,
207 QuicConnectionIdLength connection_id_length,
199 bool should_include_version, 208 bool should_include_version,
200 bool fin, 209 bool fin,
201 const SpdyHeaderBlock& headers) { 210 const SpdyHeaderBlock& headers) {
202 InitializeHeader(sequence_number, should_include_version); 211 InitializeHeader(sequence_number, connection_id_length,
212 should_include_version);
203 SpdySynReplyIR syn_reply(stream_id); 213 SpdySynReplyIR syn_reply(stream_id);
204 syn_reply.set_name_value_block(headers); 214 syn_reply.set_name_value_block(headers);
205 syn_reply.set_fin(fin); 215 syn_reply.set_fin(fin);
206 scoped_ptr<SpdySerializedFrame> spdy_frame( 216 scoped_ptr<SpdySerializedFrame> spdy_frame(
207 spdy_response_framer_.SerializeSynReply(syn_reply)); 217 spdy_response_framer_.SerializeSynReply(syn_reply));
208 QuicStreamFrame frame(kHeadersStreamId, false, 0, 218 QuicStreamFrame frame(kHeadersStreamId, false, 0,
209 MakeIOVector(base::StringPiece(spdy_frame->data(), 219 MakeIOVector(base::StringPiece(spdy_frame->data(),
210 spdy_frame->size()))); 220 spdy_frame->size())));
211 return MakePacket(header_, QuicFrame(&frame)); 221 return MakePacket(header_, QuicFrame(&frame));
212 } 222 }
(...skipping 27 matching lines...) Expand all
240 QuicFrames frames; 250 QuicFrames frames;
241 frames.push_back(frame); 251 frames.push_back(frame);
242 scoped_ptr<QuicPacket> packet( 252 scoped_ptr<QuicPacket> packet(
243 BuildUnsizedDataPacket(&framer, header, frames).packet); 253 BuildUnsizedDataPacket(&framer, header, frames).packet);
244 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket( 254 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket(
245 ENCRYPTION_NONE, header.packet_sequence_number, *packet)); 255 ENCRYPTION_NONE, header.packet_sequence_number, *packet));
246 } 256 }
247 257
248 void QuicTestPacketMaker::InitializeHeader( 258 void QuicTestPacketMaker::InitializeHeader(
249 QuicPacketSequenceNumber sequence_number, 259 QuicPacketSequenceNumber sequence_number,
260 QuicConnectionIdLength connection_id_length,
250 bool should_include_version) { 261 bool should_include_version) {
251 header_.public_header.connection_id = connection_id_; 262 header_.public_header.connection_id = connection_id_;
263 header_.public_header.connection_id_length = connection_id_length;
252 header_.public_header.reset_flag = false; 264 header_.public_header.reset_flag = false;
253 header_.public_header.version_flag = should_include_version; 265 header_.public_header.version_flag = should_include_version;
254 header_.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; 266 header_.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER;
255 header_.packet_sequence_number = sequence_number; 267 header_.packet_sequence_number = sequence_number;
256 header_.fec_group = 0; 268 header_.fec_group = 0;
257 header_.entropy_flag = false; 269 header_.entropy_flag = false;
258 header_.fec_flag = false; 270 header_.fec_flag = false;
259 } 271 }
260 272
261 } // namespace test 273 } // namespace test
262 } // namespace net 274 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698