summaryrefslogtreecommitdiff
path: root/chromium/net/third_party/quiche/src/quic/core/quic_packet_reader.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/third_party/quiche/src/quic/core/quic_packet_reader.cc')
-rw-r--r--chromium/net/third_party/quiche/src/quic/core/quic_packet_reader.cc135
1 files changed, 0 insertions, 135 deletions
diff --git a/chromium/net/third_party/quiche/src/quic/core/quic_packet_reader.cc b/chromium/net/third_party/quiche/src/quic/core/quic_packet_reader.cc
deleted file mode 100644
index 3a8a9b4fe3d..00000000000
--- a/chromium/net/third_party/quiche/src/quic/core/quic_packet_reader.cc
+++ /dev/null
@@ -1,135 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "quic/core/quic_packet_reader.h"
-
-#include "absl/base/macros.h"
-#include "quic/core/quic_packets.h"
-#include "quic/core/quic_process_packet_interface.h"
-#include "quic/platform/api/quic_bug_tracker.h"
-#include "quic/platform/api/quic_flag_utils.h"
-#include "quic/platform/api/quic_flags.h"
-#include "quic/platform/api/quic_ip_address.h"
-#include "quic/platform/api/quic_logging.h"
-#include "quic/platform/api/quic_server_stats.h"
-#include "quic/platform/api/quic_socket_address.h"
-
-namespace quic {
-
-QuicPacketReader::QuicPacketReader()
- : read_buffers_(kNumPacketsPerReadMmsgCall),
- read_results_(kNumPacketsPerReadMmsgCall) {
- QUICHE_DCHECK_EQ(read_buffers_.size(), read_results_.size());
- for (size_t i = 0; i < read_results_.size(); ++i) {
- read_results_[i].packet_buffer.buffer = read_buffers_[i].packet_buffer;
- read_results_[i].packet_buffer.buffer_len =
- sizeof(read_buffers_[i].packet_buffer);
-
- read_results_[i].control_buffer.buffer = read_buffers_[i].control_buffer;
- read_results_[i].control_buffer.buffer_len =
- sizeof(read_buffers_[i].control_buffer);
- }
-}
-
-QuicPacketReader::~QuicPacketReader() = default;
-
-bool QuicPacketReader::ReadAndDispatchPackets(
- int fd,
- int port,
- const QuicClock& clock,
- ProcessPacketInterface* processor,
- QuicPacketCount* /*packets_dropped*/) {
- // Reset all read_results for reuse.
- for (size_t i = 0; i < read_results_.size(); ++i) {
- read_results_[i].Reset(
- /*packet_buffer_length=*/sizeof(read_buffers_[i].packet_buffer));
- }
-
- // Use clock.Now() as the packet receipt time, the time between packet
- // arriving at the host and now is considered part of the network delay.
- QuicTime now = clock.Now();
-
- size_t packets_read = socket_api_.ReadMultiplePackets(
- fd,
- BitMask64(QuicUdpPacketInfoBit::DROPPED_PACKETS,
- QuicUdpPacketInfoBit::PEER_ADDRESS,
- QuicUdpPacketInfoBit::V4_SELF_IP,
- QuicUdpPacketInfoBit::V6_SELF_IP,
- QuicUdpPacketInfoBit::RECV_TIMESTAMP, QuicUdpPacketInfoBit::TTL,
- QuicUdpPacketInfoBit::GOOGLE_PACKET_HEADER),
- &read_results_);
- for (size_t i = 0; i < packets_read; ++i) {
- auto& result = read_results_[i];
- if (!result.ok) {
- QUIC_CODE_COUNT(quic_packet_reader_read_failure);
- continue;
- }
-
- if (!result.packet_info.HasValue(QuicUdpPacketInfoBit::PEER_ADDRESS)) {
- QUIC_BUG(quic_bug_10329_1) << "Unable to get peer socket address.";
- continue;
- }
-
- QuicSocketAddress peer_address =
- result.packet_info.peer_address().Normalized();
-
- QuicIpAddress self_ip = GetSelfIpFromPacketInfo(
- result.packet_info, peer_address.host().IsIPv6());
- if (!self_ip.IsInitialized()) {
- QUIC_BUG(quic_bug_10329_2) << "Unable to get self IP address.";
- continue;
- }
-
- bool has_ttl = result.packet_info.HasValue(QuicUdpPacketInfoBit::TTL);
- int ttl = has_ttl ? result.packet_info.ttl() : 0;
- if (!has_ttl) {
- QUIC_CODE_COUNT(quic_packet_reader_no_ttl);
- }
-
- char* headers = nullptr;
- size_t headers_length = 0;
- if (result.packet_info.HasValue(
- QuicUdpPacketInfoBit::GOOGLE_PACKET_HEADER)) {
- headers = result.packet_info.google_packet_headers().buffer;
- headers_length = result.packet_info.google_packet_headers().buffer_len;
- } else {
- QUIC_CODE_COUNT(quic_packet_reader_no_google_packet_header);
- }
-
- QuicReceivedPacket packet(
- result.packet_buffer.buffer, result.packet_buffer.buffer_len, now,
- /*owns_buffer=*/false, ttl, has_ttl, headers, headers_length,
- /*owns_header_buffer=*/false);
-
- QuicSocketAddress self_address(self_ip, port);
- processor->ProcessPacket(self_address, peer_address, packet);
- }
-
- // We may not have read all of the packets available on the socket.
- return packets_read == kNumPacketsPerReadMmsgCall;
-}
-
-// static
-QuicIpAddress QuicPacketReader::GetSelfIpFromPacketInfo(
- const QuicUdpPacketInfo& packet_info,
- bool prefer_v6_ip) {
- if (prefer_v6_ip) {
- if (packet_info.HasValue(QuicUdpPacketInfoBit::V6_SELF_IP)) {
- return packet_info.self_v6_ip();
- }
- if (packet_info.HasValue(QuicUdpPacketInfoBit::V4_SELF_IP)) {
- return packet_info.self_v4_ip();
- }
- } else {
- if (packet_info.HasValue(QuicUdpPacketInfoBit::V4_SELF_IP)) {
- return packet_info.self_v4_ip();
- }
- if (packet_info.HasValue(QuicUdpPacketInfoBit::V6_SELF_IP)) {
- return packet_info.self_v6_ip();
- }
- }
- return QuicIpAddress();
-}
-
-} // namespace quic