Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Side by Side Diff: net/quic/core/quic_protocol.h

Issue 2515613002: deprecate FLAGS_quic_disable_pre_34 (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/core/quic_packet_generator_test.cc ('k') | net/quic/core/quic_protocol.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 QuicPacketHeader(); 105 QuicPacketHeader();
106 explicit QuicPacketHeader(const QuicPacketPublicHeader& header); 106 explicit QuicPacketHeader(const QuicPacketPublicHeader& header);
107 QuicPacketHeader(const QuicPacketHeader& other); 107 QuicPacketHeader(const QuicPacketHeader& other);
108 108
109 NET_EXPORT_PRIVATE friend std::ostream& operator<<(std::ostream& os, 109 NET_EXPORT_PRIVATE friend std::ostream& operator<<(std::ostream& os,
110 const QuicPacketHeader& s); 110 const QuicPacketHeader& s);
111 111
112 QuicPacketPublicHeader public_header; 112 QuicPacketPublicHeader public_header;
113 QuicPacketNumber packet_number; 113 QuicPacketNumber packet_number;
114 QuicPathId path_id; 114 QuicPathId path_id;
115 bool entropy_flag;
116 QuicPacketEntropyHash entropy_hash;
117 }; 115 };
118 116
119 struct NET_EXPORT_PRIVATE QuicPublicResetPacket { 117 struct NET_EXPORT_PRIVATE QuicPublicResetPacket {
120 QuicPublicResetPacket(); 118 QuicPublicResetPacket();
121 explicit QuicPublicResetPacket(const QuicPacketPublicHeader& header); 119 explicit QuicPublicResetPacket(const QuicPacketPublicHeader& header);
122 120
123 QuicPacketPublicHeader public_header; 121 QuicPacketPublicHeader public_header;
124 QuicPublicResetNonceProof nonce_proof; 122 QuicPublicResetNonceProof nonce_proof;
125 // TODO(fayang): remove rejected_packet_number when deprecating 123 // TODO(fayang): remove rejected_packet_number when deprecating
126 // FLAGS_quic_remove_packet_number_from_public_reset. 124 // FLAGS_quic_remove_packet_number_from_public_reset.
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 215
218 struct NET_EXPORT_PRIVATE QuicStopWaitingFrame { 216 struct NET_EXPORT_PRIVATE QuicStopWaitingFrame {
219 QuicStopWaitingFrame(); 217 QuicStopWaitingFrame();
220 ~QuicStopWaitingFrame(); 218 ~QuicStopWaitingFrame();
221 219
222 NET_EXPORT_PRIVATE friend std::ostream& operator<<( 220 NET_EXPORT_PRIVATE friend std::ostream& operator<<(
223 std::ostream& os, 221 std::ostream& os,
224 const QuicStopWaitingFrame& s); 222 const QuicStopWaitingFrame& s);
225 // Path which this stop waiting frame belongs to. 223 // Path which this stop waiting frame belongs to.
226 QuicPathId path_id; 224 QuicPathId path_id;
227 // Entropy hash of all packets up to, but not including, the least unacked
228 // packet.
229 QuicPacketEntropyHash entropy_hash;
230 // The lowest packet we've sent which is unacked, and we expect an ack for. 225 // The lowest packet we've sent which is unacked, and we expect an ack for.
231 QuicPacketNumber least_unacked; 226 QuicPacketNumber least_unacked;
232 }; 227 };
233 228
234 // A sequence of packet numbers where each number is unique. Intended to be used 229 // A sequence of packet numbers where each number is unique. Intended to be used
235 // in a sliding window fashion, where smaller old packet numbers are removed and 230 // in a sliding window fashion, where smaller old packet numbers are removed and
236 // larger new packet numbers are added, with the occasional random access. 231 // larger new packet numbers are added, with the occasional random access.
237 class NET_EXPORT_PRIVATE PacketNumberQueue { 232 class NET_EXPORT_PRIVATE PacketNumberQueue {
238 public: 233 public:
239 using const_iterator = IntervalSet<QuicPacketNumber>::const_iterator; 234 using const_iterator = IntervalSet<QuicPacketNumber>::const_iterator;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 309
315 struct NET_EXPORT_PRIVATE QuicAckFrame { 310 struct NET_EXPORT_PRIVATE QuicAckFrame {
316 QuicAckFrame(); 311 QuicAckFrame();
317 QuicAckFrame(const QuicAckFrame& other); 312 QuicAckFrame(const QuicAckFrame& other);
318 ~QuicAckFrame(); 313 ~QuicAckFrame();
319 314
320 NET_EXPORT_PRIVATE friend std::ostream& operator<<(std::ostream& os, 315 NET_EXPORT_PRIVATE friend std::ostream& operator<<(std::ostream& os,
321 const QuicAckFrame& s); 316 const QuicAckFrame& s);
322 317
323 // The highest packet number we've observed from the peer. 318 // The highest packet number we've observed from the peer.
324 //
325 // In general, this should be the largest packet number we've received. In
326 // the case of truncated acks, we may have to advertise a lower "upper bound"
327 // than largest received, to avoid implicitly acking missing packets that
328 // don't fit in the missing packet list due to size limitations. In this
329 // case, largest_observed may be a packet which is also in the missing packets
330 // list.
331 QuicPacketNumber largest_observed; 319 QuicPacketNumber largest_observed;
332 320
333 // Time elapsed since largest_observed was received until this Ack frame was 321 // Time elapsed since largest_observed was received until this Ack frame was
334 // sent. 322 // sent.
335 QuicTime::Delta ack_delay_time; 323 QuicTime::Delta ack_delay_time;
336 324
337 // Vector of <packet_number, time> for when packets arrived. 325 // Vector of <packet_number, time> for when packets arrived.
338 PacketTimeVector received_packet_times; 326 PacketTimeVector received_packet_times;
339 327
340 // Set of packets. 328 // Set of packets.
341 PacketNumberQueue packets; 329 PacketNumberQueue packets;
342 330
343 // Path which this ack belongs to. 331 // Path which this ack belongs to.
344 QuicPathId path_id; 332 QuicPathId path_id;
345
346 // Entropy hash of all packets up to largest observed not including missing
347 // packets.
348 QuicPacketEntropyHash entropy_hash;
349
350 // Whether the ack had to be truncated when sent.
351 bool is_truncated;
352
353 // If true, |packets| express missing packets. Otherwise, |packets| express
354 // received packets.
355 bool missing;
356 }; 333 };
357 334
358 // True if the packet number is greater than largest_observed or is listed 335 // True if the packet number is greater than largest_observed or is listed
359 // as missing. 336 // as missing.
360 // Always returns false for packet numbers less than least_unacked. 337 // Always returns false for packet numbers less than least_unacked.
361 bool NET_EXPORT_PRIVATE 338 bool NET_EXPORT_PRIVATE
362 IsAwaitingPacket(const QuicAckFrame& ack_frame, 339 IsAwaitingPacket(const QuicAckFrame& ack_frame,
363 QuicPacketNumber packet_number, 340 QuicPacketNumber packet_number,
364 QuicPacketNumber peer_least_packet_awaiting_ack); 341 QuicPacketNumber peer_least_packet_awaiting_ack);
365 342
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 // Used to generate filtered supported versions based on flags. 631 // Used to generate filtered supported versions based on flags.
655 class NET_EXPORT_PRIVATE QuicVersionManager { 632 class NET_EXPORT_PRIVATE QuicVersionManager {
656 public: 633 public:
657 explicit QuicVersionManager(QuicVersionVector supported_versions); 634 explicit QuicVersionManager(QuicVersionVector supported_versions);
658 ~QuicVersionManager(); 635 ~QuicVersionManager();
659 636
660 // Returns supported versions based on flags. 637 // Returns supported versions based on flags.
661 const QuicVersionVector& GetSupportedVersions(); 638 const QuicVersionVector& GetSupportedVersions();
662 639
663 private: 640 private:
664 // FLAGS_quic_disable_pre_34
665 bool disable_pre_34_;
666 // FLAGS_quic_enable_version_35 641 // FLAGS_quic_enable_version_35
667 bool enable_version_35_; 642 bool enable_version_35_;
668 // FLAGS_quic_enable_version_36_v2 643 // FLAGS_quic_enable_version_36_v2
669 bool enable_version_36_; 644 bool enable_version_36_;
670 // The list of versions that may be supported. 645 // The list of versions that may be supported.
671 QuicVersionVector allowed_supported_versions_; 646 QuicVersionVector allowed_supported_versions_;
672 // This vector contains QUIC versions which are currently supported based 647 // This vector contains QUIC versions which are currently supported based
673 // on flags. 648 // on flags.
674 QuicVersionVector filtered_supported_versions_; 649 QuicVersionVector filtered_supported_versions_;
675 }; 650 };
676 651
677 struct NET_EXPORT_PRIVATE AckListenerWrapper { 652 struct NET_EXPORT_PRIVATE AckListenerWrapper {
678 AckListenerWrapper(QuicAckListenerInterface* listener, 653 AckListenerWrapper(QuicAckListenerInterface* listener,
679 QuicPacketLength data_length); 654 QuicPacketLength data_length);
680 AckListenerWrapper(const AckListenerWrapper& other); 655 AckListenerWrapper(const AckListenerWrapper& other);
681 ~AckListenerWrapper(); 656 ~AckListenerWrapper();
682 657
683 scoped_refptr<QuicAckListenerInterface> ack_listener; 658 scoped_refptr<QuicAckListenerInterface> ack_listener;
684 QuicPacketLength length; 659 QuicPacketLength length;
685 }; 660 };
686 661
687 struct NET_EXPORT_PRIVATE SerializedPacket { 662 struct NET_EXPORT_PRIVATE SerializedPacket {
688 SerializedPacket(QuicPathId path_id, 663 SerializedPacket(QuicPathId path_id,
689 QuicPacketNumber packet_number, 664 QuicPacketNumber packet_number,
690 QuicPacketNumberLength packet_number_length, 665 QuicPacketNumberLength packet_number_length,
691 const char* encrypted_buffer, 666 const char* encrypted_buffer,
692 QuicPacketLength encrypted_length, 667 QuicPacketLength encrypted_length,
693 QuicPacketEntropyHash entropy_hash,
694 bool has_ack, 668 bool has_ack,
695 bool has_stop_waiting); 669 bool has_stop_waiting);
696 SerializedPacket(const SerializedPacket& other); 670 SerializedPacket(const SerializedPacket& other);
697 ~SerializedPacket(); 671 ~SerializedPacket();
698 672
699 // Not owned. 673 // Not owned.
700 const char* encrypted_buffer; 674 const char* encrypted_buffer;
701 QuicPacketLength encrypted_length; 675 QuicPacketLength encrypted_length;
702 QuicFrames retransmittable_frames; 676 QuicFrames retransmittable_frames;
703 IsHandshake has_crypto_handshake; 677 IsHandshake has_crypto_handshake;
704 // -1: full padding to the end of a max-sized packet 678 // -1: full padding to the end of a max-sized packet
705 // 0: no padding 679 // 0: no padding
706 // otherwise: only pad up to num_padding_bytes bytes 680 // otherwise: only pad up to num_padding_bytes bytes
707 int16_t num_padding_bytes; 681 int16_t num_padding_bytes;
708 QuicPathId path_id; 682 QuicPathId path_id;
709 QuicPacketNumber packet_number; 683 QuicPacketNumber packet_number;
710 QuicPacketNumberLength packet_number_length; 684 QuicPacketNumberLength packet_number_length;
711 EncryptionLevel encryption_level; 685 EncryptionLevel encryption_level;
712 QuicPacketEntropyHash entropy_hash;
713 bool has_ack; 686 bool has_ack;
714 bool has_stop_waiting; 687 bool has_stop_waiting;
715 TransmissionType transmission_type; 688 TransmissionType transmission_type;
716 QuicPathId original_path_id; 689 QuicPathId original_path_id;
717 QuicPacketNumber original_packet_number; 690 QuicPacketNumber original_packet_number;
718 691
719 // Optional notifiers which will be informed when this packet has been ACKed. 692 // Optional notifiers which will be informed when this packet has been ACKed.
720 std::list<AckListenerWrapper> listeners; 693 std::list<AckListenerWrapper> listeners;
721 }; 694 };
722 695
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
798 : iov(iov), iov_count(iov_count), total_length(total_length) {} 771 : iov(iov), iov_count(iov_count), total_length(total_length) {}
799 772
800 const struct iovec* iov; 773 const struct iovec* iov;
801 const int iov_count; 774 const int iov_count;
802 const size_t total_length; 775 const size_t total_length;
803 }; 776 };
804 777
805 } // namespace net 778 } // namespace net
806 779
807 #endif // NET_QUIC_QUIC_PROTOCOL_H_ 780 #endif // NET_QUIC_QUIC_PROTOCOL_H_
OLDNEW
« no previous file with comments | « net/quic/core/quic_packet_generator_test.cc ('k') | net/quic/core/quic_protocol.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698