Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into tests
Browse files Browse the repository at this point in the history
  • Loading branch information
yosrym93 committed Aug 12, 2020
2 parents ba6c097 + e319b7c commit 0b01b4d
Show file tree
Hide file tree
Showing 426 changed files with 11,513 additions and 2,293 deletions.
3 changes: 3 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,9 @@ build:clang-tsan --build_tag_filters=-no_san,-no_tsan
build:clang-tsan --test_tag_filters=-no_san,-no_tsan
# Needed due to https://github.com/libevent/libevent/issues/777
build:clang-tsan --copt -DEVENT__DISABLE_DEBUG_MODE
# https://github.com/abseil/abseil-cpp/issues/760
# https://github.com/google/sanitizers/issues/953
build:clang-tsan --test_env="TSAN_OPTIONS=report_atomic_races=0"

# Clang MSAN - this is the base config for remote-msan and docker-msan. To run this config without
# our build image, follow https://github.com/google/sanitizers/wiki/MemorySanitizerLibcxxHowTo
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
/bazel-*
BROWSE
/build
/build_*
*.bzlc
.cache
.clangd
Expand Down Expand Up @@ -34,3 +33,5 @@ clang.bazelrc
user.bazelrc
CMakeLists.txt
cmake-build-debug
/linux
bazel.output.txt
2 changes: 2 additions & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ extensions/filters/common/original_src @snowp @klarose
/*/extensions/filters/common/expr @kyessenov @yangminzhu @lizan
# webassembly common extension
/*/extensions/common/wasm @jplevyak @PiotrSikora @lizan
# common matcher
/*/extensions/common/matcher @mattklein123 @yangminzhu
# common crypto extension
/*/extensions/common/crypto @lizan @PiotrSikora @bdecoste
/*/extensions/common/proxy_protocol @alyssawilk @wez470
Expand Down
1 change: 1 addition & 0 deletions api/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ proto_library(
"//envoy/config/accesslog/v3:pkg",
"//envoy/config/bootstrap/v3:pkg",
"//envoy/config/cluster/v3:pkg",
"//envoy/config/common/matcher/v3:pkg",
"//envoy/config/core/v3:pkg",
"//envoy/config/endpoint/v3:pkg",
"//envoy/config/filter/thrift/router/v2alpha1:pkg",
Expand Down
12 changes: 12 additions & 0 deletions api/envoy/config/common/matcher/v3/BUILD
Original file line number Diff line number Diff line change
@@ -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/route/v3:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
],
)
100 changes: 100 additions & 0 deletions api/envoy/config/common/matcher/v3/matcher.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
syntax = "proto3";

package envoy.config.common.matcher.v3;

import "envoy/config/route/v3/route_components.proto";

import "udpa/annotations/migrate.proto";
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
import "validate/validate.proto";

option java_package = "io.envoyproxy.envoy.config.common.matcher.v3";
option java_outer_classname = "MatcherProto";
option java_multiple_files = true;
option (udpa.annotations.file_status).package_version_status = ACTIVE;

// [#protodoc-title: Unified Matcher API]

// Match configuration. This is a recursive structure which allows complex nested match
// configurations to be built using various logical operators.
// [#next-free-field: 11]
message MatchPredicate {
// A set of match configurations used for logical operations.
message MatchSet {
// The list of rules that make up the set.
repeated MatchPredicate rules = 1 [(validate.rules).repeated = {min_items: 2}];
}

oneof rule {
option (validate.required) = true;

// A set that describes a logical OR. If any member of the set matches, the match configuration
// matches.
MatchSet or_match = 1;

// A set that describes a logical AND. If all members of the set match, the match configuration
// matches.
MatchSet and_match = 2;

// A negation match. The match configuration will match if the negated match condition matches.
MatchPredicate not_match = 3;

// The match configuration will always match.
bool any_match = 4 [(validate.rules).bool = {const: true}];

// HTTP request headers match configuration.
HttpHeadersMatch http_request_headers_match = 5;

// HTTP request trailers match configuration.
HttpHeadersMatch http_request_trailers_match = 6;

// HTTP response headers match configuration.
HttpHeadersMatch http_response_headers_match = 7;

// HTTP response trailers match configuration.
HttpHeadersMatch http_response_trailers_match = 8;

// HTTP request generic body match configuration.
HttpGenericBodyMatch http_request_generic_body_match = 9;

// HTTP response generic body match configuration.
HttpGenericBodyMatch http_response_generic_body_match = 10;
}
}

// HTTP headers match configuration.
message HttpHeadersMatch {
// HTTP headers to match.
repeated route.v3.HeaderMatcher headers = 1;
}

// HTTP generic body match configuration.
// List of text strings and hex strings to be located in HTTP body.
// All specified strings must be found in the HTTP body for positive match.
// The search may be limited to specified number of bytes from the body start.
//
// .. attention::
//
// Searching for patterns in HTTP body is potentially cpu intensive. For each specified pattern, http body is scanned byte by byte to find a match.
// If multiple patterns are specified, the process is repeated for each pattern. If location of a pattern is known, ``bytes_limit`` should be specified
// to scan only part of the http body.
message HttpGenericBodyMatch {
message GenericTextMatch {
oneof rule {
option (validate.required) = true;

// Text string to be located in HTTP body.
string string_match = 1;

// Sequence of bytes to be located in HTTP body.
bytes binary_match = 2;
}
}

// Limits search to specified number of bytes - default zero (no limit - match entire captured buffer).
uint32 bytes_limit = 1;

// List of patterns to match.
repeated GenericTextMatch patterns = 2 [(validate.rules).repeated = {min_items: 1}];
}
13 changes: 13 additions & 0 deletions api/envoy/config/common/matcher/v4alpha/BUILD

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

114 changes: 114 additions & 0 deletions api/envoy/config/common/matcher/v4alpha/matcher.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 12 additions & 1 deletion api/envoy/config/listener/v3/listener.proto
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package envoy.config.listener.v3;
import "envoy/config/accesslog/v3/accesslog.proto";
import "envoy/config/core/v3/address.proto";
import "envoy/config/core/v3/base.proto";
import "envoy/config/core/v3/extension.proto";
import "envoy/config/core/v3/socket_option.proto";
import "envoy/config/listener/v3/api_listener.proto";
import "envoy/config/listener/v3/listener_components.proto";
Expand Down Expand Up @@ -35,7 +36,7 @@ message ListenerCollection {
udpa.core.v1.CollectionEntry entries = 1;
}

// [#next-free-field: 23]
// [#next-free-field: 24]
message Listener {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.Listener";

Expand Down Expand Up @@ -248,4 +249,14 @@ message Listener {
// Configuration for :ref:`access logs <arch_overview_access_logs>`
// emitted by this listener.
repeated accesslog.v3.AccessLog access_log = 22;

// If the protocol in the listener socket address in :ref:`protocol
// <envoy_api_field_config.core.v3.SocketAddress.protocol>` is :ref:`UDP
// <envoy_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`, this field specifies the actual udp
// writer to create, i.e. :ref:`name <envoy_api_field_config.core.v3.TypedExtensionConfig.name>`
// = "udp_default_writer" for creating a udp writer with writing in passthrough mode,
// = "udp_gso_batch_writer" for creating a udp writer with writing in batch mode.
// If not present, treat it as "udp_default_writer".
// [#not-implemented-hide:]
core.v3.TypedExtensionConfig udp_writer_config = 23;
}
21 changes: 21 additions & 0 deletions api/envoy/config/listener/v3/udp_default_writer_config.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
syntax = "proto3";

package envoy.config.listener.v3;

import "google/protobuf/duration.proto";
import "google/protobuf/wrappers.proto";

import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";

option java_package = "io.envoyproxy.envoy.config.listener.v3";
option java_outer_classname = "UdpDefaultWriterConfigProto";
option java_multiple_files = true;
option (udpa.annotations.file_status).package_version_status = ACTIVE;

// [#protodoc-title: Udp Default Writer Config]

// [#not-implemented-hide:]
// Configuration specific to the Udp Default Writer.
message UdpDefaultWriterOptions {
}
21 changes: 21 additions & 0 deletions api/envoy/config/listener/v3/udp_gso_batch_writer_config.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
syntax = "proto3";

package envoy.config.listener.v3;

import "google/protobuf/duration.proto";
import "google/protobuf/wrappers.proto";

import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";

option java_package = "io.envoyproxy.envoy.config.listener.v3";
option java_outer_classname = "UdpGsoBatchWriterConfigProto";
option java_multiple_files = true;
option (udpa.annotations.file_status).package_version_status = ACTIVE;

// [#protodoc-title: Udp Gso Batch Writer Config]

// [#not-implemented-hide:]
// Configuration specific to the Udp Gso Batch Writer.
message UdpGsoBatchWriterOptions {
}
13 changes: 12 additions & 1 deletion api/envoy/config/listener/v4alpha/listener.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 0b01b4d

Please sign in to comment.