diff --git a/BUILD b/BUILD
index dcc62db0d28..7090778b021 100644
--- a/BUILD
+++ b/BUILD
@@ -2213,7 +2213,6 @@ grpc_cc_library(
"//src/core:lib/security/credentials/plugin/plugin_credentials.cc",
"//src/core:lib/security/security_connector/security_connector.cc",
"//src/core:lib/security/transport/client_auth_filter.cc",
- "//src/core:lib/security/transport/legacy_server_auth_filter.cc",
"//src/core:lib/security/transport/secure_endpoint.cc",
"//src/core:lib/security/transport/security_handshaker.cc",
"//src/core:lib/security/transport/server_auth_filter.cc",
@@ -4140,13 +4139,11 @@ grpc_cc_library(
"//src/core:ext/filters/http/client/http_client_filter.cc",
"//src/core:ext/filters/http/http_filters_plugin.cc",
"//src/core:ext/filters/http/message_compress/compression_filter.cc",
- "//src/core:ext/filters/http/message_compress/legacy_compression_filter.cc",
"//src/core:ext/filters/http/server/http_server_filter.cc",
],
hdrs = [
"//src/core:ext/filters/http/client/http_client_filter.h",
"//src/core:ext/filters/http/message_compress/compression_filter.h",
- "//src/core:ext/filters/http/message_compress/legacy_compression_filter.h",
"//src/core:ext/filters/http/server/http_server_filter.h",
],
external_deps = [
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4885629ec34..0540df51eb8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1844,7 +1844,6 @@ add_library(grpc
src/core/ext/filters/http/client_authority_filter.cc
src/core/ext/filters/http/http_filters_plugin.cc
src/core/ext/filters/http/message_compress/compression_filter.cc
- src/core/ext/filters/http/message_compress/legacy_compression_filter.cc
src/core/ext/filters/http/server/http_server_filter.cc
src/core/ext/filters/message_size/message_size_filter.cc
src/core/ext/filters/rbac/rbac_filter.cc
@@ -2478,7 +2477,6 @@ add_library(grpc
src/core/lib/security/security_connector/ssl_utils.cc
src/core/lib/security/security_connector/tls/tls_security_connector.cc
src/core/lib/security/transport/client_auth_filter.cc
- src/core/lib/security/transport/legacy_server_auth_filter.cc
src/core/lib/security/transport/secure_endpoint.cc
src/core/lib/security/transport/security_handshaker.cc
src/core/lib/security/transport/server_auth_filter.cc
@@ -2943,7 +2941,6 @@ add_library(grpc_unsecure
src/core/ext/filters/http/client_authority_filter.cc
src/core/ext/filters/http/http_filters_plugin.cc
src/core/ext/filters/http/message_compress/compression_filter.cc
- src/core/ext/filters/http/message_compress/legacy_compression_filter.cc
src/core/ext/filters/http/server/http_server_filter.cc
src/core/ext/filters/message_size/message_size_filter.cc
src/core/ext/transport/chttp2/client/chttp2_connector.cc
@@ -3207,7 +3204,6 @@ add_library(grpc_unsecure
src/core/lib/security/security_connector/load_system_roots_windows.cc
src/core/lib/security/security_connector/security_connector.cc
src/core/lib/security/transport/client_auth_filter.cc
- src/core/lib/security/transport/legacy_server_auth_filter.cc
src/core/lib/security/transport/secure_endpoint.cc
src/core/lib/security/transport/security_handshaker.cc
src/core/lib/security/transport/server_auth_filter.cc
@@ -5317,7 +5313,6 @@ add_library(grpc_authorization_provider
src/core/lib/security/security_connector/load_system_roots_windows.cc
src/core/lib/security/security_connector/security_connector.cc
src/core/lib/security/transport/client_auth_filter.cc
- src/core/lib/security/transport/legacy_server_auth_filter.cc
src/core/lib/security/transport/secure_endpoint.cc
src/core/lib/security/transport/security_handshaker.cc
src/core/lib/security/transport/server_auth_filter.cc
diff --git a/Makefile b/Makefile
index a6fb5f7ddc3..4db053c028b 100644
--- a/Makefile
+++ b/Makefile
@@ -696,7 +696,6 @@ LIBGRPC_SRC = \
src/core/ext/filters/http/client_authority_filter.cc \
src/core/ext/filters/http/http_filters_plugin.cc \
src/core/ext/filters/http/message_compress/compression_filter.cc \
- src/core/ext/filters/http/message_compress/legacy_compression_filter.cc \
src/core/ext/filters/http/server/http_server_filter.cc \
src/core/ext/filters/message_size/message_size_filter.cc \
src/core/ext/filters/rbac/rbac_filter.cc \
@@ -1375,7 +1374,6 @@ LIBGRPC_SRC = \
src/core/lib/security/security_connector/ssl_utils.cc \
src/core/lib/security/security_connector/tls/tls_security_connector.cc \
src/core/lib/security/transport/client_auth_filter.cc \
- src/core/lib/security/transport/legacy_server_auth_filter.cc \
src/core/lib/security/transport/secure_endpoint.cc \
src/core/lib/security/transport/security_handshaker.cc \
src/core/lib/security/transport/server_auth_filter.cc \
diff --git a/Package.swift b/Package.swift
index 3b4e1e79352..c78a4b5b282 100644
--- a/Package.swift
+++ b/Package.swift
@@ -176,8 +176,6 @@ let package = Package(
"src/core/ext/filters/http/http_filters_plugin.cc",
"src/core/ext/filters/http/message_compress/compression_filter.cc",
"src/core/ext/filters/http/message_compress/compression_filter.h",
- "src/core/ext/filters/http/message_compress/legacy_compression_filter.cc",
- "src/core/ext/filters/http/message_compress/legacy_compression_filter.h",
"src/core/ext/filters/http/server/http_server_filter.cc",
"src/core/ext/filters/http/server/http_server_filter.h",
"src/core/ext/filters/message_size/message_size_filter.cc",
@@ -1742,7 +1740,6 @@ let package = Package(
"src/core/lib/security/security_connector/tls/tls_security_connector.h",
"src/core/lib/security/transport/auth_filters.h",
"src/core/lib/security/transport/client_auth_filter.cc",
- "src/core/lib/security/transport/legacy_server_auth_filter.cc",
"src/core/lib/security/transport/secure_endpoint.cc",
"src/core/lib/security/transport/secure_endpoint.h",
"src/core/lib/security/transport/security_handshaker.cc",
diff --git a/bazel/experiments.bzl b/bazel/experiments.bzl
index 79de231736b..c74a57d1f9e 100644
--- a/bazel/experiments.bzl
+++ b/bazel/experiments.bzl
@@ -47,8 +47,6 @@ EXPERIMENT_ENABLES = {
"unconstrained_max_quota_buffer_size": "unconstrained_max_quota_buffer_size",
"v3_backend_metric_filter": "v3_backend_metric_filter",
"v3_channel_idle_filters": "v3_channel_idle_filters",
- "v3_compression_filter": "v3_compression_filter",
- "v3_server_auth_filter": "v3_server_auth_filter",
"work_serializer_clears_time_cache": "work_serializer_clears_time_cache",
"work_serializer_dispatch": "event_engine_client,work_serializer_dispatch",
}
@@ -64,9 +62,6 @@ EXPERIMENTS = {
"dbg": {
},
"off": {
- "compression_test": [
- "v3_compression_filter",
- ],
"core_end2end_test": [
"promise_based_server_call",
],
@@ -114,9 +109,6 @@ EXPERIMENTS = {
"dbg": {
},
"off": {
- "compression_test": [
- "v3_compression_filter",
- ],
"core_end2end_test": [
"promise_based_server_call",
],
@@ -158,9 +150,6 @@ EXPERIMENTS = {
"dbg": {
},
"off": {
- "compression_test": [
- "v3_compression_filter",
- ],
"core_end2end_test": [
"chaotic_good",
"event_engine_client",
diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml
index bf256ad9009..f5731aa6b66 100644
--- a/build_autogenerated.yaml
+++ b/build_autogenerated.yaml
@@ -249,7 +249,6 @@ libs:
- src/core/ext/filters/http/client/http_client_filter.h
- src/core/ext/filters/http/client_authority_filter.h
- src/core/ext/filters/http/message_compress/compression_filter.h
- - src/core/ext/filters/http/message_compress/legacy_compression_filter.h
- src/core/ext/filters/http/server/http_server_filter.h
- src/core/ext/filters/message_size/message_size_filter.h
- src/core/ext/filters/rbac/rbac_filter.h
@@ -1275,7 +1274,6 @@ libs:
- src/core/ext/filters/http/client_authority_filter.cc
- src/core/ext/filters/http/http_filters_plugin.cc
- src/core/ext/filters/http/message_compress/compression_filter.cc
- - src/core/ext/filters/http/message_compress/legacy_compression_filter.cc
- src/core/ext/filters/http/server/http_server_filter.cc
- src/core/ext/filters/message_size/message_size_filter.cc
- src/core/ext/filters/rbac/rbac_filter.cc
@@ -1909,7 +1907,6 @@ libs:
- src/core/lib/security/security_connector/ssl_utils.cc
- src/core/lib/security/security_connector/tls/tls_security_connector.cc
- src/core/lib/security/transport/client_auth_filter.cc
- - src/core/lib/security/transport/legacy_server_auth_filter.cc
- src/core/lib/security/transport/secure_endpoint.cc
- src/core/lib/security/transport/security_handshaker.cc
- src/core/lib/security/transport/server_auth_filter.cc
@@ -2242,7 +2239,6 @@ libs:
- src/core/ext/filters/http/client/http_client_filter.h
- src/core/ext/filters/http/client_authority_filter.h
- src/core/ext/filters/http/message_compress/compression_filter.h
- - src/core/ext/filters/http/message_compress/legacy_compression_filter.h
- src/core/ext/filters/http/server/http_server_filter.h
- src/core/ext/filters/message_size/message_size_filter.h
- src/core/ext/transport/chttp2/client/chttp2_connector.h
@@ -2739,7 +2735,6 @@ libs:
- src/core/ext/filters/http/client_authority_filter.cc
- src/core/ext/filters/http/http_filters_plugin.cc
- src/core/ext/filters/http/message_compress/compression_filter.cc
- - src/core/ext/filters/http/message_compress/legacy_compression_filter.cc
- src/core/ext/filters/http/server/http_server_filter.cc
- src/core/ext/filters/message_size/message_size_filter.cc
- src/core/ext/transport/chttp2/client/chttp2_connector.cc
@@ -3003,7 +2998,6 @@ libs:
- src/core/lib/security/security_connector/load_system_roots_windows.cc
- src/core/lib/security/security_connector/security_connector.cc
- src/core/lib/security/transport/client_auth_filter.cc
- - src/core/lib/security/transport/legacy_server_auth_filter.cc
- src/core/lib/security/transport/secure_endpoint.cc
- src/core/lib/security/transport/security_handshaker.cc
- src/core/lib/security/transport/server_auth_filter.cc
@@ -4959,7 +4953,6 @@ libs:
- src/core/lib/security/security_connector/load_system_roots_windows.cc
- src/core/lib/security/security_connector/security_connector.cc
- src/core/lib/security/transport/client_auth_filter.cc
- - src/core/lib/security/transport/legacy_server_auth_filter.cc
- src/core/lib/security/transport/secure_endpoint.cc
- src/core/lib/security/transport/security_handshaker.cc
- src/core/lib/security/transport/server_auth_filter.cc
diff --git a/config.m4 b/config.m4
index 0e5da21558c..d2e1dcc8f91 100644
--- a/config.m4
+++ b/config.m4
@@ -71,7 +71,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/filters/http/client_authority_filter.cc \
src/core/ext/filters/http/http_filters_plugin.cc \
src/core/ext/filters/http/message_compress/compression_filter.cc \
- src/core/ext/filters/http/message_compress/legacy_compression_filter.cc \
src/core/ext/filters/http/server/http_server_filter.cc \
src/core/ext/filters/message_size/message_size_filter.cc \
src/core/ext/filters/rbac/rbac_filter.cc \
@@ -750,7 +749,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/security/security_connector/ssl_utils.cc \
src/core/lib/security/security_connector/tls/tls_security_connector.cc \
src/core/lib/security/transport/client_auth_filter.cc \
- src/core/lib/security/transport/legacy_server_auth_filter.cc \
src/core/lib/security/transport/secure_endpoint.cc \
src/core/lib/security/transport/security_handshaker.cc \
src/core/lib/security/transport/server_auth_filter.cc \
diff --git a/config.w32 b/config.w32
index 0dea3cdcccf..59a90ab91d3 100644
--- a/config.w32
+++ b/config.w32
@@ -36,7 +36,6 @@ if (PHP_GRPC != "no") {
"src\\core\\ext\\filters\\http\\client_authority_filter.cc " +
"src\\core\\ext\\filters\\http\\http_filters_plugin.cc " +
"src\\core\\ext\\filters\\http\\message_compress\\compression_filter.cc " +
- "src\\core\\ext\\filters\\http\\message_compress\\legacy_compression_filter.cc " +
"src\\core\\ext\\filters\\http\\server\\http_server_filter.cc " +
"src\\core\\ext\\filters\\message_size\\message_size_filter.cc " +
"src\\core\\ext\\filters\\rbac\\rbac_filter.cc " +
@@ -715,7 +714,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\security\\security_connector\\ssl_utils.cc " +
"src\\core\\lib\\security\\security_connector\\tls\\tls_security_connector.cc " +
"src\\core\\lib\\security\\transport\\client_auth_filter.cc " +
- "src\\core\\lib\\security\\transport\\legacy_server_auth_filter.cc " +
"src\\core\\lib\\security\\transport\\secure_endpoint.cc " +
"src\\core\\lib\\security\\transport\\security_handshaker.cc " +
"src\\core\\lib\\security\\transport\\server_auth_filter.cc " +
diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec
index f34c7dfb704..464e93bf425 100644
--- a/gRPC-C++.podspec
+++ b/gRPC-C++.podspec
@@ -291,7 +291,6 @@ Pod::Spec.new do |s|
'src/core/ext/filters/http/client/http_client_filter.h',
'src/core/ext/filters/http/client_authority_filter.h',
'src/core/ext/filters/http/message_compress/compression_filter.h',
- 'src/core/ext/filters/http/message_compress/legacy_compression_filter.h',
'src/core/ext/filters/http/server/http_server_filter.h',
'src/core/ext/filters/message_size/message_size_filter.h',
'src/core/ext/filters/rbac/rbac_filter.h',
@@ -1576,7 +1575,6 @@ Pod::Spec.new do |s|
'src/core/ext/filters/http/client/http_client_filter.h',
'src/core/ext/filters/http/client_authority_filter.h',
'src/core/ext/filters/http/message_compress/compression_filter.h',
- 'src/core/ext/filters/http/message_compress/legacy_compression_filter.h',
'src/core/ext/filters/http/server/http_server_filter.h',
'src/core/ext/filters/message_size/message_size_filter.h',
'src/core/ext/filters/rbac/rbac_filter.h',
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index cc5573b737d..ee0ac85226a 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -292,8 +292,6 @@ Pod::Spec.new do |s|
'src/core/ext/filters/http/http_filters_plugin.cc',
'src/core/ext/filters/http/message_compress/compression_filter.cc',
'src/core/ext/filters/http/message_compress/compression_filter.h',
- 'src/core/ext/filters/http/message_compress/legacy_compression_filter.cc',
- 'src/core/ext/filters/http/message_compress/legacy_compression_filter.h',
'src/core/ext/filters/http/server/http_server_filter.cc',
'src/core/ext/filters/http/server/http_server_filter.h',
'src/core/ext/filters/message_size/message_size_filter.cc',
@@ -1854,7 +1852,6 @@ Pod::Spec.new do |s|
'src/core/lib/security/security_connector/tls/tls_security_connector.h',
'src/core/lib/security/transport/auth_filters.h',
'src/core/lib/security/transport/client_auth_filter.cc',
- 'src/core/lib/security/transport/legacy_server_auth_filter.cc',
'src/core/lib/security/transport/secure_endpoint.cc',
'src/core/lib/security/transport/secure_endpoint.h',
'src/core/lib/security/transport/security_handshaker.cc',
@@ -2379,7 +2376,6 @@ Pod::Spec.new do |s|
'src/core/ext/filters/http/client/http_client_filter.h',
'src/core/ext/filters/http/client_authority_filter.h',
'src/core/ext/filters/http/message_compress/compression_filter.h',
- 'src/core/ext/filters/http/message_compress/legacy_compression_filter.h',
'src/core/ext/filters/http/server/http_server_filter.h',
'src/core/ext/filters/message_size/message_size_filter.h',
'src/core/ext/filters/rbac/rbac_filter.h',
diff --git a/grpc.gemspec b/grpc.gemspec
index 5a98949d12f..68bc87e6dfd 100644
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -182,8 +182,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/filters/http/http_filters_plugin.cc )
s.files += %w( src/core/ext/filters/http/message_compress/compression_filter.cc )
s.files += %w( src/core/ext/filters/http/message_compress/compression_filter.h )
- s.files += %w( src/core/ext/filters/http/message_compress/legacy_compression_filter.cc )
- s.files += %w( src/core/ext/filters/http/message_compress/legacy_compression_filter.h )
s.files += %w( src/core/ext/filters/http/server/http_server_filter.cc )
s.files += %w( src/core/ext/filters/http/server/http_server_filter.h )
s.files += %w( src/core/ext/filters/message_size/message_size_filter.cc )
@@ -1744,7 +1742,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/security/security_connector/tls/tls_security_connector.h )
s.files += %w( src/core/lib/security/transport/auth_filters.h )
s.files += %w( src/core/lib/security/transport/client_auth_filter.cc )
- s.files += %w( src/core/lib/security/transport/legacy_server_auth_filter.cc )
s.files += %w( src/core/lib/security/transport/secure_endpoint.cc )
s.files += %w( src/core/lib/security/transport/secure_endpoint.h )
s.files += %w( src/core/lib/security/transport/security_handshaker.cc )
diff --git a/package.xml b/package.xml
index d1634f03f43..f7d2d5fd26d 100644
--- a/package.xml
+++ b/package.xml
@@ -164,8 +164,6 @@
-
-
@@ -1726,7 +1724,6 @@
-
diff --git a/src/core/ext/filters/http/http_filters_plugin.cc b/src/core/ext/filters/http/http_filters_plugin.cc
index 52706560c75..b662737ebae 100644
--- a/src/core/ext/filters/http/http_filters_plugin.cc
+++ b/src/core/ext/filters/http/http_filters_plugin.cc
@@ -22,7 +22,6 @@
#include "src/core/ext/filters/http/client/http_client_filter.h"
#include "src/core/ext/filters/http/message_compress/compression_filter.h"
-#include "src/core/ext/filters/http/message_compress/legacy_compression_filter.h"
#include "src/core/ext/filters/http/server/http_server_filter.h"
#include "src/core/ext/filters/message_size/message_size_filter.h"
#include "src/core/lib/channel/channel_args.h"
@@ -40,40 +39,21 @@ bool IsBuildingHttpLikeTransport(const ChannelArgs& args) {
} // namespace
void RegisterHttpFilters(CoreConfiguration::Builder* builder) {
- if (IsV3CompressionFilterEnabled()) {
- builder->channel_init()
- ->RegisterFilter(GRPC_CLIENT_SUBCHANNEL)
- .If(IsBuildingHttpLikeTransport)
- .After()
- .After();
- builder->channel_init()
- ->RegisterFilter(GRPC_CLIENT_DIRECT_CHANNEL)
- .If(IsBuildingHttpLikeTransport)
- .After()
- .After();
- builder->channel_init()
- ->RegisterFilter(GRPC_SERVER_CHANNEL)
- .If(IsBuildingHttpLikeTransport)
- .After()
- .After();
- } else {
- builder->channel_init()
- ->RegisterFilter(GRPC_CLIENT_SUBCHANNEL)
- .If(IsBuildingHttpLikeTransport)
- .After()
- .After();
- builder->channel_init()
- ->RegisterFilter(
- GRPC_CLIENT_DIRECT_CHANNEL)
- .If(IsBuildingHttpLikeTransport)
- .After()
- .After();
- builder->channel_init()
- ->RegisterFilter(GRPC_SERVER_CHANNEL)
- .If(IsBuildingHttpLikeTransport)
- .After()
- .After();
- }
+ builder->channel_init()
+ ->RegisterFilter(GRPC_CLIENT_SUBCHANNEL)
+ .If(IsBuildingHttpLikeTransport)
+ .After()
+ .After();
+ builder->channel_init()
+ ->RegisterFilter(GRPC_CLIENT_DIRECT_CHANNEL)
+ .If(IsBuildingHttpLikeTransport)
+ .After()
+ .After();
+ builder->channel_init()
+ ->RegisterFilter(GRPC_SERVER_CHANNEL)
+ .If(IsBuildingHttpLikeTransport)
+ .After()
+ .After();
builder->channel_init()
->RegisterFilter(GRPC_CLIENT_SUBCHANNEL)
.If(IsBuildingHttpLikeTransport)
diff --git a/src/core/ext/filters/http/message_compress/legacy_compression_filter.cc b/src/core/ext/filters/http/message_compress/legacy_compression_filter.cc
deleted file mode 100644
index 9fe6746a48d..00000000000
--- a/src/core/ext/filters/http/message_compress/legacy_compression_filter.cc
+++ /dev/null
@@ -1,328 +0,0 @@
-// Copyright 2022 gRPC authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include
-
-#include "src/core/ext/filters/http/message_compress/legacy_compression_filter.h"
-
-#include
-
-#include
-#include
-#include
-
-#include "absl/status/status.h"
-#include "absl/strings/str_cat.h"
-#include "absl/strings/str_format.h"
-#include "absl/types/optional.h"
-
-#include
-#include
-#include
-#include
-#include
-
-#include "src/core/ext/filters/message_size/message_size_filter.h"
-#include "src/core/lib/channel/call_tracer.h"
-#include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/channel/context.h"
-#include "src/core/lib/channel/promise_based_filter.h"
-#include "src/core/lib/compression/compression_internal.h"
-#include "src/core/lib/compression/message_compress.h"
-#include "src/core/lib/debug/trace.h"
-#include "src/core/lib/promise/activity.h"
-#include "src/core/lib/promise/context.h"
-#include "src/core/lib/promise/latch.h"
-#include "src/core/lib/promise/pipe.h"
-#include "src/core/lib/promise/prioritized_race.h"
-#include "src/core/lib/resource_quota/arena.h"
-#include "src/core/lib/slice/slice_buffer.h"
-#include "src/core/lib/surface/call.h"
-#include "src/core/lib/surface/call_trace.h"
-#include "src/core/lib/transport/metadata_batch.h"
-#include "src/core/lib/transport/transport.h"
-
-namespace grpc_core {
-
-const grpc_channel_filter LegacyClientCompressionFilter::kFilter =
- MakePromiseBasedFilter<
- LegacyClientCompressionFilter, FilterEndpoint::kClient,
- kFilterExaminesServerInitialMetadata | kFilterExaminesInboundMessages |
- kFilterExaminesOutboundMessages>("compression");
-const grpc_channel_filter LegacyServerCompressionFilter::kFilter =
- MakePromiseBasedFilter<
- LegacyServerCompressionFilter, FilterEndpoint::kServer,
- kFilterExaminesServerInitialMetadata | kFilterExaminesInboundMessages |
- kFilterExaminesOutboundMessages>("compression");
-
-absl::StatusOr
-LegacyClientCompressionFilter::Create(const ChannelArgs& args,
- ChannelFilter::Args) {
- return LegacyClientCompressionFilter(args);
-}
-
-absl::StatusOr
-LegacyServerCompressionFilter::Create(const ChannelArgs& args,
- ChannelFilter::Args) {
- return LegacyServerCompressionFilter(args);
-}
-
-LegacyCompressionFilter::LegacyCompressionFilter(const ChannelArgs& args)
- : max_recv_size_(GetMaxRecvSizeFromChannelArgs(args)),
- message_size_service_config_parser_index_(
- MessageSizeParser::ParserIndex()),
- default_compression_algorithm_(
- DefaultCompressionAlgorithmFromChannelArgs(args).value_or(
- GRPC_COMPRESS_NONE)),
- enabled_compression_algorithms_(
- CompressionAlgorithmSet::FromChannelArgs(args)),
- enable_compression_(
- args.GetBool(GRPC_ARG_ENABLE_PER_MESSAGE_COMPRESSION).value_or(true)),
- enable_decompression_(
- args.GetBool(GRPC_ARG_ENABLE_PER_MESSAGE_DECOMPRESSION)
- .value_or(true)) {
- // Make sure the default is enabled.
- if (!enabled_compression_algorithms_.IsSet(default_compression_algorithm_)) {
- const char* name;
- if (!grpc_compression_algorithm_name(default_compression_algorithm_,
- &name)) {
- name = "";
- }
- gpr_log(GPR_ERROR,
- "default compression algorithm %s not enabled: switching to none",
- name);
- default_compression_algorithm_ = GRPC_COMPRESS_NONE;
- }
-}
-
-MessageHandle LegacyCompressionFilter::CompressMessage(
- MessageHandle message, grpc_compression_algorithm algorithm) const {
- if (GRPC_TRACE_FLAG_ENABLED(grpc_compression_trace)) {
- gpr_log(GPR_INFO, "CompressMessage: len=%" PRIdPTR " alg=%d flags=%d",
- message->payload()->Length(), algorithm, message->flags());
- }
- auto* call_context = GetContext();
- auto* call_tracer = static_cast(
- call_context[GRPC_CONTEXT_CALL_TRACER].value);
- if (call_tracer != nullptr) {
- call_tracer->RecordSendMessage(*message->payload());
- }
- // Check if we're allowed to compress this message
- // (apps might want to disable compression for certain messages to avoid
- // crime/beast like vulns).
- uint32_t& flags = message->mutable_flags();
- if (algorithm == GRPC_COMPRESS_NONE || !enable_compression_ ||
- (flags & (GRPC_WRITE_NO_COMPRESS | GRPC_WRITE_INTERNAL_COMPRESS))) {
- return message;
- }
- // Try to compress the payload.
- SliceBuffer tmp;
- SliceBuffer* payload = message->payload();
- bool did_compress = grpc_msg_compress(algorithm, payload->c_slice_buffer(),
- tmp.c_slice_buffer());
- // If we achieved compression send it as compressed, otherwise send it as (to
- // avoid spending cycles on the receiver decompressing).
- if (did_compress) {
- if (GRPC_TRACE_FLAG_ENABLED(grpc_compression_trace)) {
- const char* algo_name;
- const size_t before_size = payload->Length();
- const size_t after_size = tmp.Length();
- const float savings_ratio = 1.0f - static_cast(after_size) /
- static_cast(before_size);
- GPR_ASSERT(grpc_compression_algorithm_name(algorithm, &algo_name));
- gpr_log(GPR_INFO,
- "Compressed[%s] %" PRIuPTR " bytes vs. %" PRIuPTR
- " bytes (%.2f%% savings)",
- algo_name, before_size, after_size, 100 * savings_ratio);
- }
- tmp.Swap(payload);
- flags |= GRPC_WRITE_INTERNAL_COMPRESS;
- if (call_tracer != nullptr) {
- call_tracer->RecordSendCompressedMessage(*message->payload());
- }
- } else {
- if (GRPC_TRACE_FLAG_ENABLED(grpc_compression_trace)) {
- const char* algo_name;
- GPR_ASSERT(grpc_compression_algorithm_name(algorithm, &algo_name));
- gpr_log(GPR_INFO,
- "Algorithm '%s' enabled but decided not to compress. Input size: "
- "%" PRIuPTR,
- algo_name, payload->Length());
- }
- }
- return message;
-}
-
-absl::StatusOr LegacyCompressionFilter::DecompressMessage(
- bool is_client, MessageHandle message, DecompressArgs args) const {
- if (GRPC_TRACE_FLAG_ENABLED(grpc_compression_trace)) {
- gpr_log(GPR_INFO, "DecompressMessage: len=%" PRIdPTR " max=%d alg=%d",
- message->payload()->Length(),
- args.max_recv_message_length.value_or(-1), args.algorithm);
- }
- auto* call_context = GetContext();
- auto* call_tracer = static_cast(
- call_context[GRPC_CONTEXT_CALL_TRACER].value);
- if (call_tracer != nullptr) {
- call_tracer->RecordReceivedMessage(*message->payload());
- }
- // Check max message length.
- if (args.max_recv_message_length.has_value() &&
- message->payload()->Length() >
- static_cast(*args.max_recv_message_length)) {
- return absl::ResourceExhaustedError(absl::StrFormat(
- "%s: Received message larger than max (%u vs. %d)",
- is_client ? "CLIENT" : "SERVER", message->payload()->Length(),
- *args.max_recv_message_length));
- }
- // Check if decompression is enabled (if not, we can just pass the message
- // up).
- if (!enable_decompression_ ||
- (message->flags() & GRPC_WRITE_INTERNAL_COMPRESS) == 0) {
- return std::move(message);
- }
- // Try to decompress the payload.
- SliceBuffer decompressed_slices;
- if (grpc_msg_decompress(args.algorithm, message->payload()->c_slice_buffer(),
- decompressed_slices.c_slice_buffer()) == 0) {
- return absl::InternalError(
- absl::StrCat("Unexpected error decompressing data for algorithm ",
- CompressionAlgorithmAsString(args.algorithm)));
- }
- // Swap the decompressed slices into the message.
- message->payload()->Swap(&decompressed_slices);
- message->mutable_flags() &= ~GRPC_WRITE_INTERNAL_COMPRESS;
- message->mutable_flags() |= GRPC_WRITE_INTERNAL_TEST_ONLY_WAS_COMPRESSED;
- if (call_tracer != nullptr) {
- call_tracer->RecordReceivedDecompressedMessage(*message->payload());
- }
- return std::move(message);
-}
-
-grpc_compression_algorithm LegacyCompressionFilter::HandleOutgoingMetadata(
- grpc_metadata_batch& outgoing_metadata) {
- const auto algorithm = outgoing_metadata.Take(GrpcInternalEncodingRequest())
- .value_or(default_compression_algorithm());
- // Convey supported compression algorithms.
- outgoing_metadata.Set(GrpcAcceptEncodingMetadata(),
- enabled_compression_algorithms());
- if (algorithm != GRPC_COMPRESS_NONE) {
- outgoing_metadata.Set(GrpcEncodingMetadata(), algorithm);
- }
- return algorithm;
-}
-
-LegacyCompressionFilter::DecompressArgs
-LegacyCompressionFilter::HandleIncomingMetadata(
- const grpc_metadata_batch& incoming_metadata) {
- // Configure max receive size.
- auto max_recv_message_length = max_recv_size_;
- const MessageSizeParsedConfig* limits =
- MessageSizeParsedConfig::GetFromCallContext(
- GetContext(),
- message_size_service_config_parser_index_);
- if (limits != nullptr && limits->max_recv_size().has_value() &&
- (!max_recv_message_length.has_value() ||
- *limits->max_recv_size() < *max_recv_message_length)) {
- max_recv_message_length = *limits->max_recv_size();
- }
- return DecompressArgs{incoming_metadata.get(GrpcEncodingMetadata())
- .value_or(GRPC_COMPRESS_NONE),
- max_recv_message_length};
-}
-
-ArenaPromise
-LegacyClientCompressionFilter::MakeCallPromise(
- CallArgs call_args, NextPromiseFactory next_promise_factory) {
- auto compression_algorithm =
- HandleOutgoingMetadata(*call_args.client_initial_metadata);
- call_args.client_to_server_messages->InterceptAndMap(
- [compression_algorithm,
- this](MessageHandle message) -> absl::optional {
- return CompressMessage(std::move(message), compression_algorithm);
- });
- auto* decompress_args = GetContext()->New(
- DecompressArgs{GRPC_COMPRESS_ALGORITHMS_COUNT, absl::nullopt});
- auto* decompress_err =
- GetContext()->New>();
- call_args.server_initial_metadata->InterceptAndMap(
- [decompress_args, this](ServerMetadataHandle server_initial_metadata)
- -> absl::optional {
- if (server_initial_metadata == nullptr) return absl::nullopt;
- *decompress_args = HandleIncomingMetadata(*server_initial_metadata);
- return std::move(server_initial_metadata);
- });
- call_args.server_to_client_messages->InterceptAndMap(
- [decompress_err, decompress_args,
- this](MessageHandle message) -> absl::optional {
- auto r = DecompressMessage(/*is_client=*/true, std::move(message),
- *decompress_args);
- if (!r.ok()) {
- decompress_err->Set(ServerMetadataFromStatus(r.status()));
- return absl::nullopt;
- }
- return std::move(*r);
- });
- // Run the next filter, and race it with getting an error from decompression.
- return PrioritizedRace(decompress_err->Wait(),
- next_promise_factory(std::move(call_args)));
-}
-
-ArenaPromise
-LegacyServerCompressionFilter::MakeCallPromise(
- CallArgs call_args, NextPromiseFactory next_promise_factory) {
- auto decompress_args =
- HandleIncomingMetadata(*call_args.client_initial_metadata);
- auto* decompress_err =
- GetContext()->New>();
- call_args.client_to_server_messages->InterceptAndMap(
- [decompress_err, decompress_args,
- this](MessageHandle message) -> absl::optional {
- auto r = DecompressMessage(/*is_client=*/false, std::move(message),
- decompress_args);
- if (grpc_call_trace.enabled()) {
- gpr_log(GPR_DEBUG, "%s[compression] DecompressMessage returned %s",
- GetContext()->DebugTag().c_str(),
- r.status().ToString().c_str());
- }
- if (!r.ok()) {
- decompress_err->Set(ServerMetadataFromStatus(r.status()));
- return absl::nullopt;
- }
- return std::move(*r);
- });
- auto* compression_algorithm =
- GetContext()->New();
- call_args.server_initial_metadata->InterceptAndMap(
- [this, compression_algorithm](ServerMetadataHandle md) {
- if (grpc_call_trace.enabled()) {
- gpr_log(GPR_INFO, "%s[compression] Write metadata",
- GetContext()->DebugTag().c_str());
- }
- // Find the compression algorithm.
- *compression_algorithm = HandleOutgoingMetadata(*md);
- return md;
- });
- call_args.server_to_client_messages->InterceptAndMap(
- [compression_algorithm,
- this](MessageHandle message) -> absl::optional {
- return CompressMessage(std::move(message), *compression_algorithm);
- });
- // Run the next filter, and race it with getting an error from decompression.
- return PrioritizedRace(decompress_err->Wait(),
- next_promise_factory(std::move(call_args)));
-}
-
-} // namespace grpc_core
diff --git a/src/core/ext/filters/http/message_compress/legacy_compression_filter.h b/src/core/ext/filters/http/message_compress/legacy_compression_filter.h
deleted file mode 100644
index f2212e2d61c..00000000000
--- a/src/core/ext/filters/http/message_compress/legacy_compression_filter.h
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-//
-// Copyright 2020 gRPC authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-
-#ifndef GRPC_SRC_CORE_EXT_FILTERS_HTTP_MESSAGE_COMPRESS_LEGACY_COMPRESSION_FILTER_H
-#define GRPC_SRC_CORE_EXT_FILTERS_HTTP_MESSAGE_COMPRESS_LEGACY_COMPRESSION_FILTER_H
-
-#include
-
-#include
-#include
-
-#include "absl/status/statusor.h"
-#include "absl/types/optional.h"
-
-#include
-
-#include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/channel/channel_fwd.h"
-#include "src/core/lib/channel/promise_based_filter.h"
-#include "src/core/lib/compression/compression_internal.h"
-#include "src/core/lib/promise/arena_promise.h"
-#include "src/core/lib/transport/metadata_batch.h"
-#include "src/core/lib/transport/transport.h"
-
-namespace grpc_core {
-
-/// Compression filter for messages.
-///
-/// See for the available compression settings.
-///
-/// Compression settings may come from:
-/// - Channel configuration, as established at channel creation time.
-/// - The metadata accompanying the outgoing data to be compressed. This is
-/// taken as a request only. We may choose not to honor it. The metadata key
-/// is given by \a GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY.
-///
-/// Compression can be disabled for concrete messages (for instance in order to
-/// prevent CRIME/BEAST type attacks) by having the GRPC_WRITE_NO_COMPRESS set
-/// in the MessageHandle flags.
-///
-/// The attempted compression mechanism is added to the resulting initial
-/// metadata under the 'grpc-encoding' key.
-///
-/// If compression is actually performed, the MessageHandle's flag is modified
-/// to incorporate GRPC_WRITE_INTERNAL_COMPRESS. Otherwise, and regardless of
-/// the aforementioned 'grpc-encoding' metadata value, data will pass through
-/// uncompressed.
-
-class LegacyCompressionFilter : public ChannelFilter {
- protected:
- struct DecompressArgs {
- grpc_compression_algorithm algorithm;
- absl::optional max_recv_message_length;
- };
-
- explicit LegacyCompressionFilter(const ChannelArgs& args);
-
- grpc_compression_algorithm default_compression_algorithm() const {
- return default_compression_algorithm_;
- }
-
- CompressionAlgorithmSet enabled_compression_algorithms() const {
- return enabled_compression_algorithms_;
- }
-
- grpc_compression_algorithm HandleOutgoingMetadata(
- grpc_metadata_batch& outgoing_metadata);
- DecompressArgs HandleIncomingMetadata(
- const grpc_metadata_batch& incoming_metadata);
-
- // Compress one message synchronously.
- MessageHandle CompressMessage(MessageHandle message,
- grpc_compression_algorithm algorithm) const;
- // Decompress one message synchronously.
- absl::StatusOr DecompressMessage(bool is_client,
- MessageHandle message,
- DecompressArgs args) const;
-
- private:
- // Max receive message length, if set.
- absl::optional max_recv_size_;
- size_t message_size_service_config_parser_index_;
- // The default, channel-level, compression algorithm.
- grpc_compression_algorithm default_compression_algorithm_;
- // Enabled compression algorithms.
- CompressionAlgorithmSet enabled_compression_algorithms_;
- // Is compression enabled?
- bool enable_compression_;
- // Is decompression enabled?
- bool enable_decompression_;
-};
-
-class LegacyClientCompressionFilter final : public LegacyCompressionFilter {
- public:
- static const grpc_channel_filter kFilter;
-
- static absl::StatusOr Create(
- const ChannelArgs& args, ChannelFilter::Args filter_args);
-
- // Construct a promise for one call.
- ArenaPromise MakeCallPromise(
- CallArgs call_args, NextPromiseFactory next_promise_factory) override;
-
- private:
- using LegacyCompressionFilter::LegacyCompressionFilter;
-};
-
-class LegacyServerCompressionFilter final : public LegacyCompressionFilter {
- public:
- static const grpc_channel_filter kFilter;
-
- static absl::StatusOr Create(
- const ChannelArgs& args, ChannelFilter::Args filter_args);
-
- // Construct a promise for one call.
- ArenaPromise MakeCallPromise(
- CallArgs call_args, NextPromiseFactory next_promise_factory) override;
-
- private:
- using LegacyCompressionFilter::LegacyCompressionFilter;
-};
-
-} // namespace grpc_core
-
-#endif // GRPC_SRC_CORE_EXT_FILTERS_HTTP_MESSAGE_COMPRESS_LEGACY_COMPRESSION_FILTER_H
diff --git a/src/core/lib/experiments/experiments.cc b/src/core/lib/experiments/experiments.cc
index 41307cf8843..6291a17bfd9 100644
--- a/src/core/lib/experiments/experiments.cc
+++ b/src/core/lib/experiments/experiments.cc
@@ -142,12 +142,6 @@ const char* const additional_constraints_v3_backend_metric_filter = "{}";
const char* const description_v3_channel_idle_filters =
"Use the v3 filter API version of the idle filters.";
const char* const additional_constraints_v3_channel_idle_filters = "{}";
-const char* const description_v3_compression_filter =
- "Use the compression filter utilizing the v3 filter api";
-const char* const additional_constraints_v3_compression_filter = "{}";
-const char* const description_v3_server_auth_filter =
- "Use the server auth filter utilizing the v3 filter api";
-const char* const additional_constraints_v3_server_auth_filter = "{}";
const char* const description_work_serializer_clears_time_cache =
"Have the work serializer clear the time cache when it dispatches work.";
const char* const additional_constraints_work_serializer_clears_time_cache =
@@ -241,10 +235,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
additional_constraints_v3_backend_metric_filter, nullptr, 0, false, true},
{"v3_channel_idle_filters", description_v3_channel_idle_filters,
additional_constraints_v3_channel_idle_filters, nullptr, 0, false, true},
- {"v3_compression_filter", description_v3_compression_filter,
- additional_constraints_v3_compression_filter, nullptr, 0, false, true},
- {"v3_server_auth_filter", description_v3_server_auth_filter,
- additional_constraints_v3_server_auth_filter, nullptr, 0, false, true},
{"work_serializer_clears_time_cache",
description_work_serializer_clears_time_cache,
additional_constraints_work_serializer_clears_time_cache, nullptr, 0, true,
@@ -376,12 +366,6 @@ const char* const additional_constraints_v3_backend_metric_filter = "{}";
const char* const description_v3_channel_idle_filters =
"Use the v3 filter API version of the idle filters.";
const char* const additional_constraints_v3_channel_idle_filters = "{}";
-const char* const description_v3_compression_filter =
- "Use the compression filter utilizing the v3 filter api";
-const char* const additional_constraints_v3_compression_filter = "{}";
-const char* const description_v3_server_auth_filter =
- "Use the server auth filter utilizing the v3 filter api";
-const char* const additional_constraints_v3_server_auth_filter = "{}";
const char* const description_work_serializer_clears_time_cache =
"Have the work serializer clear the time cache when it dispatches work.";
const char* const additional_constraints_work_serializer_clears_time_cache =
@@ -475,10 +459,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
additional_constraints_v3_backend_metric_filter, nullptr, 0, false, true},
{"v3_channel_idle_filters", description_v3_channel_idle_filters,
additional_constraints_v3_channel_idle_filters, nullptr, 0, false, true},
- {"v3_compression_filter", description_v3_compression_filter,
- additional_constraints_v3_compression_filter, nullptr, 0, false, true},
- {"v3_server_auth_filter", description_v3_server_auth_filter,
- additional_constraints_v3_server_auth_filter, nullptr, 0, false, true},
{"work_serializer_clears_time_cache",
description_work_serializer_clears_time_cache,
additional_constraints_work_serializer_clears_time_cache, nullptr, 0, true,
@@ -610,12 +590,6 @@ const char* const additional_constraints_v3_backend_metric_filter = "{}";
const char* const description_v3_channel_idle_filters =
"Use the v3 filter API version of the idle filters.";
const char* const additional_constraints_v3_channel_idle_filters = "{}";
-const char* const description_v3_compression_filter =
- "Use the compression filter utilizing the v3 filter api";
-const char* const additional_constraints_v3_compression_filter = "{}";
-const char* const description_v3_server_auth_filter =
- "Use the server auth filter utilizing the v3 filter api";
-const char* const additional_constraints_v3_server_auth_filter = "{}";
const char* const description_work_serializer_clears_time_cache =
"Have the work serializer clear the time cache when it dispatches work.";
const char* const additional_constraints_work_serializer_clears_time_cache =
@@ -709,10 +683,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
additional_constraints_v3_backend_metric_filter, nullptr, 0, false, true},
{"v3_channel_idle_filters", description_v3_channel_idle_filters,
additional_constraints_v3_channel_idle_filters, nullptr, 0, false, true},
- {"v3_compression_filter", description_v3_compression_filter,
- additional_constraints_v3_compression_filter, nullptr, 0, false, true},
- {"v3_server_auth_filter", description_v3_server_auth_filter,
- additional_constraints_v3_server_auth_filter, nullptr, 0, false, true},
{"work_serializer_clears_time_cache",
description_work_serializer_clears_time_cache,
additional_constraints_work_serializer_clears_time_cache, nullptr, 0, true,
diff --git a/src/core/lib/experiments/experiments.h b/src/core/lib/experiments/experiments.h
index 90e66aee6f5..7cc6dc46c38 100644
--- a/src/core/lib/experiments/experiments.h
+++ b/src/core/lib/experiments/experiments.h
@@ -101,8 +101,6 @@ inline bool IsTraceRecordCallopsEnabled() { return false; }
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
inline bool IsV3BackendMetricFilterEnabled() { return false; }
inline bool IsV3ChannelIdleFiltersEnabled() { return false; }
-inline bool IsV3CompressionFilterEnabled() { return false; }
-inline bool IsV3ServerAuthFilterEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
inline bool IsWorkSerializerClearsTimeCacheEnabled() { return true; }
inline bool IsWorkSerializerDispatchEnabled() { return false; }
@@ -153,8 +151,6 @@ inline bool IsTraceRecordCallopsEnabled() { return false; }
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
inline bool IsV3BackendMetricFilterEnabled() { return false; }
inline bool IsV3ChannelIdleFiltersEnabled() { return false; }
-inline bool IsV3CompressionFilterEnabled() { return false; }
-inline bool IsV3ServerAuthFilterEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
inline bool IsWorkSerializerClearsTimeCacheEnabled() { return true; }
inline bool IsWorkSerializerDispatchEnabled() { return false; }
@@ -206,8 +202,6 @@ inline bool IsTraceRecordCallopsEnabled() { return false; }
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
inline bool IsV3BackendMetricFilterEnabled() { return false; }
inline bool IsV3ChannelIdleFiltersEnabled() { return false; }
-inline bool IsV3CompressionFilterEnabled() { return false; }
-inline bool IsV3ServerAuthFilterEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
inline bool IsWorkSerializerClearsTimeCacheEnabled() { return true; }
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_DISPATCH
@@ -246,8 +240,6 @@ enum ExperimentIds {
kExperimentIdUnconstrainedMaxQuotaBufferSize,
kExperimentIdV3BackendMetricFilter,
kExperimentIdV3ChannelIdleFilters,
- kExperimentIdV3CompressionFilter,
- kExperimentIdV3ServerAuthFilter,
kExperimentIdWorkSerializerClearsTimeCache,
kExperimentIdWorkSerializerDispatch,
kNumExperiments
@@ -372,14 +364,6 @@ inline bool IsV3BackendMetricFilterEnabled() {
inline bool IsV3ChannelIdleFiltersEnabled() {
return IsExperimentEnabled(kExperimentIdV3ChannelIdleFilters);
}
-#define GRPC_EXPERIMENT_IS_INCLUDED_V3_COMPRESSION_FILTER
-inline bool IsV3CompressionFilterEnabled() {
- return IsExperimentEnabled(kExperimentIdV3CompressionFilter);
-}
-#define GRPC_EXPERIMENT_IS_INCLUDED_V3_SERVER_AUTH_FILTER
-inline bool IsV3ServerAuthFilterEnabled() {
- return IsExperimentEnabled(kExperimentIdV3ServerAuthFilter);
-}
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
inline bool IsWorkSerializerClearsTimeCacheEnabled() {
return IsExperimentEnabled(kExperimentIdWorkSerializerClearsTimeCache);
diff --git a/src/core/lib/experiments/experiments.yaml b/src/core/lib/experiments/experiments.yaml
index 1a9610018f0..bb6daa9e939 100644
--- a/src/core/lib/experiments/experiments.yaml
+++ b/src/core/lib/experiments/experiments.yaml
@@ -235,25 +235,13 @@
- name: v3_channel_idle_filters
description:
Use the v3 filter API version of the idle filters.
- expiry: 2024/04/04
- owner: ctiller@google.com
- test_tags: []
-- name: v3_compression_filter
- description:
- Use the compression filter utilizing the v3 filter api
- expiry: 2024/04/04
- owner: ctiller@google.com
- test_tags: ["compression_test"]
-- name: v3_server_auth_filter
- description:
- Use the server auth filter utilizing the v3 filter api
- expiry: 2024/04/04
+ expiry: 2024/07/04
owner: ctiller@google.com
test_tags: []
- name: work_serializer_clears_time_cache
description:
Have the work serializer clear the time cache when it dispatches work.
- expiry: 2024/04/01
+ expiry: 2024/07/01
owner: ctiller@google.com
test_tags: []
- name: work_serializer_dispatch
diff --git a/src/core/lib/security/transport/auth_filters.h b/src/core/lib/security/transport/auth_filters.h
index 37b4e5bf0c4..7b7d1ab9d25 100644
--- a/src/core/lib/security/transport/auth_filters.h
+++ b/src/core/lib/security/transport/auth_filters.h
@@ -62,31 +62,6 @@ class ClientAuthFilter final : public ChannelFilter {
grpc_call_credentials::GetRequestMetadataArgs args_;
};
-class LegacyServerAuthFilter final : public ChannelFilter {
- public:
- static const grpc_channel_filter kFilter;
-
- static absl::StatusOr Create(const ChannelArgs& args,
- ChannelFilter::Args);
-
- // Construct a promise for one call.
- ArenaPromise MakeCallPromise(
- CallArgs call_args, NextPromiseFactory next_promise_factory) override;
-
- private:
- LegacyServerAuthFilter(
- RefCountedPtr server_credentials,
- RefCountedPtr auth_context);
-
- class RunApplicationCode;
-
- ArenaPromise> GetCallCredsMetadata(
- CallArgs call_args);
-
- RefCountedPtr server_credentials_;
- RefCountedPtr auth_context_;
-};
-
class ServerAuthFilter final : public ImplementChannelFilter {
private:
ServerAuthFilter(RefCountedPtr server_credentials,
diff --git a/src/core/lib/security/transport/legacy_server_auth_filter.cc b/src/core/lib/security/transport/legacy_server_auth_filter.cc
deleted file mode 100644
index acb10ba0335..00000000000
--- a/src/core/lib/security/transport/legacy_server_auth_filter.cc
+++ /dev/null
@@ -1,244 +0,0 @@
-//
-//
-// Copyright 2015 gRPC authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "absl/status/status.h"
-#include "absl/status/statusor.h"
-
-#include
-#include
-#include
-#include
-#include
-
-#include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/channel/channel_fwd.h"
-#include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/channel/context.h"
-#include "src/core/lib/channel/promise_based_filter.h"
-#include "src/core/lib/debug/trace.h"
-#include "src/core/lib/gprpp/debug_location.h"
-#include "src/core/lib/gprpp/ref_counted_ptr.h"
-#include "src/core/lib/gprpp/status_helper.h"
-#include "src/core/lib/iomgr/error.h"
-#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/promise/activity.h"
-#include "src/core/lib/promise/arena_promise.h"
-#include "src/core/lib/promise/context.h"
-#include "src/core/lib/promise/poll.h"
-#include "src/core/lib/promise/try_seq.h"
-#include "src/core/lib/resource_quota/arena.h"
-#include "src/core/lib/security/context/security_context.h"
-#include "src/core/lib/security/credentials/credentials.h"
-#include "src/core/lib/security/transport/auth_filters.h" // IWYU pragma: keep
-#include "src/core/lib/slice/slice.h"
-#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/surface/call_trace.h"
-#include "src/core/lib/transport/metadata_batch.h"
-#include "src/core/lib/transport/transport.h"
-
-namespace grpc_core {
-
-const grpc_channel_filter LegacyServerAuthFilter::kFilter =
- MakePromiseBasedFilter(
- "server-auth");
-
-namespace {
-
-class ArrayEncoder {
- public:
- explicit ArrayEncoder(grpc_metadata_array* result) : result_(result) {}
-
- void Encode(const Slice& key, const Slice& value) {
- Append(key.Ref(), value.Ref());
- }
-
- template
- void Encode(Which, const typename Which::ValueType& value) {
- Append(Slice(StaticSlice::FromStaticString(Which::key())),
- Slice(Which::Encode(value)));
- }
-
- void Encode(HttpMethodMetadata,
- const typename HttpMethodMetadata::ValueType&) {}
-
- private:
- void Append(Slice key, Slice value) {
- if (result_->count == result_->capacity) {
- result_->capacity =
- std::max(result_->capacity + 8, result_->capacity * 2);
- result_->metadata = static_cast(gpr_realloc(
- result_->metadata, result_->capacity * sizeof(grpc_metadata)));
- }
- auto* usr_md = &result_->metadata[result_->count++];
- usr_md->key = key.TakeCSlice();
- usr_md->value = value.TakeCSlice();
- }
-
- grpc_metadata_array* result_;
-};
-
-// TODO(ctiller): seek out all users of this functionality and change API so
-// that this unilateral format conversion IS NOT REQUIRED.
-grpc_metadata_array MetadataBatchToMetadataArray(
- const grpc_metadata_batch* batch) {
- grpc_metadata_array result;
- grpc_metadata_array_init(&result);
- ArrayEncoder encoder(&result);
- batch->Encode(&encoder);
- return result;
-}
-
-} // namespace
-
-class LegacyServerAuthFilter::RunApplicationCode {
- public:
- // TODO(ctiller): Allocate state_ into a pool on the arena to reuse this
- // memory later
- RunApplicationCode(LegacyServerAuthFilter* filter, CallArgs call_args)
- : state_(GetContext()->ManagedNew(std::move(call_args))) {
- if (grpc_call_trace.enabled()) {
- gpr_log(GPR_ERROR,
- "%s[server-auth]: Delegate to application: filter=%p this=%p "
- "auth_ctx=%p",
- GetContext()->DebugTag().c_str(), filter, this,
- filter->auth_context_.get());
- }
- filter->server_credentials_->auth_metadata_processor().process(
- filter->server_credentials_->auth_metadata_processor().state,
- filter->auth_context_.get(), state_->md.metadata, state_->md.count,
- OnMdProcessingDone, state_);
- }
-
- RunApplicationCode(const RunApplicationCode&) = delete;
- RunApplicationCode& operator=(const RunApplicationCode&) = delete;
- RunApplicationCode(RunApplicationCode&& other) noexcept
- : state_(std::exchange(other.state_, nullptr)) {}
- RunApplicationCode& operator=(RunApplicationCode&& other) noexcept {
- state_ = std::exchange(other.state_, nullptr);
- return *this;
- }
-
- Poll> operator()() {
- if (state_->done.load(std::memory_order_acquire)) {
- return Poll>(std::move(state_->call_args));
- }
- return Pending{};
- }
-
- private:
- struct State {
- explicit State(CallArgs call_args) : call_args(std::move(call_args)) {}
- Waker waker{GetContext()->MakeOwningWaker()};
- absl::StatusOr call_args;
- grpc_metadata_array md =
- MetadataBatchToMetadataArray(call_args->client_initial_metadata.get());
- std::atomic done{false};
- };
-
- // Called from application code.
- static void OnMdProcessingDone(
- void* user_data, const grpc_metadata* consumed_md, size_t num_consumed_md,
- const grpc_metadata* response_md, size_t num_response_md,
- grpc_status_code status, const char* error_details) {
- ApplicationCallbackExecCtx callback_exec_ctx;
- ExecCtx exec_ctx;
-
- auto* state = static_cast(user_data);
-
- // TODO(ZhenLian): Implement support for response_md.
- if (response_md != nullptr && num_response_md > 0) {
- gpr_log(GPR_ERROR,
- "response_md in auth metadata processing not supported for now. "
- "Ignoring...");
- }
-
- if (status == GRPC_STATUS_OK) {
- ClientMetadataHandle& md = state->call_args->client_initial_metadata;
- for (size_t i = 0; i < num_consumed_md; i++) {
- md->Remove(StringViewFromSlice(consumed_md[i].key));
- }
- } else {
- if (error_details == nullptr) {
- error_details = "Authentication metadata processing failed.";
- }
- state->call_args = grpc_error_set_int(
- absl::Status(static_cast(status), error_details),
- StatusIntProperty::kRpcStatus, status);
- }
-
- // Clean up.
- for (size_t i = 0; i < state->md.count; i++) {
- CSliceUnref(state->md.metadata[i].key);
- CSliceUnref(state->md.metadata[i].value);
- }
- grpc_metadata_array_destroy(&state->md);
-
- auto waker = std::move(state->waker);
- state->done.store(true, std::memory_order_release);
- waker.Wakeup();
- }
-
- State* state_;
-};
-
-ArenaPromise LegacyServerAuthFilter::MakeCallPromise(
- CallArgs call_args, NextPromiseFactory next_promise_factory) {
- // Create server security context. Set its auth context from channel
- // data and save it in the call context.
- grpc_server_security_context* server_ctx =
- grpc_server_security_context_create(GetContext());
- server_ctx->auth_context =
- auth_context_->Ref(DEBUG_LOCATION, "server_auth_filter");
- grpc_call_context_element& context =
- GetContext()[GRPC_CONTEXT_SECURITY];
- if (context.value != nullptr) context.destroy(context.value);
- context.value = server_ctx;
- context.destroy = grpc_server_security_context_destroy;
-
- if (server_credentials_ == nullptr ||
- server_credentials_->auth_metadata_processor().process == nullptr) {
- return next_promise_factory(std::move(call_args));
- }
-
- return TrySeq(RunApplicationCode(this, std::move(call_args)),
- std::move(next_promise_factory));
-}
-
-LegacyServerAuthFilter::LegacyServerAuthFilter(
- RefCountedPtr server_credentials,
- RefCountedPtr auth_context)
- : server_credentials_(server_credentials), auth_context_(auth_context) {}
-
-absl::StatusOr LegacyServerAuthFilter::Create(
- const ChannelArgs& args, ChannelFilter::Args) {
- auto auth_context = args.GetObjectRef();
- GPR_ASSERT(auth_context != nullptr);
- auto creds = args.GetObjectRef();
- return LegacyServerAuthFilter(std::move(creds), std::move(auth_context));
-}
-
-} // namespace grpc_core
diff --git a/src/core/lib/surface/init.cc b/src/core/lib/surface/init.cc
index 276bf5600ee..28c33b814d7 100644
--- a/src/core/lib/surface/init.cc
+++ b/src/core/lib/surface/init.cc
@@ -72,20 +72,13 @@ void RegisterSecurityFilters(CoreConfiguration::Builder* builder) {
builder->channel_init()
->RegisterFilter(GRPC_CLIENT_DIRECT_CHANNEL)
.IfHasChannelArg(GRPC_ARG_SECURITY_CONNECTOR);
- if (IsV3ServerAuthFilterEnabled()) {
- builder->channel_init()
- ->RegisterFilter(GRPC_SERVER_CHANNEL)
- .IfHasChannelArg(GRPC_SERVER_CREDENTIALS_ARG);
- } else {
- builder->channel_init()
- ->RegisterFilter(GRPC_SERVER_CHANNEL)
- .IfHasChannelArg(GRPC_SERVER_CREDENTIALS_ARG);
- }
+ builder->channel_init()
+ ->RegisterFilter(GRPC_SERVER_CHANNEL)
+ .IfHasChannelArg(GRPC_SERVER_CREDENTIALS_ARG);
builder->channel_init()
->RegisterFilter(GRPC_SERVER_CHANNEL)
.IfHasChannelArg(GRPC_ARG_AUTHORIZATION_POLICY_PROVIDER)
- .After()
- .After();
+ .After();
}
} // namespace grpc_core
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index 76daef457eb..c09d7d8f0e5 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -45,7 +45,6 @@ CORE_SOURCE_FILES = [
'src/core/ext/filters/http/client_authority_filter.cc',
'src/core/ext/filters/http/http_filters_plugin.cc',
'src/core/ext/filters/http/message_compress/compression_filter.cc',
- 'src/core/ext/filters/http/message_compress/legacy_compression_filter.cc',
'src/core/ext/filters/http/server/http_server_filter.cc',
'src/core/ext/filters/message_size/message_size_filter.cc',
'src/core/ext/filters/rbac/rbac_filter.cc',
@@ -724,7 +723,6 @@ CORE_SOURCE_FILES = [
'src/core/lib/security/security_connector/ssl_utils.cc',
'src/core/lib/security/security_connector/tls/tls_security_connector.cc',
'src/core/lib/security/transport/client_auth_filter.cc',
- 'src/core/lib/security/transport/legacy_server_auth_filter.cc',
'src/core/lib/security/transport/secure_endpoint.cc',
'src/core/lib/security/transport/security_handshaker.cc',
'src/core/lib/security/transport/server_auth_filter.cc',
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index b09d01edc46..645e33ea544 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -1142,8 +1142,6 @@ src/core/ext/filters/http/client_authority_filter.h \
src/core/ext/filters/http/http_filters_plugin.cc \
src/core/ext/filters/http/message_compress/compression_filter.cc \
src/core/ext/filters/http/message_compress/compression_filter.h \
-src/core/ext/filters/http/message_compress/legacy_compression_filter.cc \
-src/core/ext/filters/http/message_compress/legacy_compression_filter.h \
src/core/ext/filters/http/server/http_server_filter.cc \
src/core/ext/filters/http/server/http_server_filter.h \
src/core/ext/filters/message_size/message_size_filter.cc \
@@ -2743,7 +2741,6 @@ src/core/lib/security/security_connector/tls/tls_security_connector.cc \
src/core/lib/security/security_connector/tls/tls_security_connector.h \
src/core/lib/security/transport/auth_filters.h \
src/core/lib/security/transport/client_auth_filter.cc \
-src/core/lib/security/transport/legacy_server_auth_filter.cc \
src/core/lib/security/transport/secure_endpoint.cc \
src/core/lib/security/transport/secure_endpoint.h \
src/core/lib/security/transport/security_handshaker.cc \
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index cea615a2f53..25e3169b103 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -947,8 +947,6 @@ src/core/ext/filters/http/client_authority_filter.h \
src/core/ext/filters/http/http_filters_plugin.cc \
src/core/ext/filters/http/message_compress/compression_filter.cc \
src/core/ext/filters/http/message_compress/compression_filter.h \
-src/core/ext/filters/http/message_compress/legacy_compression_filter.cc \
-src/core/ext/filters/http/message_compress/legacy_compression_filter.h \
src/core/ext/filters/http/server/http_server_filter.cc \
src/core/ext/filters/http/server/http_server_filter.h \
src/core/ext/filters/message_size/message_size_filter.cc \
@@ -2518,7 +2516,6 @@ src/core/lib/security/security_connector/tls/tls_security_connector.cc \
src/core/lib/security/security_connector/tls/tls_security_connector.h \
src/core/lib/security/transport/auth_filters.h \
src/core/lib/security/transport/client_auth_filter.cc \
-src/core/lib/security/transport/legacy_server_auth_filter.cc \
src/core/lib/security/transport/secure_endpoint.cc \
src/core/lib/security/transport/secure_endpoint.h \
src/core/lib/security/transport/security_handshaker.cc \