Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 90 additions & 6 deletions bazel/external/quiche.BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -62,24 +62,108 @@ cc_library(
name = "http2_platform",
hdrs = [
"quiche/http2/platform/api/http2_arraysize.h",
"quiche/http2/platform/api/http2_bug_tracker.h",
"quiche/http2/platform/api/http2_containers.h",
"quiche/http2/platform/api/http2_estimate_memory_usage.h",
"quiche/http2/platform/api/http2_export.h",
"quiche/http2/platform/api/http2_flag_utils.h",
"quiche/http2/platform/api/http2_flags.h",
"quiche/http2/platform/api/http2_macros.h",
"quiche/http2/platform/api/http2_mock_log.h",
"quiche/http2/platform/api/http2_optional.h",
"quiche/http2/platform/api/http2_ptr_util.h",
"quiche/http2/platform/api/http2_reconstruct_object.h",
"quiche/http2/platform/api/http2_string.h",
"quiche/http2/platform/api/http2_string_piece.h",
"quiche/http2/platform/api/http2_string_utils.h",
"quiche/http2/platform/api/http2_test_helpers.h",
# TODO: uncomment the following files as implementations are added.
# "quiche/http2/platform/api/http2_bug_tracker.h",
# "quiche/http2/platform/api/http2_flags.h",
# "quiche/http2/platform/api/http2_mock_log.h",
# "quiche/http2/platform/api/http2_reconstruct_object.h",
# "quiche/http2/platform/api/http2_string_utils.h",
# "quiche/http2/platform/api/http2_test_helpers.h",
],
visibility = ["//visibility:public"],
deps = [
"@envoy//source/extensions/quic_listeners/quiche/platform:http2_platform_impl_lib",
],
)

cc_library(
name = "spdy_platform",
hdrs = [
"quiche/spdy/platform/api/spdy_arraysize.h",
"quiche/spdy/platform/api/spdy_containers.h",
"quiche/spdy/platform/api/spdy_endianness_util.h",
"quiche/spdy/platform/api/spdy_estimate_memory_usage.h",
"quiche/spdy/platform/api/spdy_export.h",
"quiche/spdy/platform/api/spdy_ptr_util.h",
"quiche/spdy/platform/api/spdy_string.h",
"quiche/spdy/platform/api/spdy_string_piece.h",
# TODO: uncomment the following files as implementations are added.
# "quiche/spdy/platform/api/spdy_flags.h",
# "quiche/spdy/platform/api/spdy_mem_slice.h",
# "quiche/spdy/platform/api/spdy_string_utils.h",
],
visibility = ["//visibility:public"],
deps = [
"@envoy//source/extensions/quic_listeners/quiche/platform:spdy_platform_impl_lib",
],
)

cc_library(
name = "quic_platform",
hdrs = [
"quiche/quic/platform/api/quic_aligned.h",
"quiche/quic/platform/api/quic_arraysize.h",
"quiche/quic/platform/api/quic_containers.h",
"quiche/quic/platform/api/quic_endian.h",
"quiche/quic/platform/api/quic_estimate_memory_usage.h",
"quiche/quic/platform/api/quic_export.h",
"quiche/quic/platform/api/quic_fallthrough.h",
"quiche/quic/platform/api/quic_flag_utils.h",
"quiche/quic/platform/api/quic_iovec.h",
"quiche/quic/platform/api/quic_string.h",
"quiche/quic/platform/api/quic_string_piece.h",
# TODO: uncomment the following files as implementations are added.
# "quiche/quic/platform/api/quic_bug_tracker.h",
# "quiche/quic/platform/api/quic_client_stats.h",
# "quiche/quic/platform/api/quic_clock.h",
# "quiche/quic/platform/api/quic_expect_bug.h",
# "quiche/quic/platform/api/quic_exported_stats.h",
# "quiche/quic/platform/api/quic_file_utils.h",
# "quiche/quic/platform/api/quic_flags.h",
# "quiche/quic/platform/api/quic_fuzzed_data_provider.h",
# "quiche/quic/platform/api/quic_goog_cc_sender.h",
# "quiche/quic/platform/api/quic_hostname_utils.h",
# "quiche/quic/platform/api/quic_interval.h",
# "quiche/quic/platform/api/quic_ip_address_family.h",
# "quiche/quic/platform/api/quic_ip_address.h",
# "quiche/quic/platform/api/quic_logging.h",
# "quiche/quic/platform/api/quic_lru_cache.h",
# "quiche/quic/platform/api/quic_map_util.h",
# "quiche/quic/platform/api/quic_mem_slice.h",
# "quiche/quic/platform/api/quic_mem_slice_span.h",
# "quiche/quic/platform/api/quic_mem_slice_storage.h",
# "quiche/quic/platform/api/quic_mock_log.h",
# "quiche/quic/platform/api/quic_mutex.h",
# "quiche/quic/platform/api/quic_pcc_sender.h",
# "quiche/quic/platform/api/quic_prefetch.h",
# "quiche/quic/platform/api/quic_ptr_util.h",
# "quiche/quic/platform/api/quic_reference_counted.h",
# "quiche/quic/platform/api/quic_server_stats.h",
# "quiche/quic/platform/api/quic_singleton.h",
# "quiche/quic/platform/api/quic_sleep.h",
# "quiche/quic/platform/api/quic_socket_address.h",
# "quiche/quic/platform/api/quic_stack_trace.h",
# "quiche/quic/platform/api/quic_str_cat.h",
# "quiche/quic/platform/api/quic_string_utils.h",
# "quiche/quic/platform/api/quic_test.h",
# "quiche/quic/platform/api/quic_test_loopback.h",
# "quiche/quic/platform/api/quic_test_mem_slice_vector.h",
# "quiche/quic/platform/api/quic_test_output.h",
# "quiche/quic/platform/api/quic_text_utils.h",
# "quiche/quic/platform/api/quic_thread.h",
# "quiche/quic/platform/api/quic_uint128.h",
],
visibility = ["//visibility:public"],
deps = [
"@envoy//source/extensions/quic_listeners/quiche/platform:quic_platform_impl_lib",
],
)
30 changes: 28 additions & 2 deletions bazel/repositories.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -489,6 +489,26 @@ def _com_google_absl():
name = "abseil_flat_hash_set",
actual = "@com_google_absl//absl/container:flat_hash_set",
)
native.bind(
name = "abseil_hash",
actual = "@com_google_absl//absl/hash:hash",
)
native.bind(
name = "abseil_inlined_vector",
actual = "@com_google_absl//absl/container:inlined_vector",
)
native.bind(
name = "abseil_memory",
actual = "@com_google_absl//absl/memory:memory",
)
native.bind(
name = "abseil_node_hash_map",
actual = "@com_google_absl//absl/container:node_hash_map",
)
native.bind(
name = "abseil_node_hash_set",
actual = "@com_google_absl//absl/container:node_hash_set",
)
native.bind(
name = "abseil_strings",
actual = "@com_google_absl//absl/strings:strings",
Expand Down Expand Up @@ -557,12 +577,18 @@ def _com_googlesource_quiche():
build_file = "@envoy//bazel/external:quiche.BUILD",
)

# TODO: add bindings for quiche_quic_platform and quiche_spdy_platform once
# those build targets have been defined.
native.bind(
name = "quiche_http2_platform",
actual = "@com_googlesource_quiche//:http2_platform",
)
native.bind(
name = "quiche_spdy_platform",
actual = "@com_googlesource_quiche//:spdy_platform",
)
native.bind(
name = "quiche_quic_platform",
actual = "@com_googlesource_quiche//:quic_platform",
)

def _com_github_grpc_grpc():
_repository_impl("com_github_grpc_grpc")
Expand Down
60 changes: 52 additions & 8 deletions source/extensions/quic_listeners/quiche/platform/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -14,32 +14,76 @@ envoy_package()
# tests. In a monorepo, this would be enforced via visibility attribute, but
# Bazel does not support limiting visibility to specific external dependencies.

# TODO: add build targets for quic_platform_impl_lib and spdy_platform_impl_lib,
# as _impl.* files for those are added.
# TODO: add build target for quic_platform_impl_lib

envoy_cc_library(
name = "http2_platform_impl_lib",
hdrs = [
"http2_arraysize_impl.h",
"http2_bug_tracker_impl.h",
"http2_containers_impl.h",
"http2_estimate_memory_usage_impl.h",
"http2_export_impl.h",
"http2_flag_utils_impl.h",
"http2_flags_impl.h",
"http2_macros_impl.h",
"http2_mock_log_impl.h",
"http2_optional_impl.h",
"http2_ptr_util_impl.h",
"http2_reconstruct_object_impl.h",
"http2_string_impl.h",
"http2_string_piece_impl.h",
"http2_string_utils_impl.h",
"http2_test_helpers_impl.h",
],
external_deps = [
"abseil_base",
"abseil_optional",
],
visibility = ["//visibility:public"],
)

envoy_cc_library(
name = "quic_platform_impl_lib",
hdrs = [
"quic_aligned_impl.h",
"quic_arraysize_impl.h",
"quic_containers_impl.h",
"quic_endian_impl.h",
"quic_estimate_memory_usage_impl.h",
"quic_export_impl.h",
"quic_fallthrough_impl.h",
"quic_flag_utils_impl.h",
"quic_iovec_impl.h",
"quic_string_impl.h",
"quic_string_piece_impl.h",
],
external_deps = [
"abseil_base",
"abseil_hash",
"abseil_inlined_vector",
"abseil_memory",
"abseil_node_hash_map",
"abseil_node_hash_set",
],
visibility = ["//visibility:public"],
)

envoy_cc_library(
name = "spdy_platform_impl_lib",
hdrs = [
"spdy_arraysize_impl.h",
"spdy_containers_impl.h",
"spdy_endianness_util_impl.h",
"spdy_estimate_memory_usage_impl.h",
"spdy_export_impl.h",
"spdy_macros_impl.h",
"spdy_ptr_util_impl.h",
"spdy_string_impl.h",
"spdy_string_piece_impl.h",
"spdy_test_helpers_impl.h",
"spdy_test_utils_prod_impl.h",
"spdy_unsafe_arena_impl.h",
],
external_deps = [
"abseil_base",
"abseil_hash",
"abseil_inlined_vector",
"abseil_memory",
],
visibility = ["//visibility:public"],
)

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#pragma once

#include "absl/base/optimization.h"

// NOLINT(namespace-envoy)

// This file is part of the QUICHE platform implementation, and is not to be
// consumed or referenced directly by other Envoy code. It serves purely as a
// porting layer for QUICHE.

#define QUIC_ALIGN_OF_IMPL alignof
#define QUIC_ALIGNED_IMPL(X) __attribute__((aligned(X)))
#define QUIC_CACHELINE_ALIGNED_IMPL ABSL_CACHELINE_ALIGNED
#define QUIC_CACHELINE_SIZE_IMPL ABSL_CACHELINE_SIZE
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#pragma once

#include "absl/base/macros.h"

// NOLINT(namespace-envoy)

// This file is part of the QUICHE platform implementation, and is not to be
// consumed or referenced directly by other Envoy code. It serves purely as a
// porting layer for QUICHE.

#define QUIC_ARRAYSIZE_IMPL(array) ABSL_ARRAYSIZE(array)
Loading