Index: trunk/src/net/quic/quic_protocol.h |
=================================================================== |
--- trunk/src/net/quic/quic_protocol.h (revision 204061) |
+++ trunk/src/net/quic/quic_protocol.h (working copy) |
@@ -53,6 +53,8 @@ |
const size_t kPublicFlagsSize = 1; |
// Number of bytes reserved for version number in the packet header. |
const size_t kQuicVersionSize = 4; |
+// Number of bytes reserved for sequence number in the packet header. |
+const size_t kSequenceNumberSize = 6; |
// Number of bytes reserved for private flags in the packet header. |
const size_t kPrivateFlagsSize = 1; |
// Number of bytes reserved for FEC group in the packet header. |
@@ -117,13 +119,6 @@ |
IN_FEC_GROUP, |
}; |
-enum QuicSequenceNumberLength { |
- PACKET_1BYTE_SEQUENCE_NUMBER = 1, |
- PACKET_2BYTE_SEQUENCE_NUMBER = 2, |
- PACKET_4BYTE_SEQUENCE_NUMBER = 4, |
- PACKET_6BYTE_SEQUENCE_NUMBER = 6 |
-}; |
- |
enum QuicPacketPublicFlags { |
PACKET_PUBLIC_FLAGS_NONE = 0, |
PACKET_PUBLIC_FLAGS_VERSION = 1 << 0, // Packet header contains version info. |
@@ -133,12 +128,7 @@ |
PACKET_PUBLIC_FLAGS_1BYTE_GUID = 1 << 2, |
PACKET_PUBLIC_FLAGS_4BYTE_GUID = 1 << 3, |
PACKET_PUBLIC_FLAGS_8BYTE_GUID = 1 << 3 | 1 << 2, |
- // Packet sequence number length in bytes. |
- PACKET_PUBLIC_FLAGS_1BYTE_SEQUENCE = 0, |
- PACKET_PUBLIC_FLAGS_2BYTE_SEQUENCE = 1 << 4, |
- PACKET_PUBLIC_FLAGS_4BYTE_SEQUENCE = 1 << 5, |
- PACKET_PUBLIC_FLAGS_6BYTE_SEQUENCE = 1 << 5 | 1 << 4, |
- PACKET_PUBLIC_FLAGS_MAX = (1 << 6) - 1 // All bits set. |
+ PACKET_PUBLIC_FLAGS_MAX = (1 << 4) - 1 // All bits set. |
}; |
enum QuicPacketPrivateFlags { |
@@ -152,25 +142,19 @@ |
// Size in bytes of the data or fec packet header. |
NET_EXPORT_PRIVATE size_t GetPacketHeaderSize(QuicPacketHeader header); |
-NET_EXPORT_PRIVATE size_t GetPacketHeaderSize( |
- QuicGuidLength guid_length, |
- bool include_version, |
- QuicSequenceNumberLength sequence_number_length, |
- InFecGroup is_in_fec_group); |
+NET_EXPORT_PRIVATE size_t GetPacketHeaderSize(QuicGuidLength guid_length, |
+ bool include_version, |
+ InFecGroup is_in_fec_group); |
// Size in bytes of the public reset packet. |
NET_EXPORT_PRIVATE size_t GetPublicResetPacketSize(); |
// Index of the first byte in a QUIC packet of FEC protected data. |
-NET_EXPORT_PRIVATE size_t GetStartOfFecProtectedData( |
- QuicGuidLength guid_length, |
- bool include_version, |
- QuicSequenceNumberLength sequence_number_length); |
+NET_EXPORT_PRIVATE size_t GetStartOfFecProtectedData(QuicGuidLength guid_length, |
+ bool include_version); |
// Index of the first byte in a QUIC packet of encrypted data. |
-NET_EXPORT_PRIVATE size_t GetStartOfEncryptedData( |
- QuicGuidLength guid_length, |
- bool include_version, |
- QuicSequenceNumberLength sequence_number_length); |
+NET_EXPORT_PRIVATE size_t GetStartOfEncryptedData(QuicGuidLength guid_length, |
+ bool include_version); |
enum QuicRstStreamErrorCode { |
QUIC_STREAM_NO_ERROR = 0, |
@@ -311,7 +295,7 @@ |
// Each time the wire format changes, this need needs to be incremented. |
// At some point, we will actually freeze the wire format and make an official |
// version number, but this works for now. |
-const QuicTag kQuicVersion1 = TAG('Q', '0', '0', '6'); |
+const QuicTag kQuicVersion1 = TAG('Q', '0', '0', '5'); |
#undef TAG |
// MakeQuicTag returns a value given the four bytes. For example: |
@@ -330,7 +314,6 @@ |
QuicGuidLength guid_length; |
bool reset_flag; |
bool version_flag; |
- QuicSequenceNumberLength sequence_number_length; |
QuicTagVector versions; |
}; |
@@ -594,6 +577,8 @@ |
struct NET_EXPORT_PRIVATE QuicFecData { |
QuicFecData(); |
+ bool operator==(const QuicFecData& other) const; |
+ |
// The FEC group number is also the sequence number of the first |
// FEC protected packet. The last protected packet's sequence number will |
// be one less than the sequence number of the FEC packet. |
@@ -636,26 +621,22 @@ |
class NET_EXPORT_PRIVATE QuicPacket : public QuicData { |
public: |
- static QuicPacket* NewDataPacket( |
- char* buffer, |
- size_t length, |
- bool owns_buffer, |
- QuicGuidLength guid_length, |
- bool includes_version, |
- QuicSequenceNumberLength sequence_number_length) { |
- return new QuicPacket(buffer, length, owns_buffer, guid_length, |
- includes_version, sequence_number_length, false); |
+ static QuicPacket* NewDataPacket(char* buffer, |
+ size_t length, |
+ bool owns_buffer, |
+ QuicGuidLength guid_length, |
+ bool includes_version) { |
+ return new QuicPacket( |
+ buffer, length, owns_buffer, guid_length, includes_version, false); |
} |
- static QuicPacket* NewFecPacket( |
- char* buffer, |
- size_t length, |
- bool owns_buffer, |
- QuicGuidLength guid_length, |
- bool includes_version, |
- QuicSequenceNumberLength sequence_number_length) { |
- return new QuicPacket(buffer, length, owns_buffer, guid_length, |
- includes_version, sequence_number_length, true); |
+ static QuicPacket* NewFecPacket(char* buffer, |
+ size_t length, |
+ bool owns_buffer, |
+ QuicGuidLength guid_length, |
+ bool includes_version) { |
+ return new QuicPacket( |
+ buffer, length, owns_buffer, guid_length, includes_version, true); |
} |
base::StringPiece FecProtectedData() const; |
@@ -675,20 +656,17 @@ |
bool owns_buffer, |
QuicGuidLength guid_length, |
bool includes_version, |
- QuicSequenceNumberLength sequence_number_length, |
bool is_fec_packet) |
: QuicData(buffer, length, owns_buffer), |
buffer_(buffer), |
is_fec_packet_(is_fec_packet), |
guid_length_(guid_length), |
- includes_version_(includes_version), |
- sequence_number_length_(sequence_number_length) {} |
+ includes_version_(includes_version) {} |
char* buffer_; |
const bool is_fec_packet_; |
const QuicGuidLength guid_length_; |
const bool includes_version_; |
- const QuicSequenceNumberLength sequence_number_length_; |
DISALLOW_COPY_AND_ASSIGN(QuicPacket); |
}; |