X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fnet%2Fquic%2Fquic_protocol.cc;h=419820a8c1ceeb5d5a761e77924ae771ff4a8e0c;hb=4a1a0bdd01eef90b0826a0e761d3379d3715c10f;hp=398c94d525af96946218a3c4473ec3cf2bd19e05;hpb=b1be5ca53587d23e7aeb77b26861fdc0a181ffd8;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/net/quic/quic_protocol.cc b/src/net/quic/quic_protocol.cc index 398c94d..419820a 100644 --- a/src/net/quic/quic_protocol.cc +++ b/src/net/quic/quic_protocol.cc @@ -159,18 +159,18 @@ QuicVersionVector QuicSupportedVersions() { QuicTag QuicVersionToQuicTag(const QuicVersion version) { switch (version) { - case QUIC_VERSION_15: - return MakeQuicTag('Q', '0', '1', '5'); case QUIC_VERSION_16: return MakeQuicTag('Q', '0', '1', '6'); - case QUIC_VERSION_17: - return MakeQuicTag('Q', '0', '1', '7'); case QUIC_VERSION_18: return MakeQuicTag('Q', '0', '1', '8'); case QUIC_VERSION_19: return MakeQuicTag('Q', '0', '1', '9'); case QUIC_VERSION_20: return MakeQuicTag('Q', '0', '2', '0'); + case QUIC_VERSION_21: + return MakeQuicTag('Q', '0', '2', '1'); + case QUIC_VERSION_22: + return MakeQuicTag('Q', '0', '2', '2'); default: // This shold be an ERROR because we should never attempt to convert an // invalid QuicVersion to be written to the wire. @@ -197,12 +197,12 @@ return #x string QuicVersionToString(const QuicVersion version) { switch (version) { - RETURN_STRING_LITERAL(QUIC_VERSION_15); RETURN_STRING_LITERAL(QUIC_VERSION_16); - RETURN_STRING_LITERAL(QUIC_VERSION_17); RETURN_STRING_LITERAL(QUIC_VERSION_18); RETURN_STRING_LITERAL(QUIC_VERSION_19); RETURN_STRING_LITERAL(QUIC_VERSION_20); + RETURN_STRING_LITERAL(QUIC_VERSION_21); + RETURN_STRING_LITERAL(QUIC_VERSION_22); default: return "QUIC_VERSION_UNSUPPORTED"; } @@ -241,25 +241,17 @@ ostream& operator<<(ostream& os, const QuicPacketHeader& header) { return os; } -ReceivedPacketInfo::ReceivedPacketInfo() - : entropy_hash(0), - largest_observed(0), - delta_time_largest_observed(QuicTime::Delta::Infinite()), - is_truncated(false) {} - -ReceivedPacketInfo::~ReceivedPacketInfo() {} - -bool IsAwaitingPacket(const ReceivedPacketInfo& received_info, +bool IsAwaitingPacket(const QuicAckFrame& ack_frame, QuicPacketSequenceNumber sequence_number) { - return sequence_number > received_info.largest_observed || - ContainsKey(received_info.missing_packets, sequence_number); + return sequence_number > ack_frame.largest_observed || + ContainsKey(ack_frame.missing_packets, sequence_number); } -void InsertMissingPacketsBetween(ReceivedPacketInfo* received_info, +void InsertMissingPacketsBetween(QuicAckFrame* ack_frame, QuicPacketSequenceNumber lower, QuicPacketSequenceNumber higher) { for (QuicPacketSequenceNumber i = lower; i < higher; ++i) { - received_info->missing_packets.insert(i); + ack_frame->missing_packets.insert(i); } } @@ -270,17 +262,22 @@ QuicStopWaitingFrame::QuicStopWaitingFrame() QuicStopWaitingFrame::~QuicStopWaitingFrame() {} -QuicAckFrame::QuicAckFrame() {} +QuicAckFrame::QuicAckFrame() + : entropy_hash(0), + largest_observed(0), + delta_time_largest_observed(QuicTime::Delta::Infinite()), + is_truncated(false) {} + +QuicAckFrame::~QuicAckFrame() {} CongestionFeedbackMessageTCP::CongestionFeedbackMessageTCP() : receive_window(0) { } -CongestionFeedbackMessageInterArrival::CongestionFeedbackMessageInterArrival() { +CongestionFeedbackMessageTimestamp::CongestionFeedbackMessageTimestamp() { } -CongestionFeedbackMessageInterArrival:: - ~CongestionFeedbackMessageInterArrival() {} +CongestionFeedbackMessageTimestamp::~CongestionFeedbackMessageTimestamp() {} QuicCongestionFeedbackFrame::QuicCongestionFeedbackFrame() : type(kTCP) {} @@ -291,7 +288,7 @@ QuicRstStreamErrorCode AdjustErrorForVersion( QuicVersion version) { switch (error_code) { case QUIC_RST_FLOW_CONTROL_ACCOUNTING: - if (version <= QUIC_VERSION_17) { + if (version < QUIC_VERSION_18) { return QUIC_STREAM_NO_ERROR; } break; @@ -384,22 +381,20 @@ ostream& operator<<(ostream& os, const QuicStopWaitingFrame& sent_info) { return os; } -ostream& operator<<(ostream& os, const ReceivedPacketInfo& received_info) { - os << "entropy_hash: " << static_cast(received_info.entropy_hash) - << " is_truncated: " << received_info.is_truncated - << " largest_observed: " << received_info.largest_observed +ostream& operator<<(ostream& os, const QuicAckFrame& ack_frame) { + os << "entropy_hash: " << static_cast(ack_frame.entropy_hash) + << " is_truncated: " << ack_frame.is_truncated + << " largest_observed: " << ack_frame.largest_observed << " delta_time_largest_observed: " - << received_info.delta_time_largest_observed.ToMicroseconds() + << ack_frame.delta_time_largest_observed.ToMicroseconds() << " missing_packets: [ "; - for (SequenceNumberSet::const_iterator it = - received_info.missing_packets.begin(); - it != received_info.missing_packets.end(); ++it) { + for (SequenceNumberSet::const_iterator it = ack_frame.missing_packets.begin(); + it != ack_frame.missing_packets.end(); ++it) { os << *it << " "; } os << " ] revived_packets: [ "; - for (SequenceNumberSet::const_iterator it = - received_info.revived_packets.begin(); - it != received_info.revived_packets.end(); ++it) { + for (SequenceNumberSet::const_iterator it = ack_frame.revived_packets.begin(); + it != ack_frame.revived_packets.end(); ++it) { os << *it << " "; } os << " ]"; @@ -450,6 +445,10 @@ ostream& operator<<(ostream& os, const QuicFrame& frame) { os << "type { STOP_WAITING_FRAME } " << *(frame.stop_waiting_frame); break; } + case PING_FRAME: { + os << "type { PING_FRAME } "; + break; + } default: { LOG(ERROR) << "Unknown frame type: " << frame.type; break; @@ -501,50 +500,30 @@ ostream& operator<<(ostream& os, const QuicStreamFrame& stream_frame) { return os; } -ostream& operator<<(ostream& os, const QuicAckFrame& ack_frame) { - os << "sent info { " << ack_frame.sent_info << " } " - << "received info { " << ack_frame.received_info << " }\n"; - return os; -} - ostream& operator<<(ostream& os, const QuicCongestionFeedbackFrame& congestion_frame) { os << "type: " << congestion_frame.type; switch (congestion_frame.type) { - case kInterArrival: { - const CongestionFeedbackMessageInterArrival& inter_arrival = - congestion_frame.inter_arrival; + case kTimestamp: { + const CongestionFeedbackMessageTimestamp& timestamp = + congestion_frame.timestamp; os << " received packets: [ "; - for (TimeMap::const_iterator it = - inter_arrival.received_packet_times.begin(); - it != inter_arrival.received_packet_times.end(); ++it) { + for (TimeMap::const_iterator it = timestamp.received_packet_times.begin(); + it != timestamp.received_packet_times.end(); ++it) { os << it->first << "@" << it->second.ToDebuggingValue() << " "; } os << "]"; break; } - case kFixRate: { - os << " bitrate_in_bytes_per_second: " - << congestion_frame.fix_rate.bitrate.ToBytesPerSecond(); - break; - } case kTCP: { const CongestionFeedbackMessageTCP& tcp = congestion_frame.tcp; os << " receive_window: " << tcp.receive_window; break; } - case kTCPBBR: { - LOG(DFATAL) << "TCPBBR is not yet supported."; - break; - } } return os; } -CongestionFeedbackMessageFixRate::CongestionFeedbackMessageFixRate() - : bitrate(QuicBandwidth::Zero()) { -} - QuicGoAwayFrame::QuicGoAwayFrame() : error_code(QUIC_NO_ERROR), last_good_stream_id(0) {