Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
8db01a4
udp: limit number of reads per event loop (#16180)
danzh2010 May 24, 2021
35401ff
thrift: add req/resp size histograms (#16508)
May 24, 2021
457adb3
[fuzz]: fix oss fuzz 22106, envoy:codec_impl_fuzz_test: Crash in (#16…
twghu May 24, 2021
c69eb57
http3: applying config options upstream (#16532)
alyssawilk May 24, 2021
bb49d42
quic: running one more test on windows (#16602)
alyssawilk May 24, 2021
e7622b3
test: cleaning up some H3 TODOs (#16601)
alyssawilk May 24, 2021
fb274d6
event: update fd registration mask even if it hasn't changed. (#16389)
antoniovicente May 24, 2021
63619d5
test: refactor FakeUpstream to avoid use-after-free when scheduling c…
antoniovicente May 24, 2021
cbe08bb
Set-Metadata HTTP filter (#16400)
aguinet May 25, 2021
211bed4
security: add template for security advisory (#16524)
May 25, 2021
7d4b2ca
tls: support dual ECDSA/RSA certs via SDS (#16605)
ggreenway May 25, 2021
151aa0c
Per connection local rate limiting (#15843)
gokulnair May 25, 2021
94ea72e
docker: Remove unused Dockerfile (#16640)
phlax May 25, 2021
f843b35
dependabot: Add Dockerfile checks (#16638)
phlax May 25, 2021
2cf511a
Revert "JwtAuthn: complete padding on forward jwt payload header (#14…
TAOXUY May 25, 2021
e9a149e
http3: stats and stats docs. (#16600)
alyssawilk May 25, 2021
01a8b71
[fuzz]: fix oss fuzz 30088, envoy:stat_merger_fuzz_test: ASSERT: name…
twghu May 25, 2021
8a824c4
docs: Update redhat install instructions (#16630)
ankatare May 25, 2021
13f37b8
http3: applied cluster buffer limits to http/3 (#16466)
alyssawilk May 25, 2021
7cc10b0
http conn man: add an option to strip trailing host dot. (#15568)
maheshkurund May 25, 2021
a467b0e
extensions: add http bandwidth limit filter (#16358)
nitgoy May 25, 2021
213d660
Refactor ip_detection_extensions to avoid cross extension dependencie…
KBaichoo May 25, 2021
bd900d8
aws_lambda filter in json mode should use content-type header from js…
jstewmon May 25, 2021
694df35
quic: cleaning up redundant tests (#16660)
alyssawilk May 26, 2021
00580e2
pass valid instance ptr to validateConfig (#16665)
chaoqin-li1123 May 26, 2021
6543d2a
quic: cleaning obsolete TODOS (#16661)
alyssawilk May 26, 2021
de21b6a
Patch flaky VeryLargeRequestHeadersRejected test (#16664)
May 26, 2021
299eadf
bazel: update to v4.1.0. (#16644)
PiotrSikora May 26, 2021
491b116
grid: Modify the AlternateProtocolsCache to specify expiration per-pr…
RyanTheOptimist May 26, 2021
a43d8fb
tests: fixing parameter type passed to is_optional (#16669)
adisuissa May 26, 2021
4832e5c
hot_restart: fix temporary double-counting of cert expiration stats (…
ggreenway May 26, 2021
6ada505
deps: update libcurl to 7.77.0 (#16676)
tonya11en May 26, 2021
a261f33
docs: remove company emails from SECURITY.md (#16683)
ggreenway May 26, 2021
43a8dd6
kill_filter extension: fix use-after-free bug in kill filter and impr…
pradeepcrao May 26, 2021
e8ee43c
Integration tests for local rate limit http filter (#16666)
gokulnair May 27, 2021
b090fae
security: add Apple to the distributor list (#16685)
ggreenway May 27, 2021
0beee9e
DEVELOPER.md: add link to vscode docs (#16537)
daixiang0 May 27, 2021
f481a00
extensions: Add extensions metadata.yaml (#16618)
phlax May 27, 2021
534a102
router: Add do_formatting arg to responseHeaderTransforms (#16529)
ahedberg May 27, 2021
ffcfe04
[fuzz]: fix oss fuzz bug 34650, validate server fuzz input for lb_sub…
chaoqin-li1123 May 27, 2021
f82854f
http: unifying client types (#16606)
alyssawilk May 27, 2021
941318f
config: support extrinsic yaml anchor declarations (#16543)
goaway May 27, 2021
aede3f4
add scaled timeout docs faq (#16271)
saiskee May 27, 2021
00e57e9
tls: future-proof Utility::getErrorDescription (#16553)
davidben May 27, 2021
e5b4a98
dynamic_forward_proxy: adding dns_resolvers to dns_cache used by the …
ntgsx92 May 27, 2021
5c51bf1
http2: Implemented H2 stream level buffer accounting. (#16218)
KBaichoo May 27, 2021
a9b0bf5
retry: remove well_known_names (#16696)
daixiang0 May 27, 2021
e654e4e
health_checkers: remove well_known_names (#16695)
daixiang0 May 27, 2021
5b9b53e
grpc_credentials: remove well_known_names (#16693)
daixiang0 May 27, 2021
728f3eb
wasm: remove well_known_names (#16688)
daixiang0 May 27, 2021
9a7a7ed
api: adjust the behavior of header's present_match (#16627)
soulxu May 27, 2021
9785c3d
add nofips tag to //test/integration/filters:pause_filter_for_quic_li…
pjjw May 27, 2021
2d07447
wasm: fix sending initial metadata in gRPC callouts. (#16502)
PiotrSikora May 27, 2021
18ac9cc
mocks: fix spelling of MockScopeTrackedObject (#16706)
junr03 May 27, 2021
b4a3854
configs: Remove unnecessary connect_timeouts (#16641)
phlax May 27, 2021
db16625
jwt_authn: support fetching jwks in the background (#16298)
qiwzhang May 28, 2021
a659068
dependabot: Updates (#16637)
phlax May 28, 2021
57976d1
extensions: Consolidate extension metadata (#16496)
phlax May 28, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .bazelversion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.7.2
4.1.0
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,3 +75,13 @@ updates:
directory: "/tools/testing"
schedule:
interval: "daily"

- package-ecosystem: "docker"
directory: "/ci"
schedule:
interval: daily

- package-ecosystem: "docker"
directory: "/.devcontainer"
schedule:
interval: daily
4 changes: 4 additions & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,10 @@ extensions/filters/http/oauth2 @rgs1 @derekargueta @snowp
/*/extensions/filters/common/ext_authz @esmet @gsagula @dio
/*/extensions/filters/http/ext_authz @esmet @gsagula @dio
/*/extensions/filters/network/ext_authz @esmet @gsagula @dio
# HTTP Bandwidth Limit
/*/extensions/filters/http/bandwidth_limit @nitgoy @mattklein123 @yanavlasov @tonya11en
# Original IP detection
/*/extensions/http/original_ip_detection/custom_header @rgs1 @alyssawilk @antoniovicente
/*/extensions/http/original_ip_detection/xff @rgs1 @alyssawilk @antoniovicente
# set_metadata extension
/*/extensions/filters/http/set_metadata @aguinet @snowp
1 change: 1 addition & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,7 @@ API can be found [here](api/STYLE.md#adding-an-extension-configuration-to-the-ap
Other changes will likely include

* Editing [source/extensions/extensions_build_config.bzl](source/extensions/extensions_build_config.bzl) to include the new extensions
* Editing [source/extensions/extensions_metadata.yaml](source/extensions/extensions_metadata.yaml) to include metadata for the new extensions
* Editing [docs/root/api-v3/config/config.rst](docs/root/api-v3/config/config.rst) to add area/area
* Adding `docs/root/api-v3/config/area/area.rst` to add a table of contents for the API docs
* Adding `source/extensions/area/well_known_names.h` for registered plugins
Expand Down
2 changes: 2 additions & 0 deletions DEVELOPER.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ Below is a list of additional documentation to aid the development process:

- [Guide to Envoy Bazel rules (managing `BUILD` files)](https://github.com/envoyproxy/envoy/blob/main/bazel/DEVELOPER.md)

- [Guide to setup development environment with Visual Studio Code](https://github.com/envoyproxy/envoy/blob/main/tools/vscode/README.md)

- [Using Docker for building and testing](https://github.com/envoyproxy/envoy/tree/main/ci)

- [Guide to contributing to Envoy](https://github.com/envoyproxy/envoy/blob/main/CONTRIBUTING.md)
Expand Down
39 changes: 20 additions & 19 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -449,22 +449,23 @@ and security team to ensure they still qualify for inclusion on the list.

### Members

| E-mail | Organization | End User | Last Review |
|-------------------------------------------------------|:-------------:|:--------:|:-----------:|
| envoy-security-team@aspenmesh.io | Aspen Mesh | No | 12/19 |
| aws-app-mesh-security@amazon.com | AWS | No | 12/19 |
| security@cilium.io | Cilium | No | 12/19 |
| vulnerabilityreports@cloudfoundry.org | Cloud Foundry | No | 12/19 |
| secalert@datawire.io | Datawire | No | 12/19 |
| google-internal-envoy-security@google.com | Google | No | 12/19 |
| argoprod@us.ibm.com | IBM | No | 12/19 |
| istio-security-vulnerability-reports@googlegroups.com | Istio | No | 12/19 |
| envoy-security@microsoft.com | Microsoft | No | 2/21 |
| secalert@redhat.com | Red Hat | No | 12/19 |
| envoy-security@solo.io | solo.io | No | 12/19 |
| envoy-security@tetrate.io | Tetrate | No | 12/19 |
| security@vmware.com | VMware | No | 12/19 |
| envoy-security@pinterest.com | Pinterest | Yes | 12/19 |
| envoy-security@dropbox.com | Dropbox | Yes | 01/20 |
| envoy-security-predisclosure@stripe.com | Stripe | Yes | 01/20 |
| envoy-security@squareup.com | Square | Yes | 05/21 |
| Organization | End User | Last Review |
|:-------------:|:--------:|:-----------:|
| Aspen Mesh | No | 12/19 |
| AWS | No | 12/19 |
| Cilium | No | 12/19 |
| Cloud Foundry | No | 12/19 |
| Datawire | No | 12/19 |
| Google | No | 12/19 |
| IBM | No | 12/19 |
| Istio | No | 12/19 |
| Microsoft | No | 2/21 |
| Red Hat | No | 12/19 |
| solo.io | No | 12/19 |
| Tetrate | No | 12/19 |
| VMware | No | 12/19 |
| Pinterest | Yes | 12/19 |
| Dropbox | Yes | 01/20 |
| Stripe | Yes | 01/20 |
| Square | Yes | 05/21 |
| Apple | Yes | 05/21 |
2 changes: 2 additions & 0 deletions api/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ proto_library(
"//envoy/extensions/filters/http/admission_control/v3alpha:pkg",
"//envoy/extensions/filters/http/aws_lambda/v3:pkg",
"//envoy/extensions/filters/http/aws_request_signing/v3:pkg",
"//envoy/extensions/filters/http/bandwidth_limit/v3alpha:pkg",
"//envoy/extensions/filters/http/buffer/v3:pkg",
"//envoy/extensions/filters/http/cache/v3alpha:pkg",
"//envoy/extensions/filters/http/cdn_loop/v3alpha:pkg",
Expand Down Expand Up @@ -209,6 +210,7 @@ proto_library(
"//envoy/extensions/filters/http/ratelimit/v3:pkg",
"//envoy/extensions/filters/http/rbac/v3:pkg",
"//envoy/extensions/filters/http/router/v3:pkg",
"//envoy/extensions/filters/http/set_metadata/v3:pkg",
"//envoy/extensions/filters/http/squash/v3:pkg",
"//envoy/extensions/filters/http/tap/v3:pkg",
"//envoy/extensions/filters/http/wasm/v3:pkg",
Expand Down
6 changes: 3 additions & 3 deletions api/STYLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,11 +113,11 @@ organization](#package-organization) above.
To add an extension config to the API, the steps below should be followed:

1. If this is still WiP and subject to breaking changes, use `vNalpha` instead of `vN` in steps
below. Refer to the [Cache filter config](envoy/extensions/filter/http/cache/v3alpha/cache.proto)
below. Refer to the [Cache filter config](envoy/extensions/filters/http/cache/v3alpha/cache.proto)
as an example of `v3alpha`, and the
[Buffer filter config](envoy/extensions/filter/http/buffer/v3/buffer.proto) as an example of `v3`.
[Buffer filter config](envoy/extensions/filters/http/buffer/v3/buffer.proto) as an example of `v3`.
1. Place the v3 extension configuration `.proto` in `api/envoy/extensions`, e.g.
`api/envoy/extensions/filter/http/foobar/v3/foobar.proto` together with an initial BUILD file:
`api/envoy/extensions/filters/http/foobar/v3/foobar.proto` together with an initial BUILD file:
```bazel
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package")

Expand Down
24 changes: 24 additions & 0 deletions api/envoy/config/core/v3/resolver.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
syntax = "proto3";

package envoy.config.core.v3;

import "envoy/config/core/v3/address.proto";

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

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

// [#protodoc-title: Resolver]

// DNS resolver configuration which includes the underlying dns resolver addresses and options.
message DnsResolver {
// A list of dns resolver addresses
// Setting this value causes failure if the
// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
// server startup. Apple's API only allows overriding DNS resolvers via system settings.
repeated Address resolvers = 1 [(validate.rules).repeated = {min_items: 1}];
}
27 changes: 27 additions & 0 deletions api/envoy/config/core/v4alpha/resolver.proto

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

13 changes: 13 additions & 0 deletions api/envoy/config/listener/v3/quic_config.proto
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ import "envoy/config/core/v3/base.proto";
import "envoy/config/core/v3/protocol.proto";

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

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

option java_package = "io.envoyproxy.envoy.config.listener.v3";
option java_outer_classname = "QuicConfigProto";
Expand All @@ -18,6 +20,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: QUIC listener config]

// Configuration specific to the UDP QUIC listener.
// [#next-free-field: 6]
message QuicProtocolOptions {
option (udpa.annotations.versioning).previous_message_type =
"envoy.api.v2.listener.QuicProtocolOptions";
Expand All @@ -35,4 +38,14 @@ message QuicProtocolOptions {
// Runtime flag that controls whether the listener is enabled or not. If not specified, defaults
// to enabled.
core.v3.RuntimeFeatureFlag enabled = 4;

// A multiplier to number of connections which is used to determine how many packets to read per
// event loop. A reasonable number should allow the listener to process enough payload but not
// starve TCP and other UDP sockets and also prevent long event loop duration.
// The default value is 32. This means if there are N QUIC connections, the total number of
// packets to read in each read event will be 32 * N.
// The actual number of packets to read in total by the UDP listener is also
// bound by 6000, regardless of this field or how many connections there are.
google.protobuf.UInt32Value packets_to_read_to_connection_count_ratio = 5
[(validate.rules).uint32 = {gte: 1}];
}
13 changes: 13 additions & 0 deletions api/envoy/config/listener/v4alpha/quic_config.proto

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

4 changes: 2 additions & 2 deletions api/envoy/config/route/v3/route_components.proto
Original file line number Diff line number Diff line change
Expand Up @@ -1885,8 +1885,8 @@ message HeaderMatcher {
// "-1somestring"
type.v3.Int64Range range_match = 6;

// If specified, header match will be performed based on whether the header is in the
// request.
// If specified as true, header match will be performed based on whether the header is in the
// request. If specified as false, header match will be performed based on whether the header is absent.
bool present_match = 7;

// If specified, header match will be performed based on the prefix of the header value.
Expand Down
4 changes: 2 additions & 2 deletions api/envoy/config/route/v4alpha/route_components.proto

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

1 change: 1 addition & 0 deletions api/envoy/extensions/common/dynamic_forward_proxy/v3/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ api_proto_package(
deps = [
"//envoy/config/cluster/v3:pkg",
"//envoy/config/common/dynamic_forward_proxy/v2alpha:pkg",
"//envoy/config/core/v3:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
],
)
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ syntax = "proto3";
package envoy.extensions.common.dynamic_forward_proxy.v3;

import "envoy/config/cluster/v3/cluster.proto";
import "envoy/config/core/v3/resolver.proto";

import "google/protobuf/duration.proto";
import "google/protobuf/wrappers.proto";
Expand All @@ -27,7 +28,7 @@ message DnsCacheCircuitBreakers {

// Configuration for the dynamic forward proxy DNS cache. See the :ref:`architecture overview
// <arch_overview_http_dynamic_forward_proxy>` for more information.
// [#next-free-field: 9]
// [#next-free-field: 10]
message DnsCacheConfig {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.common.dynamic_forward_proxy.v2alpha.DnsCacheConfig";
Expand Down Expand Up @@ -101,4 +102,9 @@ message DnsCacheConfig {
// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
// server startup. Apple' API only uses UDP for DNS resolution.
bool use_tcp_for_dns_lookups = 8;

// DNS resolver configuration
// If specified, DNS cache will perform resolution via the underlying DNS resolvers.
// Otherwise, the default system resolvers (e.g., /etc/resolv.conf) will be used.
config.core.v3.DnsResolver dns_resolver = 9;
}
12 changes: 12 additions & 0 deletions api/envoy/extensions/filters/http/bandwidth_limit/v3alpha/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_format/proto_sync.py.

load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package")

licenses(["notice"]) # Apache 2

api_proto_package(
deps = [
"//envoy/config/core/v3:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
],
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
syntax = "proto3";

package envoy.extensions.filters.http.bandwidth_limit.v3alpha;

import "envoy/config/core/v3/base.proto";

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

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

option java_package = "io.envoyproxy.envoy.extensions.filters.http.bandwidth_limit.v3alpha";
option java_outer_classname = "BandwidthLimitProto";
option java_multiple_files = true;
option (udpa.annotations.file_status).work_in_progress = true;
option (udpa.annotations.file_status).package_version_status = ACTIVE;

// [#protodoc-title: Bandwidth limit]
// Bandwidth limit :ref:`configuration overview <config_http_filters_bandwidth_limit>`.
// [#extension: envoy.filters.http.bandwidth_limit]

// [#next-free-field: 6]
message BandwidthLimit {
// Defines the mode for the bandwidth limit filter.
// Values represent bitmask.
enum EnableMode {
// Filter is disabled.
DISABLED = 0;

// Filter enabled only for incoming traffic.
REQUEST = 1;

// Filter enabled only for outgoing traffic.
RESPONSE = 2;

// Filter enabled for both incoming and outgoing traffic.
REQUEST_AND_RESPONSE = 3;
}

// The human readable prefix to use when emitting stats.
string stat_prefix = 1 [(validate.rules).string = {min_len: 1}];

// The enable mode for the bandwidth limit filter.
// Default is Disabled.
EnableMode enable_mode = 2 [(validate.rules).enum = {defined_only: true}];

// The limit supplied in KiB/s.
//
// .. note::
// It's fine for the limit to be unset for the global configuration since the bandwidth limit
// can be applied at a the virtual host or route level. Thus, the limit must be set for the
// per route configuration otherwise the config will be rejected.
//
// .. note::
// When using per route configuration, the limit becomes unique to that route.
//
google.protobuf.UInt64Value limit_kbps = 3 [(validate.rules).uint64 = {gte: 1}];

// Optional Fill interval in milliseconds for the token refills. Defaults to 50ms.
// It must be at least 20ms to avoid too aggressive refills.
google.protobuf.Duration fill_interval = 4 [(validate.rules).duration = {
lte {seconds: 1}
gte {nanos: 20000000}
}];

// Runtime flag that controls whether the filter is enabled or not. If not specified, defaults
// to enabled.
config.core.v3.RuntimeFeatureFlag runtime_enabled = 5;
}
Loading