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; |