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 <limits> | 9 #include <limits> |
10 #include <list> | 10 #include <list> |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 const int kUFloat16MantissaBits = 16 - kUFloat16ExponentBits; // 11 | 137 const int kUFloat16MantissaBits = 16 - kUFloat16ExponentBits; // 11 |
138 const int kUFloat16MantissaEffectiveBits = kUFloat16MantissaBits + 1; // 12 | 138 const int kUFloat16MantissaEffectiveBits = kUFloat16MantissaBits + 1; // 12 |
139 const uint64 kUFloat16MaxValue = // 0x3FFC0000000 | 139 const uint64 kUFloat16MaxValue = // 0x3FFC0000000 |
140 ((GG_UINT64_C(1) << kUFloat16MantissaEffectiveBits) - 1) << | 140 ((GG_UINT64_C(1) << kUFloat16MantissaEffectiveBits) - 1) << |
141 kUFloat16MaxExponent; | 141 kUFloat16MaxExponent; |
142 | 142 |
143 enum TransmissionType { | 143 enum TransmissionType { |
144 NOT_RETRANSMISSION, | 144 NOT_RETRANSMISSION, |
145 FIRST_TRANSMISSION_TYPE = NOT_RETRANSMISSION, | 145 FIRST_TRANSMISSION_TYPE = NOT_RETRANSMISSION, |
146 HANDSHAKE_RETRANSMISSION, // Retransmits due to handshake timeouts. | 146 HANDSHAKE_RETRANSMISSION, // Retransmits due to handshake timeouts. |
147 ALL_UNACKED_RETRANSMISSION, // Retransmits of all unacked packets. | 147 ALL_UNACKED_RETRANSMISSION, // Retransmits all unacked packets. |
| 148 ALL_INITIAL_RETRANSMISSION, // Retransmits all initially encrypted packets. |
148 LOSS_RETRANSMISSION, // Retransmits due to loss detection. | 149 LOSS_RETRANSMISSION, // Retransmits due to loss detection. |
149 RTO_RETRANSMISSION, // Retransmits due to retransmit time out. | 150 RTO_RETRANSMISSION, // Retransmits due to retransmit time out. |
150 TLP_RETRANSMISSION, // Tail loss probes. | 151 TLP_RETRANSMISSION, // Tail loss probes. |
151 LAST_TRANSMISSION_TYPE = TLP_RETRANSMISSION, | 152 LAST_TRANSMISSION_TYPE = TLP_RETRANSMISSION, |
152 }; | 153 }; |
153 | 154 |
154 enum RetransmissionType { | |
155 INITIAL_ENCRYPTION_ONLY, | |
156 ALL_PACKETS | |
157 }; | |
158 | |
159 enum HasRetransmittableData { | 155 enum HasRetransmittableData { |
160 NO_RETRANSMITTABLE_DATA, | 156 NO_RETRANSMITTABLE_DATA, |
161 HAS_RETRANSMITTABLE_DATA, | 157 HAS_RETRANSMITTABLE_DATA, |
162 }; | 158 }; |
163 | 159 |
164 enum IsHandshake { | 160 enum IsHandshake { |
165 NOT_HANDSHAKE, | 161 NOT_HANDSHAKE, |
166 IS_HANDSHAKE | 162 IS_HANDSHAKE |
167 }; | 163 }; |
168 | 164 |
(...skipping 900 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1069 // Zero when the packet is serialized, non-zero once it's sent. | 1065 // Zero when the packet is serialized, non-zero once it's sent. |
1070 QuicByteCount bytes_sent; | 1066 QuicByteCount bytes_sent; |
1071 size_t nack_count; | 1067 size_t nack_count; |
1072 // Reason why this packet was transmitted. | 1068 // Reason why this packet was transmitted. |
1073 TransmissionType transmission_type; | 1069 TransmissionType transmission_type; |
1074 // Stores the sequence numbers of all transmissions of this packet. | 1070 // Stores the sequence numbers of all transmissions of this packet. |
1075 // Must always be NULL or have multiple elements. | 1071 // Must always be NULL or have multiple elements. |
1076 SequenceNumberList* all_transmissions; | 1072 SequenceNumberList* all_transmissions; |
1077 // In flight packets have not been abandoned or lost. | 1073 // In flight packets have not been abandoned or lost. |
1078 bool in_flight; | 1074 bool in_flight; |
| 1075 // True if the packet can never be acked, so it can be removed. |
| 1076 bool is_unackable; |
1079 }; | 1077 }; |
1080 | 1078 |
1081 } // namespace net | 1079 } // namespace net |
1082 | 1080 |
1083 #endif // NET_QUIC_QUIC_PROTOCOL_H_ | 1081 #endif // NET_QUIC_QUIC_PROTOCOL_H_ |
OLD | NEW |