Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
syntax = "proto3";
package envoy.extensions.dynamic_modules.v3;
import "udpa/annotations/status.proto";
import "validate/validate.proto";
option java_package = "io.envoyproxy.envoy.extensions.dynamic_modules.v3";
option java_outer_classname = "DynamicModulesProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/dynamic_modules/v3;dynamic_modulesv3";
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Dynamic Modules common configuration]
// Configuration of a dynamic module. A dynamic module is a shared object file that can be loaded via dlopen
// by various Envoy extension points. Currently, only HTTP filter (envoy.filters.http.dynamic_modules) is supported.
//
// How a module is loaded is determined by the extension point that uses it. For example, the HTTP filter
// loads the module with dlopen when Envoy receives a configuration that references the module at load time.
// If loading the module fails, the configuration will be rejected.
//
// Whether or not the shared object is the same is determined by the file path as well as the file's inode depending
// on the platform. Notably, if the file path and the content of the file are the same, the shared object will be reused.
//
// A module must be compatible with the ABI specified in :repo:`abi.h `.
// Currently, compatibility is only guaranteed by an exact version match between the Envoy
// codebase and the dynamic module SDKs. In the future, after the ABI is stabilized, we will revisit
// this restriction and hopefully provide a wider compatibility guarantee. Until then, Envoy
// checks the hash of the ABI header files to ensure that the dynamic modules are built against the
// same version of the ABI.
message DynamicModuleConfig {
// The name of the dynamic module. The client is expected to have some configuration indicating where to search for the module.
// In Envoy, the search path can only be configured via the environment variable ``ENVOY_DYNAMIC_MODULES_SEARCH_PATH``.
// The actual search path is ``${ENVOY_DYNAMIC_MODULES_SEARCH_PATH}/lib${name}.so``. TODO: make the search path configurable via
// command line options.
string name = 1 [(validate.rules).string = {min_len: 1}];
// Set true to prevent the module from being unloaded with dlclose.
// This is useful for modules that have global state that should not be unloaded.
// A module is closed when no more references to it exist in the process. For example,
// no HTTP filters are using the module (e.g. after configuration update).
bool do_not_close = 3;
}