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

Side by Side Diff: trunk/src/net/quic/quic_protocol.cc

Issue 16374004: Revert 204046 "Land Recent QUIC changes." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « trunk/src/net/quic/quic_protocol.h ('k') | trunk/src/net/quic/quic_session.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/quic_protocol.h" 5 #include "net/quic/quic_protocol.h"
6 #include "base/stl_util.h" 6 #include "base/stl_util.h"
7 7
8 using base::StringPiece; 8 using base::StringPiece;
9 using std::map; 9 using std::map;
10 using std::numeric_limits; 10 using std::numeric_limits;
11 using std::ostream; 11 using std::ostream;
12 using std::string; 12 using std::string;
13 13
14 namespace net { 14 namespace net {
15 15
16 size_t GetPacketHeaderSize(QuicPacketHeader header) { 16 size_t GetPacketHeaderSize(QuicPacketHeader header) {
17 return GetPacketHeaderSize(header.public_header.guid_length, 17 return GetPacketHeaderSize(header.public_header.guid_length,
18 header.public_header.version_flag, 18 header.public_header.version_flag,
19 header.public_header.sequence_number_length,
20 header.is_in_fec_group); 19 header.is_in_fec_group);
21 } 20 }
22 21
23 size_t GetPacketHeaderSize(QuicGuidLength guid_length, 22 size_t GetPacketHeaderSize(QuicGuidLength guid_length,
24 bool include_version, 23 bool include_version,
25 QuicSequenceNumberLength sequence_number_length,
26 InFecGroup is_in_fec_group) { 24 InFecGroup is_in_fec_group) {
27 return kPublicFlagsSize + guid_length + 25 return kPublicFlagsSize + guid_length +
28 (include_version ? kQuicVersionSize : 0) + sequence_number_length + 26 (include_version ? kQuicVersionSize : 0) + kSequenceNumberSize +
29 kPrivateFlagsSize + (is_in_fec_group == IN_FEC_GROUP ? kFecGroupSize : 0); 27 kPrivateFlagsSize + (is_in_fec_group == IN_FEC_GROUP ? kFecGroupSize : 0);
30 } 28 }
31 29
32 size_t GetPublicResetPacketSize() { 30 size_t GetPublicResetPacketSize() {
33 return kPublicFlagsSize + PACKET_8BYTE_GUID + kPublicResetNonceSize + 31 return kPublicFlagsSize + PACKET_8BYTE_GUID + kPublicResetNonceSize +
34 PACKET_6BYTE_SEQUENCE_NUMBER; 32 kSequenceNumberSize;
35 } 33 }
36 34
37 size_t GetStartOfFecProtectedData( 35 size_t GetStartOfFecProtectedData(QuicGuidLength guid_length,
38 QuicGuidLength guid_length, 36 bool include_version) {
39 bool include_version, 37 return GetPacketHeaderSize(guid_length, include_version, IN_FEC_GROUP);
40 QuicSequenceNumberLength sequence_number_length) {
41 return GetPacketHeaderSize(
42 guid_length, include_version, sequence_number_length, IN_FEC_GROUP);
43 } 38 }
44 39
45 size_t GetStartOfEncryptedData( 40 size_t GetStartOfEncryptedData(QuicGuidLength guid_length,
46 QuicGuidLength guid_length, 41 bool include_version) {
47 bool include_version,
48 QuicSequenceNumberLength sequence_number_length) {
49 // Don't include the fec size, since encryption starts before private flags. 42 // Don't include the fec size, since encryption starts before private flags.
50 return GetPacketHeaderSize( 43 return GetPacketHeaderSize(guid_length, include_version, NOT_IN_FEC_GROUP) -
51 guid_length, include_version, sequence_number_length, NOT_IN_FEC_GROUP) -
52 kPrivateFlagsSize; 44 kPrivateFlagsSize;
53 } 45 }
54 46
55 uint32 MakeQuicTag(char a, char b, char c, char d) { 47 uint32 MakeQuicTag(char a, char b, char c, char d) {
56 return static_cast<uint32>(a) | 48 return static_cast<uint32>(a) |
57 static_cast<uint32>(b) << 8 | 49 static_cast<uint32>(b) << 8 |
58 static_cast<uint32>(c) << 16 | 50 static_cast<uint32>(c) << 16 |
59 static_cast<uint32>(d) << 24; 51 static_cast<uint32>(d) << 24;
60 } 52 }
61 53
62 QuicPacketPublicHeader::QuicPacketPublicHeader() 54 QuicPacketPublicHeader::QuicPacketPublicHeader()
63 : guid(0), 55 : guid(0),
64 guid_length(PACKET_8BYTE_GUID), 56 guid_length(PACKET_8BYTE_GUID),
65 reset_flag(false), 57 reset_flag(false),
66 version_flag(false), 58 version_flag(false) {
67 sequence_number_length(PACKET_6BYTE_SEQUENCE_NUMBER) {
68 } 59 }
69 60
70 QuicPacketPublicHeader::QuicPacketPublicHeader( 61 QuicPacketPublicHeader::QuicPacketPublicHeader(
71 const QuicPacketPublicHeader& other) 62 const QuicPacketPublicHeader& other)
72 : guid(other.guid), 63 : guid(other.guid),
73 guid_length(other.guid_length), 64 guid_length(other.guid_length),
74 reset_flag(other.reset_flag), 65 reset_flag(other.reset_flag),
75 version_flag(other.version_flag), 66 version_flag(other.version_flag),
76 sequence_number_length(other.sequence_number_length),
77 versions(other.versions) { 67 versions(other.versions) {
78 } 68 }
79 69
80 QuicPacketPublicHeader::~QuicPacketPublicHeader() {} 70 QuicPacketPublicHeader::~QuicPacketPublicHeader() {}
81 71
82 QuicPacketPublicHeader& QuicPacketPublicHeader::operator=( 72 QuicPacketPublicHeader& QuicPacketPublicHeader::operator=(
83 const QuicPacketPublicHeader& other) { 73 const QuicPacketPublicHeader& other) {
84 guid = other.guid; 74 guid = other.guid;
85 reset_flag = other.reset_flag; 75 reset_flag = other.reset_flag;
86 version_flag = other.version_flag; 76 version_flag = other.version_flag;
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 QuicStreamId last_good_stream_id, 244 QuicStreamId last_good_stream_id,
255 const string& reason) 245 const string& reason)
256 : error_code(error_code), 246 : error_code(error_code),
257 last_good_stream_id(last_good_stream_id), 247 last_good_stream_id(last_good_stream_id),
258 reason_phrase(reason) { 248 reason_phrase(reason) {
259 DCHECK_LE(error_code, numeric_limits<uint8>::max()); 249 DCHECK_LE(error_code, numeric_limits<uint8>::max());
260 } 250 }
261 251
262 QuicFecData::QuicFecData() {} 252 QuicFecData::QuicFecData() {}
263 253
254 bool QuicFecData::operator==(const QuicFecData& other) const {
255 if (fec_group != other.fec_group) {
256 return false;
257 }
258 if (redundancy != other.redundancy) {
259 return false;
260 }
261 return true;
262 }
263
264 QuicData::~QuicData() { 264 QuicData::~QuicData() {
265 if (owns_buffer_) { 265 if (owns_buffer_) {
266 delete [] const_cast<char*>(buffer_); 266 delete [] const_cast<char*>(buffer_);
267 } 267 }
268 } 268 }
269 269
270 StringPiece QuicPacket::FecProtectedData() const { 270 StringPiece QuicPacket::FecProtectedData() const {
271 const size_t start_of_fec = GetStartOfFecProtectedData( 271 const size_t start_of_fec = GetStartOfFecProtectedData(guid_length_,
272 guid_length_, includes_version_, sequence_number_length_); 272 includes_version_);
273 return StringPiece(data() + start_of_fec, length() - start_of_fec); 273 return StringPiece(data() + start_of_fec, length() - start_of_fec);
274 } 274 }
275 275
276 StringPiece QuicPacket::AssociatedData() const { 276 StringPiece QuicPacket::AssociatedData() const {
277 return StringPiece( 277 return StringPiece(data() + kStartOfHashData,
278 data() + kStartOfHashData, 278 GetStartOfEncryptedData(guid_length_, includes_version_) -
279 GetStartOfEncryptedData( 279 kStartOfHashData);
280 guid_length_, includes_version_, sequence_number_length_) -
281 kStartOfHashData);
282 } 280 }
283 281
284 StringPiece QuicPacket::BeforePlaintext() const { 282 StringPiece QuicPacket::BeforePlaintext() const {
285 return StringPiece(data(), GetStartOfEncryptedData(guid_length_, 283 return StringPiece(data(), GetStartOfEncryptedData(guid_length_,
286 includes_version_, 284 includes_version_));
287 sequence_number_length_));
288 } 285 }
289 286
290 StringPiece QuicPacket::Plaintext() const { 287 StringPiece QuicPacket::Plaintext() const {
291 const size_t start_of_encrypted_data = 288 const size_t start_of_encrypted_data =
292 GetStartOfEncryptedData( 289 GetStartOfEncryptedData(guid_length_, includes_version_);
293 guid_length_, includes_version_, sequence_number_length_);
294 return StringPiece(data() + start_of_encrypted_data, 290 return StringPiece(data() + start_of_encrypted_data,
295 length() - start_of_encrypted_data); 291 length() - start_of_encrypted_data);
296 } 292 }
297 293
298 RetransmittableFrames::RetransmittableFrames() 294 RetransmittableFrames::RetransmittableFrames()
299 : encryption_level_(NUM_ENCRYPTION_LEVELS) { 295 : encryption_level_(NUM_ENCRYPTION_LEVELS) {
300 } 296 }
301 297
302 RetransmittableFrames::~RetransmittableFrames() { 298 RetransmittableFrames::~RetransmittableFrames() {
303 for (QuicFrames::iterator it = frames_.begin(); it != frames_.end(); ++it) { 299 for (QuicFrames::iterator it = frames_.begin(); it != frames_.end(); ++it) {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 return os; 354 return os;
359 } 355 }
360 356
361 ostream& operator<<(ostream& os, const QuicConsumedData& s) { 357 ostream& operator<<(ostream& os, const QuicConsumedData& s) {
362 os << "bytes_consumed: " << s.bytes_consumed 358 os << "bytes_consumed: " << s.bytes_consumed
363 << " fin_consumed: " << s.fin_consumed; 359 << " fin_consumed: " << s.fin_consumed;
364 return os; 360 return os;
365 } 361 }
366 362
367 } // namespace net 363 } // namespace net
OLDNEW
« no previous file with comments | « trunk/src/net/quic/quic_protocol.h ('k') | trunk/src/net/quic/quic_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698