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

Unified Diff: net/quic/quic_protocol.h

Issue 1421853006: Landing Recent QUIC changes until: Fri Oct 30 22:23:58 2015 +0000 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix comments Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_packet_generator_test.cc ('k') | net/quic/quic_protocol.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_protocol.h
diff --git a/net/quic/quic_protocol.h b/net/quic/quic_protocol.h
index aa008c4b8e7c9a102b54c7dcc8d614a92950235a..1286b9ad38a2ba67d401b6ae2f1d74181300a3f4 100644
--- a/net/quic/quic_protocol.h
+++ b/net/quic/quic_protocol.h
@@ -346,6 +346,8 @@ enum QuicVersion {
QUIC_VERSION_26 = 26, // In CHLO, send XLCT tag containing hash of leaf cert
QUIC_VERSION_27 = 27, // Sends a nonce in the SHLO.
QUIC_VERSION_28 = 28, // Receiver can refuse to create a requested stream.
+ QUIC_VERSION_29 = 29, // Server and client honor QUIC_STREAM_NO_ERROR.
+ QUIC_VERSION_30 = 30, // Add server side support of cert transparency.
};
// This vector contains QUIC versions which we currently support.
@@ -356,7 +358,8 @@ enum QuicVersion {
// IMPORTANT: if you are adding to this list, follow the instructions at
// http://sites/quic/adding-and-removing-versions
static const QuicVersion kSupportedQuicVersions[] = {
- QUIC_VERSION_28, QUIC_VERSION_27, QUIC_VERSION_26, QUIC_VERSION_25};
+ QUIC_VERSION_30, QUIC_VERSION_29, QUIC_VERSION_28,
+ QUIC_VERSION_27, QUIC_VERSION_26, QUIC_VERSION_25};
typedef std::vector<QuicVersion> QuicVersionVector;
@@ -418,6 +421,8 @@ GetStartOfEncryptedData(QuicConnectionIdLength connection_id_length,
QuicPacketNumberLength packet_number_length);
enum QuicRstStreamErrorCode {
+ // Complete response has been sent, sending a RST to ask the other endpoint
+ // to stop sending request data without discarding the response.
QUIC_STREAM_NO_ERROR = 0,
// There was some error which halted stream processing.
@@ -490,8 +495,6 @@ enum QuicErrorCode {
// ACK frame data is malformed.
QUIC_INVALID_ACK_DATA = 9,
- // deprecated: QUIC_INVALID_CONGESTION_FEEDBACK_DATA = 47,
-
// Version negotiation packet is malformed.
QUIC_INVALID_VERSION_NEGOTIATION_PACKET = 10,
// Public RST packet is malformed.
@@ -502,8 +505,6 @@ enum QuicErrorCode {
QUIC_ENCRYPTION_FAILURE = 13,
// The packet exceeded kMaxPacketSize.
QUIC_PACKET_TOO_LARGE = 14,
- // Data was sent for a stream which did not exist.
- QUIC_PACKET_FOR_NONEXISTENT_STREAM = 15,
// The peer is going away. May be a client or server.
QUIC_PEER_GOING_AWAY = 16,
// A stream ID was invalid.
@@ -521,8 +522,6 @@ enum QuicErrorCode {
// Invalid protocol version.
QUIC_INVALID_VERSION = 20,
- // deprecated: QUIC_STREAM_RST_BEFORE_HEADERS_DECOMPRESSED = 21
-
// The Header ID for a stream was too far from the previous.
QUIC_INVALID_HEADER_ID = 22,
// Negotiable parameter received during handshake had invalid value.
@@ -868,9 +867,9 @@ struct NET_EXPORT_PRIVATE QuicAckFrame {
// The set of packets which we're expecting and have not received.
PacketNumberQueue missing_packets;
- // Packets which have been revived via FEC.
- // All of these must also be in missing_packets.
- PacketNumberSet revived_packets;
+ // Packet most recently revived via FEC, 0 if no packet was revived by FEC.
+ // If non-zero, must be present in missing_packets.
+ QuicPacketNumber latest_revived_packet;
};
// True if the packet number is greater than largest_observed or is listed
@@ -988,6 +987,23 @@ enum EncryptionLevel {
NUM_ENCRYPTION_LEVELS,
};
+enum PeerAddressChangeType {
+ NO_CHANGE,
+ // Peer address changes which are considered to be cause by NATs. Currently,
+ // IPv4 address change with /24 does not change is considered to be cause by
+ // NATs.
+ NAT_PORT_REBINDING,
+ IPV4_SUBNET_REBINDING,
+ // IPv6 related address changes.
+ IPV4_TO_IPV6,
+ IPV6_TO_IPV4,
+ IPV6_TO_IPV6,
+ // This type is used when we always allow peer address changes.
+ UNKNOWN,
+ // All other peer address change types.
+ UNSPECIFIED,
+};
+
struct NET_EXPORT_PRIVATE QuicFrame {
QuicFrame();
explicit QuicFrame(QuicPaddingFrame padding_frame);
@@ -1154,6 +1170,15 @@ struct NET_EXPORT_PRIVATE SerializedPacket {
RetransmittableFrames* retransmittable_frames,
bool has_ack,
bool has_stop_waiting);
+ SerializedPacket(QuicPacketNumber packet_number,
+ QuicPacketNumberLength packet_number_length,
+ char* encrypted_buffer,
+ size_t encrypted_length,
+ bool owns_buffer,
+ QuicPacketEntropyHash entropy_hash,
+ RetransmittableFrames* retransmittable_frames,
+ bool has_ack,
+ bool has_stop_waiting);
~SerializedPacket();
QuicEncryptedPacket* packet;
« no previous file with comments | « net/quic/quic_packet_generator_test.cc ('k') | net/quic/quic_protocol.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698