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 |