| 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 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 338 PACKET_PUBLIC_FLAGS_MAX = (1 << 7) - 1, | 338 PACKET_PUBLIC_FLAGS_MAX = (1 << 7) - 1, |
| 339 }; | 339 }; |
| 340 | 340 |
| 341 // The private flags are specified in one byte. | 341 // The private flags are specified in one byte. |
| 342 enum QuicPacketPrivateFlags { | 342 enum QuicPacketPrivateFlags { |
| 343 PACKET_PRIVATE_FLAGS_NONE = 0, | 343 PACKET_PRIVATE_FLAGS_NONE = 0, |
| 344 | 344 |
| 345 // Bit 0: Does this packet contain an entropy bit? | 345 // Bit 0: Does this packet contain an entropy bit? |
| 346 PACKET_PRIVATE_FLAGS_ENTROPY = 1 << 0, | 346 PACKET_PRIVATE_FLAGS_ENTROPY = 1 << 0, |
| 347 | 347 |
| 348 // Bit 1: Payload is part of an FEC group? | 348 // (bits 1-7 are not used): 00000001 |
| 349 PACKET_PRIVATE_FLAGS_FEC_GROUP = 1 << 1, | 349 PACKET_PRIVATE_FLAGS_MAX = (1 << 1) - 1 |
| 350 | |
| 351 // Bit 2: Payload is FEC as opposed to frames? | |
| 352 PACKET_PRIVATE_FLAGS_FEC = 1 << 2, | |
| 353 | |
| 354 // All bits set (bits 3-7 are not currently used): 00000111 | |
| 355 PACKET_PRIVATE_FLAGS_MAX = (1 << 3) - 1, | |
| 356 | |
| 357 // For version 32 (bits 1-7 are not used): 00000001 | |
| 358 PACKET_PRIVATE_FLAGS_MAX_VERSION_32 = (1 << 1) - 1 | |
| 359 }; | 350 }; |
| 360 | 351 |
| 361 // 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 |
| 362 // will match the version number. | 353 // will match the version number. |
| 363 // 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 |
| 364 // kSupportedQuicVersions (if appropriate), and also add a new case to the | 355 // kSupportedQuicVersions (if appropriate), and also add a new case to the |
| 365 // helper methods QuicVersionToQuicTag, QuicTagToQuicVersion, and | 356 // helper methods QuicVersionToQuicTag, QuicTagToQuicVersion, and |
| 366 // QuicVersionToString. | 357 // QuicVersionToString. |
| 367 enum QuicVersion { | 358 enum QuicVersion { |
| 368 // Special case to indicate unknown/unsupported QUIC version. | 359 // Special case to indicate unknown/unsupported QUIC version. |
| (...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 765 QuicPacketHeader(const QuicPacketHeader& other); | 756 QuicPacketHeader(const QuicPacketHeader& other); |
| 766 | 757 |
| 767 NET_EXPORT_PRIVATE friend std::ostream& operator<<(std::ostream& os, | 758 NET_EXPORT_PRIVATE friend std::ostream& operator<<(std::ostream& os, |
| 768 const QuicPacketHeader& s); | 759 const QuicPacketHeader& s); |
| 769 | 760 |
| 770 QuicPacketPublicHeader public_header; | 761 QuicPacketPublicHeader public_header; |
| 771 QuicPacketNumber packet_number; | 762 QuicPacketNumber packet_number; |
| 772 QuicPathId path_id; | 763 QuicPathId path_id; |
| 773 bool entropy_flag; | 764 bool entropy_flag; |
| 774 QuicPacketEntropyHash entropy_hash; | 765 QuicPacketEntropyHash entropy_hash; |
| 775 bool fec_flag; | |
| 776 }; | 766 }; |
| 777 | 767 |
| 778 struct NET_EXPORT_PRIVATE QuicPublicResetPacket { | 768 struct NET_EXPORT_PRIVATE QuicPublicResetPacket { |
| 779 QuicPublicResetPacket(); | 769 QuicPublicResetPacket(); |
| 780 explicit QuicPublicResetPacket(const QuicPacketPublicHeader& header); | 770 explicit QuicPublicResetPacket(const QuicPacketPublicHeader& header); |
| 781 | 771 |
| 782 QuicPacketPublicHeader public_header; | 772 QuicPacketPublicHeader public_header; |
| 783 QuicPublicResetNonceProof nonce_proof; | 773 QuicPublicResetNonceProof nonce_proof; |
| 784 QuicPacketNumber rejected_packet_number; | 774 QuicPacketNumber rejected_packet_number; |
| 785 IPEndPoint client_address; | 775 IPEndPoint client_address; |
| (...skipping 754 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1540 : iov(iov), iov_count(iov_count), total_length(total_length) {} | 1530 : iov(iov), iov_count(iov_count), total_length(total_length) {} |
| 1541 | 1531 |
| 1542 const struct iovec* iov; | 1532 const struct iovec* iov; |
| 1543 const int iov_count; | 1533 const int iov_count; |
| 1544 const size_t total_length; | 1534 const size_t total_length; |
| 1545 }; | 1535 }; |
| 1546 | 1536 |
| 1547 } // namespace net | 1537 } // namespace net |
| 1548 | 1538 |
| 1549 #endif // NET_QUIC_QUIC_PROTOCOL_H_ | 1539 #endif // NET_QUIC_QUIC_PROTOCOL_H_ |
| OLD | NEW |