| OLD | NEW |
| 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 #ifndef NET_QUIC_QUIC_PROTOCOL_H_ | 5 #ifndef NET_QUIC_QUIC_PROTOCOL_H_ |
| 6 #define NET_QUIC_QUIC_PROTOCOL_H_ | 6 #define NET_QUIC_QUIC_PROTOCOL_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 // The available versions of QUIC. Guaranteed that the integer value of the enum | 352 // The available versions of QUIC. Guaranteed that the integer value of the enum |
| 353 // will match the version number. | 353 // will match the version number. |
| 354 // When adding a new version to this enum you should add it to | 354 // When adding a new version to this enum you should add it to |
| 355 // kSupportedQuicVersions (if appropriate), and also add a new case to the | 355 // kSupportedQuicVersions (if appropriate), and also add a new case to the |
| 356 // helper methods QuicVersionToQuicTag, QuicTagToQuicVersion, and | 356 // helper methods QuicVersionToQuicTag, QuicTagToQuicVersion, and |
| 357 // QuicVersionToString. | 357 // QuicVersionToString. |
| 358 enum QuicVersion { | 358 enum QuicVersion { |
| 359 // Special case to indicate unknown/unsupported QUIC version. | 359 // Special case to indicate unknown/unsupported QUIC version. |
| 360 QUIC_VERSION_UNSUPPORTED = 0, | 360 QUIC_VERSION_UNSUPPORTED = 0, |
| 361 | 361 |
| 362 QUIC_VERSION_25 = 25, // SPDY/4 header keys, and removal of error_details | |
| 363 // from QuicRstStreamFrame | |
| 364 QUIC_VERSION_26 = 26, // In CHLO, send XLCT tag containing hash of leaf cert | |
| 365 QUIC_VERSION_27 = 27, // Sends a nonce in the SHLO. | |
| 366 QUIC_VERSION_28 = 28, // Receiver can refuse to create a requested stream. | |
| 367 QUIC_VERSION_29 = 29, // Server and client honor QUIC_STREAM_NO_ERROR. | |
| 368 QUIC_VERSION_30 = 30, // Add server side support of cert transparency. | 362 QUIC_VERSION_30 = 30, // Add server side support of cert transparency. |
| 369 QUIC_VERSION_31 = 31, // Adds a hash of the client hello to crypto proof. | 363 QUIC_VERSION_31 = 31, // Adds a hash of the client hello to crypto proof. |
| 370 QUIC_VERSION_32 = 32, // FEC related fields are removed from wire format. | 364 QUIC_VERSION_32 = 32, // FEC related fields are removed from wire format. |
| 371 QUIC_VERSION_33 = 33, // Adds diversification nonces. | 365 QUIC_VERSION_33 = 33, // Adds diversification nonces. |
| 372 QUIC_VERSION_34 = 34, // Deprecates entropy, removes private flag from packet | 366 QUIC_VERSION_34 = 34, // Deprecates entropy, removes private flag from packet |
| 373 // header, uses new ack and stop waiting wire format. | 367 // header, uses new ack and stop waiting wire format. |
| 374 QUIC_VERSION_35 = 35, // Allows endpoints to independently set stream limit. | 368 QUIC_VERSION_35 = 35, // Allows endpoints to independently set stream limit. |
| 375 QUIC_VERSION_36 = 36, // Add support to force HOL blocking. | 369 QUIC_VERSION_36 = 36, // Add support to force HOL blocking. |
| 376 }; | 370 }; |
| 377 | 371 |
| 378 // This vector contains QUIC versions which we currently support. | 372 // This vector contains QUIC versions which we currently support. |
| 379 // This should be ordered such that the highest supported version is the first | 373 // This should be ordered such that the highest supported version is the first |
| 380 // element, with subsequent elements in descending order (versions can be | 374 // element, with subsequent elements in descending order (versions can be |
| 381 // skipped as necessary). | 375 // skipped as necessary). |
| 382 // | 376 // |
| 383 // IMPORTANT: if you are adding to this list, follow the instructions at | 377 // IMPORTANT: if you are adding to this list, follow the instructions at |
| 384 // http://sites/quic/adding-and-removing-versions | 378 // http://sites/quic/adding-and-removing-versions |
| 385 static const QuicVersion kSupportedQuicVersions[] = { | 379 static const QuicVersion kSupportedQuicVersions[] = { |
| 386 QUIC_VERSION_36, QUIC_VERSION_35, QUIC_VERSION_34, QUIC_VERSION_33, | 380 QUIC_VERSION_36, QUIC_VERSION_35, QUIC_VERSION_34, QUIC_VERSION_33, |
| 387 QUIC_VERSION_32, QUIC_VERSION_31, QUIC_VERSION_30, QUIC_VERSION_29, | 381 QUIC_VERSION_32, QUIC_VERSION_31, QUIC_VERSION_30}; |
| 388 QUIC_VERSION_28, QUIC_VERSION_27, QUIC_VERSION_26, QUIC_VERSION_25}; | |
| 389 | 382 |
| 390 typedef std::vector<QuicVersion> QuicVersionVector; | 383 typedef std::vector<QuicVersion> QuicVersionVector; |
| 391 | 384 |
| 392 // Returns a vector of QUIC versions in kSupportedQuicVersions. | 385 // Returns a vector of QUIC versions in kSupportedQuicVersions. |
| 393 NET_EXPORT_PRIVATE QuicVersionVector QuicSupportedVersions(); | 386 NET_EXPORT_PRIVATE QuicVersionVector QuicSupportedVersions(); |
| 394 | 387 |
| 395 // Returns a vector of QUIC versions from |versions| which exclude any versions | 388 // Returns a vector of QUIC versions from |versions| which exclude any versions |
| 396 // which are disabled by flags. | 389 // which are disabled by flags. |
| 397 NET_EXPORT_PRIVATE QuicVersionVector | 390 NET_EXPORT_PRIVATE QuicVersionVector |
| 398 FilterSupportedVersions(QuicVersionVector versions); | 391 FilterSupportedVersions(QuicVersionVector versions); |
| (...skipping 1105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1504 : iov(iov), iov_count(iov_count), total_length(total_length) {} | 1497 : iov(iov), iov_count(iov_count), total_length(total_length) {} |
| 1505 | 1498 |
| 1506 const struct iovec* iov; | 1499 const struct iovec* iov; |
| 1507 const int iov_count; | 1500 const int iov_count; |
| 1508 const size_t total_length; | 1501 const size_t total_length; |
| 1509 }; | 1502 }; |
| 1510 | 1503 |
| 1511 } // namespace net | 1504 } // namespace net |
| 1512 | 1505 |
| 1513 #endif // NET_QUIC_QUIC_PROTOCOL_H_ | 1506 #endif // NET_QUIC_QUIC_PROTOCOL_H_ |
| OLD | NEW |