From 972166c816f0766572cd64bf71e4a97f1bb763dd Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Thu, 5 Mar 2020 05:53:11 +0000 Subject: [PATCH 01/19] Upstreaming of proxy-wasm Part 1. Signed-off-by: John Plevyak --- bazel/repositories.bzl | 12 + bazel/repository_locations.bzl | 10 + include/abi/wasm/proxy_wasm_exports.h | 8 +- include/abi/wasm/proxy_wasm_imports.h | 24 +- source/extensions/common/wasm/BUILD | 56 +- source/extensions/common/wasm/context.cc | 212 ++++++ source/extensions/common/wasm/context.h | 122 ++++ source/extensions/common/wasm/null/BUILD | 49 -- source/extensions/common/wasm/null/null.cc | 27 - source/extensions/common/wasm/null/null.h | 20 - source/extensions/common/wasm/null/null_vm.cc | 94 --- source/extensions/common/wasm/null/null_vm.h | 65 -- .../common/wasm/null/null_vm_plugin.h | 47 -- source/extensions/common/wasm/v8/BUILD | 24 - source/extensions/common/wasm/v8/v8.cc | 678 ------------------ source/extensions/common/wasm/v8/v8.h | 19 - source/extensions/common/wasm/wasm.cc | 177 +++++ source/extensions/common/wasm/wasm.h | 111 +++ source/extensions/common/wasm/wasm_state.cc | 30 + source/extensions/common/wasm/wasm_state.h | 37 + source/extensions/common/wasm/wasm_vm.cc | 21 +- source/extensions/common/wasm/wasm_vm.h | 322 ++------- source/extensions/common/wasm/wasm_vm_base.h | 55 -- test/extensions/common/wasm/BUILD | 19 + test/extensions/common/wasm/test_data/BUILD | 18 + .../extensions/common/wasm/test_data/Makefile | 6 + .../test_data/Makefile.docker_cpp_builder | 6 + .../wasm/test_data/bad_signature_cpp.cc | 13 + .../wasm/test_data/bad_signature_cpp.wasm | Bin 0 -> 1046295 bytes .../wasm/test_data/docker_build_cpp_wasm.sh | 2 + .../wasm/test_data/docker_cpp_builder.sh | 4 + .../common/wasm/test_data/test_cpp.cc | 136 ++++ .../common/wasm/test_data/test_cpp.wasm | Bin 0 -> 1052988 bytes .../wasm/test_data/test_cpp_null_plugin.cc | 13 + .../common/wasm/test_data/test_rust.wasm | Bin 5546 -> 5548 bytes test/extensions/common/wasm/wasm_test.cc | 314 ++++++++ test/extensions/common/wasm/wasm_vm_test.cc | 45 +- 37 files changed, 1383 insertions(+), 1413 deletions(-) create mode 100644 source/extensions/common/wasm/context.cc create mode 100644 source/extensions/common/wasm/context.h delete mode 100644 source/extensions/common/wasm/null/BUILD delete mode 100644 source/extensions/common/wasm/null/null.cc delete mode 100644 source/extensions/common/wasm/null/null.h delete mode 100644 source/extensions/common/wasm/null/null_vm.cc delete mode 100644 source/extensions/common/wasm/null/null_vm.h delete mode 100644 source/extensions/common/wasm/null/null_vm_plugin.h delete mode 100644 source/extensions/common/wasm/v8/BUILD delete mode 100644 source/extensions/common/wasm/v8/v8.cc delete mode 100644 source/extensions/common/wasm/v8/v8.h create mode 100644 source/extensions/common/wasm/wasm.cc create mode 100644 source/extensions/common/wasm/wasm.h create mode 100644 source/extensions/common/wasm/wasm_state.cc create mode 100644 source/extensions/common/wasm/wasm_state.h delete mode 100644 source/extensions/common/wasm/wasm_vm_base.h create mode 100644 test/extensions/common/wasm/test_data/Makefile create mode 100644 test/extensions/common/wasm/test_data/Makefile.docker_cpp_builder create mode 100644 test/extensions/common/wasm/test_data/bad_signature_cpp.cc create mode 100644 test/extensions/common/wasm/test_data/bad_signature_cpp.wasm create mode 100755 test/extensions/common/wasm/test_data/docker_build_cpp_wasm.sh create mode 100755 test/extensions/common/wasm/test_data/docker_cpp_builder.sh create mode 100644 test/extensions/common/wasm/test_data/test_cpp.cc create mode 100644 test/extensions/common/wasm/test_data/test_cpp.wasm create mode 100644 test/extensions/common/wasm/test_data/test_cpp_null_plugin.cc create mode 100644 test/extensions/common/wasm/wasm_test.cc diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl index f77167aeae289..32cbe4a426021 100644 --- a/bazel/repositories.bzl +++ b/bazel/repositories.bzl @@ -146,6 +146,8 @@ def envoy_dependencies(skip_targets = []): _io_opentracing_cpp() _net_zlib() _upb() + _proxy_wasm_cpp_sdk() + _proxy_wasm_cpp_host() _repository_impl("com_googlesource_code_re2") _com_google_cel_cpp() _repository_impl("bazel_toolchains") @@ -741,6 +743,16 @@ def _com_github_gperftools_gperftools(): actual = "@envoy//bazel/foreign_cc:gperftools", ) +def _proxy_wasm_cpp_sdk(): + _repository_impl( + name = "proxy_wasm_cpp_host", + ) + +def _proxy_wasm_cpp_host(): + _repository_impl( + name = "proxy_wasm_cpp_sdk", + ) + def _kafka_deps(): # This archive contains Kafka client source code. # We are using request/response message format files to generate parser code. diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl index 0bf22ab5ee115..cf335389b8a24 100644 --- a/bazel/repository_locations.bzl +++ b/bazel/repository_locations.bzl @@ -319,4 +319,14 @@ REPOSITORY_LOCATIONS = dict( strip_prefix = "kafka-python-2.0.0", urls = ["https://github.com/dpkp/kafka-python/archive/2.0.0.tar.gz"], ), + proxy_wasm_cpp_sdk = dict( + sha256 = "14f66f67e8f37ec81d28d7f5307be4407d206ac5f0daaf6d22fa5536797bcac1", + strip_prefix = "proxy-wasm-cpp-sdk-31f1fc5b7e09f231fa532d2d296e479a113c3e10", + urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-sdk/archive/31f1fc5b7e09f231fa532d2d296e479a113c3e10.tar.gz"], + ), + proxy_wasm_cpp_host = dict( + sha256 = "d1fb98a40b38b99393b56b3509dac5f01a769512aebc86dcc37782ba29549517", + strip_prefix = "proxy-wasm-cpp-host-8c33ecf3784b00d0bc6b88bbe9de6d4e51239f88", + urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-host/archive/8c33ecf3784b00d0bc6b88bbe9de6d4e51239f88.tar.gz"], + ), ) diff --git a/include/abi/wasm/proxy_wasm_exports.h b/include/abi/wasm/proxy_wasm_exports.h index f2536a8c51a4e..748a1a0ef4352 100644 --- a/include/abi/wasm/proxy_wasm_exports.h +++ b/include/abi/wasm/proxy_wasm_exports.h @@ -28,7 +28,7 @@ * Called when the VM starts by the first plugin to use the VM. * @param root_context_id is an identifier for one or more related plugins. * @param vm_configuration_size is the size of any configuration available via - * proxy_get_configuration during the lifetime of this call. + * proxy_get_buffer_bytes() during the lifetime of this call. * @return non-zero on success and zero on failure (e.g. bad configuration). */ enum class WasmOnVmStartResult : uint32_t { @@ -44,7 +44,7 @@ extern "C" WasmOnVmStartResult proxy_on_vm_start(uint32_t root_context_id, * configuration. * @param root_context_id is a unique identifier for the configuration verification context. * @param configuration_size is the size of any configuration available via - * proxy_get_configuration(). + * proxy_get_buffer_bytes(). * @return non-zero on success and zero on failure (i.e. bad configuration). */ enum class WasmOnValidateConfigurationResult : uint32_t { @@ -57,7 +57,7 @@ proxy_validate_configuration(uint32_t root_context_id, uint32_t configuration_si * Called when a plugin loads or when plugin configuration changes dynamically. * @param root_context_id is an identifier for one or more related plugins. * @param plugin_configuration_size is the size of any configuration available via - * proxy_get_configuration(). + * proxy_get_buffer_bytes(). * @return non-zero on success and zero on failure (e.g. bad configuration). */ enum class WasmOnConfigureResult : uint32_t { @@ -73,7 +73,7 @@ extern "C" WasmOnConfigureResult proxy_on_configure(uint32_t root_context_id, * Called when a request, stream or other ephemeral context is created. * @param context_id is an identifier of the ephemeral context. * @param configuration_size is the size of any configuration available via - * proxy_get_configuration(). + * proxy_get_buffer_bytes(). */ extern "C" void proxy_on_context_create(uint32_t context_id, uint32_t root_context_id); diff --git a/include/abi/wasm/proxy_wasm_imports.h b/include/abi/wasm/proxy_wasm_imports.h index 6341420035029..189b764790221 100644 --- a/include/abi/wasm/proxy_wasm_imports.h +++ b/include/abi/wasm/proxy_wasm_imports.h @@ -15,23 +15,25 @@ // Configuration and Status /** - * Called from the VM to get any configuration. Valid only when in proxy_on_start() (where it will - * return a VM configuration), proxy_on_configure() (where it will return a plugin configuration) or - * in proxy_validate_configuration() (where it will return a VM configuration before - * proxy_on_start() has been called and a plugin configuration after). + * Called from the VM to get bytes from a buffer (e.g. a vm or plugin configuration). * @param start is the offset of the first byte to retrieve. * @param length is the number of the bytes to retrieve. If start + length exceeds the number of * bytes available then configuration_size will be set to the number of bytes returned. - * @param configuration_ptr a pointer to a location which will be filled with either nullptr (if no - * configuration is available) or a pointer to a allocated block containing the configuration + * @param ptr a pointer to a location which will be filled with either nullptr (if no + * data is available) or a pointer to a allocated block containing the configuration * bytes. - * @param configuration_size a pointer to a location containing the size (or zero) of any returned - * configuration byte block. - * @return a WasmResult: OK, InvalidMemoryAccess. Note: if OK is returned *configuration_ptr may + * @param size a pointer to a location containing the size (or zero) of any returned + * byte block. + * @return a WasmResult: OK, InvalidArgument, InvalidMemoryAccess. Note: if OK is returned *ptr may * be nullptr. */ -extern "C" WasmResult proxy_get_configuration((uint32_t start, uint32_t length, - const char** configuration_ptr, size_t* configuration_size); +enum class WasmBufferType : int32_t { + VmConfiguration = 0, + PluginConfiguration = 1, + MAX = 2, +}; +extern "C" WasmResult proxy_get_buffer_bytes(WasmBufferType type, uint32_t start, uint32_t length, + const char** ptr, size_t* size); // Logging // diff --git a/source/extensions/common/wasm/BUILD b/source/extensions/common/wasm/BUILD index 9333c679421f6..e92297671a583 100644 --- a/source/extensions/common/wasm/BUILD +++ b/source/extensions/common/wasm/BUILD @@ -17,29 +17,61 @@ envoy_cc_library( ) envoy_cc_library( - name = "wasm_vm_interface", - hdrs = ["wasm_vm.h"], + name = "wasm_vm_lib", + srcs = ["wasm_vm.cc"], deps = [ - ":well_known_names", - "//source/common/common:minimal_logger_lib", + ":wasm_hdr", + "@proxy_wasm_cpp_host//:lib", + "@proxy_wasm_cpp_sdk//:common_lib", + "//source/common/common:assert_lib", + "//source/common/stats:stats_lib", + #"//source/extensions/common/wasm/v8:v8_lib", ], ) +# NB: Used to break the circular dependency between wasm_lib and null_plugin_lib. envoy_cc_library( - name = "wasm_vm_base", - hdrs = ["wasm_vm_base.h"], + name = "wasm_hdr", + hdrs = [ + "context.h", + "wasm.h", + "wasm_vm.h", + ], deps = [ + "@proxy_wasm_cpp_host//:include", + "@proxy_wasm_cpp_sdk//:common_lib", + ":well_known_names", + "//include/envoy/upstream:cluster_manager_interface", + "//source/common/config:datasource_lib", "//source/common/stats:stats_lib", + "@envoy_api//envoy/extensions/wasm/v3:pkg_cc_proto", ], ) envoy_cc_library( - name = "wasm_vm_lib", - srcs = ["wasm_vm.cc"], + name = "wasm_interoperation_lib", + srcs = ["wasm_state.cc"], + hdrs = ["wasm_state.h"], deps = [ - ":wasm_vm_interface", - "//source/common/common:assert_lib", - "//source/extensions/common/wasm/null:null_lib", - "//source/extensions/common/wasm/v8:v8_lib", + "//include/envoy/stream_info:filter_state_interface", + "//source/common/protobuf", + ], +) + +envoy_cc_library( + name = "wasm_lib", + srcs = [ + "context.cc", + "wasm.cc", + ], + deps = [ + ":wasm_hdr", + ":wasm_interoperation_lib", + ":wasm_vm_lib", + "//external:abseil_base", + "//external:abseil_node_hash_map", + "//source/common/common:base64_lib", + "//source/common/common:enum_to_int", + "@envoy_api//envoy/extensions/wasm/v3:pkg_cc_proto", ], ) diff --git a/source/extensions/common/wasm/context.cc b/source/extensions/common/wasm/context.cc new file mode 100644 index 0000000000000..66c2f1e0a48a7 --- /dev/null +++ b/source/extensions/common/wasm/context.cc @@ -0,0 +1,212 @@ +#include +#include + +#include +#include +#include +#include +#include + +#include "envoy/common/exception.h" +#include "envoy/extensions/wasm/v3/wasm.pb.validate.h" +#include "envoy/local_info/local_info.h" +#include "envoy/thread_local/thread_local.h" + +#include "common/common/assert.h" +#include "common/common/empty_string.h" +#include "common/common/enum_to_int.h" +#include "common/common/logger.h" + +#include "extensions/common/wasm/wasm.h" +#include "extensions/common/wasm/wasm_state.h" +#include "extensions/common/wasm/well_known_names.h" + +#include "absl/base/casts.h" +#include "absl/container/flat_hash_map.h" +#include "absl/container/node_hash_map.h" +#include "absl/strings/str_cat.h" +#include "absl/synchronization/mutex.h" +#include "openssl/bytestring.h" +#include "openssl/hmac.h" +#include "openssl/sha.h" + +namespace Envoy { +namespace Extensions { +namespace Common { +namespace Wasm { + +bool Buffer::copyTo(WasmBase* wasm, size_t start, size_t length, uint64_t ptr_ptr, + uint64_t size_ptr) const { + if (start + length > data_.size()) { + return false; + } + absl::string_view s = data_.substr(start, length); + return wasm->copyToPointerSize(s, ptr_ptr, size_ptr); +} + +Wasm* Context::wasm() const { return static_cast(wasm_); } + +void Context::error(absl::string_view message) { throw WasmException(std::string(message)); } + +void Context::initializeRoot(WasmBase* wasm, PluginBaseSharedPtr plugin) { + ContextBase::initializeRoot(wasm, plugin); + root_local_info_ = &std::static_pointer_cast(plugin)->local_info_; +} + +uint64_t Context::getCurrentTimeNanoseconds() { + return std::chrono::duration_cast( + wasm()->time_source_.systemTime().time_since_epoch()) + .count(); +} + +WasmResult Context::log(uint64_t level, absl::string_view message) { + switch (static_cast(level)) { + case proxy_wasm::LogLevel::trace: + ENVOY_LOG(trace, "wasm log{}: {}", log_prefix(), message); + break; + case proxy_wasm::LogLevel::debug: + ENVOY_LOG(debug, "wasm log{}: {}", log_prefix(), message); + break; + case proxy_wasm::LogLevel::info: + ENVOY_LOG(info, "wasm log{}: {}", log_prefix(), message); + break; + case proxy_wasm::LogLevel::warn: + ENVOY_LOG(warn, "wasm log{}: {}", log_prefix(), message); + break; + case proxy_wasm::LogLevel::error: + ENVOY_LOG(error, "wasm log{}: {}", log_prefix(), message); + break; + case proxy_wasm::LogLevel::critical: + ENVOY_LOG(critical, "wasm log{}: {}", log_prefix(), message); + break; + default: + return WasmResult::BadArgument; + } + return WasmResult::Ok; +} + +WasmResult Context::getProperty(absl::string_view path, std::string* result) { + if (path.size() == 15 && !memcmp(reinterpret_cast(&*path.begin()), + reinterpret_cast("plugin_root_id\0"), 15)) { + std::cerr << "returning " << root_id() << "\n"; + *result = std::string(root_id()); + return WasmResult::Ok; + } + return WasmResult::Unimplemented; +} + +WasmResult Context::defineMetric(MetricType type, absl::string_view name, uint32_t* metric_id_ptr) { + auto stat_name = wasm()->stat_name_set_->add(name); + if (type == MetricType::Counter) { + auto id = wasm_->nextCounterMetricId(); + auto c = &wasm()->scope_->counterFromStatName(stat_name); + wasm()->counters_.emplace(id, c); + *metric_id_ptr = id; + return WasmResult::Ok; + } else if (type == MetricType::Gauge) { + auto id = wasm()->nextGaugeMetricId(); + auto g = &wasm()->scope_->gaugeFromStatName(stat_name, Stats::Gauge::ImportMode::Accumulate); + wasm()->gauges_.emplace(id, g); + *metric_id_ptr = id; + return WasmResult::Ok; + } else if (type == MetricType::Histogram) { + auto id = wasm()->nextHistogramMetricId(); + auto h = &wasm()->scope_->histogramFromStatName(stat_name, Stats::Histogram::Unit::Unspecified); + wasm()->histograms_.emplace(id, h); + *metric_id_ptr = id; + return WasmResult::Ok; + } + return WasmResult::BadArgument; +} + +WasmResult Context::incrementMetric(uint32_t metric_id, int64_t offset) { + auto type = static_cast(metric_id & Wasm::kMetricTypeMask); + if (type == MetricType::Counter) { + auto it = wasm()->counters_.find(metric_id); + if (it != wasm()->counters_.end()) { + if (offset > 0) { + it->second->add(offset); + return WasmResult::Ok; + } else { + return WasmResult::BadArgument; + } + return WasmResult::NotFound; + } + } else if (type == MetricType::Gauge) { + auto it = wasm()->gauges_.find(metric_id); + if (it != wasm()->gauges_.end()) { + if (offset > 0) { + it->second->add(offset); + return WasmResult::Ok; + } else { + it->second->sub(-offset); + return WasmResult::Ok; + } + } + return WasmResult::NotFound; + } + return WasmResult::BadArgument; +} + +WasmResult Context::recordMetric(uint32_t metric_id, uint64_t value) { + auto type = static_cast(metric_id & Wasm::kMetricTypeMask); + if (type == MetricType::Counter) { + auto it = wasm()->counters_.find(metric_id); + if (it != wasm()->counters_.end()) { + it->second->add(value); + return WasmResult::Ok; + } + } else if (type == MetricType::Gauge) { + auto it = wasm()->gauges_.find(metric_id); + if (it != wasm()->gauges_.end()) { + it->second->set(value); + return WasmResult::Ok; + } + } else if (type == MetricType::Histogram) { + auto it = wasm()->histograms_.find(metric_id); + if (it != wasm()->histograms_.end()) { + it->second->recordValue(value); + return WasmResult::Ok; + } + } + return WasmResult::NotFound; +} + +WasmResult Context::getMetric(uint32_t metric_id, uint64_t* result_uint64_ptr) { + auto type = static_cast(metric_id & Wasm::kMetricTypeMask); + if (type == MetricType::Counter) { + auto it = wasm()->counters_.find(metric_id); + if (it != wasm()->counters_.end()) { + *result_uint64_ptr = it->second->value(); + return WasmResult::Ok; + } + return WasmResult::NotFound; + } else if (type == MetricType::Gauge) { + auto it = wasm()->gauges_.find(metric_id); + if (it != wasm()->gauges_.end()) { + *result_uint64_ptr = it->second->value(); + return WasmResult::Ok; + } + return WasmResult::NotFound; + } + return WasmResult::BadArgument; +} + +const BufferInterface* Context::getBuffer(WasmBufferType type) { + switch (type) { + case WasmBufferType::VmConfiguration: + return buffer_.set(wasm()->vm_configuration()); + case WasmBufferType::PluginConfiguration: + if (plugin_) + return buffer_.set(plugin_->plugin_configuration_); + break; + default: + break; + } + return nullptr; +} + +} // namespace Wasm +} // namespace Common +} // namespace Extensions +} // namespace Envoy diff --git a/source/extensions/common/wasm/context.h b/source/extensions/common/wasm/context.h new file mode 100644 index 0000000000000..b3a03021da627 --- /dev/null +++ b/source/extensions/common/wasm/context.h @@ -0,0 +1,122 @@ +#pragma once + +#include +#include +#include + +#include "include/proxy-wasm/context.h" + +#include "envoy/access_log/access_log.h" +#include "envoy/buffer/buffer.h" +#include "envoy/http/filter.h" +#include "envoy/upstream/cluster_manager.h" + +#include "common/common/assert.h" +#include "common/common/logger.h" + +namespace Envoy { +namespace Extensions { +namespace Common { +namespace Wasm { + +class Wasm; + +#include "proxy_wasm_common.h" + +using proxy_wasm::BufferInterface; +using proxy_wasm::MetricType; +using proxy_wasm::Pairs; +using proxy_wasm::PairsWithStringValues; +using proxy_wasm::PluginBase; +using proxy_wasm::WasmBase; +using proxy_wasm::WasmBufferType; +using proxy_wasm::WasmHandle; +using proxy_wasm::WasmResult; +using proxy_wasm::WasmVm; + +using PluginBaseSharedPtr = std::shared_ptr; + +class Buffer : public proxy_wasm::BufferInterface { +public: + Buffer() {} + + // Add additional wrappped types here. + Buffer* set(absl::string_view data) { + data_ = data; + return this; + } + + size_t size() const override { return data_.size(); } + bool copyTo(WasmBase* wasm, size_t start, size_t length, uint64_t ptr_ptr, + uint64_t size_ptr) const override; + +private: + absl::string_view data_; +}; + +// Plugin contains the information for a filter/service. +struct Plugin : public PluginBase { + Plugin(absl::string_view name, absl::string_view root_id, absl::string_view vm_id, + absl::string_view plugin_configuration, + const envoy::config::core::v3::TrafficDirection& direction, + const LocalInfo::LocalInfo& local_info, + const envoy::config::core::v3::Metadata* listener_metadata) + : PluginBase(name, root_id, vm_id, plugin_configuration), direction_(direction), + local_info_(local_info), listener_metadata_(listener_metadata) {} + + const envoy::config::core::v3::TrafficDirection direction_; + const LocalInfo::LocalInfo& local_info_; + const envoy::config::core::v3::Metadata* listener_metadata_; +}; +using PluginSharedPtr = std::shared_ptr; + +// A context which will be the target of callbacks for a particular session +// e.g. a handler of a stream. +class Context : public proxy_wasm::ContextBase, + Logger::Loggable, + public std::enable_shared_from_this { +public: + Context(); // Testing. + Context(WasmBase* wasm) : ContextBase(wasm) {} // Vm Context. + Context(WasmBase* wasm, PluginSharedPtr plugin) : ContextBase(wasm, plugin) {} // Root Context. + Context(WasmBase* wasm, uint32_t root_context_id, PluginSharedPtr plugin) + : ContextBase(wasm, root_context_id, plugin) {} // Stream context. + virtual ~Context() {} + + Wasm* wasm() const; + + void error(absl::string_view message) override; + + // + // General Callbacks. + // + WasmResult log(uint64_t level, absl::string_view message) override; + uint64_t getCurrentTimeNanoseconds() override; + + // Buffer + const BufferInterface* getBuffer(WasmBufferType type) override; + + // Properties + WasmResult getProperty(absl::string_view path, std::string* result) override; + + // Metrics + WasmResult defineMetric(MetricType type, absl::string_view name, + uint32_t* metric_id_ptr) override; + WasmResult incrementMetric(uint32_t metric_id, int64_t offset) override; + WasmResult recordMetric(uint32_t metric_id, uint64_t value) override; + WasmResult getMetric(uint32_t metric_id, uint64_t* value_ptr) override; + +protected: + void initializeRoot(WasmBase* wasm, PluginBaseSharedPtr plugin) override; + + const LocalInfo::LocalInfo* root_local_info_{nullptr}; // set only for root_context. + + // State use for calls into the VM. + Buffer buffer_; +}; +using ContextSharedPtr = std::shared_ptr; + +} // namespace Wasm +} // namespace Common +} // namespace Extensions +} // namespace Envoy diff --git a/source/extensions/common/wasm/null/BUILD b/source/extensions/common/wasm/null/BUILD deleted file mode 100644 index 2bae8acd9f4ff..0000000000000 --- a/source/extensions/common/wasm/null/BUILD +++ /dev/null @@ -1,49 +0,0 @@ -licenses(["notice"]) # Apache 2 - -load( - "//bazel:envoy_build_system.bzl", - "envoy_cc_library", - "envoy_package", -) - -envoy_package() - -envoy_cc_library( - name = "null_vm_plugin_interface", - hdrs = ["null_vm_plugin.h"], - deps = [ - "//include/envoy/config:typed_config_interface", - "//source/extensions/common/wasm:wasm_vm_interface", - "//source/extensions/common/wasm:well_known_names", - ], -) - -envoy_cc_library( - name = "null_vm_lib", - srcs = ["null_vm.cc"], - hdrs = ["null_vm.h"], - deps = [ - ":null_vm_plugin_interface", - "//external:abseil_node_hash_map", - "//include/envoy/registry", - "//source/common/common:assert_lib", - "//source/extensions/common/wasm:wasm_vm_base", - "//source/extensions/common/wasm:wasm_vm_interface", - "//source/extensions/common/wasm:well_known_names", - ], -) - -envoy_cc_library( - name = "null_lib", - srcs = ["null.cc"], - hdrs = ["null.h"], - deps = [ - ":null_vm_lib", - ":null_vm_plugin_interface", - "//external:abseil_node_hash_map", - "//include/envoy/registry", - "//source/common/common:assert_lib", - "//source/extensions/common/wasm:wasm_vm_interface", - "//source/extensions/common/wasm:well_known_names", - ], -) diff --git a/source/extensions/common/wasm/null/null.cc b/source/extensions/common/wasm/null/null.cc deleted file mode 100644 index af2ba77d1dc56..0000000000000 --- a/source/extensions/common/wasm/null/null.cc +++ /dev/null @@ -1,27 +0,0 @@ -#include "extensions/common/wasm/null/null.h" - -#include -#include -#include - -#include "envoy/registry/registry.h" - -#include "common/common/assert.h" - -#include "extensions/common/wasm/null/null_vm.h" -#include "extensions/common/wasm/null/null_vm_plugin.h" -#include "extensions/common/wasm/well_known_names.h" - -namespace Envoy { -namespace Extensions { -namespace Common { -namespace Wasm { -namespace Null { - -WasmVmPtr createVm(const Stats::ScopeSharedPtr& scope) { return std::make_unique(scope); } - -} // namespace Null -} // namespace Wasm -} // namespace Common -} // namespace Extensions -} // namespace Envoy diff --git a/source/extensions/common/wasm/null/null.h b/source/extensions/common/wasm/null/null.h deleted file mode 100644 index 285b13373fbc8..0000000000000 --- a/source/extensions/common/wasm/null/null.h +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once - -#include - -#include "extensions/common/wasm/null/null_vm_plugin.h" -#include "extensions/common/wasm/wasm_vm.h" - -namespace Envoy { -namespace Extensions { -namespace Common { -namespace Wasm { -namespace Null { - -WasmVmPtr createVm(const Stats::ScopeSharedPtr& scope); - -} // namespace Null -} // namespace Wasm -} // namespace Common -} // namespace Extensions -} // namespace Envoy diff --git a/source/extensions/common/wasm/null/null_vm.cc b/source/extensions/common/wasm/null/null_vm.cc deleted file mode 100644 index abd4418fc76b9..0000000000000 --- a/source/extensions/common/wasm/null/null_vm.cc +++ /dev/null @@ -1,94 +0,0 @@ -#include "extensions/common/wasm/null/null_vm.h" - -#include -#include -#include - -#include "envoy/registry/registry.h" - -#include "common/common/assert.h" - -#include "extensions/common/wasm/null/null_vm_plugin.h" -#include "extensions/common/wasm/well_known_names.h" - -namespace Envoy { -namespace Extensions { -namespace Common { -namespace Wasm { -namespace Null { - -WasmVmPtr NullVm::clone() { - auto cloned_null_vm = std::make_unique(*this); - cloned_null_vm->load(plugin_name_, false /* unused */); - return cloned_null_vm; -} - -// "Load" the plugin by obtaining a pointer to it from the factory. -bool NullVm::load(const std::string& name, bool /* allow_precompiled */) { - auto factory = Registry::FactoryRegistry::getFactory(name); - if (!factory) { - return false; - } - plugin_name_ = name; - plugin_ = factory->create(); - return true; -} - -void NullVm::link(absl::string_view /* name */) {} - -uint64_t NullVm::getMemorySize() { return std::numeric_limits::max(); } - -// NulVm pointers are just native pointers. -absl::optional NullVm::getMemory(uint64_t pointer, uint64_t size) { - if (pointer == 0 && size != 0) { - return absl::nullopt; - } - return absl::string_view(reinterpret_cast(pointer), static_cast(size)); -} - -bool NullVm::setMemory(uint64_t pointer, uint64_t size, const void* data) { - if ((pointer == 0 || data == nullptr)) { - if (size != 0) { - return false; - } else { - return true; - } - } - auto p = reinterpret_cast(pointer); - memcpy(p, data, size); - return true; -} - -bool NullVm::setWord(uint64_t pointer, Word data) { - if (pointer == 0) { - return false; - } - auto p = reinterpret_cast(pointer); - memcpy(p, &data.u64_, sizeof(data.u64_)); - return true; -} - -bool NullVm::getWord(uint64_t pointer, Word* data) { - if (pointer == 0) { - return false; - } - auto p = reinterpret_cast(pointer); - memcpy(&data->u64_, p, sizeof(data->u64_)); - return true; -} - -absl::string_view NullVm::getCustomSection(absl::string_view /* name */) { - // Return nothing: there is no WASM file. - return {}; -} - -absl::string_view NullVm::getPrecompiledSectionName() { - // Return nothing: there is no WASM file. - return {}; -} - -} // namespace Null -} // namespace Wasm -} // namespace Common -} // namespace Extensions -} // namespace Envoy diff --git a/source/extensions/common/wasm/null/null_vm.h b/source/extensions/common/wasm/null/null_vm.h deleted file mode 100644 index e0cf345c51b6e..0000000000000 --- a/source/extensions/common/wasm/null/null_vm.h +++ /dev/null @@ -1,65 +0,0 @@ -#pragma once - -#include -#include -#include - -#include "envoy/registry/registry.h" - -#include "common/common/assert.h" - -#include "extensions/common/wasm/null/null_vm_plugin.h" -#include "extensions/common/wasm/wasm_vm_base.h" -#include "extensions/common/wasm/well_known_names.h" - -namespace Envoy { -namespace Extensions { -namespace Common { -namespace Wasm { -namespace Null { - -// The NullVm wraps a C++ WASM plugin which has been compiled with the WASM API -// and linked directly into the Envoy process. This is useful for development -// in that it permits the debugger to set breakpoints in both Envoy and the plugin. -struct NullVm : public WasmVmBase { - NullVm(const Stats::ScopeSharedPtr& scope) : WasmVmBase(scope, WasmRuntimeNames::get().Null) {} - NullVm(const NullVm& other) - : WasmVmBase(other.scope_, WasmRuntimeNames::get().Null), plugin_name_(other.plugin_name_) {} - - // WasmVm - absl::string_view runtime() override { return WasmRuntimeNames::get().Null; } - Cloneable cloneable() override { return Cloneable::InstantiatedModule; }; - WasmVmPtr clone() override; - bool load(const std::string& code, bool allow_precompiled) override; - void link(absl::string_view debug_name) override; - uint64_t getMemorySize() override; - absl::optional getMemory(uint64_t pointer, uint64_t size) override; - bool setMemory(uint64_t pointer, uint64_t size, const void* data) override; - bool setWord(uint64_t pointer, Word data) override; - bool getWord(uint64_t pointer, Word* data) override; - absl::string_view getCustomSection(absl::string_view name) override; - absl::string_view getPrecompiledSectionName() override; - -#define _FORWARD_GET_FUNCTION(_T) \ - void getFunction(absl::string_view function_name, _T* f) override { \ - plugin_->getFunction(function_name, f); \ - } - FOR_ALL_WASM_VM_EXPORTS(_FORWARD_GET_FUNCTION) -#undef _FORWARD_GET_FUNCTION - - // These are not needed for NullVm which invokes the handlers directly. -#define _REGISTER_CALLBACK(_T) \ - void registerCallback(absl::string_view, absl::string_view, _T, \ - typename ConvertFunctionTypeWordToUint32<_T>::type) override{}; - FOR_ALL_WASM_VM_IMPORTS(_REGISTER_CALLBACK) -#undef _REGISTER_CALLBACK - - std::string plugin_name_; - std::unique_ptr plugin_; -}; - -} // namespace Null -} // namespace Wasm -} // namespace Common -} // namespace Extensions -} // namespace Envoy diff --git a/source/extensions/common/wasm/null/null_vm_plugin.h b/source/extensions/common/wasm/null/null_vm_plugin.h deleted file mode 100644 index eef7fcebeac5e..0000000000000 --- a/source/extensions/common/wasm/null/null_vm_plugin.h +++ /dev/null @@ -1,47 +0,0 @@ -#pragma once - -#include "envoy/config/typed_config.h" - -#include "extensions/common/wasm/wasm_vm.h" - -namespace Envoy { -namespace Extensions { -namespace Common { -namespace Wasm { -namespace Null { - -// A wrapper for the natively compiled NullVm plugin which implements the WASM ABI. -class NullVmPlugin { -public: - NullVmPlugin() = default; - virtual ~NullVmPlugin() = default; - - // NB: These are defined rather than declared PURE because gmock uses __LINE__ internally for - // uniqueness, making it impossible to use FOR_ALL_WASM_VM_EXPORTS with MOCK_METHOD. -#define _DEFINE_GET_FUNCTION(_T) \ - virtual void getFunction(absl::string_view, _T* f) { *f = nullptr; } - FOR_ALL_WASM_VM_EXPORTS(_DEFINE_GET_FUNCTION) -#undef _DEFIN_GET_FUNCTIONE -}; - -/** - * Pseudo-WASM plugins using the NullVM should implement this factory and register via - * Registry::registerFactory or the convenience class RegisterFactory. - */ -class NullVmPluginFactory : public Config::UntypedFactory { -public: - virtual ~NullVmPluginFactory() = default; - - std::string category() const override { return "envoy.wasm.null_vms"; } - - /** - * Create an instance of the plugin. - */ - virtual std::unique_ptr create() const PURE; -}; - -} // namespace Null -} // namespace Wasm -} // namespace Common -} // namespace Extensions -} // namespace Envoy diff --git a/source/extensions/common/wasm/v8/BUILD b/source/extensions/common/wasm/v8/BUILD deleted file mode 100644 index 04d0954d1b2cd..0000000000000 --- a/source/extensions/common/wasm/v8/BUILD +++ /dev/null @@ -1,24 +0,0 @@ -licenses(["notice"]) # Apache 2 - -load( - "//bazel:envoy_build_system.bzl", - "envoy_cc_library", - "envoy_package", -) - -envoy_package() - -envoy_cc_library( - name = "v8_lib", - srcs = ["v8.cc"], - hdrs = ["v8.h"], - external_deps = [ - "wee8", - ], - deps = [ - "//source/common/common:assert_lib", - "//source/extensions/common/wasm:wasm_vm_base", - "//source/extensions/common/wasm:wasm_vm_interface", - "//source/extensions/common/wasm:well_known_names", - ], -) diff --git a/source/extensions/common/wasm/v8/v8.cc b/source/extensions/common/wasm/v8/v8.cc deleted file mode 100644 index 5bd2c1f57b6f0..0000000000000 --- a/source/extensions/common/wasm/v8/v8.cc +++ /dev/null @@ -1,678 +0,0 @@ -#include "extensions/common/wasm/v8/v8.h" - -#include -#include -#include - -#include "common/common/assert.h" - -#include "extensions/common/wasm/wasm_vm_base.h" -#include "extensions/common/wasm/well_known_names.h" - -#include "absl/container/flat_hash_map.h" -#include "absl/strings/match.h" -#include "v8-version.h" -#include "wasm-api/wasm.hh" - -namespace Envoy { -namespace Extensions { -namespace Common { -namespace Wasm { -namespace V8 { - -wasm::Engine* engine() { - static const auto engine = wasm::Engine::make(); - return engine.get(); -} - -struct FuncData { - FuncData(std::string name) : name_(std::move(name)) {} - - std::string name_; - wasm::own callback_; - void* raw_func_; -}; - -using FuncDataPtr = std::unique_ptr; - -class V8 : public WasmVmBase { -public: - V8(const Stats::ScopeSharedPtr& scope) : WasmVmBase(scope, WasmRuntimeNames::get().V8) {} - - // Extensions::Common::Wasm::WasmVm - absl::string_view runtime() override { return WasmRuntimeNames::get().V8; } - - bool load(const std::string& code, bool allow_precompiled) override; - absl::string_view getCustomSection(absl::string_view name) override; - absl::string_view getPrecompiledSectionName() override; - void link(absl::string_view debug_name) override; - - Cloneable cloneable() override { return Cloneable::CompiledBytecode; } - WasmVmPtr clone() override; - - uint64_t getMemorySize() override; - absl::optional getMemory(uint64_t pointer, uint64_t size) override; - bool setMemory(uint64_t pointer, uint64_t size, const void* data) override; - bool getWord(uint64_t pointer, Word* word) override; - bool setWord(uint64_t pointer, Word word) override; - -#define _REGISTER_HOST_FUNCTION(T) \ - void registerCallback(absl::string_view module_name, absl::string_view function_name, T, \ - typename ConvertFunctionTypeWordToUint32::type f) override { \ - registerHostFunctionImpl(module_name, function_name, f); \ - }; - FOR_ALL_WASM_VM_IMPORTS(_REGISTER_HOST_FUNCTION) -#undef _REGISTER_HOST_FUNCTION - -#define _GET_MODULE_FUNCTION(T) \ - void getFunction(absl::string_view function_name, T* f) override { \ - getModuleFunctionImpl(function_name, f); \ - }; - FOR_ALL_WASM_VM_EXPORTS(_GET_MODULE_FUNCTION) -#undef _GET_MODULE_FUNCTION - -private: - wasm::vec getStrippedSource(); - - template - void registerHostFunctionImpl(absl::string_view module_name, absl::string_view function_name, - void (*function)(void*, Args...)); - - template - void registerHostFunctionImpl(absl::string_view module_name, absl::string_view function_name, - R (*function)(void*, Args...)); - - template - void getModuleFunctionImpl(absl::string_view function_name, - std::function* function); - - template - void getModuleFunctionImpl(absl::string_view function_name, - std::function* function); - - wasm::vec source_ = wasm::vec::invalid(); - wasm::own store_; - wasm::own module_; - wasm::own> shared_module_; - wasm::own instance_; - wasm::own memory_; - wasm::own table_; - - absl::flat_hash_map host_functions_; - absl::flat_hash_map> module_functions_; -}; - -// Helper functions. - -static std::string printValue(const wasm::Val& value) { - switch (value.kind()) { - case wasm::I32: - return std::to_string(value.get()); - case wasm::I64: - return std::to_string(value.get()); - case wasm::F32: - return std::to_string(value.get()); - case wasm::F64: - return std::to_string(value.get()); - default: - return "unknown"; - } -} - -static std::string printValues(const wasm::Val values[], size_t size) { - if (size == 0) { - return ""; - } - - std::string s; - for (size_t i = 0; i < size; i++) { - if (i) { - s.append(", "); - } - s.append(printValue(values[i])); - } - return s; -} - -static const char* printValKind(wasm::ValKind kind) { - switch (kind) { - case wasm::I32: - return "i32"; - case wasm::I64: - return "i64"; - case wasm::F32: - return "f32"; - case wasm::F64: - return "f64"; - case wasm::ANYREF: - return "anyref"; - case wasm::FUNCREF: - return "funcref"; - default: - return "unknown"; - } -} - -static std::string printValTypes(const wasm::ownvec& types) { - if (types.size() == 0) { - return "void"; - } - - std::string s; - s.reserve(types.size() * 8 /* max size + " " */ - 1); - for (size_t i = 0; i < types.size(); i++) { - if (i) { - s.append(" "); - } - s.append(printValKind(types[i]->kind())); - } - return s; -} - -static bool equalValTypes(const wasm::ownvec& left, - const wasm::ownvec& right) { - if (left.size() != right.size()) { - return false; - } - for (size_t i = 0; i < left.size(); i++) { - if (left[i]->kind() != right[i]->kind()) { - return false; - } - } - return true; -} - -static uint32_t parseVarint(const byte_t*& pos, const byte_t* end) { - uint32_t n = 0; - uint32_t shift = 0; - byte_t b; - do { - if (pos + 1 > end) { - throw WasmVmException("Failed to parse corrupted WASM module"); - } - b = *pos++; - n += (b & 0x7f) << shift; - shift += 7; - } while ((b & 0x80) != 0); - return n; -} - -// Template magic. - -template struct ConvertWordType { - using type = T; // NOLINT(readability-identifier-naming) -}; -template <> struct ConvertWordType { - using type = uint32_t; // NOLINT(readability-identifier-naming) -}; - -template wasm::Val makeVal(T t) { return wasm::Val::make(t); } -template <> wasm::Val makeVal(Word t) { return wasm::Val::make(static_cast(t.u64_)); } - -template constexpr auto convertArgToValKind(); -template <> constexpr auto convertArgToValKind() { return wasm::I32; }; -template <> constexpr auto convertArgToValKind() { return wasm::I32; }; -template <> constexpr auto convertArgToValKind() { return wasm::I32; }; -template <> constexpr auto convertArgToValKind() { return wasm::I64; }; -template <> constexpr auto convertArgToValKind() { return wasm::I64; }; -template <> constexpr auto convertArgToValKind() { return wasm::F32; }; -template <> constexpr auto convertArgToValKind() { return wasm::F64; }; - -template -constexpr auto convertArgsTupleToValTypesImpl(absl::index_sequence) { - return wasm::ownvec::make( - wasm::ValType::make(convertArgToValKind::type>())...); -} - -template constexpr auto convertArgsTupleToValTypes() { - return convertArgsTupleToValTypesImpl(absl::make_index_sequence::value>()); -} - -template -constexpr T convertValTypesToArgsTupleImpl(const U& arr, absl::index_sequence) { - return std::make_tuple( - (arr[I] - .template get< - typename ConvertWordType::type>::type>())...); -} - -template constexpr T convertValTypesToArgsTuple(const U& arr) { - return convertValTypesToArgsTupleImpl(arr, - absl::make_index_sequence::value>()); -} - -// V8 implementation. - -bool V8::load(const std::string& code, bool allow_precompiled) { - ENVOY_LOG(trace, "load()"); - store_ = wasm::Store::make(engine()); - - // Wasm file header is 8 bytes (magic number + version). - static const uint8_t magic_number[4] = {0x00, 0x61, 0x73, 0x6d}; - if (code.size() < 8 || ::memcmp(code.data(), magic_number, 4) != 0) { - return false; - } - - source_ = wasm::vec::make_uninitialized(code.size()); - ::memcpy(source_.get(), code.data(), code.size()); - - if (allow_precompiled) { - const auto section_name = getPrecompiledSectionName(); - if (!section_name.empty()) { - const auto precompiled = getCustomSection(section_name); - if (!precompiled.empty()) { - auto vec = wasm::vec::make_uninitialized(precompiled.size()); - ::memcpy(vec.get(), precompiled.data(), precompiled.size()); - - // TODO(PiotrSikora): fuzz loading of precompiled Wasm modules. - // See: https://github.com/envoyproxy/envoy/issues/9731 - module_ = wasm::Module::deserialize(store_.get(), vec); - if (!module_) { - // Precompiled module that cannot be loaded is considered a hard error, - // so don't fallback to compiling the bytecode. - return false; - } - } - } - } - - if (!module_) { - // TODO(PiotrSikora): fuzz loading of Wasm modules. - // See: https://github.com/envoyproxy/envoy/issues/9731 - const auto stripped_source = getStrippedSource(); - module_ = wasm::Module::make(store_.get(), stripped_source ? stripped_source : source_); - } - - if (module_) { - shared_module_ = module_->share(); - } - - return module_ != nullptr; -} - -WasmVmPtr V8::clone() { - ENVOY_LOG(trace, "clone()"); - ASSERT(shared_module_ != nullptr); - - auto clone = std::make_unique(scope_); - clone->store_ = wasm::Store::make(engine()); - - clone->module_ = wasm::Module::obtain(clone->store_.get(), shared_module_.get()); - - return clone; -} - -// Get Wasm module without Custom Sections to save some memory in workers. -wasm::vec V8::getStrippedSource() { - ENVOY_LOG(trace, "getStrippedSource()"); - ASSERT(source_.get() != nullptr); - - std::vector stripped; - - const byte_t* pos = source_.get() + 8 /* Wasm header */; - const byte_t* end = source_.get() + source_.size(); - while (pos < end) { - const auto section_start = pos; - if (pos + 1 > end) { - return wasm::vec::invalid(); - } - const auto section_type = *pos++; - const auto section_len = parseVarint(pos, end); - if (section_len == static_cast(-1) || pos + section_len > end) { - return wasm::vec::invalid(); - } - pos += section_len; - if (section_type == 0 /* custom section */) { - if (stripped.empty()) { - const byte_t* start = source_.get(); - stripped.insert(stripped.end(), start, section_start); - } - } else if (!stripped.empty()) { - stripped.insert(stripped.end(), section_start, pos /* section end */); - } - } - - // No custom sections found, use the original source. - if (stripped.empty()) { - return wasm::vec::invalid(); - } - - // Return stripped source, without custom sections. - return wasm::vec::make(stripped.size(), stripped.data()); -} - -absl::string_view V8::getCustomSection(absl::string_view name) { - ENVOY_LOG(trace, "getCustomSection(\"{}\")", name); - ASSERT(source_.get() != nullptr); - - const byte_t* pos = source_.get() + 8 /* Wasm header */; - const byte_t* end = source_.get() + source_.size(); - while (pos < end) { - if (pos + 1 > end) { - throw WasmVmException("Failed to parse corrupted WASM module"); - } - const auto section_type = *pos++; - const auto section_len = parseVarint(pos, end); - if (section_len == static_cast(-1) || pos + section_len > end) { - throw WasmVmException("Failed to parse corrupted WASM module"); - } - if (section_type == 0 /* custom section */) { - const auto section_data_start = pos; - const auto section_name_len = parseVarint(pos, end); - if (section_name_len == static_cast(-1) || pos + section_name_len > end) { - throw WasmVmException("Failed to parse corrupted WASM module"); - } - if (section_name_len == name.size() && ::memcmp(pos, name.data(), section_name_len) == 0) { - pos += section_name_len; - ENVOY_LOG(trace, "getCustomSection(\"{}\") found, size: {}", name, - section_data_start + section_len - pos); - return {pos, static_cast(section_data_start + section_len - pos)}; - } - pos = section_data_start + section_len; - } else { - pos += section_len; - } - } - return ""; -} - -#if defined(__linux__) && defined(__x86_64__) -#define WEE8_WASM_PRECOMPILE_PLATFORM "linux_x86_64" -#endif - -absl::string_view V8::getPrecompiledSectionName() { -#ifndef WEE8_WASM_PRECOMPILE_PLATFORM - return ""; -#else - static const auto name = - absl::StrCat("precompiled_v8_v", V8_MAJOR_VERSION, ".", V8_MINOR_VERSION, ".", - V8_BUILD_NUMBER, ".", V8_PATCH_LEVEL, "_", WEE8_WASM_PRECOMPILE_PLATFORM); - return name; -#endif -} - -void V8::link(absl::string_view debug_name) { - ENVOY_LOG(trace, "link(\"{}\")", debug_name); - ASSERT(module_ != nullptr); - - const auto import_types = module_.get()->imports(); - std::vector imports; - - for (size_t i = 0; i < import_types.size(); i++) { - absl::string_view module(import_types[i]->module().get(), import_types[i]->module().size()); - absl::string_view name(import_types[i]->name().get(), import_types[i]->name().size()); - auto import_type = import_types[i]->type(); - - switch (import_type->kind()) { - - case wasm::EXTERN_FUNC: { - ENVOY_LOG(trace, "link(), export host func: {}.{} ({} -> {})", module, name, - printValTypes(import_type->func()->params()), - printValTypes(import_type->func()->results())); - - auto it = host_functions_.find(absl::StrCat(module, ".", name)); - if (it == host_functions_.end()) { - throw WasmVmException( - fmt::format("Failed to load WASM module due to a missing import: {}.{}", module, name)); - } - auto func = it->second.get()->callback_.get(); - if (!equalValTypes(import_type->func()->params(), func->type()->params()) || - !equalValTypes(import_type->func()->results(), func->type()->results())) { - throw WasmVmException(fmt::format( - "Failed to load WASM module due to an import type mismatch: {}.{}, " - "want: {} -> {}, but host exports: {} -> {}", - module, name, printValTypes(import_type->func()->params()), - printValTypes(import_type->func()->results()), printValTypes(func->type()->params()), - printValTypes(func->type()->results()))); - } - imports.push_back(func); - } break; - - case wasm::EXTERN_GLOBAL: { - // TODO(PiotrSikora): add support when/if needed. - ENVOY_LOG(trace, "link(), export host global: {}.{} ({})", module, name, - printValKind(import_type->global()->content()->kind())); - - throw WasmVmException( - fmt::format("Failed to load WASM module due to a missing import: {}.{}", module, name)); - } break; - - case wasm::EXTERN_MEMORY: { - ENVOY_LOG(trace, "link(), export host memory: {}.{} (min: {} max: {})", module, name, - import_type->memory()->limits().min, import_type->memory()->limits().max); - - ASSERT(memory_ == nullptr); - auto type = wasm::MemoryType::make(import_type->memory()->limits()); - memory_ = wasm::Memory::make(store_.get(), type.get()); - imports.push_back(memory_.get()); - } break; - - case wasm::EXTERN_TABLE: { - ENVOY_LOG(trace, "link(), export host table: {}.{} (min: {} max: {})", module, name, - import_type->table()->limits().min, import_type->table()->limits().max); - - ASSERT(table_ == nullptr); - auto type = - wasm::TableType::make(wasm::ValType::make(import_type->table()->element()->kind()), - import_type->table()->limits()); - table_ = wasm::Table::make(store_.get(), type.get()); - imports.push_back(table_.get()); - } break; - } - } - - ASSERT(import_types.size() == imports.size()); - - instance_ = wasm::Instance::make(store_.get(), module_.get(), imports.data()); - - const auto export_types = module_.get()->exports(); - const auto exports = instance_.get()->exports(); - ASSERT(export_types.size() == exports.size()); - - for (size_t i = 0; i < export_types.size(); i++) { - absl::string_view name(export_types[i]->name().get(), export_types[i]->name().size()); - auto export_type = export_types[i]->type(); - auto export_item = exports[i].get(); - ASSERT(export_type->kind() == export_item->kind()); - - switch (export_type->kind()) { - - case wasm::EXTERN_FUNC: { - ENVOY_LOG(trace, "link(), import module func: {} ({} -> {})", name, - printValTypes(export_type->func()->params()), - printValTypes(export_type->func()->results())); - - ASSERT(export_item->func() != nullptr); - module_functions_.insert_or_assign(name, export_item->func()->copy()); - } break; - - case wasm::EXTERN_GLOBAL: { - // TODO(PiotrSikora): add support when/if needed. - ENVOY_LOG(trace, "link(), import module global: {} ({}) --- IGNORED", name, - printValKind(export_type->global()->content()->kind())); - } break; - - case wasm::EXTERN_MEMORY: { - ENVOY_LOG(trace, "link(), import module memory: {} (min: {} max: {})", name, - export_type->memory()->limits().min, export_type->memory()->limits().max); - - ASSERT(export_item->memory() != nullptr); - ASSERT(memory_ == nullptr); - memory_ = exports[i]->memory()->copy(); - } break; - - case wasm::EXTERN_TABLE: { - // TODO(PiotrSikora): add support when/if needed. - ENVOY_LOG(trace, "link(), import module table: {} (min: {} max: {}) --- IGNORED", name, - export_type->table()->limits().min, export_type->table()->limits().max); - } break; - } - } -} - -uint64_t V8::getMemorySize() { - ENVOY_LOG(trace, "getMemorySize()"); - return memory_->data_size(); -} - -absl::optional V8::getMemory(uint64_t pointer, uint64_t size) { - ENVOY_LOG(trace, "getMemory({}, {})", pointer, size); - ASSERT(memory_ != nullptr); - if (pointer + size > memory_->data_size()) { - return absl::nullopt; - } - return absl::string_view(memory_->data() + pointer, size); -} - -bool V8::setMemory(uint64_t pointer, uint64_t size, const void* data) { - ENVOY_LOG(trace, "setMemory({}, {})", pointer, size); - ASSERT(memory_ != nullptr); - if (pointer + size > memory_->data_size()) { - return false; - } - ::memcpy(memory_->data() + pointer, data, size); - return true; -} - -bool V8::getWord(uint64_t pointer, Word* word) { - ENVOY_LOG(trace, "getWord({})", pointer); - constexpr auto size = sizeof(uint32_t); - if (pointer + size > memory_->data_size()) { - return false; - } - uint32_t word32; - ::memcpy(&word32, memory_->data() + pointer, size); - word->u64_ = word32; - return true; -} - -bool V8::setWord(uint64_t pointer, Word word) { - ENVOY_LOG(trace, "setWord({}, {})", pointer, word.u64_); - constexpr auto size = sizeof(uint32_t); - if (pointer + size > memory_->data_size()) { - return false; - } - uint32_t word32 = word.u32(); - ::memcpy(memory_->data() + pointer, &word32, size); - return true; -} - -template -void V8::registerHostFunctionImpl(absl::string_view module_name, absl::string_view function_name, - void (*function)(void*, Args...)) { - ENVOY_LOG(trace, "registerHostFunction(\"{}.{}\")", module_name, function_name); - auto data = std::make_unique(absl::StrCat(module_name, ".", function_name)); - auto type = wasm::FuncType::make(convertArgsTupleToValTypes>(), - convertArgsTupleToValTypes>()); - auto func = wasm::Func::make( - store_.get(), type.get(), - [](void* data, const wasm::Val params[], wasm::Val[]) -> wasm::own { - auto func_data = reinterpret_cast(data); - ENVOY_LOG(trace, "[vm->host] {}({})", func_data->name_, - printValues(params, std::tuple_size>::value)); - auto args_tuple = convertValTypesToArgsTuple>(params); - auto args = std::tuple_cat(std::make_tuple(current_context_), args_tuple); - auto function = reinterpret_cast(func_data->raw_func_); - absl::apply(function, args); - ENVOY_LOG(trace, "[vm<-host] {} return: void", func_data->name_); - return nullptr; - }, - data.get()); - data->callback_ = std::move(func); - data->raw_func_ = reinterpret_cast(function); - host_functions_.insert_or_assign(absl::StrCat(module_name, ".", function_name), std::move(data)); -} - -template -void V8::registerHostFunctionImpl(absl::string_view module_name, absl::string_view function_name, - R (*function)(void*, Args...)) { - ENVOY_LOG(trace, "registerHostFunction(\"{}.{}\")", module_name, function_name); - auto data = std::make_unique(absl::StrCat(module_name, ".", function_name)); - auto type = wasm::FuncType::make(convertArgsTupleToValTypes>(), - convertArgsTupleToValTypes>()); - auto func = wasm::Func::make( - store_.get(), type.get(), - [](void* data, const wasm::Val params[], wasm::Val results[]) -> wasm::own { - auto func_data = reinterpret_cast(data); - ENVOY_LOG(trace, "[vm->host] {}({})", func_data->name_, - printValues(params, sizeof...(Args))); - auto args_tuple = convertValTypesToArgsTuple>(params); - auto args = std::tuple_cat(std::make_tuple(current_context_), args_tuple); - auto function = reinterpret_cast(func_data->raw_func_); - R rvalue = absl::apply(function, args); - results[0] = makeVal(rvalue); - ENVOY_LOG(trace, "[vm<-host] {} return: {}", func_data->name_, rvalue); - return nullptr; - }, - data.get()); - data->callback_ = std::move(func); - data->raw_func_ = reinterpret_cast(function); - host_functions_.insert_or_assign(absl::StrCat(module_name, ".", function_name), std::move(data)); -} - -template -void V8::getModuleFunctionImpl(absl::string_view function_name, - std::function* function) { - ENVOY_LOG(trace, "getModuleFunction(\"{}\")", function_name); - auto it = module_functions_.find(function_name); - if (it == module_functions_.end()) { - *function = nullptr; - return; - } - const wasm::Func* func = it->second.get(); - if (!equalValTypes(func->type()->params(), convertArgsTupleToValTypes>()) || - !equalValTypes(func->type()->results(), convertArgsTupleToValTypes>())) { - throw WasmVmException(fmt::format("Bad function signature for: {}", function_name)); - } - *function = [func, function_name](Context* context, Args... args) -> void { - wasm::Val params[] = {makeVal(args)...}; - ENVOY_LOG(trace, "[host->vm] {}({})", function_name, printValues(params, sizeof...(Args))); - SaveRestoreContext saved_context(context); - auto trap = func->call(params, nullptr); - if (trap) { - throw WasmException( - fmt::format("Function: {} failed: {}", function_name, - absl::string_view(trap->message().get(), trap->message().size()))); - } - ENVOY_LOG(trace, "[host<-vm] {} return: void", function_name); - }; -} - -template -void V8::getModuleFunctionImpl(absl::string_view function_name, - std::function* function) { - ENVOY_LOG(trace, "getModuleFunction(\"{}\")", function_name); - auto it = module_functions_.find(function_name); - if (it == module_functions_.end()) { - *function = nullptr; - return; - } - const wasm::Func* func = it->second.get(); - if (!equalValTypes(func->type()->params(), convertArgsTupleToValTypes>()) || - !equalValTypes(func->type()->results(), convertArgsTupleToValTypes>())) { - throw WasmVmException(fmt::format("Bad function signature for: {}", function_name)); - } - *function = [func, function_name](Context* context, Args... args) -> R { - wasm::Val params[] = {makeVal(args)...}; - wasm::Val results[1]; - ENVOY_LOG(trace, "[host->vm] {}({})", function_name, printValues(params, sizeof...(Args))); - SaveRestoreContext saved_context(context); - auto trap = func->call(params, results); - if (trap) { - throw WasmException( - fmt::format("Function: {} failed: {}", function_name, - absl::string_view(trap->message().get(), trap->message().size()))); - } - R rvalue = results[0].get::type>(); - ENVOY_LOG(trace, "[host<-vm] {} return: {}", function_name, rvalue); - return rvalue; - }; -} - -WasmVmPtr createVm(const Stats::ScopeSharedPtr& scope) { return std::make_unique(scope); } - -} // namespace V8 -} // namespace Wasm -} // namespace Common -} // namespace Extensions -} // namespace Envoy diff --git a/source/extensions/common/wasm/v8/v8.h b/source/extensions/common/wasm/v8/v8.h deleted file mode 100644 index a7288f0004a59..0000000000000 --- a/source/extensions/common/wasm/v8/v8.h +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once - -#include - -#include "extensions/common/wasm/wasm_vm.h" - -namespace Envoy { -namespace Extensions { -namespace Common { -namespace Wasm { -namespace V8 { - -WasmVmPtr createVm(const Stats::ScopeSharedPtr& scope); - -} // namespace V8 -} // namespace Wasm -} // namespace Common -} // namespace Extensions -} // namespace Envoy diff --git a/source/extensions/common/wasm/wasm.cc b/source/extensions/common/wasm/wasm.cc new file mode 100644 index 0000000000000..f771eda7b9878 --- /dev/null +++ b/source/extensions/common/wasm/wasm.cc @@ -0,0 +1,177 @@ +#include "extensions/common/wasm/wasm.h" + +#include + +#include +#include +#include +#include +#include + +#include "envoy/common/exception.h" +#include "envoy/extensions/wasm/v3/wasm.pb.validate.h" +#include "envoy/grpc/status.h" +#include "envoy/http/codes.h" +#include "envoy/local_info/local_info.h" +#include "envoy/thread_local/thread_local.h" + +#include "common/common/assert.h" +#include "common/common/base64.h" +#include "common/common/empty_string.h" +#include "common/common/enum_to_int.h" +#include "common/common/logger.h" + +#include "extensions/common/wasm/wasm_state.h" +#include "extensions/common/wasm/well_known_names.h" +#include "extensions/common/wasm/wasm_vm.h" + +#include "absl/base/casts.h" +#include "absl/container/flat_hash_map.h" +#include "absl/container/node_hash_map.h" +#include "absl/strings/str_cat.h" +#include "absl/synchronization/mutex.h" +#include "openssl/bytestring.h" +#include "openssl/hmac.h" +#include "openssl/sha.h" + +namespace Envoy { +namespace Extensions { +namespace Common { +namespace Wasm { + +namespace { + +const std::string INLINE_STRING = ""; + +std::atomic active_wasm_; + +// Downcast WasmBase to the actual Wasm. +inline Wasm* getWasm(WasmHandleSharedPtr& base_wasm_handle) { + return static_cast(base_wasm_handle->wasm().get()); +} + +} // namespace + +Wasm::Wasm(absl::string_view runtime, absl::string_view vm_id, absl::string_view vm_configuration, + absl::string_view vm_key, Stats::ScopeSharedPtr scope, + Upstream::ClusterManager& cluster_manager, Event::Dispatcher& dispatcher) + : WasmBase(createWasmVm(runtime, scope), vm_id, vm_configuration, vm_key), scope_(scope), + cluster_manager_(cluster_manager), dispatcher_(dispatcher), + time_source_(dispatcher.timeSource()), + wasm_stats_(WasmStats{ + ALL_WASM_STATS(POOL_COUNTER_PREFIX(*scope_, absl::StrCat("wasm.", runtime, ".")), + POOL_GAUGE_PREFIX(*scope_, absl::StrCat("wasm.", runtime, ".")))}), + stat_name_set_(scope_->symbolTable().makeSet("Wasm").release()) { + active_wasm_++; + wasm_stats_.active_.set(active_wasm_); + wasm_stats_.created_.inc(); + ENVOY_LOG(debug, "Base Wasm created {} now active", active_wasm_); +} + +Wasm::Wasm(WasmHandleSharedPtr& base_wasm_handle, Event::Dispatcher& dispatcher) + : WasmBase(base_wasm_handle, + [&base_wasm_handle]() { + return createWasmVm(base_wasm_handle->wasm()->wasm_vm()->runtime(), + getWasm(base_wasm_handle)->scope_); + }), + scope_(getWasm(base_wasm_handle)->scope_), + cluster_manager_(getWasm(base_wasm_handle)->cluster_manager_), dispatcher_(dispatcher), + time_source_(dispatcher.timeSource()), wasm_stats_(getWasm(base_wasm_handle)->wasm_stats_), + stat_name_set_(getWasm(base_wasm_handle)->stat_name_set_) { + active_wasm_++; + wasm_stats_.active_.set(active_wasm_); + wasm_stats_.created_.inc(); + ENVOY_LOG(debug, "Thread-Local Wasm created {} now active", active_wasm_); +} + +Wasm::~Wasm() { + active_wasm_--; + wasm_stats_.active_.set(active_wasm_); + ENVOY_LOG(debug, "~Wasm {} remaining active", active_wasm_); +} + +static void createWasmInternal(const VmConfig& vm_config, PluginSharedPtr plugin, + Stats::ScopeSharedPtr scope, + Upstream::ClusterManager& cluster_manager, + Init::Manager& init_manager, Event::Dispatcher& dispatcher, + Api::Api& api, std::unique_ptr root_context_for_testing, + Config::DataSource::RemoteAsyncDataProviderPtr& remote_data_provider, + CreateWasmCallback&& cb) { + std::string source, code; + if (vm_config.code().has_remote()) { + source = vm_config.code().remote().http_uri().uri(); + } else if (vm_config.code().has_local()) { + code = Config::DataSource::read(vm_config.code().local(), true, api); + source = Config::DataSource::getPath(vm_config.code().local()) + .value_or(code.empty() ? EMPTY_STRING : INLINE_STRING); + } + + auto callback = [vm_config, scope, &cluster_manager, &dispatcher, plugin, cb, source, + context_ptr = root_context_for_testing ? root_context_for_testing.release() + : nullptr](const std::string& code) { + std::unique_ptr context(context_ptr); + if (code.empty()) { + throw WasmException(fmt::format("Failed to load WASM code from {}", source)); + } + std::string configuration; + if (!vm_config.configuration().SerializeToString(&configuration)) { + throw WasmException(fmt::format("Failed to serialize vm configuration")); + } + auto vm_key = proxy_wasm::makeVmKey(vm_config.vm_id(), configuration, code); + cb(proxy_wasm::createWasm( + vm_key, code, plugin, + [&vm_config, &configuration, &scope, &cluster_manager, + &dispatcher](absl::string_view vm_key) { + return std::make_shared( + std::make_shared(vm_config.runtime(), vm_config.vm_id(), configuration, vm_key, + scope, cluster_manager, dispatcher)); + }, + vm_config.allow_precompiled(), std::move(context))); + }; + + if (vm_config.code().has_remote()) { + remote_data_provider = std::make_unique( + cluster_manager, init_manager, vm_config.code().remote(), true, std::move(callback)); + } else if (vm_config.code().has_local()) { + callback(code); + } else { + callback(EMPTY_STRING); + } +} + +void createWasm(const VmConfig& vm_config, PluginSharedPtr plugin, Stats::ScopeSharedPtr scope, + Upstream::ClusterManager& cluster_manager, Init::Manager& init_manager, + Event::Dispatcher& dispatcher, Api::Api& api, + Config::DataSource::RemoteAsyncDataProviderPtr& remote_data_provider, + CreateWasmCallback&& cb) { + createWasmInternal(vm_config, plugin, scope, cluster_manager, init_manager, dispatcher, api, + nullptr /* root_context_for_testing */, remote_data_provider, std::move(cb)); +} + +void createWasmForTesting(const VmConfig& vm_config, PluginSharedPtr plugin, + Stats::ScopeSharedPtr scope, Upstream::ClusterManager& cluster_manager, + Init::Manager& init_manager, Event::Dispatcher& dispatcher, Api::Api& api, + std::unique_ptr root_context_for_testing, + Config::DataSource::RemoteAsyncDataProviderPtr& remote_data_provider, + CreateWasmCallback&& cb) { + createWasmInternal(vm_config, plugin, scope, cluster_manager, init_manager, dispatcher, api, + std::move(root_context_for_testing), remote_data_provider, std::move(cb)); +} + +WasmHandleSharedPtr getOrCreateThreadLocalWasm(WasmHandleSharedPtr base_wasm, + PluginSharedPtr plugin, + Event::Dispatcher& dispatcher) { + auto wasm_handle = proxy_wasm::getOrCreateThreadLocalWasm( + base_wasm, plugin, [&dispatcher](WasmHandleSharedPtr base_wasm) -> WasmHandleSharedPtr { + return std::make_shared(std::make_shared(base_wasm, dispatcher)); + }); + if (!wasm_handle) { + throw WasmException("Failed to configure WASM code"); + } + return wasm_handle; +} + +} // namespace Wasm +} // namespace Common +} // namespace Extensions +} // namespace Envoy diff --git a/source/extensions/common/wasm/wasm.h b/source/extensions/common/wasm/wasm.h new file mode 100644 index 0000000000000..6151d9ae9200c --- /dev/null +++ b/source/extensions/common/wasm/wasm.h @@ -0,0 +1,111 @@ +#pragma once + +#include +#include +#include + +#include "include/proxy-wasm/exports.h" +#include "include/proxy-wasm/wasm.h" + +#include "envoy/common/exception.h" +#include "envoy/extensions/wasm/v3/wasm.pb.validate.h" +#include "envoy/stats/scope.h" +#include "envoy/stats/stats.h" +#include "envoy/thread_local/thread_local.h" +#include "envoy/upstream/cluster_manager.h" + +#include "common/common/assert.h" +#include "common/common/logger.h" +#include "common/config/datasource.h" +#include "common/stats/symbol_table_impl.h" + +#include "extensions/common/wasm/context.h" +#include "extensions/common/wasm/wasm_vm.h" +#include "extensions/common/wasm/well_known_names.h" + +namespace Envoy { + +// TODO: move to source/common/stats/symbol_table_impl.h when upstreaming. +namespace Stats { +using StatNameSetSharedPtr = std::shared_ptr; +} // namespace Stats + +namespace Extensions { +namespace Common { +namespace Wasm { + +#define ALL_WASM_STATS(COUNTER, GAUGE) \ + COUNTER(created) \ + GAUGE(active, NeverImport) + +struct WasmStats { + ALL_WASM_STATS(GENERATE_COUNTER_STRUCT, GENERATE_GAUGE_STRUCT) +}; + +using VmConfig = envoy::extensions::wasm::v3::VmConfig; + +// Wasm execution instance. Manages the Envoy side of the Wasm interface. +class Wasm : public WasmBase, Logger::Loggable { +public: + Wasm(absl::string_view runtime, absl::string_view vm_id, absl::string_view vm_configuration, + absl::string_view vm_key, Stats::ScopeSharedPtr scope, + Upstream::ClusterManager& cluster_manager, Event::Dispatcher& dispatcher); + Wasm(std::shared_ptr& other, Event::Dispatcher& dispatcher); + virtual ~Wasm(); + + Stats::StatNameSetSharedPtr stat_name_set() const { return stat_name_set_; } + + Upstream::ClusterManager& clusterManager() const { return cluster_manager_; } + Event::Dispatcher& dispatcher() { return dispatcher_; } + + void error(absl::string_view message) override { throw WasmException(std::string(message)); } + +private: + friend class Context; + + Stats::ScopeSharedPtr scope_; + Upstream::ClusterManager& cluster_manager_; + Event::Dispatcher& dispatcher_; + TimeSource& time_source_; + + // Host Stats/Metrics + WasmStats wasm_stats_; + + // Plugin Stats/Metrics + Stats::StatNameSetSharedPtr stat_name_set_; + absl::flat_hash_map counters_; + absl::flat_hash_map gauges_; + absl::flat_hash_map histograms_; +}; +using WasmSharedPtr = std::shared_ptr; + +using WasmHandleSharedPtr = std::shared_ptr; +using CreateWasmCallback = std::function; + +// Create a high level Wasm VM with Envoy API support. Note: 'id' may be empty if this VM will not +// be shared by APIs (e.g. HTTP Filter + AccessLog). +void createWasm(const VmConfig& vm_config, PluginSharedPtr plugin_config, + Stats::ScopeSharedPtr scope, Upstream::ClusterManager& cluster_manager, + Init::Manager& init_manager, Event::Dispatcher& dispatcher, Api::Api& api, + Config::DataSource::RemoteAsyncDataProviderPtr& remote_data_provider, + CreateWasmCallback&& cb); + +// Create a ThreadLocal VM from an existing VM (e.g. from createWasm() above). +WasmHandleSharedPtr createThreadLocalWasm(WasmHandle& base_wasm_handle, PluginSharedPtr plugin, + Event::Dispatcher& dispatcher); + +void createWasmForTesting(const VmConfig& vm_config, PluginSharedPtr plugin, + Stats::ScopeSharedPtr scope, Upstream::ClusterManager& cluster_manager, + Init::Manager& init_manager, Event::Dispatcher& dispatcher, Api::Api& api, + std::unique_ptr root_context_for_testing, + Config::DataSource::RemoteAsyncDataProviderPtr& remote_data_provider, + CreateWasmCallback&& cb); + +WasmHandleSharedPtr getOrCreateThreadLocalWasm(WasmHandleSharedPtr base_wasm, + PluginSharedPtr plugin, + Event::Dispatcher& dispatcher); + +} // namespace Wasm +} // namespace Common +} // namespace Extensions +} // namespace Envoy diff --git a/source/extensions/common/wasm/wasm_state.cc b/source/extensions/common/wasm/wasm_state.cc new file mode 100644 index 0000000000000..0ebb859beb9bb --- /dev/null +++ b/source/extensions/common/wasm/wasm_state.cc @@ -0,0 +1,30 @@ +#include "extensions/common/wasm/wasm_state.h" + +namespace Envoy { +namespace Extensions { +namespace Common { +namespace Wasm { + +WasmState::WasmState(absl::string_view type, absl::string_view value) + : type_(type), value_(value) {} + +ProtobufTypes::MessagePtr WasmState::serializeAsProto() const { + auto any = std::make_unique(); + + if (type_.empty()) { + ProtobufWkt::BytesValue value; + value.set_value(value_); + any->PackFrom(value); + } else { + // The WASM extension serialized in its own type. + any->set_type_url(type_); + any->set_value(value_); + } + + return any; +} + +} // namespace Wasm +} // namespace Common +} // namespace Extensions +} // namespace Envoy \ No newline at end of file diff --git a/source/extensions/common/wasm/wasm_state.h b/source/extensions/common/wasm/wasm_state.h new file mode 100644 index 0000000000000..872f44b166350 --- /dev/null +++ b/source/extensions/common/wasm/wasm_state.h @@ -0,0 +1,37 @@ +/* + * Wasm State Class available to WASM/Non-WASM modules. + */ + +#pragma once + +#include + +#include "envoy/stream_info/filter_state.h" + +#include "common/protobuf/protobuf.h" + +namespace Envoy { +namespace Extensions { +namespace Common { +namespace Wasm { + +// A simple wrapper around generic values +class WasmState : public StreamInfo::FilterState::Object { +public: + WasmState(absl::string_view type, absl::string_view value); + + explicit WasmState(absl::string_view value) : WasmState("", value) {} + + const std::string& value() const { return value_; } + + ProtobufTypes::MessagePtr serializeAsProto() const override; + +private: + const std::string type_; + const std::string value_; +}; + +} // namespace Wasm +} // namespace Common +} // namespace Extensions +} // namespace Envoy diff --git a/source/extensions/common/wasm/wasm_vm.cc b/source/extensions/common/wasm/wasm_vm.cc index 9299eceba2d10..2470744e4adec 100644 --- a/source/extensions/common/wasm/wasm_vm.cc +++ b/source/extensions/common/wasm/wasm_vm.cc @@ -2,8 +2,8 @@ #include -#include "extensions/common/wasm/null/null.h" -#include "extensions/common/wasm/v8/v8.h" +#include "include/proxy-wasm/null.h" +#include "include/proxy-wasm/v8.h" #include "extensions/common/wasm/well_known_names.h" namespace Envoy { @@ -11,18 +11,23 @@ namespace Extensions { namespace Common { namespace Wasm { -thread_local Envoy::Extensions::Common::Wasm::Context* current_context_ = nullptr; -thread_local uint32_t effective_context_id_ = 0; +void EnvoyWasmVmIntegration::error(absl::string_view message) { + throw WasmException(std::string(message)); +} WasmVmPtr createWasmVm(absl::string_view runtime, const Stats::ScopeSharedPtr& scope) { if (runtime.empty()) { - throw WasmVmException("Failed to create WASM VM with unspecified runtime."); + throw WasmException("Failed to create WASM VM with unspecified runtime."); } else if (runtime == WasmRuntimeNames::get().Null) { - return Null::createVm(scope); + auto wasm = proxy_wasm::createNullVm(); + wasm->integration().reset(new EnvoyWasmVmIntegration(scope, "null")); + return wasm; } else if (runtime == WasmRuntimeNames::get().V8) { - return V8::createVm(scope); + auto wasm = proxy_wasm::createV8Vm(); + wasm->integration().reset(new EnvoyWasmVmIntegration(scope, "v8")); + return wasm; } else { - throw WasmVmException(fmt::format( + throw WasmException(fmt::format( "Failed to create WASM VM using {} runtime. Envoy was compiled without support for it.", runtime)); } diff --git a/source/extensions/common/wasm/wasm_vm.h b/source/extensions/common/wasm/wasm_vm.h index 3506eaaa0966b..3ed09c221e16f 100644 --- a/source/extensions/common/wasm/wasm_vm.h +++ b/source/extensions/common/wasm/wasm_vm.h @@ -2,268 +2,69 @@ #include +#include "absl/strings/str_cat.h" + #include "envoy/common/exception.h" #include "envoy/stats/scope.h" +#include "envoy/stats/stats.h" +#include "envoy/stats/stats_macros.h" #include "common/common/logger.h" -#include "absl/types/optional.h" +#include "include/proxy-wasm/wasm_vm.h" +#include "include/proxy-wasm/word.h" namespace Envoy { namespace Extensions { namespace Common { namespace Wasm { -class Context; - -// Represents a WASM-native word-sized datum. On 32-bit VMs, the high bits are always zero. -// The WASM/VM API treats all bits as significant. -struct Word { - Word(uint64_t w) : u64_(w) {} // Implicit conversion into Word. - uint32_t u32() const { return static_cast(u64_); } - uint64_t u64_; -}; - -inline std::ostream& operator<<(std::ostream& os, const Word& w) { return os << w.u64_; } - -// Convert Word type for use by 32-bit VMs. -template struct ConvertWordTypeToUint32 { - using type = T; // NOLINT(readability-identifier-naming) -}; -template <> struct ConvertWordTypeToUint32 { - using type = uint32_t; // NOLINT(readability-identifier-naming) -}; - -// Convert Word-based function types for 32-bit VMs. -template struct ConvertFunctionTypeWordToUint32 {}; -template struct ConvertFunctionTypeWordToUint32 { - using type = typename ConvertWordTypeToUint32::type (*)( - typename ConvertWordTypeToUint32::type...); +using Word = proxy_wasm::Word; +using WasmVm = proxy_wasm::WasmVm; +using Cloneable = proxy_wasm::Cloneable; +using ContextBase = proxy_wasm::ContextBase; + +/** + * Wasm host stats. + */ +#define ALL_VM_STATS(COUNTER, GAUGE) \ + COUNTER(created) \ + COUNTER(cloned) \ + GAUGE(active, NeverImport) + +struct VmStats { + ALL_VM_STATS(GENERATE_COUNTER_STRUCT, GENERATE_GAUGE_STRUCT) }; -template inline auto convertWordToUint32(T t) { return t; } -template <> inline auto convertWordToUint32(Word t) { return static_cast(t.u64_); } - -// Convert a function of the form Word(Word...) to one of the form uint32_t(uint32_t...). -template struct ConvertFunctionWordToUint32 { - static void convertFunctionWordToUint32() {} -}; -template R> -struct ConvertFunctionWordToUint32 { - static typename ConvertWordTypeToUint32::type - convertFunctionWordToUint32(typename ConvertWordTypeToUint32::type... args) { - return convertWordToUint32(F(std::forward(args)...)); +// Wasm VM data providing stats. +class EnvoyWasmVmIntegration : public proxy_wasm::WasmVmIntegration, + Logger::Loggable { +public: + EnvoyWasmVmIntegration(const Stats::ScopeSharedPtr& scope, absl::string_view runtime) + : scope_(scope), runtime_prefix_(absl::StrCat("wasm_vm.", runtime, ".")), + runtime_(std::string(runtime)), + stats_(VmStats{ALL_VM_STATS(POOL_COUNTER_PREFIX(*scope_, runtime_prefix_), + POOL_GAUGE_PREFIX(*scope_, runtime_prefix_))}) { + stats_.created_.inc(); + stats_.active_.inc(); + ENVOY_LOG(debug, "WasmVm created {} now active", runtime_, stats_.active_.value()); } -}; -template void> -struct ConvertFunctionWordToUint32 { - static void convertFunctionWordToUint32(typename ConvertWordTypeToUint32::type... args) { - F(std::forward(args)...); + virtual ~EnvoyWasmVmIntegration() { + stats_.active_.dec(); + ENVOY_LOG(debug, "~WasmVm {} {} remaining active", runtime_, stats_.active_.value()); } -}; - -#define CONVERT_FUNCTION_WORD_TO_UINT32(_f) \ - &ConvertFunctionWordToUint32::convertFunctionWordToUint32 - -// These are templates and its helper for constructing signatures of functions calling into and out -// of WASM VMs. -// - WasmFuncTypeHelper is a helper for WasmFuncType and shouldn't be used anywhere else than -// WasmFuncType definition. -// - WasmFuncType takes 4 template parameter which are number of argument, return type, context type -// and param type respectively, resolve to a function type. -// For example `WasmFuncType<3, void, Context*, Word>` resolves to `void(Context*, Word, Word, -// Word)` -template -struct WasmFuncTypeHelper {}; - -template -struct WasmFuncTypeHelper { - // NOLINTNEXTLINE(readability-identifier-naming) - using type = typename WasmFuncTypeHelper::type; -}; - -template -struct WasmFuncTypeHelper<0, ReturnType, ContextType, ParamType, ReturnType(ContextType, Args...)> { - using type = ReturnType(ContextType, Args...); // NOLINT(readability-identifier-naming) -}; - -template -using WasmFuncType = typename WasmFuncTypeHelper::type; - -// Calls into the WASM VM. -// 1st arg is always a pointer to Context (Context*). -template using WasmCallVoid = std::function>; -template using WasmCallWord = std::function>; - -#define FOR_ALL_WASM_VM_EXPORTS(_f) \ - _f(WasmCallVoid<0>) _f(WasmCallVoid<1>) _f(WasmCallVoid<2>) _f(WasmCallVoid<3>) \ - _f(WasmCallVoid<5>) _f(WasmCallWord<1>) _f(WasmCallWord<2>) _f(WasmCallWord<3>) - -// Calls out of the WASM VM. -// 1st arg is always a pointer to raw_context (void*). -template using WasmCallbackVoid = WasmFuncType*; -template using WasmCallbackWord = WasmFuncType*; - -// Using the standard g++/clang mangling algorithm: -// https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling-builtin -// Extended with W = Word -// Z = void, j = uint32_t, l = int64_t, m = uint64_t -using WasmCallback_WWl = Word (*)(void*, Word, int64_t); -using WasmCallback_WWlWW = Word (*)(void*, Word, int64_t, Word, Word); -using WasmCallback_WWm = Word (*)(void*, Word, uint64_t); -using WasmCallback_dd = double (*)(void*, double); - -#define FOR_ALL_WASM_VM_IMPORTS(_f) \ - _f(WasmCallbackVoid<0>) _f(WasmCallbackVoid<1>) _f(WasmCallbackVoid<2>) _f(WasmCallbackVoid<3>) \ - _f(WasmCallbackVoid<4>) _f(WasmCallbackWord<0>) _f(WasmCallbackWord<1>) \ - _f(WasmCallbackWord<2>) _f(WasmCallbackWord<3>) _f(WasmCallbackWord<4>) \ - _f(WasmCallbackWord<5>) _f(WasmCallbackWord<6>) _f(WasmCallbackWord<7>) \ - _f(WasmCallbackWord<8>) _f(WasmCallbackWord<9>) _f(WasmCallbackWord<10>) \ - _f(WasmCallback_WWl) _f(WasmCallback_WWlWW) _f(WasmCallback_WWm) \ - _f(WasmCallback_dd) - -enum class Cloneable { - NotCloneable, // VMs can not be cloned and should be created from scratch. - CompiledBytecode, // VMs can be cloned with compiled bytecode. - InstantiatedModule // VMs can be cloned from an instantiated module. -}; - -// Wasm VM instance. Provides the low level WASM interface. -class WasmVm : public Logger::Loggable { -public: - using WasmVmPtr = std::unique_ptr; - - virtual ~WasmVm() = default; - /** - * Return the runtime identifier. - * @return one of WasmRuntimeValues from well_known_names.h (e.g. "envoy.wasm.runtime.null"). - */ - virtual absl::string_view runtime() PURE; - - /** - * Whether or not the VM implementation supports cloning. Cloning is VM system dependent. - * When a VM is configured a single VM is instantiated to check that the .wasm file is valid and - * to do VM system specific initialization. In the case of WAVM this is potentially ahead-of-time - * compilation. Then, if cloning is supported, we clone that VM for each worker, potentially - * copying and sharing the initialized data structures for efficiency. Otherwise we create an new - * VM from scratch for each worker. - * @return one of enum Cloneable with the VMs cloneability. - */ - virtual Cloneable cloneable() PURE; - - /** - * Make a worker/thread-specific copy if supported by the underlying VM system (see cloneable() - * above). If not supported, the caller will need to create a new VM from scratch. If supported, - * the clone may share compiled code and other read-only data with the source VM. - * @return a clone of 'this' (e.g. for a different worker/thread). - */ - virtual WasmVmPtr clone() PURE; - - /** - * Load the WASM code from a file. Return true on success. Once the module is loaded it can be - * queried, e.g. to see which version of emscripten support is required. After loading, the - * appropriate ABI callbacks can be registered and then the module can be link()ed (see below). - * @param code the WASM binary code (or registered NullVm plugin name). - * @param allow_precompiled if true, allows supporting VMs (e.g. WAVM) to load the binary - * machine code from a user-defined section of the WASM file. Because that code is not verified by - * the envoy process it is up to the user to ensure that the code is both safe and is built for - * the linked in version of WAVM. - * @return whether or not the load was successful. - */ - virtual bool load(const std::string& code, bool allow_precompiled) PURE; - - /** - * Link the WASM code to the host-provided functions, e.g. the ABI. Prior to linking, the module - * should be loaded and the ABI callbacks registered (see above). Linking should be done once - * after load(). - * @param debug_name user-provided name for use in log and error messages. - */ - virtual void link(absl::string_view debug_name) PURE; - - /** - * Get size of the currently allocated memory in the VM. - * @return the size of memory in bytes. - */ - virtual uint64_t getMemorySize() PURE; - - /** - * Convert a block of memory in the VM to a string_view. - * @param pointer the offset into VM memory of the requested VM memory block. - * @param size the size of the requested VM memory block. - * @return if std::nullopt then the pointer/size pair were invalid, otherwise returns - * a host string_view pointing to the pointer/size pair in VM memory. - */ - virtual absl::optional getMemory(uint64_t pointer, uint64_t size) PURE; - - /** - * Set a block of memory in the VM, returns true on success, false if the pointer/size is invalid. - * @param pointer the offset into VM memory describing the start of a region of VM memory. - * @param size the size of the region of VM memory. - * @return whether or not the pointer/size pair was a valid VM memory block. - */ - virtual bool setMemory(uint64_t pointer, uint64_t size, const void* data) PURE; - - /** - * Get a VM native Word (e.g. sizeof(void*) or sizeof(size_t)) from VM memory, returns true on - * success, false if the pointer is invalid. WASM-32 VMs have 32-bit native words and WASM-64 VMs - * (not yet supported) will have 64-bit words as does the Null VM (compiled into 64-bit Envoy). - * This function can be used to chase pointers in VM memory. - * @param pointer the offset into VM memory describing the start of VM native word size block. - * @param data a pointer to a Word whose contents will be filled from the VM native word at - * 'pointer'. - * @return whether or not the pointer was to a valid VM memory block of VM native word size. - */ - virtual bool getWord(uint64_t pointer, Word* data) PURE; - - /** - * Set a Word in the VM, returns true on success, false if the pointer is invalid. - * See getWord above for details. This function can be used (for example) to set indirect pointer - * return values (e.g. proxy_getHeaderHapValue(... const char** value_ptr, size_t* value_size). - * @param pointer the offset into VM memory describing the start of VM native word size block. - * @param data a Word whose contents will be written in VM native word size at 'pointer'. - * @return whether or not the pointer was to a valid VM memory block of VM native word size. - */ - virtual bool setWord(uint64_t pointer, Word data) PURE; - - /** - * Get the contents of the custom section with the given name or "" if it does not exist. - * @param name the name of the custom section to get. - * @return the contents of the custom section (if any). The result will be empty if there - * is no such section. - */ - virtual absl::string_view getCustomSection(absl::string_view name) PURE; - - /** - * Get the name of the custom section that contains precompiled module. - * @return the name of the custom section that contains precompiled module. - */ - virtual absl::string_view getPrecompiledSectionName() PURE; - - /** - * Get typed function exported by the WASM module. - */ -#define _GET_FUNCTION(_T) virtual void getFunction(absl::string_view function_name, _T* f) PURE; - FOR_ALL_WASM_VM_EXPORTS(_GET_FUNCTION) -#undef _GET_FUNCTION - - /** - * Register typed callbacks exported by the host environment. - */ -#define _REGISTER_CALLBACK(_T) \ - virtual void registerCallback(absl::string_view moduleName, absl::string_view function_name, \ - _T f, typename ConvertFunctionTypeWordToUint32<_T>::type) PURE; - FOR_ALL_WASM_VM_IMPORTS(_REGISTER_CALLBACK) -#undef _REGISTER_CALLBACK -}; -using WasmVmPtr = std::unique_ptr; + proxy_wasm::WasmVmIntegration* clone() override { + return new EnvoyWasmVmIntegration(scope_, runtime_); + } + // void log(proxy_wasm::LogLevel level, absl::string_view message) override; + void error(absl::string_view message) override; -// Exceptions for issues with the WasmVm. -class WasmVmException : public EnvoyException { -public: - using EnvoyException::EnvoyException; -}; +protected: + const Stats::ScopeSharedPtr scope_; + const std::string runtime_prefix_; + const std::string runtime_; // The runtime e.g. "v8". + VmStats stats_; +}; // namespace Wasm // Exceptions for issues with the WebAssembly code. class WasmException : public EnvoyException { @@ -271,34 +72,7 @@ class WasmException : public EnvoyException { using EnvoyException::EnvoyException; }; -// Thread local state set during a call into a WASM VM so that calls coming out of the -// VM can be attributed correctly to calling Filter. We use thread_local instead of ThreadLocal -// because this state is live only during the calls and does not need to be initialized consistently -// over all workers as with ThreadLocal data. -extern thread_local Envoy::Extensions::Common::Wasm::Context* current_context_; - -// Requested effective context set by code within the VM to request that the calls coming out of the -// VM be attributed to another filter, for example if a control plane gRPC comes back to the -// RootContext which effects some set of waiting filters. -extern thread_local uint32_t effective_context_id_; - -// Helper to save and restore thread local VM call context information to support reentrant calls. -// NB: this happens for example when a call from the VM invokes a handler which needs to _malloc -// memory in the VM. -struct SaveRestoreContext { - explicit SaveRestoreContext(Context* context) { - saved_context = current_context_; - saved_effective_context_id_ = effective_context_id_; - current_context_ = context; - effective_context_id_ = 0; // No effective context id. - } - ~SaveRestoreContext() { - current_context_ = saved_context; - effective_context_id_ = saved_effective_context_id_; - } - Context* saved_context; - uint32_t saved_effective_context_id_; -}; +using WasmVmPtr = std::unique_ptr; // Create a new low-level WASM VM using runtime of the given type (e.g. "envoy.wasm.runtime.wavm"). WasmVmPtr createWasmVm(absl::string_view runtime, const Stats::ScopeSharedPtr& scope); diff --git a/source/extensions/common/wasm/wasm_vm_base.h b/source/extensions/common/wasm/wasm_vm_base.h deleted file mode 100644 index a709534cba521..0000000000000 --- a/source/extensions/common/wasm/wasm_vm_base.h +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once - -#include "envoy/stats/scope.h" -#include "envoy/stats/stats.h" -#include "envoy/stats/stats_macros.h" - -#include "extensions/common/wasm/wasm_vm.h" - -#include "absl/strings/str_cat.h" - -namespace Envoy { -namespace Extensions { -namespace Common { -namespace Wasm { - -/** - * Wasm host stats. - */ -#define ALL_VM_STATS(COUNTER, GAUGE) \ - COUNTER(created) \ - COUNTER(cloned) \ - GAUGE(active, NeverImport) - -struct VmStats { - ALL_VM_STATS(GENERATE_COUNTER_STRUCT, GENERATE_GAUGE_STRUCT) -}; - -// Wasm VM base instance. Provides common behavior (e.g. Stats). -class WasmVmBase : public WasmVm { -public: - WasmVmBase(const Stats::ScopeSharedPtr& scope, absl::string_view runtime) - : scope_(scope), runtime_prefix_(absl::StrCat("wasm_vm.", runtime, ".")), - runtime_(std::string(runtime)), - stats_(VmStats{ALL_VM_STATS(POOL_COUNTER_PREFIX(*scope_, runtime_prefix_), - POOL_GAUGE_PREFIX(*scope_, runtime_prefix_))}) { - stats_.created_.inc(); - stats_.active_.inc(); - ENVOY_LOG(debug, "WasmVm created {} now active", runtime_, stats_.active_.value()); - } - virtual ~WasmVmBase() { - stats_.active_.dec(); - ENVOY_LOG(debug, "~WasmVm {} {} remaining active", runtime_, stats_.active_.value()); - } - -protected: - const Stats::ScopeSharedPtr scope_; - const std::string runtime_prefix_; - const std::string runtime_; // The runtime e.g. "v8". - VmStats stats_; -}; - -} // namespace Wasm -} // namespace Common -} // namespace Extensions -} // namespace Envoy diff --git a/test/extensions/common/wasm/BUILD b/test/extensions/common/wasm/BUILD index bdc4969b141a2..d39546165cc32 100644 --- a/test/extensions/common/wasm/BUILD +++ b/test/extensions/common/wasm/BUILD @@ -20,3 +20,22 @@ envoy_cc_test( "//test/test_common:utility_lib", ], ) + +envoy_cc_test( + name = "wasm_test", + srcs = ["wasm_test.cc"], + data = [ + "//test/extensions/common/wasm/test_data:modules", + ], + external_deps = ["abseil_optional"], + deps = [ + "//source/common/event:dispatcher_lib", + "//source/common/stats:isolated_store_lib", + "//source/common/stats:stats_lib", + "//source/extensions/common/wasm:wasm_lib", + "//test/extensions/common/wasm/test_data:test_cpp_plugin", + "//test/mocks/server:server_mocks", + "//test/test_common:environment_lib", + "//test/test_common:simulated_time_system_lib", + ], +) diff --git a/test/extensions/common/wasm/test_data/BUILD b/test/extensions/common/wasm/test_data/BUILD index ef4f37386280f..40c8946c25154 100644 --- a/test/extensions/common/wasm/test_data/BUILD +++ b/test/extensions/common/wasm/test_data/BUILD @@ -2,6 +2,7 @@ licenses(["notice"]) # Apache 2 load( "//bazel:envoy_build_system.bzl", + "envoy_cc_library", "envoy_package", ) @@ -11,3 +12,20 @@ filegroup( name = "modules", srcs = glob(["*.wasm"]), ) + +envoy_cc_library( + name = "test_cpp_plugin", + srcs = [ + "test_cpp.cc", + "test_cpp_null_plugin.cc", + ], + copts = ["-DNULL_PLUGIN=1"], + deps = [ + "//external:abseil_node_hash_map", + "//source/common/common:assert_lib", + "//source/common/common:c_smart_ptr_lib", + "//source/extensions/common/wasm:wasm_hdr", + "//source/extensions/common/wasm:wasm_lib", + "//source/extensions/common/wasm:well_known_names", + ], +) diff --git a/test/extensions/common/wasm/test_data/Makefile b/test/extensions/common/wasm/test_data/Makefile new file mode 100644 index 0000000000000..6a560db28cd4e --- /dev/null +++ b/test/extensions/common/wasm/test_data/Makefile @@ -0,0 +1,6 @@ +# PROXY_WASM_CPP_SDK must be set in the environment +NO_CONTEXT=1 + +all: test_cpp.wasm bad_signature_cpp.wasm + +include $(PROXY_WASM_CPP_SDK)/Makefile.base diff --git a/test/extensions/common/wasm/test_data/Makefile.docker_cpp_builder b/test/extensions/common/wasm/test_data/Makefile.docker_cpp_builder new file mode 100644 index 0000000000000..f88f58029e6ff --- /dev/null +++ b/test/extensions/common/wasm/test_data/Makefile.docker_cpp_builder @@ -0,0 +1,6 @@ +DOCKER_SDK=/external_sdk + +all: test_cpp.wasm + chown ${uid}.${gid} *.wasm + +include ${DOCKER_SDK}/Makefile.base diff --git a/test/extensions/common/wasm/test_data/bad_signature_cpp.cc b/test/extensions/common/wasm/test_data/bad_signature_cpp.cc new file mode 100644 index 0000000000000..de745e2f4497e --- /dev/null +++ b/test/extensions/common/wasm/test_data/bad_signature_cpp.cc @@ -0,0 +1,13 @@ +// NOLINT(namespace-envoy) +#include + +#define EMSCRIPTEN_KEEPALIVE __attribute__((used)) __attribute__((visibility("default"))) + +extern "C" uint32_t proxy_log(uint32_t level, const char* logMessage, size_t messageSize); + +extern "C" EMSCRIPTEN_KEEPALIVE uint32_t proxy_on_configure(uint32_t, int bad, char* configuration, + int size) { + std::string message = "bad signature"; + proxy_log(4 /* error */, message.c_str(), message.size()); + return 1; +} diff --git a/test/extensions/common/wasm/test_data/bad_signature_cpp.wasm b/test/extensions/common/wasm/test_data/bad_signature_cpp.wasm new file mode 100644 index 0000000000000000000000000000000000000000..dd54be38ceee01bca4b8481c83f9de66a1231f55 GIT binary patch literal 1046295 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 n2%ffuR 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 z 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 z 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%0Ds>K2Hhu1h$8FKbZ4Pw40QW2-K8&W7r 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 Jm*CiI`ajuHV&DJ( literal 0 HcmV?d00001 diff --git a/test/extensions/common/wasm/test_data/docker_build_cpp_wasm.sh b/test/extensions/common/wasm/test_data/docker_build_cpp_wasm.sh new file mode 100755 index 0000000000000..7e4f35ae5ec9e --- /dev/null +++ b/test/extensions/common/wasm/test_data/docker_build_cpp_wasm.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker run -e uid="$(id -u)" -e gid="$(id -g)" -v $PWD:/work -v $(realpath ../../../../../api/wasm/cpp):/external_sdk -w /work wasmsdk:v2 bash ./docker_cpp_builder.sh diff --git a/test/extensions/common/wasm/test_data/docker_cpp_builder.sh b/test/extensions/common/wasm/test_data/docker_cpp_builder.sh new file mode 100755 index 0000000000000..95047e8473395 --- /dev/null +++ b/test/extensions/common/wasm/test_data/docker_cpp_builder.sh @@ -0,0 +1,4 @@ +#!/bin/bash +source /root/emsdk/emsdk_env.sh +export PATH=/usr/local/bin:$PATH +make -j -f Makefile.docker_cpp_builder diff --git a/test/extensions/common/wasm/test_data/test_cpp.cc b/test/extensions/common/wasm/test_data/test_cpp.cc new file mode 100644 index 0000000000000..6c33af205f9ac --- /dev/null +++ b/test/extensions/common/wasm/test_data/test_cpp.cc @@ -0,0 +1,136 @@ +// NOLINT(namespace-envoy) +#include +#include +#include + +#ifndef NULL_PLUGIN +#include "proxy_wasm_intrinsics.h" +#else +#include "include/proxy-wasm/null_plugin.h" +#endif + +START_WASM_PLUGIN(CommonWasmTestCpp) + +static int* badptr = nullptr; +static float gNan = std::nan("1"); +static float gInfinity = INFINITY; + +#ifndef CHECK_RESULT +#define CHECK_RESULT(_c) \ + do { \ + if ((_c) != WasmResult::Ok) { \ + proxy_log(LogLevel::critical, #_c, sizeof(#_c) - 1); \ + abort(); \ + } \ + } while (0) +#endif + +WASM_EXPORT(uint32_t, proxy_on_vm_start, (uint32_t context_id, uint32_t configuration_size)) { + const char* configuration_ptr = nullptr; + size_t size; + proxy_get_buffer_bytes(WasmBufferType::VmConfiguration, 0, configuration_size, &configuration_ptr, + &size); + std::string configuration(configuration_ptr, size); + if (configuration == "logging") { + std::string trace_message = "test trace logging"; + proxy_log(LogLevel::trace, trace_message.c_str(), trace_message.size()); + std::string debug_message = "test debug logging"; + proxy_log(LogLevel::debug, debug_message.c_str(), debug_message.size()); + std::string warn_message = "test warn logging"; + proxy_log(LogLevel::warn, warn_message.c_str(), warn_message.size()); + std::string error_message = "test error logging"; + proxy_log(LogLevel::error, error_message.c_str(), error_message.size()); + } else if (configuration == "segv") { + std::string message = "before badptr"; + proxy_log(LogLevel::error, message.c_str(), message.size()); + ::free(const_cast(reinterpret_cast(configuration_ptr))); + *badptr = 1; + message = "after badptr"; + proxy_log(LogLevel::error, message.c_str(), message.size()); + } else if (configuration == "divbyzero") { + std::string message = "before div by zero"; + proxy_log(LogLevel::error, message.c_str(), message.size()); + int zero = context_id / 1000; + ::free(const_cast(reinterpret_cast(configuration_ptr))); + message = "divide by zero: " + std::to_string(100 / zero); + proxy_log(LogLevel::error, message.c_str(), message.size()); + } else if (configuration == "globals") { + std::string message = "NaN " + std::to_string(gNan); + proxy_log(LogLevel::warn, message.c_str(), message.size()); + message = "inf " + std::to_string(gInfinity); + proxy_log(LogLevel::warn, message.c_str(), message.size()); + message = "inf " + std::to_string(1.0 / 0.0); + proxy_log(LogLevel::warn, message.c_str(), message.size()); + message = std::string("inf ") + (std::isinf(gInfinity) ? "inf" : "nan"); + proxy_log(LogLevel::warn, message.c_str(), message.size()); + } else if (configuration == "stats") { + uint32_t c, g, h; + + std::string name = "test_counter"; + CHECK_RESULT(proxy_define_metric(MetricType::Counter, name.data(), name.size(), &c)); + name = "test_gauge"; + CHECK_RESULT(proxy_define_metric(MetricType::Gauge, name.data(), name.size(), &g)); + name = "test_historam"; + CHECK_RESULT(proxy_define_metric(MetricType::Histogram, name.data(), name.size(), &h)); + + CHECK_RESULT(proxy_increment_metric(c, 1)); + CHECK_RESULT(proxy_record_metric(g, 2)); + CHECK_RESULT(proxy_record_metric(h, 3)); + + uint64_t value; + std::string message; + CHECK_RESULT(proxy_get_metric(c, &value)); + message = std::string("get counter = ") + std::to_string(value); + proxy_log(LogLevel::trace, message.c_str(), message.size()); + CHECK_RESULT(proxy_increment_metric(c, 1)); + CHECK_RESULT(proxy_get_metric(c, &value)); + message = std::string("get counter = ") + std::to_string(value); + proxy_log(LogLevel::debug, message.c_str(), message.size()); + CHECK_RESULT(proxy_record_metric(c, 3)); + CHECK_RESULT(proxy_get_metric(c, &value)); + message = std::string("get counter = ") + std::to_string(value); + proxy_log(LogLevel::info, message.c_str(), message.size()); + CHECK_RESULT(proxy_get_metric(g, &value)); + message = std::string("get gauge = ") + std::to_string(value); + proxy_log(LogLevel::warn, message.c_str(), message.size()); + // Get on histograms is not supported. + if (proxy_get_metric(h, &value) != WasmResult::Ok) { + message = std::string("get histogram = Unsupported"); + proxy_log(LogLevel::error, message.c_str(), message.size()); + } + } else { + std::string message = "on_vm_start " + configuration; + proxy_log(LogLevel::info, message.c_str(), message.size()); + } + ::free(const_cast(reinterpret_cast(configuration_ptr))); + return 1; +} + +WASM_EXPORT(uint32_t, proxy_on_configure, (uint32_t, uint32_t configuration_size)) { + const char* configuration_ptr = nullptr; + size_t size; + proxy_get_buffer_bytes(WasmBufferType::PluginConfiguration, 0, configuration_size, + &configuration_ptr, &size); + std::string configuration(configuration_ptr, size); + if (configuration == "done") { + proxy_done(); + } else { + std::string message = "on_configuration " + configuration; + proxy_log(LogLevel::info, message.c_str(), message.size()); + } + ::free(const_cast(reinterpret_cast(configuration_ptr))); + return 1; +} + +WASM_EXPORT(uint32_t, proxy_on_done, (uint32_t)) { + std::string message = "on_done logging"; + proxy_log(LogLevel::info, message.c_str(), message.size()); + return 0; +} + +WASM_EXPORT(void, proxy_on_delete, (uint32_t)) { + std::string message = "on_delete logging"; + proxy_log(LogLevel::info, message.c_str(), message.size()); +} + +END_WASM_PLUGIN diff --git a/test/extensions/common/wasm/test_data/test_cpp.wasm b/test/extensions/common/wasm/test_data/test_cpp.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c0d750ff69326bd45fac25aaab75adb245b91f37 GIT binary patch literal 1052988 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μ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

?K! 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�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 z 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::context_registry_); }); + +} // namespace null_plugin; +} // namespace proxy_wasm diff --git a/test/extensions/common/wasm/test_data/test_rust.wasm b/test/extensions/common/wasm/test_data/test_rust.wasm index 6af3c924447fee846b852a9347cdfeda4f2786d5..fdb7828c247f7275621702498d74e8de1eb9b228 100755 GIT binary patch delta 31 mcmZ3by+(V37>m#pWzB-3)a3l!g3O%Ml=$-0)Xi!vErI~D;0q4` delta 29 kcmZ3Zy-It77>mFpW%Yuh)a3l!g3O%Ml=!mE8Z0e>0Gp! + +#include "common/event/dispatcher_impl.h" +#include "common/stats/isolated_store_impl.h" + +#include "extensions/common/wasm/wasm.h" + +#include "test/mocks/server/mocks.h" +#include "test/mocks/upstream/mocks.h" +#include "test/test_common/environment.h" +#include "test/test_common/utility.h" + +#include "absl/types/optional.h" +#include "gmock/gmock.h" +#include "gtest/gtest.h" + +using testing::Eq; + +namespace Envoy { +namespace Extensions { +namespace Common { +namespace Wasm { + +class TestContext : public Extensions::Common::Wasm::Context { +public: + TestContext(Extensions::Common::Wasm::Wasm* wasm) : Extensions::Common::Wasm::Context(wasm) {} + ~TestContext() override {} + proxy_wasm::WasmResult log(uint64_t level, absl::string_view message) override { + std::cerr << std::string(message) << "\n"; + log_(static_cast(level), message); + return proxy_wasm::WasmResult::Ok; + } + MOCK_METHOD2(log_, void(spdlog::level::level_enum level, absl::string_view message)); +}; + +class WasmCommonTest : public testing::TestWithParam {}; + +INSTANTIATE_TEST_SUITE_P(Runtimes, WasmCommonTest, testing::Values("v8", "null")); + +TEST_P(WasmCommonTest, Logging) { + Stats::IsolatedStoreImpl stats_store; + Api::ApiPtr api = Api::createApiForTest(stats_store); + Upstream::MockClusterManager cluster_manager; + Event::DispatcherPtr dispatcher(api->allocateDispatcher()); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + NiceMock local_info; + auto name = ""; + auto root_id = ""; + auto vm_id = ""; + auto vm_configuration = "logging"; + auto plugin_configuration = "configure-test"; + std::string code; + if (GetParam() == "v8") { + code = TestEnvironment::readFileToStringForTest(TestEnvironment::substitute( + absl::StrCat("{{ test_rundir }}/test/extensions/common/wasm/test_data/test_cpp.wasm"))); + } else { + // The name of the Null VM plugin. + code = "CommonWasmTestCpp"; + } + EXPECT_FALSE(code.empty()); + auto plugin = std::make_shared( + name, root_id, vm_id, plugin_configuration, + envoy::config::core::v3::TrafficDirection::UNSPECIFIED, local_info, nullptr); + auto vm_key = proxy_wasm::makeVmKey(vm_id, vm_configuration, code); + auto wasm = std::make_shared( + absl::StrCat("envoy.wasm.runtime.", GetParam()), vm_id, vm_configuration, vm_key, scope, + cluster_manager, *dispatcher); + EXPECT_NE(wasm, nullptr); + auto wasm_weak = std::weak_ptr(wasm); + auto wasm_handler = std::make_unique(std::move(wasm)); + auto context = std::make_unique(wasm_weak.lock().get()); + + EXPECT_CALL(*context, log_(spdlog::level::trace, Eq("test trace logging"))); + EXPECT_CALL(*context, log_(spdlog::level::debug, Eq("test debug logging"))); + EXPECT_CALL(*context, log_(spdlog::level::warn, Eq("test warn logging"))); + EXPECT_CALL(*context, log_(spdlog::level::err, Eq("test error logging"))); + EXPECT_CALL(*context, log_(spdlog::level::info, Eq("on_configuration configure-test"))); + EXPECT_CALL(*context, log_(spdlog::level::info, Eq("on_done logging"))); + EXPECT_CALL(*context, log_(spdlog::level::info, Eq("on_delete logging"))); + + EXPECT_TRUE(wasm_weak.lock()->initialize(code, false)); + wasm_weak.lock()->setContext(context.get()); + auto root_context = context.get(); + wasm_weak.lock()->startForTesting(std::move(context), plugin); + wasm_weak.lock()->configure(root_context, plugin); + wasm_handler.reset(); + dispatcher->run(Event::Dispatcher::RunType::NonBlock); + // This will SEGV on nullptr if wasm has been deleted. + plugin->plugin_configuration_ = "done"; + wasm_weak.lock()->configure(root_context, plugin); + dispatcher->run(Event::Dispatcher::RunType::NonBlock); + dispatcher->clearDeferredDeleteList(); +} + +TEST_P(WasmCommonTest, BadSignature) { + if (GetParam() != "v8") { + return; + } + Stats::IsolatedStoreImpl stats_store; + Api::ApiPtr api = Api::createApiForTest(stats_store); + Upstream::MockClusterManager cluster_manager; + Event::DispatcherPtr dispatcher(api->allocateDispatcher()); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + NiceMock local_info; + auto name = ""; + auto root_id = ""; + auto vm_id = ""; + auto vm_configuration = ""; + auto plugin_configuration = ""; + const auto code = TestEnvironment::readFileToStringForTest(TestEnvironment::substitute( + "{{ test_rundir }}/test/extensions/common/wasm/test_data/bad_signature_cpp.wasm")); + EXPECT_FALSE(code.empty()); + auto plugin = std::make_shared( + name, root_id, vm_id, plugin_configuration, + envoy::config::core::v3::TrafficDirection::UNSPECIFIED, local_info, nullptr); + auto vm_key = proxy_wasm::makeVmKey(vm_id, vm_configuration, code); + auto wasm = std::make_unique( + absl::StrCat("envoy.wasm.runtime.", GetParam()), vm_id, vm_configuration, vm_key, scope, + cluster_manager, *dispatcher); + EXPECT_NE(wasm, nullptr); + EXPECT_THROW_WITH_MESSAGE(wasm->initialize(code, false), Extensions::Common::Wasm::WasmException, + "Bad function signature for: proxy_on_configure"); +} + +TEST_P(WasmCommonTest, Segv) { + if (GetParam() != "v8") { + return; + } + Stats::IsolatedStoreImpl stats_store; + Api::ApiPtr api = Api::createApiForTest(stats_store); + Upstream::MockClusterManager cluster_manager; + Event::DispatcherPtr dispatcher(api->allocateDispatcher()); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + NiceMock local_info; + auto name = ""; + auto root_id = ""; + auto vm_id = ""; + auto vm_configuration = "segv"; + auto plugin_configuration = ""; + const auto code = TestEnvironment::readFileToStringForTest(TestEnvironment::substitute( + "{{ test_rundir }}/test/extensions/common/wasm/test_data/test_cpp.wasm")); + EXPECT_FALSE(code.empty()); + auto plugin = std::make_shared( + name, root_id, vm_id, plugin_configuration, + envoy::config::core::v3::TrafficDirection::UNSPECIFIED, local_info, nullptr); + auto vm_key = proxy_wasm::makeVmKey(vm_id, vm_configuration, code); + auto wasm = std::make_unique( + absl::StrCat("envoy.wasm.runtime.", GetParam()), vm_id, vm_configuration, vm_key, scope, + cluster_manager, *dispatcher); + auto context = std::make_unique(wasm.get()); + EXPECT_CALL(*context, log_(spdlog::level::err, Eq("before badptr"))); + EXPECT_TRUE(wasm->initialize(code, false)); + + EXPECT_THROW_WITH_MESSAGE( + wasm->startForTesting(std::move(context), plugin), Extensions::Common::Wasm::WasmException, + "Function: proxy_on_vm_start failed: Uncaught RuntimeError: unreachable"); +} + +TEST_P(WasmCommonTest, DivByZero) { + if (GetParam() != "v8") { + return; + } + Stats::IsolatedStoreImpl stats_store; + Api::ApiPtr api = Api::createApiForTest(stats_store); + Upstream::MockClusterManager cluster_manager; + Event::DispatcherPtr dispatcher(api->allocateDispatcher()); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + NiceMock local_info; + auto name = ""; + auto root_id = ""; + auto vm_id = ""; + auto vm_configuration = "divbyzero"; + auto plugin_configuration = ""; + const auto code = TestEnvironment::readFileToStringForTest(TestEnvironment::substitute( + "{{ test_rundir }}/test/extensions/common/wasm/test_data/test_cpp.wasm")); + EXPECT_FALSE(code.empty()); + auto plugin = std::make_shared( + name, root_id, vm_id, plugin_configuration, + envoy::config::core::v3::TrafficDirection::UNSPECIFIED, local_info, nullptr); + auto vm_key = proxy_wasm::makeVmKey(vm_id, vm_configuration, code); + auto wasm = std::make_unique( + absl::StrCat("envoy.wasm.runtime.", GetParam()), vm_id, vm_configuration, vm_key, scope, + cluster_manager, *dispatcher); + EXPECT_NE(wasm, nullptr); + auto context = std::make_unique(wasm.get()); + EXPECT_CALL(*context, log_(spdlog::level::err, Eq("before div by zero"))); + EXPECT_TRUE(wasm->initialize(code, false)); + + EXPECT_THROW_WITH_MESSAGE( + wasm->startForTesting(std::move(context), plugin), Extensions::Common::Wasm::WasmException, + "Function: proxy_on_vm_start failed: Uncaught RuntimeError: divide by zero"); +} + +TEST_P(WasmCommonTest, EmscriptenVersion) { + if (GetParam() != "v8") { + return; + } + Stats::IsolatedStoreImpl stats_store; + Api::ApiPtr api = Api::createApiForTest(stats_store); + Upstream::MockClusterManager cluster_manager; + Event::DispatcherPtr dispatcher(api->allocateDispatcher()); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + NiceMock local_info; + auto name = ""; + auto root_id = ""; + auto vm_id = ""; + auto vm_configuration = ""; + auto plugin_configuration = ""; + const auto code = TestEnvironment::readFileToStringForTest(TestEnvironment::substitute( + "{{ test_rundir }}/test/extensions/common/wasm/test_data/test_cpp.wasm")); + EXPECT_FALSE(code.empty()); + auto plugin = std::make_shared( + name, root_id, vm_id, plugin_configuration, + envoy::config::core::v3::TrafficDirection::UNSPECIFIED, local_info, nullptr); + auto vm_key = proxy_wasm::makeVmKey(vm_id, vm_configuration, code); + auto wasm = std::make_unique( + absl::StrCat("envoy.wasm.runtime.", GetParam()), vm_id, vm_configuration, vm_key, scope, + cluster_manager, *dispatcher); + EXPECT_NE(wasm, nullptr); + auto context = std::make_unique(wasm.get()); + EXPECT_TRUE(wasm->initialize(code, false)); + + uint32_t major = 9, minor = 9, abi_major = 9, abi_minor = 9; + EXPECT_TRUE(wasm->getEmscriptenVersion(&major, &minor, &abi_major, &abi_minor)); + EXPECT_EQ(major, 0); + EXPECT_LE(minor, 3); + // Up to (at least) emsdk 1.39.6. + EXPECT_EQ(abi_major, 0); + EXPECT_LE(abi_minor, 20); +} + +TEST_P(WasmCommonTest, IntrinsicGlobals) { + Stats::IsolatedStoreImpl stats_store; + Api::ApiPtr api = Api::createApiForTest(stats_store); + Upstream::MockClusterManager cluster_manager; + Event::DispatcherPtr dispatcher(api->allocateDispatcher()); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + NiceMock local_info; + auto name = ""; + auto root_id = ""; + auto vm_id = ""; + auto vm_configuration = "globals"; + auto plugin_configuration = ""; + std::string code; + if (GetParam() == "v8") { + code = TestEnvironment::readFileToStringForTest(TestEnvironment::substitute( + absl::StrCat("{{ test_rundir }}/test/extensions/common/wasm/test_data/test_cpp.wasm"))); + } else { + // The name of the Null VM plugin. + code = "CommonWasmTestCpp"; + } + EXPECT_FALSE(code.empty()); + auto plugin = std::make_shared( + name, root_id, vm_id, plugin_configuration, + envoy::config::core::v3::TrafficDirection::UNSPECIFIED, local_info, nullptr); + auto vm_key = proxy_wasm::makeVmKey(vm_id, vm_configuration, code); + auto wasm = std::make_unique( + absl::StrCat("envoy.wasm.runtime.", GetParam()), vm_id, vm_configuration, vm_key, scope, + cluster_manager, *dispatcher); + EXPECT_NE(wasm, nullptr); + auto context = std::make_unique(wasm.get()); + EXPECT_CALL(*context, log_(spdlog::level::warn, Eq("NaN nan"))); + EXPECT_CALL(*context, log_(spdlog::level::warn, Eq("inf inf"))).Times(3); + EXPECT_TRUE(wasm->initialize(code, false)); + wasm->startForTesting(std::move(context), plugin); +} + +TEST_P(WasmCommonTest, Stats) { + Stats::IsolatedStoreImpl stats_store; + Api::ApiPtr api = Api::createApiForTest(stats_store); + Upstream::MockClusterManager cluster_manager; + Event::DispatcherPtr dispatcher(api->allocateDispatcher()); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + NiceMock local_info; + auto name = ""; + auto root_id = ""; + auto vm_id = ""; + auto vm_configuration = "stats"; + auto plugin_configuration = ""; + std::string code; + if (GetParam() == "v8") { + code = TestEnvironment::readFileToStringForTest(TestEnvironment::substitute( + absl::StrCat("{{ test_rundir }}/test/extensions/common/wasm/test_data/test_cpp.wasm"))); + } else { + // The name of the Null VM plugin. + code = "CommonWasmTestCpp"; + } + EXPECT_FALSE(code.empty()); + auto plugin = std::make_shared( + name, root_id, vm_id, plugin_configuration, + envoy::config::core::v3::TrafficDirection::UNSPECIFIED, local_info, nullptr); + auto vm_key = proxy_wasm::makeVmKey(vm_id, vm_configuration, code); + auto wasm = std::make_unique( + absl::StrCat("envoy.wasm.runtime.", GetParam()), vm_id, vm_configuration, vm_key, scope, + cluster_manager, *dispatcher); + EXPECT_NE(wasm, nullptr); + auto context = std::make_unique(wasm.get()); + + EXPECT_CALL(*context, log_(spdlog::level::trace, Eq("get counter = 1"))); + EXPECT_CALL(*context, log_(spdlog::level::debug, Eq("get counter = 2"))); + // recordMetric on a Counter is the same as increment. + EXPECT_CALL(*context, log_(spdlog::level::info, Eq("get counter = 5"))); + EXPECT_CALL(*context, log_(spdlog::level::warn, Eq("get gauge = 2"))); + // Get is not supported on histograms. + EXPECT_CALL(*context, log_(spdlog::level::err, Eq("get histogram = Unsupported"))); + + EXPECT_TRUE(wasm->initialize(code, false)); + wasm->startForTesting(std::move(context), plugin); +} + +} // namespace Wasm +} // namespace Common +} // namespace Extensions +} // namespace Envoy diff --git a/test/extensions/common/wasm/wasm_vm_test.cc b/test/extensions/common/wasm/wasm_vm_test.cc index c206994ef6e1d..49e71b70d052a 100644 --- a/test/extensions/common/wasm/wasm_vm_test.cc +++ b/test/extensions/common/wasm/wasm_vm_test.cc @@ -2,7 +2,7 @@ #include "common/stats/isolated_store_impl.h" -#include "extensions/common/wasm/null/null_vm_plugin.h" +#include "include/proxy-wasm/null_vm_plugin.h" #include "extensions/common/wasm/wasm_vm.h" #include "test/test_common/environment.h" @@ -11,6 +11,8 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" +using proxy_wasm::WasmCallVoid; +using proxy_wasm::WasmCallWord; using testing::HasSubstr; using testing::Return; @@ -20,7 +22,7 @@ namespace Common { namespace Wasm { namespace { -class TestNullVmPlugin : public Null::NullVmPlugin { +class TestNullVmPlugin : public proxy_wasm::NullVmPlugin { public: TestNullVmPlugin() = default; ~TestNullVmPlugin() override = default; @@ -28,22 +30,13 @@ class TestNullVmPlugin : public Null::NullVmPlugin { MOCK_METHOD(void, start, ()); }; -class PluginFactory : public Null::NullVmPluginFactory { -public: - PluginFactory() = default; - - std::string name() const override { return "test_null_vm_plugin"; } - std::unique_ptr create() const override; -}; - TestNullVmPlugin* test_null_vm_plugin_ = nullptr; -Envoy::Registry::RegisterFactory register_; -std::unique_ptr PluginFactory::create() const { - auto result = std::make_unique(); - test_null_vm_plugin_ = result.get(); - return result; -} +proxy_wasm::RegisterNullVmPluginFactory register_test_null_vm_plugin("test_null_vm_plugin", []() { + auto plugin = std::make_unique(); + test_null_vm_plugin_ = plugin.get(); + return plugin; +}); class BaseVmTest : public testing::Test { public: @@ -55,12 +48,12 @@ class BaseVmTest : public testing::Test { }; TEST_F(BaseVmTest, NoRuntime) { - EXPECT_THROW_WITH_MESSAGE(createWasmVm("", scope_), WasmVmException, + EXPECT_THROW_WITH_MESSAGE(createWasmVm("", scope_), WasmException, "Failed to create WASM VM with unspecified runtime."); } TEST_F(BaseVmTest, BadRuntime) { - EXPECT_THROW_WITH_MESSAGE(createWasmVm("envoy.wasm.runtime.invalid", scope_), WasmVmException, + EXPECT_THROW_WITH_MESSAGE(createWasmVm("envoy.wasm.runtime.invalid", scope_), WasmException, "Failed to create WASM VM using envoy.wasm.runtime.invalid runtime. " "Envoy was compiled without support for it."); } @@ -68,7 +61,7 @@ TEST_F(BaseVmTest, BadRuntime) { TEST_F(BaseVmTest, NullVmStartup) { auto wasm_vm = createWasmVm("envoy.wasm.runtime.null", scope_); EXPECT_TRUE(wasm_vm != nullptr); - EXPECT_TRUE(wasm_vm->runtime() == "envoy.wasm.runtime.null"); + EXPECT_TRUE(wasm_vm->runtime() == "null"); EXPECT_TRUE(wasm_vm->cloneable() == Cloneable::InstantiatedModule); auto wasm_vm_clone = wasm_vm->clone(); EXPECT_TRUE(wasm_vm_clone != nullptr); @@ -149,7 +142,7 @@ TEST_P(WasmVmTest, V8BadCode) { TEST_P(WasmVmTest, V8Code) { auto wasm_vm = createWasmVm("envoy.wasm.runtime.v8", scope_); ASSERT_TRUE(wasm_vm != nullptr); - EXPECT_TRUE(wasm_vm->runtime() == "envoy.wasm.runtime.v8"); + EXPECT_TRUE(wasm_vm->runtime() == "v8"); auto code = TestEnvironment::readFileToStringForTest(TestEnvironment::substitute( "{{ test_rundir }}/test/extensions/common/wasm/test_data/test_rust.wasm")); @@ -175,21 +168,21 @@ TEST_P(WasmVmTest, V8BadHostFunctions) { EXPECT_TRUE(wasm_vm->load(code, GetParam())); wasm_vm->registerCallback("env", "random", &random, CONVERT_FUNCTION_WORD_TO_UINT32(random)); - EXPECT_THROW_WITH_MESSAGE(wasm_vm->link("test"), WasmVmException, + EXPECT_THROW_WITH_MESSAGE(wasm_vm->link("test"), WasmException, "Failed to load WASM module due to a missing import: env.pong"); wasm_vm->registerCallback("env", "pong", &bad_pong1, CONVERT_FUNCTION_WORD_TO_UINT32(bad_pong1)); - EXPECT_THROW_WITH_MESSAGE(wasm_vm->link("test"), WasmVmException, + EXPECT_THROW_WITH_MESSAGE(wasm_vm->link("test"), WasmException, "Failed to load WASM module due to an import type mismatch: env.pong, " "want: i32 -> void, but host exports: void -> void"); wasm_vm->registerCallback("env", "pong", &bad_pong2, CONVERT_FUNCTION_WORD_TO_UINT32(bad_pong2)); - EXPECT_THROW_WITH_MESSAGE(wasm_vm->link("test"), WasmVmException, + EXPECT_THROW_WITH_MESSAGE(wasm_vm->link("test"), WasmException, "Failed to load WASM module due to an import type mismatch: env.pong, " "want: i32 -> void, but host exports: i32 -> i32"); wasm_vm->registerCallback("env", "pong", &bad_pong3, CONVERT_FUNCTION_WORD_TO_UINT32(bad_pong3)); - EXPECT_THROW_WITH_MESSAGE(wasm_vm->link("test"), WasmVmException, + EXPECT_THROW_WITH_MESSAGE(wasm_vm->link("test"), WasmException, "Failed to load WASM module due to an import type mismatch: env.pong, " "want: i32 -> void, but host exports: f64 -> f64"); } @@ -215,10 +208,10 @@ TEST_P(WasmVmTest, V8BadModuleFunctions) { wasm_vm->getFunction("nonexistent", &sum); EXPECT_TRUE(sum == nullptr); - EXPECT_THROW_WITH_MESSAGE(wasm_vm->getFunction("ping", &sum), WasmVmException, + EXPECT_THROW_WITH_MESSAGE(wasm_vm->getFunction("ping", &sum), WasmException, "Bad function signature for: ping"); - EXPECT_THROW_WITH_MESSAGE(wasm_vm->getFunction("sum", &ping), WasmVmException, + EXPECT_THROW_WITH_MESSAGE(wasm_vm->getFunction("sum", &ping), WasmException, "Bad function signature for: sum"); } From 8b5efdc9b0ae36a0140d29a46b02e7a45bad8485 Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Fri, 6 Mar 2020 01:45:00 +0000 Subject: [PATCH 02/19] Format. Signed-off-by: John Plevyak --- source/extensions/common/wasm/context.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/extensions/common/wasm/context.h b/source/extensions/common/wasm/context.h index b3a03021da627..2be1e19ff7a24 100644 --- a/source/extensions/common/wasm/context.h +++ b/source/extensions/common/wasm/context.h @@ -40,7 +40,7 @@ class Buffer : public proxy_wasm::BufferInterface { public: Buffer() {} - // Add additional wrappped types here. + // Add additional wrapped types here. Buffer* set(absl::string_view data) { data_ = data; return this; From 65bd8aeb373b0776b6be7d3b0da1b45b520f467c Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Fri, 6 Mar 2020 01:55:02 +0000 Subject: [PATCH 03/19] Address comments. Signed-off-by: John Plevyak --- source/extensions/common/wasm/BUILD | 1 - 1 file changed, 1 deletion(-) diff --git a/source/extensions/common/wasm/BUILD b/source/extensions/common/wasm/BUILD index e92297671a583..9c47da7dc85f8 100644 --- a/source/extensions/common/wasm/BUILD +++ b/source/extensions/common/wasm/BUILD @@ -25,7 +25,6 @@ envoy_cc_library( "@proxy_wasm_cpp_sdk//:common_lib", "//source/common/common:assert_lib", "//source/common/stats:stats_lib", - #"//source/extensions/common/wasm/v8:v8_lib", ], ) From b21914eabcda47c3b3864828d23c92ee13c9338a Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Fri, 6 Mar 2020 02:07:05 +0000 Subject: [PATCH 04/19] Address comments. Signed-off-by: John Plevyak --- source/extensions/common/wasm/context.cc | 13 +++++++++---- source/extensions/common/wasm/context.h | 6 +++--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/source/extensions/common/wasm/context.cc b/source/extensions/common/wasm/context.cc index 66c2f1e0a48a7..e0f7233a9f72b 100644 --- a/source/extensions/common/wasm/context.cc +++ b/source/extensions/common/wasm/context.cc @@ -97,26 +97,31 @@ WasmResult Context::getProperty(absl::string_view path, std::string* result) { WasmResult Context::defineMetric(MetricType type, absl::string_view name, uint32_t* metric_id_ptr) { auto stat_name = wasm()->stat_name_set_->add(name); - if (type == MetricType::Counter) { + switch (type) { + case MetricType::Counter: { auto id = wasm_->nextCounterMetricId(); auto c = &wasm()->scope_->counterFromStatName(stat_name); wasm()->counters_.emplace(id, c); *metric_id_ptr = id; return WasmResult::Ok; - } else if (type == MetricType::Gauge) { + } + case MetricType::Gauge: { auto id = wasm()->nextGaugeMetricId(); auto g = &wasm()->scope_->gaugeFromStatName(stat_name, Stats::Gauge::ImportMode::Accumulate); wasm()->gauges_.emplace(id, g); *metric_id_ptr = id; return WasmResult::Ok; - } else if (type == MetricType::Histogram) { + } + case MetricType::Histogram: { auto id = wasm()->nextHistogramMetricId(); auto h = &wasm()->scope_->histogramFromStatName(stat_name, Stats::Histogram::Unit::Unspecified); wasm()->histograms_.emplace(id, h); *metric_id_ptr = id; return WasmResult::Ok; } - return WasmResult::BadArgument; + default: + return WasmResult::BadArgument; + } } WasmResult Context::incrementMetric(uint32_t metric_id, int64_t offset) { diff --git a/source/extensions/common/wasm/context.h b/source/extensions/common/wasm/context.h index 2be1e19ff7a24..49973ab307670 100644 --- a/source/extensions/common/wasm/context.h +++ b/source/extensions/common/wasm/context.h @@ -87,9 +87,9 @@ class Context : public proxy_wasm::ContextBase, void error(absl::string_view message) override; - // - // General Callbacks. - // + /** + * General Callbacks. + */ WasmResult log(uint64_t level, absl::string_view message) override; uint64_t getCurrentTimeNanoseconds() override; From 3204e82d300448e7260c14696757cb311807c895 Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Fri, 6 Mar 2020 02:12:56 +0000 Subject: [PATCH 05/19] Address comments. Signed-off-by: John Plevyak --- source/extensions/common/wasm/context.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/source/extensions/common/wasm/context.cc b/source/extensions/common/wasm/context.cc index e0f7233a9f72b..0ad710480f3f3 100644 --- a/source/extensions/common/wasm/context.cc +++ b/source/extensions/common/wasm/context.cc @@ -88,7 +88,6 @@ WasmResult Context::log(uint64_t level, absl::string_view message) { WasmResult Context::getProperty(absl::string_view path, std::string* result) { if (path.size() == 15 && !memcmp(reinterpret_cast(&*path.begin()), reinterpret_cast("plugin_root_id\0"), 15)) { - std::cerr << "returning " << root_id() << "\n"; *result = std::string(root_id()); return WasmResult::Ok; } From 3a25b41c6fd9deddbf84141818cc90c7310e79cc Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Fri, 6 Mar 2020 02:14:23 +0000 Subject: [PATCH 06/19] Address comments. Signed-off-by: John Plevyak --- source/extensions/common/wasm/context.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/extensions/common/wasm/context.h b/source/extensions/common/wasm/context.h index 49973ab307670..b03111186eb1b 100644 --- a/source/extensions/common/wasm/context.h +++ b/source/extensions/common/wasm/context.h @@ -85,21 +85,26 @@ class Context : public proxy_wasm::ContextBase, Wasm* wasm() const; + // proxy_wasm::ContextBase void error(absl::string_view message) override; /** * General Callbacks. */ + // proxy_wasm::ContextBase WasmResult log(uint64_t level, absl::string_view message) override; uint64_t getCurrentTimeNanoseconds() override; // Buffer + // proxy_wasm::ContextBase const BufferInterface* getBuffer(WasmBufferType type) override; // Properties + // proxy_wasm::ContextBase WasmResult getProperty(absl::string_view path, std::string* result) override; // Metrics + // proxy_wasm::ContextBase WasmResult defineMetric(MetricType type, absl::string_view name, uint32_t* metric_id_ptr) override; WasmResult incrementMetric(uint32_t metric_id, int64_t offset) override; From 7548daf7ed167b4c4d550b8e73a5c9b4f841461c Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Sat, 7 Mar 2020 18:17:23 +0000 Subject: [PATCH 07/19] Format. Signed-off-by: John Plevyak --- .../common/wasm/test_data/test_cpp_null_plugin.cc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/test/extensions/common/wasm/test_data/test_cpp_null_plugin.cc b/test/extensions/common/wasm/test_data/test_cpp_null_plugin.cc index 7abd257296581..d8665f7b28c02 100644 --- a/test/extensions/common/wasm/test_data/test_cpp_null_plugin.cc +++ b/test/extensions/common/wasm/test_data/test_cpp_null_plugin.cc @@ -1,13 +1,15 @@ +// NOLINT(namespace-envoy) #include "include/proxy-wasm/null_plugin.h" namespace proxy_wasm { namespace null_plugin { namespace CommonWasmTestCpp { -NullPluginRegistry *context_registry_; -} // CommonWasmtestCpp +NullPluginRegistry* context_registry_; +} // namespace CommonWasmTestCpp -RegisterNullVmPluginFactory register_common_wasm_test_cpp_plugin("CommonWasmTestCpp", - []() { return std::make_unique(CommonWasmTestCpp::context_registry_); }); +RegisterNullVmPluginFactory register_common_wasm_test_cpp_plugin("CommonWasmTestCpp", []() { + return std::make_unique(CommonWasmTestCpp::context_registry_); +}); -} // namespace null_plugin; +} // namespace null_plugin } // namespace proxy_wasm From 3518e10314042716b9ff10830a7f83588613ff1c Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Sat, 7 Mar 2020 19:59:55 +0000 Subject: [PATCH 08/19] Format. Signed-off-by: John Plevyak --- test/extensions/common/wasm/wasm_test.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/extensions/common/wasm/wasm_test.cc b/test/extensions/common/wasm/wasm_test.cc index c1d69463fd5aa..8b810f1f8de94 100644 --- a/test/extensions/common/wasm/wasm_test.cc +++ b/test/extensions/common/wasm/wasm_test.cc @@ -85,7 +85,7 @@ TEST_P(WasmCommonTest, Logging) { wasm_weak.lock()->configure(root_context, plugin); wasm_handler.reset(); dispatcher->run(Event::Dispatcher::RunType::NonBlock); - // This will SEGV on nullptr if wasm has been deleted. + // This will fault on nullptr if wasm has been deleted. plugin->plugin_configuration_ = "done"; wasm_weak.lock()->configure(root_context, plugin); dispatcher->run(Event::Dispatcher::RunType::NonBlock); From c9bfb2e724c285383491ee85c2d6bbbc6c2f949e Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Mon, 9 Mar 2020 16:24:17 +0000 Subject: [PATCH 09/19] Format. Signed-off-by: John Plevyak --- api/envoy/config/accesslog/v2/wasm.proto | 24 +++++++ api/envoy/config/filter/http/wasm/v2/BUILD | 12 ++++ .../config/filter/http/wasm/v2/wasm.proto | 21 ++++++ api/envoy/config/filter/network/wasm/v2/BUILD | 12 ++++ .../config/filter/network/wasm/v2/wasm.proto | 21 ++++++ api/envoy/config/wasm/v2/BUILD | 12 ++++ api/envoy/config/wasm/v2/wasm.proto | 70 +++++++++++++++++++ .../extensions/access_loggers/wasm/v3/BUILD | 13 ++++ .../access_loggers/wasm/v3/wasm.proto | 27 +++++++ .../extensions/filters/http/wasm/v3/BUILD | 13 ++++ .../filters/http/wasm/v3/wasm.proto | 24 +++++++ .../extensions/filters/network/wasm/v3/BUILD | 13 ++++ .../filters/network/wasm/v3/wasm.proto | 24 +++++++ api/wasm/README.md | 42 +++++++++++ source/extensions/common/wasm/BUILD | 8 +-- source/extensions/common/wasm/context.h | 4 +- source/extensions/common/wasm/wasm.cc | 2 +- source/extensions/common/wasm/wasm.h | 6 +- source/extensions/common/wasm/wasm_vm.cc | 3 +- source/extensions/common/wasm/wasm_vm.h | 3 +- test/extensions/common/wasm/wasm_vm_test.cc | 2 +- 21 files changed, 342 insertions(+), 14 deletions(-) create mode 100644 api/envoy/config/accesslog/v2/wasm.proto create mode 100644 api/envoy/config/filter/http/wasm/v2/BUILD create mode 100644 api/envoy/config/filter/http/wasm/v2/wasm.proto create mode 100644 api/envoy/config/filter/network/wasm/v2/BUILD create mode 100644 api/envoy/config/filter/network/wasm/v2/wasm.proto create mode 100644 api/envoy/config/wasm/v2/BUILD create mode 100644 api/envoy/config/wasm/v2/wasm.proto create mode 100644 api/envoy/extensions/access_loggers/wasm/v3/BUILD create mode 100644 api/envoy/extensions/access_loggers/wasm/v3/wasm.proto create mode 100644 api/envoy/extensions/filters/http/wasm/v3/BUILD create mode 100644 api/envoy/extensions/filters/http/wasm/v3/wasm.proto create mode 100644 api/envoy/extensions/filters/network/wasm/v3/BUILD create mode 100644 api/envoy/extensions/filters/network/wasm/v3/wasm.proto create mode 100644 api/wasm/README.md diff --git a/api/envoy/config/accesslog/v2/wasm.proto b/api/envoy/config/accesslog/v2/wasm.proto new file mode 100644 index 0000000000000..2bf8ce08c0dc3 --- /dev/null +++ b/api/envoy/config/accesslog/v2/wasm.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; + +package envoy.config.accesslog.v2; + +import "envoy/config/wasm/v2/wasm.proto"; + +import "google/protobuf/struct.proto"; + +import "udpa/annotations/migrate.proto"; +import "validate/validate.proto"; + +option java_package = "io.envoyproxy.envoy.config.accesslog.v2"; +option java_outer_classname = "WasmProto"; +option java_multiple_files = true; +option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.access_loggers.wasm.v3"; + +// [#protodoc-title: Wasm access log] + +// Custom configuration for an :ref:`AccessLog ` +// that calls into a WASM VM. Configures the built-in *envoy.wasm_access_log* +// AccessLog. +message WasmAccessLog { + wasm.v2.PluginConfig config = 1; +} diff --git a/api/envoy/config/filter/http/wasm/v2/BUILD b/api/envoy/config/filter/http/wasm/v2/BUILD new file mode 100644 index 0000000000000..7903b3beccedc --- /dev/null +++ b/api/envoy/config/filter/http/wasm/v2/BUILD @@ -0,0 +1,12 @@ +# DO NOT EDIT. This file is generated by tools/proto_sync.py. + +load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") + +licenses(["notice"]) # Apache 2 + +api_proto_package( + deps = [ + "//envoy/config/wasm/v2:pkg", + "@com_github_cncf_udpa//udpa/annotations:pkg", + ], +) diff --git a/api/envoy/config/filter/http/wasm/v2/wasm.proto b/api/envoy/config/filter/http/wasm/v2/wasm.proto new file mode 100644 index 0000000000000..001dda83a1ae0 --- /dev/null +++ b/api/envoy/config/filter/http/wasm/v2/wasm.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; + +package envoy.config.filter.http.wasm.v2; + +import "envoy/config/wasm/v2/wasm.proto"; + +import "udpa/annotations/migrate.proto"; +import "validate/validate.proto"; + +option java_package = "io.envoyproxy.envoy.config.filter.http.wasm.v2"; +option java_outer_classname = "WasmProto"; +option java_multiple_files = true; +option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.filters.http.wasm.v3"; + +// [#protodoc-title: Wasm] +// Wasm :ref:`configuration overview `. + +message Wasm { + // General Plugin configuration. + config.wasm.v2.PluginConfig config = 1; +} diff --git a/api/envoy/config/filter/network/wasm/v2/BUILD b/api/envoy/config/filter/network/wasm/v2/BUILD new file mode 100644 index 0000000000000..7903b3beccedc --- /dev/null +++ b/api/envoy/config/filter/network/wasm/v2/BUILD @@ -0,0 +1,12 @@ +# DO NOT EDIT. This file is generated by tools/proto_sync.py. + +load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") + +licenses(["notice"]) # Apache 2 + +api_proto_package( + deps = [ + "//envoy/config/wasm/v2:pkg", + "@com_github_cncf_udpa//udpa/annotations:pkg", + ], +) diff --git a/api/envoy/config/filter/network/wasm/v2/wasm.proto b/api/envoy/config/filter/network/wasm/v2/wasm.proto new file mode 100644 index 0000000000000..34ce8bc12ec80 --- /dev/null +++ b/api/envoy/config/filter/network/wasm/v2/wasm.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; + +package envoy.config.filter.network.wasm.v2; + +import "envoy/config/wasm/v2/wasm.proto"; + +import "udpa/annotations/migrate.proto"; +import "validate/validate.proto"; + +option java_package = "io.envoyproxy.envoy.config.filter.network.wasm.v2"; +option java_outer_classname = "WasmProto"; +option java_multiple_files = true; +option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.filters.network.wasm.v3"; + +// [#protodoc-title: Wasm] +// Wasm :ref:`configuration overview `. + +message Wasm { + // General Plugin configuration. + config.wasm.v2.PluginConfig config = 1; +} diff --git a/api/envoy/config/wasm/v2/BUILD b/api/envoy/config/wasm/v2/BUILD new file mode 100644 index 0000000000000..69168ad0cf246 --- /dev/null +++ b/api/envoy/config/wasm/v2/BUILD @@ -0,0 +1,12 @@ +# DO NOT EDIT. This file is generated by tools/proto_sync.py. + +load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") + +licenses(["notice"]) # Apache 2 + +api_proto_package( + deps = [ + "//envoy/api/v2/core:pkg", + "@com_github_cncf_udpa//udpa/annotations:pkg", + ], +) diff --git a/api/envoy/config/wasm/v2/wasm.proto b/api/envoy/config/wasm/v2/wasm.proto new file mode 100644 index 0000000000000..dc62325286d70 --- /dev/null +++ b/api/envoy/config/wasm/v2/wasm.proto @@ -0,0 +1,70 @@ +syntax = "proto3"; + +package envoy.config.wasm.v2; + +import "envoy/api/v2/core/base.proto"; + +import "udpa/annotations/migrate.proto"; +import "validate/validate.proto"; + +option java_package = "io.envoyproxy.envoy.config.wasm.v2"; +option java_outer_classname = "WasmProto"; +option java_multiple_files = true; +option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.wasm.v3"; + +// [#protodoc-title: Wasm service] + +// Configuration for a Wasm VM. +// [#next-free-field: 6] +message VmConfig { + // An ID which will be used along with a hash of the wasm code (or null_vm_id) to determine which + // VM will be used for the plugin. All plugins which use the same vm_id and code will use the same + // VM. May be left blank. + string vm_id = 1; + + // The Wasm runtime type (see source/extensions/commmon/wasm/well_known_names.h). + string runtime = 2; + + // The Wasm code that Envoy will execute. + api.v2.core.AsyncDataSource code = 3; + + // The Wasm configuration string used on initialization of a new VM (proxy_onStart). + string configuration = 4; + + // Allow the wasm file to include pre-compiled code on VMs which support it. + bool allow_precompiled = 5; +} + +// Base Configuration for Wasm Plugins, e.g. filters and services. +message PluginConfig { + // A unique name for a filters/services in a VM for use in identifiying the filter/service if + // multiple filters/services are handled by the same vm_id and root_id and for logging/debugging. + string name = 1; + + // A unique ID for a set of filters/services in a VM which will share a RootContext and Contexts + // if applicable (e.g. an Wasm HttpFilter and an Wasm AccessLog). If left blank, all + // filters/services with a blank root_id with the same vm_id will share Context(s). + string root_id = 2; + + // Configuration for finding or starting VM. + VmConfig vm_config = 3; + + // Filter/service configuration string e.g. a serialized protobuf which will be the + // argument to the proxy_onConfigure() call. + string configuration = 4; +} + +// WasmService is configured as a built-in *envoy.wasm_service* :ref:`ServiceConfig +// `. This opaque configuration will be used to +// create a Wasm Service. +message WasmService { + // General plugin configuration. + PluginConfig config = 1; + + // If true, create a single VM rather than creating one VM per silo. Such a singleton can + // not be used with filters. + bool singleton = 2; + + // If set add 'stat_prefix' as a prefix to all stats. + string stat_prefix = 3; +} diff --git a/api/envoy/extensions/access_loggers/wasm/v3/BUILD b/api/envoy/extensions/access_loggers/wasm/v3/BUILD new file mode 100644 index 0000000000000..c25dbab0011cf --- /dev/null +++ b/api/envoy/extensions/access_loggers/wasm/v3/BUILD @@ -0,0 +1,13 @@ +# DO NOT EDIT. This file is generated by tools/proto_sync.py. + +load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") + +licenses(["notice"]) # Apache 2 + +api_proto_package( + deps = [ + "//envoy/config/accesslog/v2:pkg", + "//envoy/extensions/wasm/v3:pkg", + "@com_github_cncf_udpa//udpa/annotations:pkg", + ], +) diff --git a/api/envoy/extensions/access_loggers/wasm/v3/wasm.proto b/api/envoy/extensions/access_loggers/wasm/v3/wasm.proto new file mode 100644 index 0000000000000..de52c05743368 --- /dev/null +++ b/api/envoy/extensions/access_loggers/wasm/v3/wasm.proto @@ -0,0 +1,27 @@ +syntax = "proto3"; + +package envoy.extensions.access_loggers.wasm.v3; + +import "envoy/extensions/wasm/v3/wasm.proto"; + +import "google/protobuf/struct.proto"; + +import "udpa/annotations/versioning.proto"; + +import "validate/validate.proto"; + +option java_package = "io.envoyproxy.envoy.extensions.access_loggers.wasm.v3"; +option java_outer_classname = "WasmProto"; +option java_multiple_files = true; + +// [#protodoc-title: Wasm access log] + +// Custom configuration for an :ref:`AccessLog ` +// that calls into a WASM VM. Configures the built-in *envoy.wasm_access_log* +// AccessLog. +message WasmAccessLog { + option (udpa.annotations.versioning).previous_message_type = + "envoy.config.accesslog.v2.WasmAccessLog"; + + envoy.extensions.wasm.v3.PluginConfig config = 1; +} diff --git a/api/envoy/extensions/filters/http/wasm/v3/BUILD b/api/envoy/extensions/filters/http/wasm/v3/BUILD new file mode 100644 index 0000000000000..6d6a05070f896 --- /dev/null +++ b/api/envoy/extensions/filters/http/wasm/v3/BUILD @@ -0,0 +1,13 @@ +# DO NOT EDIT. This file is generated by tools/proto_sync.py. + +load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") + +licenses(["notice"]) # Apache 2 + +api_proto_package( + deps = [ + "//envoy/config/filter/http/wasm/v2:pkg", + "//envoy/extensions/wasm/v3:pkg", + "@com_github_cncf_udpa//udpa/annotations:pkg", + ], +) diff --git a/api/envoy/extensions/filters/http/wasm/v3/wasm.proto b/api/envoy/extensions/filters/http/wasm/v3/wasm.proto new file mode 100644 index 0000000000000..ff23cb3c31a6c --- /dev/null +++ b/api/envoy/extensions/filters/http/wasm/v3/wasm.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; + +package envoy.extensions.filters.http.wasm.v3; + +import "envoy/extensions/wasm/v3/wasm.proto"; + +import "udpa/annotations/versioning.proto"; + +import "validate/validate.proto"; + +option java_package = "io.envoyproxy.envoy.extensions.filters.http.wasm.v3"; +option java_outer_classname = "WasmProto"; +option java_multiple_files = true; + +// [#protodoc-title: Wasm] +// Wasm :ref:`configuration overview `. + +message Wasm { + option (udpa.annotations.versioning).previous_message_type = + "envoy.config.filter.http.wasm.v2.Wasm"; + + // General Plugin configuration. + envoy.extensions.wasm.v3.PluginConfig config = 1; +} diff --git a/api/envoy/extensions/filters/network/wasm/v3/BUILD b/api/envoy/extensions/filters/network/wasm/v3/BUILD new file mode 100644 index 0000000000000..1c9ea86886615 --- /dev/null +++ b/api/envoy/extensions/filters/network/wasm/v3/BUILD @@ -0,0 +1,13 @@ +# DO NOT EDIT. This file is generated by tools/proto_sync.py. + +load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") + +licenses(["notice"]) # Apache 2 + +api_proto_package( + deps = [ + "//envoy/config/filter/network/wasm/v2:pkg", + "//envoy/extensions/wasm/v3:pkg", + "@com_github_cncf_udpa//udpa/annotations:pkg", + ], +) diff --git a/api/envoy/extensions/filters/network/wasm/v3/wasm.proto b/api/envoy/extensions/filters/network/wasm/v3/wasm.proto new file mode 100644 index 0000000000000..06f9923ea5a6d --- /dev/null +++ b/api/envoy/extensions/filters/network/wasm/v3/wasm.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; + +package envoy.extensions.filters.network.wasm.v3; + +import "envoy/extensions/wasm/v3/wasm.proto"; + +import "udpa/annotations/versioning.proto"; + +import "validate/validate.proto"; + +option java_package = "io.envoyproxy.envoy.extensions.filters.network.wasm.v3"; +option java_outer_classname = "WasmProto"; +option java_multiple_files = true; + +// [#protodoc-title: Wasm] +// Wasm :ref:`configuration overview `. + +message Wasm { + option (udpa.annotations.versioning).previous_message_type = + "envoy.config.filter.network.wasm.v2.Wasm"; + + // General Plugin configuration. + envoy.extensions.wasm.v3.PluginConfig config = 1; +} diff --git a/api/wasm/README.md b/api/wasm/README.md new file mode 100644 index 0000000000000..acaa51d744345 --- /dev/null +++ b/api/wasm/README.md @@ -0,0 +1,42 @@ +Envoy hooks: + +- [ ] core: logging +- [ ] core: stats +- [ ] core: http callouts +- [ ] core: gRPC callouts +- [ ] http filters: accept/reject request(?) +- [ ] http filters: get/set header +- [ ] http filters: get all headers +- [ ] http filters: get/set body +- [ ] http filters: get/set metadata +- [ ] http filters: access log +- [ ] network filters: accept/reject connection +- [ ] network filters: mutate payload +- [ ] network filters: get/set metadata +- [ ] network filters: access log +- [ ] listener filters: accept/reject connection +- [ ] listener filters: peak at payload +- [ ] listener filters: get/set metadata +- [ ] listener filters: consume payload +- [ ] transport sockets + +Features: + +- [ ] shared key/value store (per filter by default) + +Supported programming languages: + +- [ ] C and C++ (using [Emscripten]) +- [ ] Go (using [TinyGo]) +- [ ] Rust + +Future additions: + +- [ ] Go (using `syscall/js`) +- [ ] Java (using [TeaVM]) +- [ ] TypeScript (using [AssemblyScript]) + +[AssemblyScript]: https://assemblyscript.org/ +[Emscripten]: https://kripken.github.io/emscripten-site/ +[TeaVM]: http://teavm.org/ +[TinyGo]: https://tinygo.readthedocs.io/en/latest/ diff --git a/source/extensions/common/wasm/BUILD b/source/extensions/common/wasm/BUILD index 9c47da7dc85f8..77a30a4955107 100644 --- a/source/extensions/common/wasm/BUILD +++ b/source/extensions/common/wasm/BUILD @@ -21,10 +21,10 @@ envoy_cc_library( srcs = ["wasm_vm.cc"], deps = [ ":wasm_hdr", - "@proxy_wasm_cpp_host//:lib", - "@proxy_wasm_cpp_sdk//:common_lib", "//source/common/common:assert_lib", "//source/common/stats:stats_lib", + "@proxy_wasm_cpp_host//:lib", + "@proxy_wasm_cpp_sdk//:common_lib", ], ) @@ -37,13 +37,13 @@ envoy_cc_library( "wasm_vm.h", ], deps = [ - "@proxy_wasm_cpp_host//:include", - "@proxy_wasm_cpp_sdk//:common_lib", ":well_known_names", "//include/envoy/upstream:cluster_manager_interface", "//source/common/config:datasource_lib", "//source/common/stats:stats_lib", "@envoy_api//envoy/extensions/wasm/v3:pkg_cc_proto", + "@proxy_wasm_cpp_host//:include", + "@proxy_wasm_cpp_sdk//:common_lib", ], ) diff --git a/source/extensions/common/wasm/context.h b/source/extensions/common/wasm/context.h index b03111186eb1b..d9c896b93a1b5 100644 --- a/source/extensions/common/wasm/context.h +++ b/source/extensions/common/wasm/context.h @@ -4,8 +4,6 @@ #include #include -#include "include/proxy-wasm/context.h" - #include "envoy/access_log/access_log.h" #include "envoy/buffer/buffer.h" #include "envoy/http/filter.h" @@ -14,6 +12,8 @@ #include "common/common/assert.h" #include "common/common/logger.h" +#include "include/proxy-wasm/context.h" + namespace Envoy { namespace Extensions { namespace Common { diff --git a/source/extensions/common/wasm/wasm.cc b/source/extensions/common/wasm/wasm.cc index f771eda7b9878..c7ac8a77f62ea 100644 --- a/source/extensions/common/wasm/wasm.cc +++ b/source/extensions/common/wasm/wasm.cc @@ -22,8 +22,8 @@ #include "common/common/logger.h" #include "extensions/common/wasm/wasm_state.h" -#include "extensions/common/wasm/well_known_names.h" #include "extensions/common/wasm/wasm_vm.h" +#include "extensions/common/wasm/well_known_names.h" #include "absl/base/casts.h" #include "absl/container/flat_hash_map.h" diff --git a/source/extensions/common/wasm/wasm.h b/source/extensions/common/wasm/wasm.h index 6151d9ae9200c..5a3b054aebb3a 100644 --- a/source/extensions/common/wasm/wasm.h +++ b/source/extensions/common/wasm/wasm.h @@ -4,9 +4,6 @@ #include #include -#include "include/proxy-wasm/exports.h" -#include "include/proxy-wasm/wasm.h" - #include "envoy/common/exception.h" #include "envoy/extensions/wasm/v3/wasm.pb.validate.h" #include "envoy/stats/scope.h" @@ -23,6 +20,9 @@ #include "extensions/common/wasm/wasm_vm.h" #include "extensions/common/wasm/well_known_names.h" +#include "include/proxy-wasm/exports.h" +#include "include/proxy-wasm/wasm.h" + namespace Envoy { // TODO: move to source/common/stats/symbol_table_impl.h when upstreaming. diff --git a/source/extensions/common/wasm/wasm_vm.cc b/source/extensions/common/wasm/wasm_vm.cc index 2470744e4adec..135486b5b783f 100644 --- a/source/extensions/common/wasm/wasm_vm.cc +++ b/source/extensions/common/wasm/wasm_vm.cc @@ -2,9 +2,10 @@ #include +#include "extensions/common/wasm/well_known_names.h" + #include "include/proxy-wasm/null.h" #include "include/proxy-wasm/v8.h" -#include "extensions/common/wasm/well_known_names.h" namespace Envoy { namespace Extensions { diff --git a/source/extensions/common/wasm/wasm_vm.h b/source/extensions/common/wasm/wasm_vm.h index 3ed09c221e16f..c95bef4aaeeb6 100644 --- a/source/extensions/common/wasm/wasm_vm.h +++ b/source/extensions/common/wasm/wasm_vm.h @@ -2,8 +2,6 @@ #include -#include "absl/strings/str_cat.h" - #include "envoy/common/exception.h" #include "envoy/stats/scope.h" #include "envoy/stats/stats.h" @@ -11,6 +9,7 @@ #include "common/common/logger.h" +#include "absl/strings/str_cat.h" #include "include/proxy-wasm/wasm_vm.h" #include "include/proxy-wasm/word.h" diff --git a/test/extensions/common/wasm/wasm_vm_test.cc b/test/extensions/common/wasm/wasm_vm_test.cc index 49e71b70d052a..7630fe158b4b8 100644 --- a/test/extensions/common/wasm/wasm_vm_test.cc +++ b/test/extensions/common/wasm/wasm_vm_test.cc @@ -2,7 +2,6 @@ #include "common/stats/isolated_store_impl.h" -#include "include/proxy-wasm/null_vm_plugin.h" #include "extensions/common/wasm/wasm_vm.h" #include "test/test_common/environment.h" @@ -10,6 +9,7 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" +#include "include/proxy-wasm/null_vm_plugin.h" using proxy_wasm::WasmCallVoid; using proxy_wasm::WasmCallWord; From b6f1ce6db7c6823e5e0c11e71038f1a5345c59cc Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Mon, 9 Mar 2020 16:57:26 +0000 Subject: [PATCH 10/19] Fix formatting. Signed-off-by: John Plevyak --- api/envoy/config/accesslog/v2/wasm.proto | 24 ------- api/envoy/config/filter/http/wasm/v2/BUILD | 12 ---- .../config/filter/http/wasm/v2/wasm.proto | 21 ------ api/envoy/config/filter/network/wasm/v2/BUILD | 12 ---- .../config/filter/network/wasm/v2/wasm.proto | 21 ------ api/envoy/config/wasm/v2/BUILD | 12 ---- api/envoy/config/wasm/v2/wasm.proto | 70 ------------------- .../extensions/access_loggers/wasm/v3/BUILD | 13 ---- .../access_loggers/wasm/v3/wasm.proto | 27 ------- .../extensions/filters/http/wasm/v3/BUILD | 13 ---- .../filters/http/wasm/v3/wasm.proto | 24 ------- .../extensions/filters/network/wasm/v3/BUILD | 13 ---- .../filters/network/wasm/v3/wasm.proto | 24 ------- api/wasm/README.md | 42 ----------- bazel/repositories.bzl | 9 ++- source/extensions/common/wasm/context.h | 1 + 16 files changed, 9 insertions(+), 329 deletions(-) delete mode 100644 api/envoy/config/accesslog/v2/wasm.proto delete mode 100644 api/envoy/config/filter/http/wasm/v2/BUILD delete mode 100644 api/envoy/config/filter/http/wasm/v2/wasm.proto delete mode 100644 api/envoy/config/filter/network/wasm/v2/BUILD delete mode 100644 api/envoy/config/filter/network/wasm/v2/wasm.proto delete mode 100644 api/envoy/config/wasm/v2/BUILD delete mode 100644 api/envoy/config/wasm/v2/wasm.proto delete mode 100644 api/envoy/extensions/access_loggers/wasm/v3/BUILD delete mode 100644 api/envoy/extensions/access_loggers/wasm/v3/wasm.proto delete mode 100644 api/envoy/extensions/filters/http/wasm/v3/BUILD delete mode 100644 api/envoy/extensions/filters/http/wasm/v3/wasm.proto delete mode 100644 api/envoy/extensions/filters/network/wasm/v3/BUILD delete mode 100644 api/envoy/extensions/filters/network/wasm/v3/wasm.proto delete mode 100644 api/wasm/README.md diff --git a/api/envoy/config/accesslog/v2/wasm.proto b/api/envoy/config/accesslog/v2/wasm.proto deleted file mode 100644 index 2bf8ce08c0dc3..0000000000000 --- a/api/envoy/config/accesslog/v2/wasm.proto +++ /dev/null @@ -1,24 +0,0 @@ -syntax = "proto3"; - -package envoy.config.accesslog.v2; - -import "envoy/config/wasm/v2/wasm.proto"; - -import "google/protobuf/struct.proto"; - -import "udpa/annotations/migrate.proto"; -import "validate/validate.proto"; - -option java_package = "io.envoyproxy.envoy.config.accesslog.v2"; -option java_outer_classname = "WasmProto"; -option java_multiple_files = true; -option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.access_loggers.wasm.v3"; - -// [#protodoc-title: Wasm access log] - -// Custom configuration for an :ref:`AccessLog ` -// that calls into a WASM VM. Configures the built-in *envoy.wasm_access_log* -// AccessLog. -message WasmAccessLog { - wasm.v2.PluginConfig config = 1; -} diff --git a/api/envoy/config/filter/http/wasm/v2/BUILD b/api/envoy/config/filter/http/wasm/v2/BUILD deleted file mode 100644 index 7903b3beccedc..0000000000000 --- a/api/envoy/config/filter/http/wasm/v2/BUILD +++ /dev/null @@ -1,12 +0,0 @@ -# DO NOT EDIT. This file is generated by tools/proto_sync.py. - -load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") - -licenses(["notice"]) # Apache 2 - -api_proto_package( - deps = [ - "//envoy/config/wasm/v2:pkg", - "@com_github_cncf_udpa//udpa/annotations:pkg", - ], -) diff --git a/api/envoy/config/filter/http/wasm/v2/wasm.proto b/api/envoy/config/filter/http/wasm/v2/wasm.proto deleted file mode 100644 index 001dda83a1ae0..0000000000000 --- a/api/envoy/config/filter/http/wasm/v2/wasm.proto +++ /dev/null @@ -1,21 +0,0 @@ -syntax = "proto3"; - -package envoy.config.filter.http.wasm.v2; - -import "envoy/config/wasm/v2/wasm.proto"; - -import "udpa/annotations/migrate.proto"; -import "validate/validate.proto"; - -option java_package = "io.envoyproxy.envoy.config.filter.http.wasm.v2"; -option java_outer_classname = "WasmProto"; -option java_multiple_files = true; -option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.filters.http.wasm.v3"; - -// [#protodoc-title: Wasm] -// Wasm :ref:`configuration overview `. - -message Wasm { - // General Plugin configuration. - config.wasm.v2.PluginConfig config = 1; -} diff --git a/api/envoy/config/filter/network/wasm/v2/BUILD b/api/envoy/config/filter/network/wasm/v2/BUILD deleted file mode 100644 index 7903b3beccedc..0000000000000 --- a/api/envoy/config/filter/network/wasm/v2/BUILD +++ /dev/null @@ -1,12 +0,0 @@ -# DO NOT EDIT. This file is generated by tools/proto_sync.py. - -load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") - -licenses(["notice"]) # Apache 2 - -api_proto_package( - deps = [ - "//envoy/config/wasm/v2:pkg", - "@com_github_cncf_udpa//udpa/annotations:pkg", - ], -) diff --git a/api/envoy/config/filter/network/wasm/v2/wasm.proto b/api/envoy/config/filter/network/wasm/v2/wasm.proto deleted file mode 100644 index 34ce8bc12ec80..0000000000000 --- a/api/envoy/config/filter/network/wasm/v2/wasm.proto +++ /dev/null @@ -1,21 +0,0 @@ -syntax = "proto3"; - -package envoy.config.filter.network.wasm.v2; - -import "envoy/config/wasm/v2/wasm.proto"; - -import "udpa/annotations/migrate.proto"; -import "validate/validate.proto"; - -option java_package = "io.envoyproxy.envoy.config.filter.network.wasm.v2"; -option java_outer_classname = "WasmProto"; -option java_multiple_files = true; -option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.filters.network.wasm.v3"; - -// [#protodoc-title: Wasm] -// Wasm :ref:`configuration overview `. - -message Wasm { - // General Plugin configuration. - config.wasm.v2.PluginConfig config = 1; -} diff --git a/api/envoy/config/wasm/v2/BUILD b/api/envoy/config/wasm/v2/BUILD deleted file mode 100644 index 69168ad0cf246..0000000000000 --- a/api/envoy/config/wasm/v2/BUILD +++ /dev/null @@ -1,12 +0,0 @@ -# DO NOT EDIT. This file is generated by tools/proto_sync.py. - -load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") - -licenses(["notice"]) # Apache 2 - -api_proto_package( - deps = [ - "//envoy/api/v2/core:pkg", - "@com_github_cncf_udpa//udpa/annotations:pkg", - ], -) diff --git a/api/envoy/config/wasm/v2/wasm.proto b/api/envoy/config/wasm/v2/wasm.proto deleted file mode 100644 index dc62325286d70..0000000000000 --- a/api/envoy/config/wasm/v2/wasm.proto +++ /dev/null @@ -1,70 +0,0 @@ -syntax = "proto3"; - -package envoy.config.wasm.v2; - -import "envoy/api/v2/core/base.proto"; - -import "udpa/annotations/migrate.proto"; -import "validate/validate.proto"; - -option java_package = "io.envoyproxy.envoy.config.wasm.v2"; -option java_outer_classname = "WasmProto"; -option java_multiple_files = true; -option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.wasm.v3"; - -// [#protodoc-title: Wasm service] - -// Configuration for a Wasm VM. -// [#next-free-field: 6] -message VmConfig { - // An ID which will be used along with a hash of the wasm code (or null_vm_id) to determine which - // VM will be used for the plugin. All plugins which use the same vm_id and code will use the same - // VM. May be left blank. - string vm_id = 1; - - // The Wasm runtime type (see source/extensions/commmon/wasm/well_known_names.h). - string runtime = 2; - - // The Wasm code that Envoy will execute. - api.v2.core.AsyncDataSource code = 3; - - // The Wasm configuration string used on initialization of a new VM (proxy_onStart). - string configuration = 4; - - // Allow the wasm file to include pre-compiled code on VMs which support it. - bool allow_precompiled = 5; -} - -// Base Configuration for Wasm Plugins, e.g. filters and services. -message PluginConfig { - // A unique name for a filters/services in a VM for use in identifiying the filter/service if - // multiple filters/services are handled by the same vm_id and root_id and for logging/debugging. - string name = 1; - - // A unique ID for a set of filters/services in a VM which will share a RootContext and Contexts - // if applicable (e.g. an Wasm HttpFilter and an Wasm AccessLog). If left blank, all - // filters/services with a blank root_id with the same vm_id will share Context(s). - string root_id = 2; - - // Configuration for finding or starting VM. - VmConfig vm_config = 3; - - // Filter/service configuration string e.g. a serialized protobuf which will be the - // argument to the proxy_onConfigure() call. - string configuration = 4; -} - -// WasmService is configured as a built-in *envoy.wasm_service* :ref:`ServiceConfig -// `. This opaque configuration will be used to -// create a Wasm Service. -message WasmService { - // General plugin configuration. - PluginConfig config = 1; - - // If true, create a single VM rather than creating one VM per silo. Such a singleton can - // not be used with filters. - bool singleton = 2; - - // If set add 'stat_prefix' as a prefix to all stats. - string stat_prefix = 3; -} diff --git a/api/envoy/extensions/access_loggers/wasm/v3/BUILD b/api/envoy/extensions/access_loggers/wasm/v3/BUILD deleted file mode 100644 index c25dbab0011cf..0000000000000 --- a/api/envoy/extensions/access_loggers/wasm/v3/BUILD +++ /dev/null @@ -1,13 +0,0 @@ -# DO NOT EDIT. This file is generated by tools/proto_sync.py. - -load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") - -licenses(["notice"]) # Apache 2 - -api_proto_package( - deps = [ - "//envoy/config/accesslog/v2:pkg", - "//envoy/extensions/wasm/v3:pkg", - "@com_github_cncf_udpa//udpa/annotations:pkg", - ], -) diff --git a/api/envoy/extensions/access_loggers/wasm/v3/wasm.proto b/api/envoy/extensions/access_loggers/wasm/v3/wasm.proto deleted file mode 100644 index de52c05743368..0000000000000 --- a/api/envoy/extensions/access_loggers/wasm/v3/wasm.proto +++ /dev/null @@ -1,27 +0,0 @@ -syntax = "proto3"; - -package envoy.extensions.access_loggers.wasm.v3; - -import "envoy/extensions/wasm/v3/wasm.proto"; - -import "google/protobuf/struct.proto"; - -import "udpa/annotations/versioning.proto"; - -import "validate/validate.proto"; - -option java_package = "io.envoyproxy.envoy.extensions.access_loggers.wasm.v3"; -option java_outer_classname = "WasmProto"; -option java_multiple_files = true; - -// [#protodoc-title: Wasm access log] - -// Custom configuration for an :ref:`AccessLog ` -// that calls into a WASM VM. Configures the built-in *envoy.wasm_access_log* -// AccessLog. -message WasmAccessLog { - option (udpa.annotations.versioning).previous_message_type = - "envoy.config.accesslog.v2.WasmAccessLog"; - - envoy.extensions.wasm.v3.PluginConfig config = 1; -} diff --git a/api/envoy/extensions/filters/http/wasm/v3/BUILD b/api/envoy/extensions/filters/http/wasm/v3/BUILD deleted file mode 100644 index 6d6a05070f896..0000000000000 --- a/api/envoy/extensions/filters/http/wasm/v3/BUILD +++ /dev/null @@ -1,13 +0,0 @@ -# DO NOT EDIT. This file is generated by tools/proto_sync.py. - -load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") - -licenses(["notice"]) # Apache 2 - -api_proto_package( - deps = [ - "//envoy/config/filter/http/wasm/v2:pkg", - "//envoy/extensions/wasm/v3:pkg", - "@com_github_cncf_udpa//udpa/annotations:pkg", - ], -) diff --git a/api/envoy/extensions/filters/http/wasm/v3/wasm.proto b/api/envoy/extensions/filters/http/wasm/v3/wasm.proto deleted file mode 100644 index ff23cb3c31a6c..0000000000000 --- a/api/envoy/extensions/filters/http/wasm/v3/wasm.proto +++ /dev/null @@ -1,24 +0,0 @@ -syntax = "proto3"; - -package envoy.extensions.filters.http.wasm.v3; - -import "envoy/extensions/wasm/v3/wasm.proto"; - -import "udpa/annotations/versioning.proto"; - -import "validate/validate.proto"; - -option java_package = "io.envoyproxy.envoy.extensions.filters.http.wasm.v3"; -option java_outer_classname = "WasmProto"; -option java_multiple_files = true; - -// [#protodoc-title: Wasm] -// Wasm :ref:`configuration overview `. - -message Wasm { - option (udpa.annotations.versioning).previous_message_type = - "envoy.config.filter.http.wasm.v2.Wasm"; - - // General Plugin configuration. - envoy.extensions.wasm.v3.PluginConfig config = 1; -} diff --git a/api/envoy/extensions/filters/network/wasm/v3/BUILD b/api/envoy/extensions/filters/network/wasm/v3/BUILD deleted file mode 100644 index 1c9ea86886615..0000000000000 --- a/api/envoy/extensions/filters/network/wasm/v3/BUILD +++ /dev/null @@ -1,13 +0,0 @@ -# DO NOT EDIT. This file is generated by tools/proto_sync.py. - -load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") - -licenses(["notice"]) # Apache 2 - -api_proto_package( - deps = [ - "//envoy/config/filter/network/wasm/v2:pkg", - "//envoy/extensions/wasm/v3:pkg", - "@com_github_cncf_udpa//udpa/annotations:pkg", - ], -) diff --git a/api/envoy/extensions/filters/network/wasm/v3/wasm.proto b/api/envoy/extensions/filters/network/wasm/v3/wasm.proto deleted file mode 100644 index 06f9923ea5a6d..0000000000000 --- a/api/envoy/extensions/filters/network/wasm/v3/wasm.proto +++ /dev/null @@ -1,24 +0,0 @@ -syntax = "proto3"; - -package envoy.extensions.filters.network.wasm.v3; - -import "envoy/extensions/wasm/v3/wasm.proto"; - -import "udpa/annotations/versioning.proto"; - -import "validate/validate.proto"; - -option java_package = "io.envoyproxy.envoy.extensions.filters.network.wasm.v3"; -option java_outer_classname = "WasmProto"; -option java_multiple_files = true; - -// [#protodoc-title: Wasm] -// Wasm :ref:`configuration overview `. - -message Wasm { - option (udpa.annotations.versioning).previous_message_type = - "envoy.config.filter.network.wasm.v2.Wasm"; - - // General Plugin configuration. - envoy.extensions.wasm.v3.PluginConfig config = 1; -} diff --git a/api/wasm/README.md b/api/wasm/README.md deleted file mode 100644 index acaa51d744345..0000000000000 --- a/api/wasm/README.md +++ /dev/null @@ -1,42 +0,0 @@ -Envoy hooks: - -- [ ] core: logging -- [ ] core: stats -- [ ] core: http callouts -- [ ] core: gRPC callouts -- [ ] http filters: accept/reject request(?) -- [ ] http filters: get/set header -- [ ] http filters: get all headers -- [ ] http filters: get/set body -- [ ] http filters: get/set metadata -- [ ] http filters: access log -- [ ] network filters: accept/reject connection -- [ ] network filters: mutate payload -- [ ] network filters: get/set metadata -- [ ] network filters: access log -- [ ] listener filters: accept/reject connection -- [ ] listener filters: peak at payload -- [ ] listener filters: get/set metadata -- [ ] listener filters: consume payload -- [ ] transport sockets - -Features: - -- [ ] shared key/value store (per filter by default) - -Supported programming languages: - -- [ ] C and C++ (using [Emscripten]) -- [ ] Go (using [TinyGo]) -- [ ] Rust - -Future additions: - -- [ ] Go (using `syscall/js`) -- [ ] Java (using [TeaVM]) -- [ ] TypeScript (using [AssemblyScript]) - -[AssemblyScript]: https://assemblyscript.org/ -[Emscripten]: https://kripken.github.io/emscripten-site/ -[TeaVM]: http://teavm.org/ -[TinyGo]: https://tinygo.readthedocs.io/en/latest/ diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl index 32cbe4a426021..ba172c247fba1 100644 --- a/bazel/repositories.bzl +++ b/bazel/repositories.bzl @@ -743,11 +743,18 @@ def _com_github_gperftools_gperftools(): actual = "@envoy//bazel/foreign_cc:gperftools", ) +#def _proxy_wasm_cpp_sdk(): +# _repository_impl( +# name = "proxy_wasm_cpp_host", +# ) + def _proxy_wasm_cpp_sdk(): - _repository_impl( + native.local_repository( name = "proxy_wasm_cpp_host", + path = "/home/jplev_google_com/src/proxy-wasm-cpp-host", ) + def _proxy_wasm_cpp_host(): _repository_impl( name = "proxy_wasm_cpp_sdk", diff --git a/source/extensions/common/wasm/context.h b/source/extensions/common/wasm/context.h index d9c896b93a1b5..22f06df1fecff 100644 --- a/source/extensions/common/wasm/context.h +++ b/source/extensions/common/wasm/context.h @@ -13,6 +13,7 @@ #include "common/common/logger.h" #include "include/proxy-wasm/context.h" +#include "include/proxy-wasm/wasm.h" namespace Envoy { namespace Extensions { From 7832462d3de1d917e6c48c5a1b3bb993e4e8a07c Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Mon, 9 Mar 2020 16:58:14 +0000 Subject: [PATCH 11/19] Remove local repo reference. Signed-off-by: John Plevyak --- bazel/repositories.bzl | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl index ba172c247fba1..32cbe4a426021 100644 --- a/bazel/repositories.bzl +++ b/bazel/repositories.bzl @@ -743,18 +743,11 @@ def _com_github_gperftools_gperftools(): actual = "@envoy//bazel/foreign_cc:gperftools", ) -#def _proxy_wasm_cpp_sdk(): -# _repository_impl( -# name = "proxy_wasm_cpp_host", -# ) - def _proxy_wasm_cpp_sdk(): - native.local_repository( + _repository_impl( name = "proxy_wasm_cpp_host", - path = "/home/jplev_google_com/src/proxy-wasm-cpp-host", ) - def _proxy_wasm_cpp_host(): _repository_impl( name = "proxy_wasm_cpp_sdk", From 489f8f84794038130ff649739122454abb26df47 Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Mon, 9 Mar 2020 17:07:35 +0000 Subject: [PATCH 12/19] Remove WasmState which is not needed in this PR. Signed-off-by: John Plevyak --- source/extensions/common/wasm/BUILD | 11 ------ source/extensions/common/wasm/context.cc | 1 - source/extensions/common/wasm/wasm.cc | 1 - source/extensions/common/wasm/wasm_state.cc | 30 ----------------- source/extensions/common/wasm/wasm_state.h | 37 --------------------- 5 files changed, 80 deletions(-) delete mode 100644 source/extensions/common/wasm/wasm_state.cc delete mode 100644 source/extensions/common/wasm/wasm_state.h diff --git a/source/extensions/common/wasm/BUILD b/source/extensions/common/wasm/BUILD index 77a30a4955107..2a0b7a245bfe6 100644 --- a/source/extensions/common/wasm/BUILD +++ b/source/extensions/common/wasm/BUILD @@ -47,16 +47,6 @@ envoy_cc_library( ], ) -envoy_cc_library( - name = "wasm_interoperation_lib", - srcs = ["wasm_state.cc"], - hdrs = ["wasm_state.h"], - deps = [ - "//include/envoy/stream_info:filter_state_interface", - "//source/common/protobuf", - ], -) - envoy_cc_library( name = "wasm_lib", srcs = [ @@ -65,7 +55,6 @@ envoy_cc_library( ], deps = [ ":wasm_hdr", - ":wasm_interoperation_lib", ":wasm_vm_lib", "//external:abseil_base", "//external:abseil_node_hash_map", diff --git a/source/extensions/common/wasm/context.cc b/source/extensions/common/wasm/context.cc index 0ad710480f3f3..e377bcc580aa4 100644 --- a/source/extensions/common/wasm/context.cc +++ b/source/extensions/common/wasm/context.cc @@ -18,7 +18,6 @@ #include "common/common/logger.h" #include "extensions/common/wasm/wasm.h" -#include "extensions/common/wasm/wasm_state.h" #include "extensions/common/wasm/well_known_names.h" #include "absl/base/casts.h" diff --git a/source/extensions/common/wasm/wasm.cc b/source/extensions/common/wasm/wasm.cc index c7ac8a77f62ea..20d540196af29 100644 --- a/source/extensions/common/wasm/wasm.cc +++ b/source/extensions/common/wasm/wasm.cc @@ -21,7 +21,6 @@ #include "common/common/enum_to_int.h" #include "common/common/logger.h" -#include "extensions/common/wasm/wasm_state.h" #include "extensions/common/wasm/wasm_vm.h" #include "extensions/common/wasm/well_known_names.h" diff --git a/source/extensions/common/wasm/wasm_state.cc b/source/extensions/common/wasm/wasm_state.cc deleted file mode 100644 index 0ebb859beb9bb..0000000000000 --- a/source/extensions/common/wasm/wasm_state.cc +++ /dev/null @@ -1,30 +0,0 @@ -#include "extensions/common/wasm/wasm_state.h" - -namespace Envoy { -namespace Extensions { -namespace Common { -namespace Wasm { - -WasmState::WasmState(absl::string_view type, absl::string_view value) - : type_(type), value_(value) {} - -ProtobufTypes::MessagePtr WasmState::serializeAsProto() const { - auto any = std::make_unique(); - - if (type_.empty()) { - ProtobufWkt::BytesValue value; - value.set_value(value_); - any->PackFrom(value); - } else { - // The WASM extension serialized in its own type. - any->set_type_url(type_); - any->set_value(value_); - } - - return any; -} - -} // namespace Wasm -} // namespace Common -} // namespace Extensions -} // namespace Envoy \ No newline at end of file diff --git a/source/extensions/common/wasm/wasm_state.h b/source/extensions/common/wasm/wasm_state.h deleted file mode 100644 index 872f44b166350..0000000000000 --- a/source/extensions/common/wasm/wasm_state.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Wasm State Class available to WASM/Non-WASM modules. - */ - -#pragma once - -#include - -#include "envoy/stream_info/filter_state.h" - -#include "common/protobuf/protobuf.h" - -namespace Envoy { -namespace Extensions { -namespace Common { -namespace Wasm { - -// A simple wrapper around generic values -class WasmState : public StreamInfo::FilterState::Object { -public: - WasmState(absl::string_view type, absl::string_view value); - - explicit WasmState(absl::string_view value) : WasmState("", value) {} - - const std::string& value() const { return value_; } - - ProtobufTypes::MessagePtr serializeAsProto() const override; - -private: - const std::string type_; - const std::string value_; -}; - -} // namespace Wasm -} // namespace Common -} // namespace Extensions -} // namespace Envoy From b21857a6313fb1e2b265fd18028e2167a683975c Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Mon, 9 Mar 2020 23:12:19 +0000 Subject: [PATCH 13/19] Address comments. Signed-off-by: John Plevyak --- source/extensions/common/wasm/context.h | 4 +++- tools/spelling/spelling_dictionary.txt | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/source/extensions/common/wasm/context.h b/source/extensions/common/wasm/context.h index 22f06df1fecff..3609d6cc3b82b 100644 --- a/source/extensions/common/wasm/context.h +++ b/source/extensions/common/wasm/context.h @@ -65,6 +65,8 @@ struct Plugin : public PluginBase { : PluginBase(name, root_id, vm_id, plugin_configuration), direction_(direction), local_info_(local_info), listener_metadata_(listener_metadata) {} + // Information specific to HTTP Filters. + // TODO: consider using a varient record or filter-type specific sub-objects via unique_ptr. const envoy::config::core::v3::TrafficDirection direction_; const LocalInfo::LocalInfo& local_info_; const envoy::config::core::v3::Metadata* listener_metadata_; @@ -117,7 +119,7 @@ class Context : public proxy_wasm::ContextBase, const LocalInfo::LocalInfo* root_local_info_{nullptr}; // set only for root_context. - // State use for calls into the VM. + // Temporary state used for and valid only during calls into the VM. Buffer buffer_; }; using ContextSharedPtr = std::shared_ptr; diff --git a/tools/spelling/spelling_dictionary.txt b/tools/spelling/spelling_dictionary.txt index 780472a6e1625..d6a00bc4881ae 100644 --- a/tools/spelling/spelling_dictionary.txt +++ b/tools/spelling/spelling_dictionary.txt @@ -541,6 +541,7 @@ eg emplace emplaced emscripten +emsdk enablement encodings endian From bbc79224a43cabb93c54537714531b46095ba36a Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Tue, 10 Mar 2020 16:36:58 +0000 Subject: [PATCH 14/19] Format. Signed-off-by: John Plevyak --- source/extensions/common/wasm/context.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/extensions/common/wasm/context.h b/source/extensions/common/wasm/context.h index 3609d6cc3b82b..ab0e8ea40a0ec 100644 --- a/source/extensions/common/wasm/context.h +++ b/source/extensions/common/wasm/context.h @@ -66,7 +66,7 @@ struct Plugin : public PluginBase { local_info_(local_info), listener_metadata_(listener_metadata) {} // Information specific to HTTP Filters. - // TODO: consider using a varient record or filter-type specific sub-objects via unique_ptr. + // TODO: consider using a variant record or filter-type specific sub-objects via unique_ptr. const envoy::config::core::v3::TrafficDirection direction_; const LocalInfo::LocalInfo& local_info_; const envoy::config::core::v3::Metadata* listener_metadata_; From 6f29c2a0022eb465a172de63e787e05b571b1675 Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Tue, 10 Mar 2020 18:03:00 +0000 Subject: [PATCH 15/19] Move pointer using statement to core. Signed-off-by: John Plevyak --- source/common/stats/symbol_table_impl.h | 1 + source/extensions/common/wasm/wasm.h | 6 ------ 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/source/common/stats/symbol_table_impl.h b/source/common/stats/symbol_table_impl.h index f1459d04fb741..6a7070c26682b 100644 --- a/source/common/stats/symbol_table_impl.h +++ b/source/common/stats/symbol_table_impl.h @@ -826,6 +826,7 @@ class StatNameSet { using StringStatNameMap = absl::flat_hash_map; StringStatNameMap builtin_stat_names_; }; +using StatNameSetSharedPtr = std::shared_ptr; } // namespace Stats } // namespace Envoy diff --git a/source/extensions/common/wasm/wasm.h b/source/extensions/common/wasm/wasm.h index 5a3b054aebb3a..8d951a071f33d 100644 --- a/source/extensions/common/wasm/wasm.h +++ b/source/extensions/common/wasm/wasm.h @@ -24,12 +24,6 @@ #include "include/proxy-wasm/wasm.h" namespace Envoy { - -// TODO: move to source/common/stats/symbol_table_impl.h when upstreaming. -namespace Stats { -using StatNameSetSharedPtr = std::shared_ptr; -} // namespace Stats - namespace Extensions { namespace Common { namespace Wasm { From e85d27354ca726a16f639fab74f9073164ad5228 Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Wed, 11 Mar 2020 18:40:08 +0000 Subject: [PATCH 16/19] Add Random as required by RemoteAsyncDataProvider. Signed-off-by: John Plevyak --- source/extensions/common/wasm/wasm.cc | 20 ++++++++++++-------- source/extensions/common/wasm/wasm.h | 6 ++++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/source/extensions/common/wasm/wasm.cc b/source/extensions/common/wasm/wasm.cc index 20d540196af29..0c4b59708fe8f 100644 --- a/source/extensions/common/wasm/wasm.cc +++ b/source/extensions/common/wasm/wasm.cc @@ -93,7 +93,8 @@ static void createWasmInternal(const VmConfig& vm_config, PluginSharedPtr plugin Stats::ScopeSharedPtr scope, Upstream::ClusterManager& cluster_manager, Init::Manager& init_manager, Event::Dispatcher& dispatcher, - Api::Api& api, std::unique_ptr root_context_for_testing, + Runtime::RandomGenerator& random, Api::Api& api, + std::unique_ptr root_context_for_testing, Config::DataSource::RemoteAsyncDataProviderPtr& remote_data_provider, CreateWasmCallback&& cb) { std::string source, code; @@ -130,7 +131,8 @@ static void createWasmInternal(const VmConfig& vm_config, PluginSharedPtr plugin if (vm_config.code().has_remote()) { remote_data_provider = std::make_unique( - cluster_manager, init_manager, vm_config.code().remote(), true, std::move(callback)); + cluster_manager, init_manager, vm_config.code().remote(), dispatcher, random, true, + std::move(callback)); } else if (vm_config.code().has_local()) { callback(code); } else { @@ -140,21 +142,23 @@ static void createWasmInternal(const VmConfig& vm_config, PluginSharedPtr plugin void createWasm(const VmConfig& vm_config, PluginSharedPtr plugin, Stats::ScopeSharedPtr scope, Upstream::ClusterManager& cluster_manager, Init::Manager& init_manager, - Event::Dispatcher& dispatcher, Api::Api& api, + Event::Dispatcher& dispatcher, Runtime::RandomGenerator& random, Api::Api& api, Config::DataSource::RemoteAsyncDataProviderPtr& remote_data_provider, CreateWasmCallback&& cb) { - createWasmInternal(vm_config, plugin, scope, cluster_manager, init_manager, dispatcher, api, - nullptr /* root_context_for_testing */, remote_data_provider, std::move(cb)); + createWasmInternal(vm_config, plugin, scope, cluster_manager, init_manager, dispatcher, random, + api, nullptr /* root_context_for_testing */, remote_data_provider, + std::move(cb)); } void createWasmForTesting(const VmConfig& vm_config, PluginSharedPtr plugin, Stats::ScopeSharedPtr scope, Upstream::ClusterManager& cluster_manager, - Init::Manager& init_manager, Event::Dispatcher& dispatcher, Api::Api& api, + Init::Manager& init_manager, Event::Dispatcher& dispatcher, + Runtime::RandomGenerator& random, Api::Api& api, std::unique_ptr root_context_for_testing, Config::DataSource::RemoteAsyncDataProviderPtr& remote_data_provider, CreateWasmCallback&& cb) { - createWasmInternal(vm_config, plugin, scope, cluster_manager, init_manager, dispatcher, api, - std::move(root_context_for_testing), remote_data_provider, std::move(cb)); + createWasmInternal(vm_config, plugin, scope, cluster_manager, init_manager, dispatcher, random, + api, std::move(root_context_for_testing), remote_data_provider, std::move(cb)); } WasmHandleSharedPtr getOrCreateThreadLocalWasm(WasmHandleSharedPtr base_wasm, diff --git a/source/extensions/common/wasm/wasm.h b/source/extensions/common/wasm/wasm.h index 8d951a071f33d..7038b74f7af1f 100644 --- a/source/extensions/common/wasm/wasm.h +++ b/source/extensions/common/wasm/wasm.h @@ -80,7 +80,8 @@ using CreateWasmCallback = std::function; // be shared by APIs (e.g. HTTP Filter + AccessLog). void createWasm(const VmConfig& vm_config, PluginSharedPtr plugin_config, Stats::ScopeSharedPtr scope, Upstream::ClusterManager& cluster_manager, - Init::Manager& init_manager, Event::Dispatcher& dispatcher, Api::Api& api, + Init::Manager& init_manager, Event::Dispatcher& dispatcher, + Runtime::RandomGenerator& random, Api::Api& api, Config::DataSource::RemoteAsyncDataProviderPtr& remote_data_provider, CreateWasmCallback&& cb); @@ -90,7 +91,8 @@ WasmHandleSharedPtr createThreadLocalWasm(WasmHandle& base_wasm_handle, PluginSh void createWasmForTesting(const VmConfig& vm_config, PluginSharedPtr plugin, Stats::ScopeSharedPtr scope, Upstream::ClusterManager& cluster_manager, - Init::Manager& init_manager, Event::Dispatcher& dispatcher, Api::Api& api, + Init::Manager& init_manager, Event::Dispatcher& dispatcher, + Runtime::RandomGenerator& random, Api::Api& api, std::unique_ptr root_context_for_testing, Config::DataSource::RemoteAsyncDataProviderPtr& remote_data_provider, CreateWasmCallback&& cb); From 167c3442d413820434f2139d43a5967adf4c57f5 Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Thu, 12 Mar 2020 04:20:02 +0000 Subject: [PATCH 17/19] Attempt to fix the @envoy dependency problem. Update the host dependency. Move the BUILD files for the proxy-wasm dependencies into envoy external. Signed-off-by: John Plevyak --- bazel/external/proxy_wasm_cpp_host.BUILD | 54 ++++++++++++++++++++++++ bazel/external/proxy_wasm_cpp_sdk.BUILD | 16 +++++++ bazel/repositories.bzl | 6 ++- bazel/repository_locations.bzl | 6 +-- 4 files changed, 77 insertions(+), 5 deletions(-) create mode 100644 bazel/external/proxy_wasm_cpp_host.BUILD create mode 100644 bazel/external/proxy_wasm_cpp_sdk.BUILD diff --git a/bazel/external/proxy_wasm_cpp_host.BUILD b/bazel/external/proxy_wasm_cpp_host.BUILD new file mode 100644 index 0000000000000..bb462cf02ea6a --- /dev/null +++ b/bazel/external/proxy_wasm_cpp_host.BUILD @@ -0,0 +1,54 @@ +licenses(["notice"]) # Apache 2 + +package(default_visibility = ["//visibility:public"]) + +cc_library( + name = "include", + hdrs = [ + "include/proxy-wasm/context.h", + "include/proxy-wasm/compat.h", + "include/proxy-wasm/exports.h", + "include/proxy-wasm/null.h", + "include/proxy-wasm/null_plugin.h", + "include/proxy-wasm/null_vm.h", + "include/proxy-wasm/null_vm_plugin.h", + "include/proxy-wasm/v8.h", + "include/proxy-wasm/wasm.h", + "include/proxy-wasm/wasm_vm.h", + "include/proxy-wasm/wasm_api_impl.h", + "include/proxy-wasm/word.h", + ], + copts = ["-std=c++14"], + deps = [ + "@proxy_wasm_cpp_sdk//:common_lib", + ], +) + +cc_library( + name = "lib", + srcs = [ + "src/exports.cc", + "src/foreign.cc", + "src/context.cc", + "src/wasm.cc", + "src/base64.cc", + "src/base64.h", + "src/v8/v8.cc", + "src/null/null.cc", + "src/null/null_plugin.cc", + "src/null/null_vm.cc", + ], + copts = ["-std=c++14"], + deps = [ + ":include", + "@proxy_wasm_cpp_sdk//:api_lib", + "@proxy_wasm_cpp_sdk//:common_lib", + "//external:abseil_flat_hash_map", + "//external:abseil_strings", + "//external:abseil_optional", + "//external:zlib", + "@boringssl//:ssl", + "//external:wee8", + "//external:protobuf", + ], +) diff --git a/bazel/external/proxy_wasm_cpp_sdk.BUILD b/bazel/external/proxy_wasm_cpp_sdk.BUILD new file mode 100644 index 0000000000000..259e7ea358431 --- /dev/null +++ b/bazel/external/proxy_wasm_cpp_sdk.BUILD @@ -0,0 +1,16 @@ +licenses(["notice"]) # Apache 2 + +package(default_visibility = ["//visibility:public"]) + +cc_library( + name = "api_lib", + hdrs = ["proxy_wasm_api.h"], +) + +cc_library( + name = "common_lib", + hdrs = [ + "proxy_wasm_common.h", + "proxy_wasm_enums.h", + ], +) diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl index 32cbe4a426021..dc94ba11dde67 100644 --- a/bazel/repositories.bzl +++ b/bazel/repositories.bzl @@ -745,12 +745,14 @@ def _com_github_gperftools_gperftools(): def _proxy_wasm_cpp_sdk(): _repository_impl( - name = "proxy_wasm_cpp_host", + name = "proxy_wasm_cpp_sdk", + build_file = "@envoy//bazel/external:proxy_wasm_cpp_sdk.BUILD", ) def _proxy_wasm_cpp_host(): _repository_impl( - name = "proxy_wasm_cpp_sdk", + name = "proxy_wasm_cpp_host", + build_file = "@envoy//bazel/external:proxy_wasm_cpp_host.BUILD", ) def _kafka_deps(): diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl index 50e1214e6ad9a..8d1f590321d1f 100644 --- a/bazel/repository_locations.bzl +++ b/bazel/repository_locations.bzl @@ -325,8 +325,8 @@ REPOSITORY_LOCATIONS = dict( urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-sdk/archive/31f1fc5b7e09f231fa532d2d296e479a113c3e10.tar.gz"], ), proxy_wasm_cpp_host = dict( - sha256 = "d1fb98a40b38b99393b56b3509dac5f01a769512aebc86dcc37782ba29549517", - strip_prefix = "proxy-wasm-cpp-host-8c33ecf3784b00d0bc6b88bbe9de6d4e51239f88", - urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-host/archive/8c33ecf3784b00d0bc6b88bbe9de6d4e51239f88.tar.gz"], + sha256 = "bb0029812ab151b64fbc568abe6b6668b90e9215c32944155c32afc0985756ac", + strip_prefix = "proxy-wasm-cpp-host-c391bf3825e48cbfcc4294593da1027144d0eb68", + urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-host/archive/c391bf3825e48cbfcc4294593da1027144d0eb68.tar.gz"], ), ) From 06581c769ccd54c1aa5ee81577a900a6f89c9757 Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Thu, 12 Mar 2020 05:52:15 +0000 Subject: [PATCH 18/19] Sort alphabetically because that was sooooo important. Signed-off-by: John Plevyak --- bazel/external/proxy_wasm_cpp_host.BUILD | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/bazel/external/proxy_wasm_cpp_host.BUILD b/bazel/external/proxy_wasm_cpp_host.BUILD index bb462cf02ea6a..a6ff90cdec0c9 100644 --- a/bazel/external/proxy_wasm_cpp_host.BUILD +++ b/bazel/external/proxy_wasm_cpp_host.BUILD @@ -5,8 +5,8 @@ package(default_visibility = ["//visibility:public"]) cc_library( name = "include", hdrs = [ - "include/proxy-wasm/context.h", "include/proxy-wasm/compat.h", + "include/proxy-wasm/context.h", "include/proxy-wasm/exports.h", "include/proxy-wasm/null.h", "include/proxy-wasm/null_plugin.h", @@ -14,8 +14,8 @@ cc_library( "include/proxy-wasm/null_vm_plugin.h", "include/proxy-wasm/v8.h", "include/proxy-wasm/wasm.h", - "include/proxy-wasm/wasm_vm.h", "include/proxy-wasm/wasm_api_impl.h", + "include/proxy-wasm/wasm_vm.h", "include/proxy-wasm/word.h", ], copts = ["-std=c++14"], @@ -27,28 +27,28 @@ cc_library( cc_library( name = "lib", srcs = [ - "src/exports.cc", - "src/foreign.cc", - "src/context.cc", - "src/wasm.cc", "src/base64.cc", "src/base64.h", - "src/v8/v8.cc", + "src/context.cc", + "src/exports.cc", + "src/foreign.cc", "src/null/null.cc", "src/null/null_plugin.cc", "src/null/null_vm.cc", + "src/v8/v8.cc", + "src/wasm.cc", ], copts = ["-std=c++14"], deps = [ ":include", - "@proxy_wasm_cpp_sdk//:api_lib", - "@proxy_wasm_cpp_sdk//:common_lib", "//external:abseil_flat_hash_map", - "//external:abseil_strings", "//external:abseil_optional", + "//external:abseil_strings", + "//external:protobuf", + "//external:wee8", "//external:zlib", "@boringssl//:ssl", - "//external:wee8", - "//external:protobuf", + "@proxy_wasm_cpp_sdk//:api_lib", + "@proxy_wasm_cpp_sdk//:common_lib", ], ) From 4119e6ba3e7e0afff1030cfd25de129bbcc57b1c Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Thu, 19 Mar 2020 16:32:05 +0000 Subject: [PATCH 19/19] Address some coverage. Signed-off-by: John Plevyak --- bazel/repository_locations.bzl | 6 +++--- source/extensions/common/wasm/context.cc | 2 +- source/extensions/common/wasm/wasm.cc | 9 +++++---- source/extensions/common/wasm/wasm.h | 5 ----- source/extensions/common/wasm/wasm_vm.cc | 4 ++-- source/extensions/common/wasm/wasm_vm.h | 18 +++++++++++++----- test/extensions/common/wasm/wasm_test.cc | 15 +++++++++++++-- 7 files changed, 37 insertions(+), 22 deletions(-) diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl index 8d1f590321d1f..4f878f5053b15 100644 --- a/bazel/repository_locations.bzl +++ b/bazel/repository_locations.bzl @@ -325,8 +325,8 @@ REPOSITORY_LOCATIONS = dict( urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-sdk/archive/31f1fc5b7e09f231fa532d2d296e479a113c3e10.tar.gz"], ), proxy_wasm_cpp_host = dict( - sha256 = "bb0029812ab151b64fbc568abe6b6668b90e9215c32944155c32afc0985756ac", - strip_prefix = "proxy-wasm-cpp-host-c391bf3825e48cbfcc4294593da1027144d0eb68", - urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-host/archive/c391bf3825e48cbfcc4294593da1027144d0eb68.tar.gz"], + sha256 = "4aaf28e2c3326f9f465ffc460162ee195ee3ceaba93241c58453ae57373191fe", + strip_prefix = "proxy-wasm-cpp-host-a9c0c47d8062aa36d955b8604b1b96ee9078253f", + urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-host/archive/a9c0c47d8062aa36d955b8604b1b96ee9078253f.tar.gz"], ), ) diff --git a/source/extensions/common/wasm/context.cc b/source/extensions/common/wasm/context.cc index e377bcc580aa4..fca82de3c01de 100644 --- a/source/extensions/common/wasm/context.cc +++ b/source/extensions/common/wasm/context.cc @@ -94,7 +94,7 @@ WasmResult Context::getProperty(absl::string_view path, std::string* result) { } WasmResult Context::defineMetric(MetricType type, absl::string_view name, uint32_t* metric_id_ptr) { - auto stat_name = wasm()->stat_name_set_->add(name); + auto stat_name = wasm()->stat_name_set()->add(name); switch (type) { case MetricType::Counter: { auto id = wasm_->nextCounterMetricId(); diff --git a/source/extensions/common/wasm/wasm.cc b/source/extensions/common/wasm/wasm.cc index 0c4b59708fe8f..ded72e71f41c3 100644 --- a/source/extensions/common/wasm/wasm.cc +++ b/source/extensions/common/wasm/wasm.cc @@ -70,13 +70,14 @@ Wasm::Wasm(absl::string_view runtime, absl::string_view vm_id, absl::string_view Wasm::Wasm(WasmHandleSharedPtr& base_wasm_handle, Event::Dispatcher& dispatcher) : WasmBase(base_wasm_handle, [&base_wasm_handle]() { - return createWasmVm(base_wasm_handle->wasm()->wasm_vm()->runtime(), - getWasm(base_wasm_handle)->scope_); + return createWasmVm( + getEnvoyWasmIntegration(*base_wasm_handle->wasm()->wasm_vm()).runtime(), + getWasm(base_wasm_handle)->scope_); }), scope_(getWasm(base_wasm_handle)->scope_), - cluster_manager_(getWasm(base_wasm_handle)->cluster_manager_), dispatcher_(dispatcher), + cluster_manager_(getWasm(base_wasm_handle)->clusterManager()), dispatcher_(dispatcher), time_source_(dispatcher.timeSource()), wasm_stats_(getWasm(base_wasm_handle)->wasm_stats_), - stat_name_set_(getWasm(base_wasm_handle)->stat_name_set_) { + stat_name_set_(getWasm(base_wasm_handle)->stat_name_set()) { active_wasm_++; wasm_stats_.active_.set(active_wasm_); wasm_stats_.created_.inc(); diff --git a/source/extensions/common/wasm/wasm.h b/source/extensions/common/wasm/wasm.h index 7038b74f7af1f..53fff38ac11b8 100644 --- a/source/extensions/common/wasm/wasm.h +++ b/source/extensions/common/wasm/wasm.h @@ -48,7 +48,6 @@ class Wasm : public WasmBase, Logger::Loggable { virtual ~Wasm(); Stats::StatNameSetSharedPtr stat_name_set() const { return stat_name_set_; } - Upstream::ClusterManager& clusterManager() const { return cluster_manager_; } Event::Dispatcher& dispatcher() { return dispatcher_; } @@ -85,10 +84,6 @@ void createWasm(const VmConfig& vm_config, PluginSharedPtr plugin_config, Config::DataSource::RemoteAsyncDataProviderPtr& remote_data_provider, CreateWasmCallback&& cb); -// Create a ThreadLocal VM from an existing VM (e.g. from createWasm() above). -WasmHandleSharedPtr createThreadLocalWasm(WasmHandle& base_wasm_handle, PluginSharedPtr plugin, - Event::Dispatcher& dispatcher); - void createWasmForTesting(const VmConfig& vm_config, PluginSharedPtr plugin, Stats::ScopeSharedPtr scope, Upstream::ClusterManager& cluster_manager, Init::Manager& init_manager, Event::Dispatcher& dispatcher, diff --git a/source/extensions/common/wasm/wasm_vm.cc b/source/extensions/common/wasm/wasm_vm.cc index 135486b5b783f..35c3cf053e9e5 100644 --- a/source/extensions/common/wasm/wasm_vm.cc +++ b/source/extensions/common/wasm/wasm_vm.cc @@ -21,11 +21,11 @@ WasmVmPtr createWasmVm(absl::string_view runtime, const Stats::ScopeSharedPtr& s throw WasmException("Failed to create WASM VM with unspecified runtime."); } else if (runtime == WasmRuntimeNames::get().Null) { auto wasm = proxy_wasm::createNullVm(); - wasm->integration().reset(new EnvoyWasmVmIntegration(scope, "null")); + wasm->integration().reset(new EnvoyWasmVmIntegration(scope, runtime, "null")); return wasm; } else if (runtime == WasmRuntimeNames::get().V8) { auto wasm = proxy_wasm::createV8Vm(); - wasm->integration().reset(new EnvoyWasmVmIntegration(scope, "v8")); + wasm->integration().reset(new EnvoyWasmVmIntegration(scope, runtime, "v8")); return wasm; } else { throw WasmException(fmt::format( diff --git a/source/extensions/common/wasm/wasm_vm.h b/source/extensions/common/wasm/wasm_vm.h index c95bef4aaeeb6..83426a42b3e19 100644 --- a/source/extensions/common/wasm/wasm_vm.h +++ b/source/extensions/common/wasm/wasm_vm.h @@ -39,9 +39,10 @@ struct VmStats { class EnvoyWasmVmIntegration : public proxy_wasm::WasmVmIntegration, Logger::Loggable { public: - EnvoyWasmVmIntegration(const Stats::ScopeSharedPtr& scope, absl::string_view runtime) - : scope_(scope), runtime_prefix_(absl::StrCat("wasm_vm.", runtime, ".")), - runtime_(std::string(runtime)), + EnvoyWasmVmIntegration(const Stats::ScopeSharedPtr& scope, absl::string_view runtime, + absl::string_view short_runtime) + : scope_(scope), runtime_(std::string(runtime)), short_runtime_(std::string(short_runtime)), + runtime_prefix_(absl::StrCat("wasm_vm.", short_runtime, ".")), stats_(VmStats{ALL_VM_STATS(POOL_COUNTER_PREFIX(*scope_, runtime_prefix_), POOL_GAUGE_PREFIX(*scope_, runtime_prefix_))}) { stats_.created_.inc(); @@ -53,18 +54,25 @@ class EnvoyWasmVmIntegration : public proxy_wasm::WasmVmIntegration, ENVOY_LOG(debug, "~WasmVm {} {} remaining active", runtime_, stats_.active_.value()); } proxy_wasm::WasmVmIntegration* clone() override { - return new EnvoyWasmVmIntegration(scope_, runtime_); + return new EnvoyWasmVmIntegration(scope_, runtime_, short_runtime_); } // void log(proxy_wasm::LogLevel level, absl::string_view message) override; void error(absl::string_view message) override; + const std::string& runtime() const { return runtime_; } + protected: const Stats::ScopeSharedPtr scope_; + const std::string runtime_; + const std::string short_runtime_; const std::string runtime_prefix_; - const std::string runtime_; // The runtime e.g. "v8". VmStats stats_; }; // namespace Wasm +inline const EnvoyWasmVmIntegration& getEnvoyWasmIntegration(proxy_wasm::WasmVm& wasm_vm) { + return *static_cast(wasm_vm.integration().get()); +} + // Exceptions for issues with the WebAssembly code. class WasmException : public EnvoyException { public: diff --git a/test/extensions/common/wasm/wasm_test.cc b/test/extensions/common/wasm/wasm_test.cc index 8b810f1f8de94..34fa4d595bc69 100644 --- a/test/extensions/common/wasm/wasm_test.cc +++ b/test/extensions/common/wasm/wasm_test.cc @@ -24,6 +24,12 @@ namespace Wasm { class TestContext : public Extensions::Common::Wasm::Context { public: TestContext(Extensions::Common::Wasm::Wasm* wasm) : Extensions::Common::Wasm::Context(wasm) {} + TestContext(Extensions::Common::Wasm::Wasm* wasm, + Extensions::Common::Wasm::PluginSharedPtr plugin) + : Extensions::Common::Wasm::Context(wasm, plugin) {} + TestContext(Extensions::Common::Wasm::Wasm* wasm, uint32_t root_context_id, + Extensions::Common::Wasm::PluginSharedPtr plugin) + : Extensions::Common::Wasm::Context(wasm, root_context_id, plugin) {} ~TestContext() override {} proxy_wasm::WasmResult log(uint64_t level, absl::string_view message) override { std::cerr << std::string(message) << "\n"; @@ -66,9 +72,11 @@ TEST_P(WasmCommonTest, Logging) { absl::StrCat("envoy.wasm.runtime.", GetParam()), vm_id, vm_configuration, vm_key, scope, cluster_manager, *dispatcher); EXPECT_NE(wasm, nullptr); + EXPECT_THROW_WITH_MESSAGE(wasm->error("foo"), Extensions::Common::Wasm::WasmException, "foo"); auto wasm_weak = std::weak_ptr(wasm); - auto wasm_handler = std::make_unique(std::move(wasm)); + auto wasm_handle = std::make_shared(std::move(wasm)); auto context = std::make_unique(wasm_weak.lock().get()); + auto vm_context = std::make_unique(wasm_weak.lock().get(), plugin); EXPECT_CALL(*context, log_(spdlog::level::trace, Eq("test trace logging"))); EXPECT_CALL(*context, log_(spdlog::level::debug, Eq("test debug logging"))); @@ -79,11 +87,14 @@ TEST_P(WasmCommonTest, Logging) { EXPECT_CALL(*context, log_(spdlog::level::info, Eq("on_delete logging"))); EXPECT_TRUE(wasm_weak.lock()->initialize(code, false)); + auto thread_local_wasm = std::make_shared(wasm_handle, *dispatcher); + thread_local_wasm.reset(); wasm_weak.lock()->setContext(context.get()); auto root_context = context.get(); wasm_weak.lock()->startForTesting(std::move(context), plugin); wasm_weak.lock()->configure(root_context, plugin); - wasm_handler.reset(); + + wasm_handle.reset(); dispatcher->run(Event::Dispatcher::RunType::NonBlock); // This will fault on nullptr if wasm has been deleted. plugin->plugin_configuration_ = "done";