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

Side by Side Diff: net/quic/quic_framer.cc

Issue 424903002: Remove FixRate congestion frame type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_quic_version_15_71718286
Patch Set: Created 6 years, 4 months 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/quic_connection_test.cc ('k') | net/quic/quic_framer_test.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 #include "net/quic/quic_framer.h" 5 #include "net/quic/quic_framer.h"
6 6
7 #include "base/containers/hash_tables.h" 7 #include "base/containers/hash_tables.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "net/quic/crypto/crypto_framer.h" 9 #include "net/quic/crypto/crypto_framer.h"
10 #include "net/quic/crypto/crypto_handshake_message.h" 10 #include "net/quic/crypto/crypto_handshake_message.h"
(...skipping 1468 matching lines...) Expand 10 before | Expand all | Expand 10 after
1479 return false; 1479 return false;
1480 } 1480 }
1481 QuicPacketSequenceNumber packet = smallest_received + sequence_delta; 1481 QuicPacketSequenceNumber packet = smallest_received + sequence_delta;
1482 inter_arrival->received_packet_times.insert( 1482 inter_arrival->received_packet_times.insert(
1483 make_pair(packet, time_received.Add( 1483 make_pair(packet, time_received.Add(
1484 QuicTime::Delta::FromMicroseconds(time_delta_us)))); 1484 QuicTime::Delta::FromMicroseconds(time_delta_us))));
1485 } 1485 }
1486 } 1486 }
1487 break; 1487 break;
1488 } 1488 }
1489 case kFixRate: {
1490 uint32 bitrate = 0;
1491 if (!reader_->ReadUInt32(&bitrate)) {
1492 set_detailed_error("Unable to read bitrate.");
1493 return false;
1494 }
1495 frame->fix_rate.bitrate = QuicBandwidth::FromBytesPerSecond(bitrate);
1496 break;
1497 }
1498 case kTCP: { 1489 case kTCP: {
1499 CongestionFeedbackMessageTCP* tcp = &frame->tcp; 1490 CongestionFeedbackMessageTCP* tcp = &frame->tcp;
1500 // TODO(ianswett): Remove receive window, since it's constant. 1491 // TODO(ianswett): Remove receive window, since it's constant.
1501 uint16 receive_window = 0; 1492 uint16 receive_window = 0;
1502 if (!reader_->ReadUInt16(&receive_window)) { 1493 if (!reader_->ReadUInt16(&receive_window)) {
1503 set_detailed_error("Unable to read receive window."); 1494 set_detailed_error("Unable to read receive window.");
1504 return false; 1495 return false;
1505 } 1496 }
1506 // Simple bit packing, don't send the 4 least significant bits. 1497 // Simple bit packing, don't send the 4 least significant bits.
1507 tcp->receive_window = static_cast<QuicByteCount>(receive_window) << 4; 1498 tcp->receive_window = static_cast<QuicByteCount>(receive_window) << 4;
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
1824 len += 1; // Number received packets. 1815 len += 1; // Number received packets.
1825 if (inter_arrival.received_packet_times.size() > 0) { 1816 if (inter_arrival.received_packet_times.size() > 0) {
1826 len += PACKET_6BYTE_SEQUENCE_NUMBER; // Smallest received. 1817 len += PACKET_6BYTE_SEQUENCE_NUMBER; // Smallest received.
1827 len += 8; // Time. 1818 len += 8; // Time.
1828 // 2 bytes per sequence number delta plus 4 bytes per delta time. 1819 // 2 bytes per sequence number delta plus 4 bytes per delta time.
1829 len += PACKET_6BYTE_SEQUENCE_NUMBER * 1820 len += PACKET_6BYTE_SEQUENCE_NUMBER *
1830 (inter_arrival.received_packet_times.size() - 1); 1821 (inter_arrival.received_packet_times.size() - 1);
1831 } 1822 }
1832 break; 1823 break;
1833 } 1824 }
1834 case kFixRate:
1835 len += 4; // Bitrate.
1836 break;
1837 case kTCP: 1825 case kTCP:
1838 len += 2; // Receive window. 1826 len += 2; // Receive window.
1839 break; 1827 break;
1840 default: 1828 default:
1841 set_detailed_error("Illegal feedback type."); 1829 set_detailed_error("Illegal feedback type.");
1842 DVLOG(1) << "Illegal feedback type: " << congestion_feedback.type; 1830 DVLOG(1) << "Illegal feedback type: " << congestion_feedback.type;
1843 break; 1831 break;
1844 } 1832 }
1845 return len; 1833 return len;
1846 } 1834 }
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
2175 2163
2176 int32 time_delta_us = 2164 int32 time_delta_us =
2177 it->second.Subtract(lowest_time).ToMicroseconds(); 2165 it->second.Subtract(lowest_time).ToMicroseconds();
2178 if (!writer->WriteBytes(&time_delta_us, sizeof(time_delta_us))) { 2166 if (!writer->WriteBytes(&time_delta_us, sizeof(time_delta_us))) {
2179 return false; 2167 return false;
2180 } 2168 }
2181 } 2169 }
2182 } 2170 }
2183 break; 2171 break;
2184 } 2172 }
2185 case kFixRate: {
2186 const CongestionFeedbackMessageFixRate& fix_rate =
2187 frame.fix_rate;
2188 if (!writer->WriteUInt32(fix_rate.bitrate.ToBytesPerSecond())) {
2189 return false;
2190 }
2191 break;
2192 }
2193 case kTCP: { 2173 case kTCP: {
2194 const CongestionFeedbackMessageTCP& tcp = frame.tcp; 2174 const CongestionFeedbackMessageTCP& tcp = frame.tcp;
2195 DCHECK_LE(tcp.receive_window, 1u << 20); 2175 DCHECK_LE(tcp.receive_window, 1u << 20);
2196 // Simple bit packing, don't send the 4 least significant bits. 2176 // Simple bit packing, don't send the 4 least significant bits.
2197 uint16 receive_window = static_cast<uint16>(tcp.receive_window >> 4); 2177 uint16 receive_window = static_cast<uint16>(tcp.receive_window >> 4);
2198 if (!writer->WriteUInt16(receive_window)) { 2178 if (!writer->WriteUInt16(receive_window)) {
2199 return false; 2179 return false;
2200 } 2180 }
2201 break; 2181 break;
2202 } 2182 }
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
2312 2292
2313 bool QuicFramer::RaiseError(QuicErrorCode error) { 2293 bool QuicFramer::RaiseError(QuicErrorCode error) {
2314 DVLOG(1) << "Error detail: " << detailed_error_; 2294 DVLOG(1) << "Error detail: " << detailed_error_;
2315 set_error(error); 2295 set_error(error);
2316 visitor_->OnError(this); 2296 visitor_->OnError(this);
2317 reader_.reset(NULL); 2297 reader_.reset(NULL);
2318 return false; 2298 return false;
2319 } 2299 }
2320 2300
2321 } // namespace net 2301 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_connection_test.cc ('k') | net/quic/quic_framer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698