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

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

Issue 2599143003: Add a new QUIC platform API quic_aligned.h for the alignment macro definitions. (Closed)
Patch Set: windows Created 3 years, 12 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/core/quic_arena_scoped_ptr.h ('k') | net/quic/core/quic_packet_creator.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/core/quic_framer.h" 5 #include "net/quic/core/quic_framer.h"
6 6
7 #include <cstdint> 7 #include <cstdint>
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/memory/ptr_util.h" 12 #include "base/memory/ptr_util.h"
13 #include "base/stl_util.h" 13 #include "base/stl_util.h"
14 #include "net/quic/core/crypto/crypto_framer.h" 14 #include "net/quic/core/crypto/crypto_framer.h"
15 #include "net/quic/core/crypto/crypto_handshake_message.h" 15 #include "net/quic/core/crypto/crypto_handshake_message.h"
16 #include "net/quic/core/crypto/crypto_protocol.h" 16 #include "net/quic/core/crypto/crypto_protocol.h"
17 #include "net/quic/core/crypto/null_decrypter.h" 17 #include "net/quic/core/crypto/null_decrypter.h"
18 #include "net/quic/core/crypto/null_encrypter.h" 18 #include "net/quic/core/crypto/null_encrypter.h"
19 #include "net/quic/core/crypto/quic_decrypter.h" 19 #include "net/quic/core/crypto/quic_decrypter.h"
20 #include "net/quic/core/crypto/quic_encrypter.h" 20 #include "net/quic/core/crypto/quic_encrypter.h"
21 #include "net/quic/core/quic_bug_tracker.h" 21 #include "net/quic/core/quic_bug_tracker.h"
22 #include "net/quic/core/quic_data_reader.h" 22 #include "net/quic/core/quic_data_reader.h"
23 #include "net/quic/core/quic_data_writer.h" 23 #include "net/quic/core/quic_data_writer.h"
24 #include "net/quic/core/quic_flags.h" 24 #include "net/quic/core/quic_flags.h"
25 #include "net/quic/core/quic_socket_address_coder.h" 25 #include "net/quic/core/quic_socket_address_coder.h"
26 #include "net/quic/core/quic_utils.h" 26 #include "net/quic/core/quic_utils.h"
27 #include "net/quic/platform/api/quic_aligned.h"
27 28
28 using base::ContainsKey; 29 using base::ContainsKey;
29 using base::StringPiece; 30 using base::StringPiece;
30 using std::string; 31 using std::string;
31 #define PREDICT_FALSE(x) (x) 32 #define PREDICT_FALSE(x) (x)
32 33
33 namespace net { 34 namespace net {
34 35
35 namespace { 36 namespace {
36 37
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 } 525 }
525 526
526 bool rv; 527 bool rv;
527 if (perspective_ == Perspective::IS_CLIENT && public_header.version_flag) { 528 if (perspective_ == Perspective::IS_CLIENT && public_header.version_flag) {
528 rv = ProcessVersionNegotiationPacket(&reader, &public_header); 529 rv = ProcessVersionNegotiationPacket(&reader, &public_header);
529 } else if (public_header.reset_flag) { 530 } else if (public_header.reset_flag) {
530 rv = ProcessPublicResetPacket(&reader, public_header); 531 rv = ProcessPublicResetPacket(&reader, public_header);
531 } else if (packet.length() <= kMaxPacketSize) { 532 } else if (packet.length() <= kMaxPacketSize) {
532 // The optimized decryption algorithm implementations run faster when 533 // The optimized decryption algorithm implementations run faster when
533 // operating on aligned memory. 534 // operating on aligned memory.
534 // 535 QUIC_CACHELINE_ALIGNED char buffer[kMaxPacketSize];
535 // TODO(rtenneti): Change the default 64 alignas value (used the default
536 // value from CACHELINE_SIZE).
537 ALIGNAS(64) char buffer[kMaxPacketSize];
538 rv = ProcessDataPacket(&reader, public_header, packet, buffer, 536 rv = ProcessDataPacket(&reader, public_header, packet, buffer,
539 kMaxPacketSize); 537 kMaxPacketSize);
540 } else { 538 } else {
541 std::unique_ptr<char[]> large_buffer(new char[packet.length()]); 539 std::unique_ptr<char[]> large_buffer(new char[packet.length()]);
542 rv = ProcessDataPacket(&reader, public_header, packet, large_buffer.get(), 540 rv = ProcessDataPacket(&reader, public_header, packet, large_buffer.get(),
543 packet.length()); 541 packet.length());
544 QUIC_BUG_IF(rv) << "QUIC should never successfully process packets larger" 542 QUIC_BUG_IF(rv) << "QUIC should never successfully process packets larger"
545 << "than kMaxPacketSize. packet size:" << packet.length(); 543 << "than kMaxPacketSize. packet size:" << packet.length();
546 } 544 }
547 545
(...skipping 1654 matching lines...) Expand 10 before | Expand all | Expand 10 after
2202 2200
2203 bool QuicFramer::RaiseError(QuicErrorCode error) { 2201 bool QuicFramer::RaiseError(QuicErrorCode error) {
2204 DVLOG(1) << ENDPOINT << "Error: " << QuicErrorCodeToString(error) 2202 DVLOG(1) << ENDPOINT << "Error: " << QuicErrorCodeToString(error)
2205 << " detail: " << detailed_error_; 2203 << " detail: " << detailed_error_;
2206 set_error(error); 2204 set_error(error);
2207 visitor_->OnError(this); 2205 visitor_->OnError(this);
2208 return false; 2206 return false;
2209 } 2207 }
2210 2208
2211 } // namespace net 2209 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/quic_arena_scoped_ptr.h ('k') | net/quic/core/quic_packet_creator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698