grpc 1.81.1 → 1.83.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +15 -9
- data/etc/roots.pem +10400 -3855
- data/include/grpc/grpc.h +6 -7
- data/include/grpc/grpc_audit_logging.h +2 -2
- data/include/grpc/grpc_security_constants.h +2 -0
- data/include/grpc/impl/channel_arg_names.h +26 -1
- data/src/core/call/call_filters.h +21 -5
- data/src/core/call/call_spine.h +4 -4
- data/src/core/call/client_call.cc +2 -2
- data/src/core/call/interception_chain.h +6 -9
- data/src/core/call/metadata.cc +7 -2
- data/src/core/call/metadata.h +1 -1
- data/src/core/call/metadata_batch.cc +1 -1
- data/src/core/call/metadata_batch.h +17 -1
- data/src/core/call/parsed_metadata.h +7 -2
- data/src/core/call/server_call.cc +16 -4
- data/src/core/call/server_call.h +14 -5
- data/src/core/call/status_util.cc +0 -4
- data/src/core/call/status_util.h +0 -3
- data/src/core/channelz/channel_trace.cc +3 -1
- data/src/core/client_channel/backup_poller.cc +2 -17
- data/src/core/client_channel/client_channel.cc +23 -28
- data/src/core/client_channel/client_channel.h +5 -3
- data/src/core/client_channel/client_channel_filter.cc +19 -30
- data/src/core/client_channel/client_channel_filter.h +2 -2
- data/src/core/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/client_channel/client_channel_service_config.cc +5 -13
- data/src/core/client_channel/config_selector.h +2 -7
- data/src/core/client_channel/direct_channel.cc +5 -1
- data/src/core/client_channel/direct_channel.h +3 -1
- data/src/core/client_channel/dynamic_filters.cc +4 -7
- data/src/core/client_channel/dynamic_filters.h +1 -3
- data/src/core/client_channel/retry_filter.cc +2 -25
- data/src/core/client_channel/retry_filter.h +3 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +1 -1
- data/src/core/client_channel/retry_filter_legacy_call_data.h +2 -2
- data/src/core/client_channel/retry_interceptor.cc +7 -35
- data/src/core/client_channel/retry_interceptor.h +11 -14
- data/src/core/client_channel/retry_service_config.cc +0 -2
- data/src/core/client_channel/retry_service_config.h +0 -2
- data/src/core/client_channel/retry_throttle.cc +19 -7
- data/src/core/client_channel/retry_throttle.h +24 -7
- data/src/core/client_channel/subchannel.cc +1 -1
- data/src/core/{filter/blackboard.cc → config/experiment_env_var.cc} +11 -14
- data/src/core/config/experiment_env_var.h +26 -0
- data/src/core/credentials/call/external/external_account_credentials.cc +125 -12
- data/src/core/credentials/call/external/external_account_credentials.h +6 -1
- data/src/core/credentials/call/jwt/jwt_credentials.cc +11 -1
- data/src/core/credentials/call/jwt/jwt_credentials.h +3 -0
- data/src/core/credentials/call/oauth2/oauth2_credentials.cc +64 -11
- data/src/core/credentials/call/oauth2/oauth2_credentials.h +0 -1
- data/src/core/credentials/call/regional_access_boundary_fetcher.cc +411 -0
- data/src/core/credentials/call/regional_access_boundary_fetcher.h +158 -0
- data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +1 -1
- data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +7 -1
- data/src/core/credentials/transport/insecure/insecure_security_connector.h +1 -1
- data/src/core/credentials/transport/local/local_security_connector.cc +1 -1
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +14 -2
- data/src/core/credentials/transport/tls/grpc_tls_certificate_selector.cc +172 -0
- data/src/core/credentials/transport/tls/grpc_tls_certificate_selector.h +103 -0
- data/src/core/credentials/transport/tls/load_system_roots_fallback.cc +3 -2
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +10 -3
- data/src/core/credentials/transport/tls/tls_security_connector.cc +14 -2
- data/src/core/credentials/transport/xds/xds_credentials.cc +4 -12
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +6 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +28 -66
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +0 -8
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +24 -58
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +24 -19
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -81
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -50
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -1
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +13 -56
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +0 -14
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +184 -54
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +10 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +84 -15
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +14 -2
- data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +2 -4
- data/src/core/ext/transport/chttp2/transport/frame.cc +120 -13
- data/src/core/ext/transport/chttp2/transport/frame.h +57 -10
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +13 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_security.cc +10 -1
- data/src/core/ext/transport/chttp2/transport/frame_security.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/goaway.cc +11 -1
- data/src/core/ext/transport/chttp2/transport/goaway.h +17 -1
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +54 -22
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +53 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +22 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +20 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +42 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +219 -417
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +49 -29
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +2073 -0
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +746 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +49 -15
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +0 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +74 -26
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +39 -15
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +18 -48
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -0
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +1 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +85 -26
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +4 -10
- data/src/core/ext/transport/chttp2/transport/read_context.h +494 -0
- data/src/core/ext/transport/chttp2/transport/security_frame.h +13 -3
- data/src/core/ext/transport/chttp2/transport/stream.h +287 -137
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +83 -65
- data/src/core/ext/transport/chttp2/transport/write_cycle.h +9 -1
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +16 -2
- data/src/core/ext/upb-gen/cel/expr/checked.upb.h +621 -432
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +264 -166
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h +0 -13
- data/src/core/ext/upb-gen/cel/expr/syntax.upb.h +708 -497
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +294 -176
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h +0 -15
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +262 -181
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +84 -58
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +254 -190
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +107 -53
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +271 -190
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +88 -64
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +1035 -730
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +384 -260
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +0 -19
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +87 -56
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +26 -16
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +105 -71
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +30 -22
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +31 -29
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +19 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +25 -23
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +25 -23
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +201 -165
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +79 -31
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +29 -26
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +46 -29
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +37 -19
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +4 -4
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +34 -27
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +34 -13
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +617 -452
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +221 -163
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +0 -16
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +1339 -970
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +484 -324
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +0 -23
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +181 -135
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +59 -43
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +1353 -1028
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +535 -361
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +0 -25
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +37 -33
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +234 -196
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +77 -57
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +695 -502
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +246 -186
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +0 -15
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb.h +140 -116
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +53 -43
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +363 -269
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +131 -89
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +35 -31
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +1073 -769
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +515 -293
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +0 -30
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb.h +25 -23
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +375 -267
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +142 -86
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +0 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +32 -27
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +29 -26
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +87 -56
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +26 -16
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +634 -468
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +255 -161
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +0 -14
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +672 -474
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +228 -130
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +0 -9
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +56 -40
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +34 -29
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +811 -635
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +347 -221
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +0 -16
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +174 -118
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +62 -38
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +78 -57
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +28 -18
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +37 -33
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +22 -14
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +159 -119
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +47 -35
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +101 -76
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +41 -23
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +35 -31
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +189 -127
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +79 -49
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +378 -283
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +156 -98
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +354 -255
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +125 -69
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +0 -6
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +611 -451
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +159 -119
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +0 -11
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +468 -321
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +157 -99
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +0 -6
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +146 -119
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +55 -35
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +61 -51
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +16 -16
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +43 -39
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +25 -13
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +341 -247
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +130 -84
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +452 -313
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +144 -100
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +0 -10
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +666 -493
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +251 -181
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +0 -12
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +327 -197
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +92 -48
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +3583 -2532
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +1340 -816
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +0 -60
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +111 -82
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +48 -28
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +548 -410
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +214 -148
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +0 -12
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +59 -50
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +30 -20
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +29 -26
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +60 -49
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +28 -20
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +50 -36
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +82 -63
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +27 -19
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +70 -58
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +32 -22
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +2 -5
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +73 -62
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +39 -25
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +49 -45
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +33 -13
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +771 -588
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +383 -185
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +0 -16
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +66 -47
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +31 -17
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb.h +69 -58
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.c +27 -23
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +151 -119
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +45 -39
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb.h +19 -17
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.c +1 -3
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb.h +144 -109
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.c +46 -38
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +184 -139
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +65 -35
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +129 -106
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +69 -41
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +83 -71
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +40 -26
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +148 -101
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +45 -27
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +62 -51
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +35 -21
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1362 -1024
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +508 -336
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +0 -22
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb.h +21 -19
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb.h +35 -31
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +94 -74
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +35 -23
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +231 -179
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +88 -66
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +0 -6
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +21 -19
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +63 -56
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +31 -19
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -5
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +538 -364
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +157 -95
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -110
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +69 -49
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +517 -389
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +182 -116
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +0 -7
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +84 -62
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +30 -22
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +340 -256
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +92 -82
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +19 -17
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +1 -3
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +857 -566
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +288 -182
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +0 -15
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +105 -72
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +36 -22
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +312 -226
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +132 -78
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +82 -61
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +35 -19
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +123 -89
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +25 -25
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h +48 -33
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +42 -36
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +101 -79
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +61 -31
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +83 -60
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +37 -19
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +56 -40
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +34 -29
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +32 -27
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +88 -71
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +48 -30
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +37 -30
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +95 -71
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +36 -22
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +79 -56
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +26 -18
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +164 -124
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +54 -40
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +200 -147
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +47 -41
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +0 -7
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +160 -130
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +89 -47
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +78 -62
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +26 -20
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +2 -5
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +21 -19
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +43 -36
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +22 -12
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +67 -55
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +36 -18
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +62 -51
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +33 -19
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +2 -5
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +25 -23
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +37 -33
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/api/annotations.upb.h +15 -13
- data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +22 -7
- data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +1 -1
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +619 -430
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +260 -168
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +0 -13
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +734 -518
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +312 -182
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +0 -16
- data/src/core/ext/upb-gen/google/api/http.upb.h +146 -105
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +65 -29
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/google/api/httpbody.upb.h +52 -37
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/any.upb.h +23 -21
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +2236 -1514
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +824 -406
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +0 -34
- data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +23 -21
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +19 -17
- data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +1 -3
- data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +149 -100
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +59 -43
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +23 -21
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +181 -139
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +99 -53
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +0 -9
- data/src/core/ext/upb-gen/google/rpc/status.upb.h +52 -37
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h +1553 -1157
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +712 -410
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h +0 -39
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +189 -125
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +59 -35
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +454 -343
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +204 -130
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +0 -11
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +369 -243
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +109 -79
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +0 -7
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +256 -175
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +122 -68
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +71 -51
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +39 -19
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +583 -407
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +259 -145
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +0 -12
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +114 -84
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +52 -30
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +41 -34
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +25 -13
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +309 -230
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +123 -79
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +0 -9
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +98 -63
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +51 -23
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +505 -312
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +159 -87
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +0 -9
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +128 -91
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +82 -41
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +5 -8
- data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +36 -29
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +36 -13
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +13 -11
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +22 -7
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +1 -1
- data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +36 -29
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +36 -13
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +34 -27
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +34 -13
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/validate/validate.upb.h +1682 -1130
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +587 -247
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +4 -27
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +128 -91
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +82 -41
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +5 -8
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +36 -29
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +36 -13
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +13 -11
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +22 -7
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +1 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +122 -90
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +82 -39
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +3 -7
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +34 -27
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +34 -13
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +21 -19
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +29 -26
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +70 -58
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +32 -22
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +53 -34
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +26 -16
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +29 -26
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +37 -33
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +22 -14
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +102 -76
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +43 -23
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +33 -30
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +136 -83
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +41 -33
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +46 -32
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +20 -12
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +29 -26
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +20 -12
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +93 -61
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +28 -20
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +19 -17
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +1 -3
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +105 -71
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +32 -22
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +430 -314
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +153 -123
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +0 -10
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +307 -199
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +74 -62
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +0 -6
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +52 -42
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +95 -71
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +36 -22
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +92 -77
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +42 -28
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +67 -55
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +36 -18
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +29 -26
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +0 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +885 -855
- data/src/core/filter/composite/composite_filter.cc +10 -3
- data/src/core/filter/composite/composite_filter.h +11 -1
- data/src/core/filter/filter_args.h +4 -22
- data/src/core/handshaker/handshaker.cc +10 -2
- data/src/core/handshaker/security/secure_endpoint.cc +60 -5
- data/src/core/lib/channel/channel_args.h +12 -6
- data/src/core/lib/channel/channel_stack.cc +1 -2
- data/src/core/lib/channel/channel_stack.h +1 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +0 -7
- data/src/core/lib/channel/promise_based_filter.cc +90 -4
- data/src/core/lib/channel/promise_based_filter.h +241 -188
- data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +0 -13
- data/src/core/lib/event_engine/extensions/receive_coalescing_extension.h +44 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +1 -1
- data/src/core/lib/event_engine/posix.h +2 -0
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +2 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +11 -8
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +9 -18
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +2 -1
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +10 -10
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +1 -1
- data/src/core/lib/event_engine/shim.cc +2 -16
- data/src/core/lib/event_engine/shim.h +0 -4
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +1 -1
- data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +5 -4
- data/src/core/lib/experiments/experiments.cc +303 -183
- data/src/core/lib/experiments/experiments.h +166 -90
- data/src/core/lib/iomgr/buffer_list.h +1 -1
- data/src/core/lib/iomgr/error.cc +3 -73
- data/src/core/lib/iomgr/error.h +8 -6
- data/src/core/lib/iomgr/error_cfstream.cc +1 -2
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -7
- data/src/core/lib/iomgr/ev_poll_posix.cc +2 -6
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
- data/src/core/lib/iomgr/tcp_posix.cc +4 -7
- data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
- data/src/core/lib/promise/detail/promise_factory.h +8 -8
- data/src/core/lib/promise/interceptor_list.h +1 -1
- data/src/core/lib/promise/try_seq.h +2 -2
- data/src/core/lib/resource_quota/telemetry.cc +54 -0
- data/src/core/lib/resource_quota/telemetry.h +5 -23
- data/src/core/lib/security/authorization/audit_logging.cc +2 -2
- data/src/core/lib/security/authorization/audit_logging.h +3 -3
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +11 -13
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -1
- data/src/core/lib/security/authorization/matchers.cc +20 -20
- data/src/core/lib/security/authorization/matchers.h +15 -16
- data/src/core/lib/security/authorization/rbac_policy.h +1 -1
- data/src/core/lib/security/authorization/stdout_logger.cc +3 -3
- data/src/core/lib/security/authorization/stdout_logger.h +6 -5
- data/src/core/lib/surface/call.cc +6 -9
- data/src/core/lib/surface/call.h +11 -0
- data/src/core/lib/surface/channel.cc +21 -2
- data/src/core/lib/surface/channel.h +14 -6
- data/src/core/lib/surface/filter_stack_call.cc +10 -29
- data/src/core/lib/surface/legacy_channel.cc +7 -7
- data/src/core/lib/surface/legacy_channel.h +3 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +13 -13
- data/src/core/lib/transport/bdp_estimator.h +9 -5
- data/src/core/lib/transport/error_utils.cc +26 -138
- data/src/core/lib/transport/promise_endpoint.h +8 -8
- data/src/core/lib/transport/transport.h +31 -4
- data/src/core/load_balancing/grpclb/grpclb.cc +2 -1
- data/src/core/load_balancing/pick_first/pick_first.cc +33 -2
- data/src/core/load_balancing/pick_first/pick_first.h +6 -0
- data/src/core/load_balancing/ring_hash/ring_hash.cc +3 -10
- data/src/core/load_balancing/rls/rls.cc +2 -1
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +141 -74
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.h +88 -0
- data/src/core/load_balancing/xds/cds.cc +80 -56
- data/src/core/load_balancing/xds/cds.h +21 -0
- data/src/core/mitigation_engine/mitigation.h +53 -0
- data/src/core/mitigation_engine/mitigation_engine.h +81 -0
- data/src/core/mitigation_engine/mitigation_provider.h +62 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -5
- data/src/core/resolver/dns/dns_resolver_plugin.cc +1 -6
- data/src/core/resolver/xds/xds_resolver.cc +37 -144
- data/src/core/server/server.cc +40 -18
- data/src/core/server/server.h +26 -18
- data/src/core/server/server_config_selector.h +5 -4
- data/src/core/server/server_config_selector_filter.cc +135 -26
- data/src/core/server/server_config_selector_filter.h +1 -0
- data/src/core/server/xds_server_config_fetcher.cc +687 -692
- data/src/core/server/xds_server_config_fetcher_legacy.cc +1336 -0
- data/src/core/telemetry/call_tracer.cc +49 -2
- data/src/core/telemetry/call_tracer.h +1 -0
- data/src/core/telemetry/histogram.h +10 -89
- data/src/core/telemetry/instrument.h +42 -28
- data/src/core/telemetry/tcp_tracer.h +38 -0
- data/src/core/transport/message_size_service_config.cc +123 -0
- data/src/core/transport/message_size_service_config.h +85 -0
- data/src/core/transport/session_endpoint.cc +29 -4
- data/src/core/transport/session_endpoint.h +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +4 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/ssl_telemetry_utils.cc +343 -0
- data/src/core/tsi/ssl_telemetry_utils.h +74 -0
- data/src/core/tsi/ssl_transport_security.cc +583 -305
- data/src/core/tsi/ssl_transport_security.h +22 -6
- data/src/core/tsi/ssl_transport_security_utils.cc +2 -0
- data/src/core/tsi/transport_security.h +7 -0
- data/src/core/util/http_client/httpcli.cc +1 -4
- data/src/core/util/http_client/httpcli_security_connector.cc +2 -1
- data/src/core/util/http_client/parser.cc +1 -1
- data/src/core/util/lru_cache.h +2 -0
- data/src/core/util/ref_counted_string.h +1 -1
- data/src/core/util/status_helper.cc +71 -192
- data/src/core/util/status_helper.h +16 -21
- data/src/core/util/tchar.cc +13 -7
- data/src/core/util/trie_lookup.h +1 -1
- data/src/core/xds/grpc/blackboard.cc +58 -0
- data/src/core/{filter → xds/grpc}/blackboard.h +30 -11
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +2 -11
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -7
- data/src/core/xds/grpc/xds_cluster_parser.cc +5 -16
- data/src/core/xds/grpc/xds_common_types.cc +96 -0
- data/src/core/xds/grpc/xds_common_types.h +35 -7
- data/src/core/xds/grpc/xds_common_types_parser.cc +205 -134
- data/src/core/xds/grpc/xds_common_types_parser.h +18 -1
- data/src/core/xds/grpc/xds_endpoint_parser.cc +7 -18
- data/src/core/xds/grpc/xds_http_composite_filter.cc +34 -18
- data/src/core/xds/grpc/xds_http_composite_filter.h +6 -3
- data/src/core/xds/grpc/xds_http_fault_filter.cc +0 -149
- data/src/core/xds/grpc/xds_http_fault_filter.h +19 -8
- data/src/core/xds/grpc/xds_http_filter.cc +2 -1
- data/src/core/xds/grpc/xds_http_filter.h +6 -16
- data/src/core/xds/grpc/xds_http_filter_registry.cc +2 -12
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +25 -119
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +27 -15
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -12
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +0 -149
- data/src/core/xds/grpc/xds_http_stateful_session_filter.h +19 -8
- data/src/core/xds/grpc/xds_lb_policy_registry.cc +18 -0
- data/src/core/xds/grpc/xds_listener_parser.cc +13 -9
- data/src/core/xds/grpc/xds_metadata_parser.cc +0 -2
- data/src/core/xds/grpc/xds_route_config.h +1 -1
- data/src/core/xds/grpc/xds_route_config_parser.cc +10 -16
- data/src/core/xds/grpc/xds_routing.cc +115 -90
- data/src/core/xds/grpc/xds_routing.h +73 -24
- data/src/core/xds/grpc/xds_server_grpc.cc +22 -13
- data/src/core/xds/grpc/xds_server_grpc.h +16 -2
- data/src/core/xds/grpc/xds_server_grpc_interface.h +10 -0
- data/src/core/xds/grpc/xds_transport_grpc.cc +123 -18
- data/src/core/xds/grpc/xds_transport_grpc.h +28 -4
- data/src/core/xds/xds_client/lrs_client.cc +4 -8
- data/src/core/xds/xds_client/xds_bootstrap.cc +4 -16
- data/src/core/xds/xds_client/xds_client.cc +2 -15
- data/src/core/xds/xds_client/xds_transport.h +3 -0
- data/src/ruby/ext/grpc/rb_byte_buffer.c +1 -0
- data/src/ruby/ext/grpc/rb_call.c +3 -0
- data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_channel.c +1 -0
- data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
- data/src/ruby/ext/grpc/rb_channel_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +1 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -4
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -6
- data/src/ruby/ext/grpc/rb_server.c +1 -0
- data/src/ruby/ext/grpc/rb_server_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +1 -0
- data/src/ruby/lib/grpc/core/call_credentials.rb +86 -0
- data/src/ruby/lib/grpc/core/channel_credentials.rb +69 -0
- data/src/ruby/lib/grpc/core/credentials_helper.rb +126 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +86 -73
- data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/lib/grpc.rb +25 -0
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -1
- data/src/ruby/spec/call_credentials_spec.rb +52 -2
- data/src/ruby/spec/credentials_helper_spec.rb +80 -0
- data/src/ruby/spec/generic/client_stub_spec.rb +27 -4
- data/src/ruby/spec/generic/server_interceptors_spec.rb +17 -3
- data/third_party/upb/upb/base/error_handler.h +79 -0
- data/third_party/upb/upb/base/internal/log2.h +29 -5
- data/third_party/upb/upb/generated_code_support.h +1 -0
- data/third_party/upb/upb/hash/common.c +129 -14
- data/third_party/upb/upb/hash/common.h +1 -1
- data/third_party/upb/upb/hash/ext_table.h +65 -0
- data/third_party/upb/upb/lex/strtod.c +14 -5
- data/third_party/upb/upb/mem/arena.c +113 -95
- data/third_party/upb/upb/mem/internal/arena.h +13 -8
- data/third_party/upb/upb/message/accessors.c +2 -3
- data/third_party/upb/upb/message/accessors.h +32 -12
- data/third_party/upb/upb/message/array.c +51 -2
- data/third_party/upb/upb/message/array.h +10 -0
- data/third_party/upb/upb/message/copy.c +18 -34
- data/third_party/upb/upb/message/internal/accessors.h +15 -49
- data/third_party/upb/upb/message/internal/array.h +1 -1
- data/third_party/upb/upb/message/internal/map.h +1 -1
- data/third_party/upb/upb/message/internal/message.c +8 -1
- data/third_party/upb/upb/message/internal/message.h +40 -10
- data/third_party/upb/upb/message/message.c +3 -2
- data/third_party/upb/upb/message/value.h +0 -6
- data/third_party/upb/upb/mini_descriptor/decode.c +78 -59
- data/third_party/upb/upb/mini_descriptor/link.c +8 -6
- data/third_party/upb/upb/mini_table/extension_registry.c +17 -49
- data/third_party/upb/upb/mini_table/extension_registry.h +5 -17
- data/third_party/upb/upb/mini_table/generated_registry.c +180 -0
- data/third_party/upb/upb/mini_table/generated_registry.h +66 -0
- data/third_party/upb/upb/mini_table/internal/extension.h +5 -3
- data/third_party/upb/upb/mini_table/internal/field.h +7 -5
- data/third_party/upb/upb/mini_table/internal/generated_registry.h +37 -0
- data/third_party/upb/upb/mini_table/internal/message.c +0 -18
- data/third_party/upb/upb/mini_table/internal/message.h +24 -41
- data/third_party/upb/upb/mini_table/internal/size_log2.h +2 -1
- data/third_party/upb/upb/mini_table/internal/sub.h +2 -5
- data/third_party/upb/upb/mini_table/message.h +34 -13
- data/third_party/upb/upb/port/atomic.h +180 -74
- data/third_party/upb/upb/port/def.inc +194 -29
- data/third_party/upb/upb/port/sanitizers.h +15 -0
- data/third_party/upb/upb/port/undef.inc +6 -2
- data/third_party/upb/upb/reflection/common.h +0 -6
- data/third_party/upb/upb/reflection/def.hpp +8 -12
- data/third_party/upb/upb/reflection/def_pool.c +85 -33
- data/third_party/upb/upb/reflection/def_pool.h +38 -8
- data/third_party/upb/upb/reflection/def_type.h +3 -0
- data/third_party/upb/upb/reflection/enum_def.c +45 -33
- data/third_party/upb/upb/reflection/enum_def.h +8 -4
- data/third_party/upb/upb/reflection/enum_reserved_range.c +7 -3
- data/third_party/upb/upb/reflection/enum_value_def.c +14 -29
- data/third_party/upb/upb/reflection/enum_value_def.h +5 -4
- data/third_party/upb/upb/reflection/extension_range.c +15 -14
- data/third_party/upb/upb/reflection/extension_range.h +7 -4
- data/third_party/upb/upb/reflection/field_def.c +114 -96
- data/third_party/upb/upb/reflection/field_def.h +3 -3
- data/third_party/upb/upb/reflection/file_def.c +71 -65
- data/third_party/upb/upb/reflection/file_def.h +4 -5
- data/third_party/upb/upb/reflection/internal/def_builder.c +22 -14
- data/third_party/upb/upb/reflection/internal/def_builder.h +44 -38
- data/third_party/upb/upb/reflection/internal/def_pool.h +5 -1
- data/third_party/upb/upb/reflection/internal/enum_def.h +6 -4
- data/third_party/upb/upb/reflection/internal/enum_reserved_range.h +3 -2
- data/third_party/upb/upb/reflection/internal/enum_value_def.h +7 -4
- data/third_party/upb/upb/reflection/internal/extension_range.h +4 -3
- data/third_party/upb/upb/reflection/internal/field_def.h +15 -12
- data/third_party/upb/upb/reflection/internal/file_def.h +8 -1
- data/third_party/upb/upb/reflection/internal/message_def.h +10 -7
- data/third_party/upb/upb/reflection/internal/message_reserved_range.h +3 -1
- data/third_party/upb/upb/reflection/internal/method_def.h +6 -6
- data/third_party/upb/upb/reflection/internal/oneof_def.h +6 -6
- data/third_party/upb/upb/reflection/internal/service_def.h +9 -6
- data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
- data/third_party/upb/upb/reflection/message_def.c +46 -53
- data/third_party/upb/upb/reflection/message_def.h +6 -7
- data/third_party/upb/upb/reflection/message_reserved_range.c +7 -6
- data/third_party/upb/upb/reflection/method_def.c +22 -20
- data/third_party/upb/upb/reflection/method_def.h +4 -4
- data/third_party/upb/upb/reflection/oneof_def.c +17 -15
- data/third_party/upb/upb/reflection/oneof_def.h +6 -3
- data/third_party/upb/upb/reflection/service_def.c +50 -23
- data/third_party/upb/upb/reflection/service_def.h +7 -4
- data/third_party/upb/upb/text/internal/encode.c +7 -10
- data/third_party/upb/upb/wire/decode.c +269 -430
- data/third_party/upb/upb/wire/decode.h +6 -45
- data/third_party/upb/upb/wire/decode_fast/combinations.h +7 -3
- data/third_party/upb/upb/wire/decode_fast/select.c +7 -2
- data/third_party/upb/upb/wire/encode.c +144 -106
- data/third_party/upb/upb/wire/encode.h +6 -2
- data/third_party/upb/upb/wire/eps_copy_input_stream.c +36 -7
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +94 -380
- data/third_party/upb/upb/wire/internal/decoder.c +1 -14
- data/third_party/upb/upb/wire/internal/decoder.h +84 -24
- data/third_party/upb/upb/wire/internal/eps_copy_input_stream.h +339 -0
- data/third_party/upb/upb/wire/internal/reader.h +29 -12
- data/third_party/upb/upb/wire/reader.c +35 -22
- data/third_party/upb/upb/wire/reader.h +11 -18
- data/third_party/utf8_range/utf8_range.c +1 -1
- data/third_party/utf8_range/utf8_range.h +2 -1
- metadata +35 -13
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +0 -117
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +0 -109
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +0 -80
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +0 -86
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +0 -83
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +0 -91
- data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +0 -217
- data/third_party/upb/upb/message/internal/tagged_ptr.h +0 -56
- data/third_party/upb/upb/message/tagged_ptr.h +0 -48
|
@@ -30,11 +30,13 @@
|
|
|
30
30
|
#include <string.h>
|
|
31
31
|
|
|
32
32
|
#include <algorithm>
|
|
33
|
+
#include <cstdint>
|
|
33
34
|
#include <map>
|
|
34
35
|
#include <memory>
|
|
35
36
|
#include <optional>
|
|
36
37
|
#include <string>
|
|
37
38
|
#include <utility>
|
|
39
|
+
#include <variant>
|
|
38
40
|
#include <vector>
|
|
39
41
|
|
|
40
42
|
#include "src/core/channelz/channelz.h"
|
|
@@ -43,6 +45,7 @@
|
|
|
43
45
|
#include "src/core/credentials/transport/security_connector.h"
|
|
44
46
|
#include "src/core/credentials/transport/transport_credentials.h"
|
|
45
47
|
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
|
|
48
|
+
#include "src/core/ext/transport/chttp2/transport/http2_server_transport.h"
|
|
46
49
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
|
47
50
|
#include "src/core/ext/transport/chttp2/transport/legacy_frame.h"
|
|
48
51
|
#include "src/core/handshaker/handshaker.h"
|
|
@@ -70,8 +73,11 @@
|
|
|
70
73
|
#include "src/core/lib/resource_quota/connection_quota.h"
|
|
71
74
|
#include "src/core/lib/resource_quota/memory_quota.h"
|
|
72
75
|
#include "src/core/lib/resource_quota/resource_quota.h"
|
|
76
|
+
#include "src/core/lib/surface/channel_create.h"
|
|
73
77
|
#include "src/core/lib/transport/error_utils.h"
|
|
78
|
+
#include "src/core/lib/transport/promise_endpoint.h"
|
|
74
79
|
#include "src/core/lib/transport/transport.h"
|
|
80
|
+
#include "src/core/mitigation_engine/mitigation_engine.h"
|
|
75
81
|
#include "src/core/server/server.h"
|
|
76
82
|
#include "src/core/util/debug_location.h"
|
|
77
83
|
#include "src/core/util/grpc_check.h"
|
|
@@ -226,41 +232,97 @@ void NewChttp2ServerListener::ActiveConnection::HandshakingState::
|
|
|
226
232
|
// code, so we can just clean up here without creating a transport.
|
|
227
233
|
if (!connection_->shutdown_ && result.ok() &&
|
|
228
234
|
(*result)->endpoint != nullptr) {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
235
|
+
const bool is_callv3 =
|
|
236
|
+
(*result)->args.GetBool(GRPC_ARG_USE_V3_STACK).value_or(false);
|
|
237
|
+
|
|
238
|
+
if (!is_callv3) {
|
|
239
|
+
RefCountedPtr<Transport> transport =
|
|
240
|
+
grpc_create_chttp2_transport((*result)->args,
|
|
241
|
+
std::move((*result)->endpoint), false)
|
|
242
|
+
->Ref();
|
|
243
|
+
grpc_error_handle channel_init_err =
|
|
244
|
+
connection_->listener_state_->server()->SetupTransport(
|
|
245
|
+
transport.get(), accepting_pollset_, (*result)->args);
|
|
246
|
+
if (channel_init_err.ok()) {
|
|
247
|
+
// Use notify_on_receive_settings callback to enforce the
|
|
248
|
+
// handshake deadline.
|
|
249
|
+
connection_->state_ =
|
|
250
|
+
DownCast<grpc_chttp2_transport*>(transport.get())->Ref();
|
|
251
|
+
grpc_closure* on_close = &connection_->on_close_;
|
|
252
|
+
// Refs held by OnClose()
|
|
253
|
+
connection_->Ref().release();
|
|
254
|
+
grpc_chttp2_transport_start_reading(
|
|
255
|
+
transport.get(), (*result)->read_buffer.c_slice_buffer(),
|
|
256
|
+
[self = Ref()](absl::StatusOr<uint32_t>) {
|
|
257
|
+
self->OnReceiveSettings();
|
|
258
|
+
},
|
|
259
|
+
nullptr, on_close);
|
|
260
|
+
timer_handle_ = connection_->listener_state_->event_engine()->RunAfter(
|
|
261
|
+
deadline_ - Timestamp::Now(), [self = Ref()]() mutable {
|
|
262
|
+
// HandshakingState deletion might require an active ExecCtx.
|
|
263
|
+
ExecCtx exec_ctx;
|
|
264
|
+
auto* self_ptr = self.get();
|
|
265
|
+
self_ptr->connection_->work_serializer_.Run(
|
|
266
|
+
[self = std::move(self)]() { self->OnTimeoutLocked(); },
|
|
267
|
+
DEBUG_LOCATION);
|
|
268
|
+
});
|
|
269
|
+
} else {
|
|
270
|
+
// Failed to create channel from transport. Clean up.
|
|
271
|
+
LOG(ERROR) << "Failed to create channel: "
|
|
272
|
+
<< StatusToString(channel_init_err);
|
|
273
|
+
transport->Orphan();
|
|
274
|
+
}
|
|
259
275
|
} else {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
276
|
+
std::unique_ptr<EventEngine::Endpoint> event_engine_endpoint =
|
|
277
|
+
grpc_event_engine::experimental::
|
|
278
|
+
grpc_take_wrapped_event_engine_endpoint(
|
|
279
|
+
(*result)->endpoint.release());
|
|
280
|
+
if (GPR_UNLIKELY(event_engine_endpoint == nullptr)) {
|
|
281
|
+
LOG(ERROR) << "Failed to take endpoint.";
|
|
282
|
+
} else {
|
|
283
|
+
PromiseEndpoint promise_endpoint(std::move(event_engine_endpoint),
|
|
284
|
+
std::move((*result)->read_buffer));
|
|
285
|
+
std::shared_ptr<EventEngine> event_engine_ptr =
|
|
286
|
+
(*result)->args.GetObjectRef<EventEngine>();
|
|
287
|
+
// TODO(akshitpatel) : [PH2][P4] : Consider making on_close_
|
|
288
|
+
// absl::AnyInvocable.
|
|
289
|
+
grpc_closure* on_close = &connection_->on_close_;
|
|
290
|
+
// Refs held by OnClose()
|
|
291
|
+
connection_->Ref().release();
|
|
292
|
+
// Use notify_on_receive_settings callback to enforce the
|
|
293
|
+
// handshake deadline.
|
|
294
|
+
auto* ph2_transport = new http2::Http2ServerTransport(
|
|
295
|
+
std::move(promise_endpoint), (*result)->args,
|
|
296
|
+
std::move(event_engine_ptr),
|
|
297
|
+
[self = Ref()](absl::StatusOr<uint32_t>) {
|
|
298
|
+
self->OnReceiveSettings();
|
|
299
|
+
},
|
|
300
|
+
on_close);
|
|
301
|
+
// SetupTransport will spawn the initial transport promises.
|
|
302
|
+
grpc_error_handle channel_init_err =
|
|
303
|
+
connection_->listener_state_->server()->SetupTransport(
|
|
304
|
+
ph2_transport, accepting_pollset_, (*result)->args);
|
|
305
|
+
if (GPR_LIKELY(channel_init_err.ok())) {
|
|
306
|
+
ph2_transport->Ref().release();
|
|
307
|
+
connection_->state_ =
|
|
308
|
+
RefCountedPtr<http2::Http2ServerTransport>(ph2_transport);
|
|
309
|
+
timer_handle_ =
|
|
310
|
+
connection_->listener_state_->event_engine()->RunAfter(
|
|
311
|
+
deadline_ - Timestamp::Now(), [self = Ref()]() mutable {
|
|
312
|
+
// HandshakingState deletion might require an active
|
|
313
|
+
// ExecCtx.
|
|
314
|
+
ExecCtx exec_ctx;
|
|
315
|
+
auto* self_ptr = self.get();
|
|
316
|
+
self_ptr->connection_->work_serializer_.Run(
|
|
317
|
+
[self = std::move(self)]() { self->OnTimeoutLocked(); },
|
|
318
|
+
DEBUG_LOCATION);
|
|
319
|
+
});
|
|
320
|
+
} else {
|
|
321
|
+
LOG(ERROR) << "Failed to create channel: "
|
|
322
|
+
<< StatusToString(channel_init_err);
|
|
323
|
+
ph2_transport->Orphan();
|
|
324
|
+
}
|
|
325
|
+
}
|
|
264
326
|
}
|
|
265
327
|
}
|
|
266
328
|
// Since the handshake manager is done, the connection no longer needs to
|
|
@@ -269,6 +331,8 @@ void NewChttp2ServerListener::ActiveConnection::HandshakingState::
|
|
|
269
331
|
connection_->listener_state_->OnHandshakeDone(connection_.get());
|
|
270
332
|
// Clean up if we don't have a transport
|
|
271
333
|
if (!std::holds_alternative<RefCountedPtr<grpc_chttp2_transport>>(
|
|
334
|
+
connection_->state_) &&
|
|
335
|
+
!std::holds_alternative<RefCountedPtr<http2::Http2ServerTransport>>(
|
|
272
336
|
connection_->state_)) {
|
|
273
337
|
connection_->listener_state_->connection_quota()->ReleaseConnections(1);
|
|
274
338
|
connection_->listener_state_->RemoveLogicalConnection(connection_.get());
|
|
@@ -373,6 +437,17 @@ void NewChttp2ServerListener::ActiveConnection::SendGoAwayImplLocked() {
|
|
|
373
437
|
static_cast<intptr_t>(Http2ErrorCode::kNoError));
|
|
374
438
|
transport->PerformOp(op);
|
|
375
439
|
}
|
|
440
|
+
},
|
|
441
|
+
[](const RefCountedPtr<http2::Http2ServerTransport>& transport) {
|
|
442
|
+
// Send a GOAWAY if the transport exists
|
|
443
|
+
if (transport != nullptr) {
|
|
444
|
+
grpc_transport_op* op = grpc_make_transport_op(nullptr);
|
|
445
|
+
// We send a non-ok status here to send the status message in the
|
|
446
|
+
// GOAWAY frame.
|
|
447
|
+
op->goaway_error =
|
|
448
|
+
absl::UnavailableError("Server is stopping to serve requests.");
|
|
449
|
+
transport->PerformOp(op);
|
|
450
|
+
}
|
|
376
451
|
});
|
|
377
452
|
}
|
|
378
453
|
}
|
|
@@ -397,6 +472,15 @@ void NewChttp2ServerListener::ActiveConnection::
|
|
|
397
472
|
"Drain grace time expired. Closing connection immediately.");
|
|
398
473
|
transport->PerformOp(op);
|
|
399
474
|
}
|
|
475
|
+
},
|
|
476
|
+
[](const RefCountedPtr<http2::Http2ServerTransport>& transport) {
|
|
477
|
+
// Disconnect immediately if the transport exists
|
|
478
|
+
if (transport != nullptr) {
|
|
479
|
+
grpc_transport_op* op = grpc_make_transport_op(nullptr);
|
|
480
|
+
op->disconnect_with_error = absl::UnavailableError(
|
|
481
|
+
"Drain grace time expired. Closing connection immediately.");
|
|
482
|
+
transport->PerformOp(op);
|
|
483
|
+
}
|
|
400
484
|
});
|
|
401
485
|
}
|
|
402
486
|
|
|
@@ -546,11 +630,21 @@ void NewChttp2ServerListener::OnAccept(
|
|
|
546
630
|
NewChttp2ServerListener* self = static_cast<NewChttp2ServerListener*>(arg);
|
|
547
631
|
OrphanablePtr<grpc_endpoint> endpoint(tcp);
|
|
548
632
|
AcceptorPtr acceptor(server_acceptor);
|
|
633
|
+
absl::string_view peer = grpc_endpoint_get_peer(endpoint.get());
|
|
549
634
|
if (!self->listener_state_->connection_quota()->AllowIncomingConnection(
|
|
550
|
-
self->listener_state_->memory_quota(),
|
|
551
|
-
grpc_endpoint_get_peer(endpoint.get()))) {
|
|
635
|
+
self->listener_state_->memory_quota(), peer)) {
|
|
552
636
|
return;
|
|
553
637
|
}
|
|
638
|
+
RefCountedPtr<MitigationEngine> mitigation_engine = self->mitigation_engine();
|
|
639
|
+
if (mitigation_engine != nullptr) {
|
|
640
|
+
auto action = mitigation_engine->EvaluateIncomingConnection(peer);
|
|
641
|
+
if (action == MitigationEngine::Action::kCloseConnection) {
|
|
642
|
+
LOG_EVERY_N_SEC(INFO, 60)
|
|
643
|
+
<< "Mitigation engine rejected connection from " << peer;
|
|
644
|
+
self->listener_state_->connection_quota()->ReleaseConnections(1);
|
|
645
|
+
return;
|
|
646
|
+
}
|
|
647
|
+
}
|
|
554
648
|
{
|
|
555
649
|
// The ref for the tcp_server need to be taken in the critical region
|
|
556
650
|
// after having made sure that the listener has not been Orphaned, so as
|
|
@@ -615,8 +709,12 @@ absl::StatusOr<int> Chttp2ServerAddPort(Server* server, const char* addr,
|
|
|
615
709
|
if (addr == nullptr) {
|
|
616
710
|
return GRPC_ERROR_CREATE("Invalid address: addr cannot be a nullptr.");
|
|
617
711
|
}
|
|
712
|
+
|
|
713
|
+
ChannelArgs updated_args =
|
|
714
|
+
args.Set(GRPC_ARG_USE_V3_STACK, http2::ShouldEnablePh2Server());
|
|
618
715
|
if (strncmp(addr, "external:", 9) == 0) {
|
|
619
|
-
auto r =
|
|
716
|
+
auto r =
|
|
717
|
+
NewChttp2ServerListener::CreateWithAcceptor(server, addr, updated_args);
|
|
620
718
|
if (!r.ok()) return r;
|
|
621
719
|
return -1;
|
|
622
720
|
}
|
|
@@ -646,9 +744,7 @@ absl::StatusOr<int> Chttp2ServerAddPort(Server* server, const char* addr,
|
|
|
646
744
|
resolved = grpc_resolve_vsock_address(parsed_addr_unprefixed);
|
|
647
745
|
GRPC_RETURN_IF_ERROR(resolved.status());
|
|
648
746
|
} else {
|
|
649
|
-
if (IsEventEngineDnsNonClientChannelEnabled()
|
|
650
|
-
!grpc_event_engine::experimental::
|
|
651
|
-
EventEngineExperimentDisabledForPython()) {
|
|
747
|
+
if (IsEventEngineDnsNonClientChannelEnabled()) {
|
|
652
748
|
absl::StatusOr<std::unique_ptr<EventEngine::DNSResolver>> ee_resolver =
|
|
653
749
|
args.GetObjectRef<EventEngine>()->GetDNSResolver(
|
|
654
750
|
EventEngine::DNSResolver::ResolverOptions());
|
|
@@ -683,7 +779,8 @@ absl::StatusOr<int> Chttp2ServerAddPort(Server* server, const char* addr,
|
|
|
683
779
|
grpc_event_engine::experimental::ResolvedAddressSetPort(addr, port_num);
|
|
684
780
|
}
|
|
685
781
|
int port_temp = -1;
|
|
686
|
-
error = NewChttp2ServerListener::Create(server, addr,
|
|
782
|
+
error = NewChttp2ServerListener::Create(server, addr, updated_args,
|
|
783
|
+
&port_temp);
|
|
687
784
|
if (!error.ok()) {
|
|
688
785
|
error_list.push_back(error);
|
|
689
786
|
} else {
|
|
@@ -778,7 +875,10 @@ void grpc_server_add_channel_from_fd(grpc_server* server, int fd,
|
|
|
778
875
|
grpc_core::ExecCtx exec_ctx;
|
|
779
876
|
grpc_core::Server* core_server = grpc_core::Server::FromC(server);
|
|
780
877
|
|
|
781
|
-
|
|
878
|
+
const bool is_callv3 = grpc_core::http2::ShouldEnablePh2Server();
|
|
879
|
+
grpc_core::ChannelArgs server_args =
|
|
880
|
+
core_server->channel_args().Set(GRPC_ARG_USE_V3_STACK, is_callv3);
|
|
881
|
+
|
|
782
882
|
std::string name = absl::StrCat("fd:", fd);
|
|
783
883
|
auto memory_quota =
|
|
784
884
|
server_args.GetObject<grpc_core::ResourceQuota>()->memory_quota();
|
|
@@ -791,18 +891,46 @@ void grpc_server_add_channel_from_fd(grpc_server* server, int fd,
|
|
|
791
891
|
for (grpc_pollset* pollset : core_server->pollsets()) {
|
|
792
892
|
grpc_endpoint_add_to_pollset(server_endpoint.get(), pollset);
|
|
793
893
|
}
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
894
|
+
|
|
895
|
+
if (!is_callv3) {
|
|
896
|
+
grpc_core::Transport* transport = grpc_create_chttp2_transport(
|
|
897
|
+
server_args, std::move(server_endpoint), false // is_client
|
|
898
|
+
);
|
|
899
|
+
grpc_error_handle error =
|
|
900
|
+
core_server->SetupTransport(transport, nullptr, server_args);
|
|
901
|
+
if (error.ok()) {
|
|
902
|
+
grpc_chttp2_transport_start_reading(transport, nullptr, nullptr, nullptr,
|
|
903
|
+
nullptr);
|
|
904
|
+
} else {
|
|
905
|
+
LOG(ERROR) << "Failed to create channel: "
|
|
906
|
+
<< grpc_core::StatusToString(error);
|
|
907
|
+
transport->Orphan();
|
|
908
|
+
}
|
|
802
909
|
} else {
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
910
|
+
std::unique_ptr<grpc_event_engine::experimental::EventEngine::Endpoint>
|
|
911
|
+
event_engine_endpoint = grpc_event_engine::experimental::
|
|
912
|
+
grpc_take_wrapped_event_engine_endpoint(server_endpoint.release());
|
|
913
|
+
if (event_engine_endpoint != nullptr) {
|
|
914
|
+
grpc_core::PromiseEndpoint promise_endpoint(
|
|
915
|
+
std::move(event_engine_endpoint), grpc_core::SliceBuffer());
|
|
916
|
+
std::shared_ptr<grpc_event_engine::experimental::EventEngine>
|
|
917
|
+
event_engine_ptr = server_args.GetObjectRef<grpc_core::EventEngine>();
|
|
918
|
+
grpc_core::Transport* transport =
|
|
919
|
+
new grpc_core::http2::Http2ServerTransport(
|
|
920
|
+
std::move(promise_endpoint), server_args,
|
|
921
|
+
std::move(event_engine_ptr), [](absl::StatusOr<uint32_t>) {},
|
|
922
|
+
/*on_close_callback=*/nullptr);
|
|
923
|
+
grpc_error_handle error =
|
|
924
|
+
core_server->SetupTransport(transport, nullptr, server_args);
|
|
925
|
+
// SetupTransport will spawn the initial transport promises.
|
|
926
|
+
if (!error.ok()) {
|
|
927
|
+
LOG(ERROR) << "Failed to create channel: "
|
|
928
|
+
<< grpc_core::StatusToString(error);
|
|
929
|
+
transport->Orphan();
|
|
930
|
+
}
|
|
931
|
+
} else {
|
|
932
|
+
LOG(ERROR) << "Failed to take endpoint.";
|
|
933
|
+
}
|
|
806
934
|
}
|
|
807
935
|
}
|
|
808
936
|
|
|
@@ -836,7 +964,9 @@ absl::Status grpc_server_add_passive_listener(
|
|
|
836
964
|
}
|
|
837
965
|
auto args = server->channel_args()
|
|
838
966
|
.SetObject(credentials->Ref())
|
|
839
|
-
.SetObject(std::move(sc))
|
|
967
|
+
.SetObject(std::move(sc))
|
|
968
|
+
.Set(GRPC_ARG_USE_V3_STACK,
|
|
969
|
+
grpc_core::http2::ShouldEnablePh2Server());
|
|
840
970
|
passive_listener->listener_ =
|
|
841
971
|
grpc_core::NewChttp2ServerListener::CreateForPassiveListener(
|
|
842
972
|
server, args, passive_listener);
|
|
@@ -26,11 +26,14 @@
|
|
|
26
26
|
|
|
27
27
|
#include <functional>
|
|
28
28
|
|
|
29
|
+
#include "src/core/ext/transport/chttp2/transport/http2_server_transport.h"
|
|
29
30
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
|
30
31
|
#include "src/core/handshaker/handshaker.h"
|
|
31
32
|
#include "src/core/lib/channel/channel_args.h"
|
|
32
33
|
#include "src/core/lib/iomgr/error.h"
|
|
34
|
+
#include "src/core/mitigation_engine/mitigation_engine.h"
|
|
33
35
|
#include "src/core/server/server.h"
|
|
36
|
+
#include "src/core/util/ref_counted_ptr.h"
|
|
34
37
|
|
|
35
38
|
namespace grpc_core {
|
|
36
39
|
|
|
@@ -131,7 +134,8 @@ class NewChttp2ServerListener : public Server::ListenerInterface {
|
|
|
131
134
|
// Set by HandshakingState before the handshaking begins and set to a valid
|
|
132
135
|
// transport when handshaking is done successfully.
|
|
133
136
|
std::variant<OrphanablePtr<HandshakingState>,
|
|
134
|
-
RefCountedPtr<grpc_chttp2_transport
|
|
137
|
+
RefCountedPtr<grpc_chttp2_transport>,
|
|
138
|
+
RefCountedPtr<http2::Http2ServerTransport>>
|
|
135
139
|
state_;
|
|
136
140
|
grpc_closure on_close_;
|
|
137
141
|
bool shutdown_ = false;
|
|
@@ -204,6 +208,11 @@ class NewChttp2ServerListener : public Server::ListenerInterface {
|
|
|
204
208
|
.GetObject<grpc_event_engine::experimental::EventEngine>();
|
|
205
209
|
}
|
|
206
210
|
|
|
211
|
+
RefCountedPtr<MitigationEngine> mitigation_engine() const {
|
|
212
|
+
auto* provider = args_.GetObject<MitigationEngineProvider>();
|
|
213
|
+
return provider != nullptr ? provider->GetEngine() : nullptr;
|
|
214
|
+
}
|
|
215
|
+
|
|
207
216
|
grpc_tcp_server* tcp_server_ = nullptr;
|
|
208
217
|
grpc_resolved_address resolved_address_;
|
|
209
218
|
RefCountedPtr<Server::ListenerState> listener_state_;
|
|
@@ -97,6 +97,7 @@
|
|
|
97
97
|
#include "src/core/lib/transport/status_conversion.h"
|
|
98
98
|
#include "src/core/lib/transport/transport.h"
|
|
99
99
|
#include "src/core/lib/transport/transport_framing_endpoint_extension.h"
|
|
100
|
+
#include "src/core/mitigation_engine/mitigation_engine.h"
|
|
100
101
|
#include "src/core/telemetry/call_tracer.h"
|
|
101
102
|
#include "src/core/telemetry/context_list_entry.h"
|
|
102
103
|
#include "src/core/telemetry/default_tcp_tracer.h"
|
|
@@ -155,6 +156,8 @@ static bool g_default_client_keepalive_permit_without_calls = false;
|
|
|
155
156
|
static bool g_default_server_keepalive_permit_without_calls = false;
|
|
156
157
|
|
|
157
158
|
#define MAX_CLIENT_STREAM_ID 0x7fffffffu
|
|
159
|
+
uint32_t g_pending_induced_frames_hard_limit =
|
|
160
|
+
2u * DEFAULT_MAX_PENDING_INDUCED_FRAMES;
|
|
158
161
|
|
|
159
162
|
// forward declarations of various callbacks that we'll build closures around
|
|
160
163
|
static void write_action_begin_locked(
|
|
@@ -500,6 +503,7 @@ static void read_channel_args(grpc_chttp2_transport* t,
|
|
|
500
503
|
.GetDurationFromIntMillis(GRPC_ARG_HTTP_TARPIT_MAX_DURATION_MS)
|
|
501
504
|
.value_or(grpc_core::Duration::Seconds(1))
|
|
502
505
|
.millis();
|
|
506
|
+
GRPC_CHECK(t->min_tarpit_duration_ms <= t->max_tarpit_duration_ms);
|
|
503
507
|
t->max_header_list_size_soft_limit =
|
|
504
508
|
grpc_core::GetSoftLimitFromChannelArgs(channel_args);
|
|
505
509
|
|
|
@@ -541,6 +545,10 @@ static void read_channel_args(grpc_chttp2_transport* t,
|
|
|
541
545
|
|
|
542
546
|
t->settings.mutable_local().SetAllowSecurityFrame(
|
|
543
547
|
channel_args.GetBool(GRPC_ARG_SECURITY_FRAME_ALLOWED).value_or(false));
|
|
548
|
+
t->max_security_frame_size = static_cast<uint32_t>(grpc_core::Clamp(
|
|
549
|
+
channel_args.GetInt(GRPC_ARG_MAX_SECURITY_FRAME_SIZE)
|
|
550
|
+
.value_or(kMaxSecurityFrameSize),
|
|
551
|
+
kMinMaxSecurityFrameSize, static_cast<int>(kMaxSecurityFrameSize)));
|
|
544
552
|
|
|
545
553
|
t->ping_on_rst_stream_percent = grpc_core::Clamp(
|
|
546
554
|
channel_args.GetInt(GRPC_ARG_HTTP2_PING_ON_RST_STREAM_PERCENT)
|
|
@@ -696,6 +704,7 @@ void grpc_chttp2_transport::WriteSecurityFrameLocked(
|
|
|
696
704
|
GRPC_ERROR_CREATE("Unexpected SECURITY frame scheduled for write"),
|
|
697
705
|
grpc_core::StatusIntProperty::kRpcStatus,
|
|
698
706
|
GRPC_STATUS_FAILED_PRECONDITION));
|
|
707
|
+
return;
|
|
699
708
|
}
|
|
700
709
|
grpc_core::SliceBuffer security_frame;
|
|
701
710
|
grpc_chttp2_security_frame_create(data->c_slice_buffer(), data->Length(),
|
|
@@ -736,7 +745,12 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
|
736
745
|
channel_args.GetBool(GRPC_ARG_HTTP2_BDP_PROBE).value_or(true),
|
|
737
746
|
&memory_owner),
|
|
738
747
|
deframe_state(is_client ? GRPC_DTS_FH_0 : GRPC_DTS_CLIENT_PREFIX_0),
|
|
739
|
-
is_client(is_client)
|
|
748
|
+
is_client(is_client),
|
|
749
|
+
mitigation_engine([&]() {
|
|
750
|
+
auto* provider =
|
|
751
|
+
channel_args.GetObject<grpc_core::MitigationEngineProvider>();
|
|
752
|
+
return provider == nullptr ? nullptr : provider->GetEngine();
|
|
753
|
+
}()) {
|
|
740
754
|
context_list = new grpc_core::ContextList();
|
|
741
755
|
|
|
742
756
|
if (channel_args.GetBool(GRPC_ARG_TCP_TRACING_ENABLED).value_or(false) &&
|
|
@@ -749,7 +763,8 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
|
749
763
|
grpc_core::GlobalStatsPluginRegistry::StatsPluginGroup>();
|
|
750
764
|
if (epte != nullptr && stats_plugin_group != nullptr) {
|
|
751
765
|
epte->EnableTcpTelemetry(stats_plugin_group->GetCollectionScope(),
|
|
752
|
-
/*is_control_endpoint=*/false
|
|
766
|
+
/*is_control_endpoint=*/false,
|
|
767
|
+
/*trace_full_buffer=*/false);
|
|
753
768
|
epte->SetTcpTracer(std::make_shared<grpc_core::DefaultTcpTracer>(
|
|
754
769
|
std::move(stats_plugin_group)));
|
|
755
770
|
}
|
|
@@ -884,7 +899,12 @@ static void close_transport_locked(grpc_chttp2_transport* t,
|
|
|
884
899
|
connectivity_state_set(t, GRPC_CHANNEL_SHUTDOWN, absl::Status(),
|
|
885
900
|
"close_transport");
|
|
886
901
|
// TODO(roth, ctiller): Provide better disconnect info here.
|
|
887
|
-
|
|
902
|
+
grpc_core::Transport::StateWatcher::DisconnectInfo disconnect_info;
|
|
903
|
+
if (t->sent_goaway_state == GRPC_CHTTP2_FINAL_GOAWAY_SENT) {
|
|
904
|
+
disconnect_info.reason = grpc_core::Transport::StateWatcher::kGoaway;
|
|
905
|
+
}
|
|
906
|
+
t->NotifyStateWatcherOnDisconnectLocked(t->closed_with_error,
|
|
907
|
+
disconnect_info);
|
|
888
908
|
if (t->keepalive_ping_timeout_handle != TaskHandle::kInvalid) {
|
|
889
909
|
t->event_engine->Cancel(std::exchange(t->keepalive_ping_timeout_handle,
|
|
890
910
|
TaskHandle::kInvalid));
|
|
@@ -1357,14 +1377,11 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
|
1357
1377
|
uint32_t last_stream_id,
|
|
1358
1378
|
absl::string_view goaway_text) {
|
|
1359
1379
|
t->goaway_error = grpc_error_set_int(
|
|
1360
|
-
grpc_error_set_int(
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
DEBUG_LOCATION, {}),
|
|
1366
|
-
grpc_core::StatusIntProperty::kHttp2Error,
|
|
1367
|
-
static_cast<intptr_t>(goaway_error)),
|
|
1380
|
+
grpc_error_set_int(absl::UnavailableError(absl::StrFormat(
|
|
1381
|
+
"GOAWAY received; Error code: %u; Debug Text: %s",
|
|
1382
|
+
goaway_error, goaway_text)),
|
|
1383
|
+
grpc_core::StatusIntProperty::kHttp2Error,
|
|
1384
|
+
static_cast<intptr_t>(goaway_error)),
|
|
1368
1385
|
grpc_core::StatusIntProperty::kRpcStatus, GRPC_STATUS_UNAVAILABLE);
|
|
1369
1386
|
|
|
1370
1387
|
GRPC_TRACE_LOG(http, INFO)
|
|
@@ -2012,6 +2029,25 @@ void grpc_chttp2_ack_ping(grpc_chttp2_transport* t, uint64_t id) {
|
|
|
2012
2029
|
}
|
|
2013
2030
|
}
|
|
2014
2031
|
|
|
2032
|
+
grpc_error_handle grpc_chttp2_increase_num_pending_induced_frames(
|
|
2033
|
+
grpc_chttp2_transport* t) {
|
|
2034
|
+
t->num_pending_induced_frames++;
|
|
2035
|
+
if (grpc_core::IsMemoryOptimization01Enabled()) {
|
|
2036
|
+
if (GPR_UNLIKELY(t->num_pending_induced_frames >=
|
|
2037
|
+
g_pending_induced_frames_hard_limit)) {
|
|
2038
|
+
LOG(ERROR) << "Too many pending induced frames. Closing transport.";
|
|
2039
|
+
return GRPC_ERROR_CREATE("Too many pending induced frames");
|
|
2040
|
+
}
|
|
2041
|
+
}
|
|
2042
|
+
|
|
2043
|
+
return absl::OkStatus();
|
|
2044
|
+
}
|
|
2045
|
+
|
|
2046
|
+
void grpc_chttp2_close_transport_locked(grpc_chttp2_transport* t,
|
|
2047
|
+
grpc_error_handle error) {
|
|
2048
|
+
close_transport_locked(t, error);
|
|
2049
|
+
}
|
|
2050
|
+
|
|
2015
2051
|
void grpc_chttp2_keepalive_timeout(
|
|
2016
2052
|
grpc_core::RefCountedPtr<grpc_chttp2_transport> t) {
|
|
2017
2053
|
t->combiner->Run(
|
|
@@ -2508,8 +2544,12 @@ void grpc_chttp2_cancel_stream(
|
|
|
2508
2544
|
if (t->is_client && !sent_initial_metadata) {
|
|
2509
2545
|
return;
|
|
2510
2546
|
}
|
|
2511
|
-
grpc_chttp2_add_rst_stream_to_next_write(
|
|
2547
|
+
grpc_error_handle error = grpc_chttp2_add_rst_stream_to_next_write(
|
|
2512
2548
|
t, id, static_cast<uint32_t>(http_error), nullptr);
|
|
2549
|
+
if (GPR_UNLIKELY(!error.ok())) {
|
|
2550
|
+
grpc_chttp2_close_transport_locked(t, error);
|
|
2551
|
+
return;
|
|
2552
|
+
}
|
|
2513
2553
|
grpc_chttp2_initiate_write(t,
|
|
2514
2554
|
GRPC_CHTTP2_INITIATE_WRITE_RST_STREAM);
|
|
2515
2555
|
});
|
|
@@ -2855,9 +2895,12 @@ static void close_from_api(
|
|
|
2855
2895
|
grpc_slice_buffer_add(&t->qbuf, message_slice.TakeCSlice());
|
|
2856
2896
|
}
|
|
2857
2897
|
grpc_chttp2_reset_ping_clock(t);
|
|
2858
|
-
grpc_chttp2_add_rst_stream_to_next_write(
|
|
2898
|
+
grpc_error_handle error = grpc_chttp2_add_rst_stream_to_next_write(
|
|
2859
2899
|
t, id, static_cast<intptr_t>(Http2ErrorCode::kNoError), nullptr);
|
|
2860
|
-
|
|
2900
|
+
if (GPR_UNLIKELY(!error.ok())) {
|
|
2901
|
+
grpc_chttp2_close_transport_locked(t, error);
|
|
2902
|
+
return;
|
|
2903
|
+
}
|
|
2861
2904
|
grpc_chttp2_initiate_write(t,
|
|
2862
2905
|
GRPC_CHTTP2_INITIATE_WRITE_CLOSE_FROM_API);
|
|
2863
2906
|
});
|
|
@@ -2979,6 +3022,7 @@ static void read_action_parse_loop_locked(
|
|
|
2979
3022
|
grpc_core::RefCountedPtr<grpc_chttp2_transport> t,
|
|
2980
3023
|
grpc_error_handle error) {
|
|
2981
3024
|
GRPC_LATENT_SEE_ALWAYS_ON_SCOPE("read_action_parse_loop_locked");
|
|
3025
|
+
bool should_reset_buffer = true;
|
|
2982
3026
|
if (t->closed_with_error.ok()) {
|
|
2983
3027
|
grpc_error_handle errors[3] = {error, absl::OkStatus(), absl::OkStatus()};
|
|
2984
3028
|
size_t requests_started = 0;
|
|
@@ -3004,6 +3048,19 @@ static void read_action_parse_loop_locked(
|
|
|
3004
3048
|
} else {
|
|
3005
3049
|
errors[1] = std::move(std::get<absl::Status>(r));
|
|
3006
3050
|
}
|
|
3051
|
+
|
|
3052
|
+
if (grpc_core::IsMemoryOptimization02Enabled()) {
|
|
3053
|
+
if (errors[1].ok() && (i + 1 < t->read_buffer.count) &&
|
|
3054
|
+
t->num_pending_induced_frames >=
|
|
3055
|
+
DEFAULT_MAX_PENDING_INDUCED_FRAMES) {
|
|
3056
|
+
for (size_t j = 0; j <= i; j++) {
|
|
3057
|
+
grpc_core::CSliceUnref(
|
|
3058
|
+
grpc_slice_buffer_take_first(&t->read_buffer));
|
|
3059
|
+
}
|
|
3060
|
+
should_reset_buffer = false;
|
|
3061
|
+
break;
|
|
3062
|
+
}
|
|
3063
|
+
}
|
|
3007
3064
|
}
|
|
3008
3065
|
if (errors[1] != absl::OkStatus()) {
|
|
3009
3066
|
errors[2] = try_http_parsing(t.get());
|
|
@@ -3045,7 +3102,9 @@ static void read_action_parse_loop_locked(
|
|
|
3045
3102
|
maybe_reset_keepalive_ping_timer_locked(t.get());
|
|
3046
3103
|
}
|
|
3047
3104
|
}
|
|
3048
|
-
|
|
3105
|
+
if (should_reset_buffer) {
|
|
3106
|
+
grpc_slice_buffer_reset_and_unref(&t->read_buffer);
|
|
3107
|
+
}
|
|
3049
3108
|
|
|
3050
3109
|
if (keep_reading) {
|
|
3051
3110
|
if (t->num_pending_induced_frames >= DEFAULT_MAX_PENDING_INDUCED_FRAMES) {
|
|
@@ -3084,6 +3143,16 @@ static void read_action_locked(
|
|
|
3084
3143
|
|
|
3085
3144
|
static void continue_read_action_locked(
|
|
3086
3145
|
grpc_core::RefCountedPtr<grpc_chttp2_transport> t) {
|
|
3146
|
+
if (grpc_core::IsMemoryOptimization02Enabled()) {
|
|
3147
|
+
if (t->read_buffer.count > 0) {
|
|
3148
|
+
auto* tp = t.get();
|
|
3149
|
+
tp->combiner->Run(
|
|
3150
|
+
grpc_core::InitTransportClosure<read_action_parse_loop_locked>(
|
|
3151
|
+
std::move(t), &tp->read_action_locked),
|
|
3152
|
+
absl::OkStatus());
|
|
3153
|
+
return;
|
|
3154
|
+
}
|
|
3155
|
+
}
|
|
3087
3156
|
const bool urgent = !t->goaway_error.ok();
|
|
3088
3157
|
auto* tp = t.get();
|
|
3089
3158
|
grpc_endpoint_read(tp->ep.get(), &tp->read_buffer,
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
#include "src/core/channelz/channelz.h"
|
|
30
30
|
#include "src/core/ext/transport/chttp2/transport/flow_control.h"
|
|
31
|
+
#include "src/core/ext/transport/chttp2/transport/http2_status.h"
|
|
31
32
|
#include "src/core/lib/channel/channel_args.h"
|
|
32
33
|
#include "src/core/lib/debug/trace.h"
|
|
33
34
|
#include "src/core/lib/iomgr/buffer_list.h"
|
|
@@ -119,12 +119,12 @@ std::string FlowControlAction::ImmediateUpdateReasons() const {
|
|
|
119
119
|
return result;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
TransportFlowControl::TransportFlowControl(absl::string_view
|
|
122
|
+
TransportFlowControl::TransportFlowControl(absl::string_view peer_name,
|
|
123
123
|
bool enable_bdp_probe,
|
|
124
124
|
MemoryOwner* memory_owner)
|
|
125
125
|
: memory_owner_(memory_owner),
|
|
126
126
|
enable_bdp_probe_(enable_bdp_probe),
|
|
127
|
-
bdp_estimator_(
|
|
127
|
+
bdp_estimator_(peer_name) {}
|
|
128
128
|
|
|
129
129
|
uint32_t TransportFlowControl::DesiredAnnounceSize(bool writing_anyway) const {
|
|
130
130
|
const uint32_t target_announced_window =
|
|
@@ -315,7 +315,7 @@ FlowControlAction TransportFlowControl::PeriodicUpdate() {
|
|
|
315
315
|
Http2Settings::max_max_frame_size()),
|
|
316
316
|
&action, &FlowControlAction::set_send_max_frame_size_update);
|
|
317
317
|
|
|
318
|
-
if (IsTcpFrameSizeTuningEnabled()) {
|
|
318
|
+
if (IsTcpFrameSizeTuningEnabled() && ph2_enable_rx_crypto_) {
|
|
319
319
|
// Advertise PREFERRED_RECEIVE_CRYPTO_FRAME_SIZE to peer. By advertising
|
|
320
320
|
// PREFERRED_RECEIVE_CRYPTO_FRAME_SIZE to the peer, we are informing the
|
|
321
321
|
// peer that we have tcp frame size tuning enabled and we inform it of our
|
|
@@ -201,11 +201,16 @@ std::ostream& operator<<(std::ostream& out, const FlowControlAction& action);
|
|
|
201
201
|
// This class manages the flow control at a connection level.
|
|
202
202
|
class TransportFlowControl final {
|
|
203
203
|
public:
|
|
204
|
-
explicit TransportFlowControl(absl::string_view
|
|
204
|
+
explicit TransportFlowControl(absl::string_view peer_name,
|
|
205
|
+
bool enable_bdp_probe,
|
|
205
206
|
MemoryOwner* memory_owner);
|
|
206
207
|
~TransportFlowControl() {}
|
|
207
208
|
|
|
208
209
|
bool bdp_probe() const { return enable_bdp_probe_; }
|
|
210
|
+
bool ph2_enable_rx_crypto() const { return ph2_enable_rx_crypto_; }
|
|
211
|
+
void set_ph2_enable_rx_crypto(const bool enable) {
|
|
212
|
+
ph2_enable_rx_crypto_ = enable;
|
|
213
|
+
}
|
|
209
214
|
|
|
210
215
|
// Returns a non-zero announce if we should send a transport update to our
|
|
211
216
|
// peer, else returns zero; writing_anyway indicates if a write would happen
|
|
@@ -314,7 +319,7 @@ class TransportFlowControl final {
|
|
|
314
319
|
// Call periodically (at a low-ish rate, 100ms - 10s makes sense)
|
|
315
320
|
// to perform more complex flow control calculations and return an action
|
|
316
321
|
// to let the transport change its parameters.
|
|
317
|
-
// TODO(tjagtap) [PH2][P2] Plumb with PH2 flow control.
|
|
322
|
+
// TODO(tjagtap) [PH2][P2][FCV3] Plumb with PH2 flow control.
|
|
318
323
|
FlowControlAction PeriodicUpdate();
|
|
319
324
|
|
|
320
325
|
int64_t test_only_target_window() const { return target_window(); }
|
|
@@ -471,6 +476,13 @@ class TransportFlowControl final {
|
|
|
471
476
|
uint32_t acked_init_window_ = kDefaultWindow;
|
|
472
477
|
uint32_t sent_init_window_ = kDefaultWindow;
|
|
473
478
|
absl::flat_hash_set<uint32_t> window_update_list_;
|
|
479
|
+
|
|
480
|
+
// Preferred_rx_crypto_frame_sizes are advertised to the peer
|
|
481
|
+
// For CHTTP2, this is always true.
|
|
482
|
+
// For PH2, this is set by the transport based on the channel arg
|
|
483
|
+
// GRPC_ARG_EXPERIMENTAL_HTTP2_PREFERRED_CRYPTO_FRAME_SIZE.
|
|
484
|
+
// TODO(tjagtap) [PH2][CHTTP2] Edit comment when CHTTP2 is getting deleted.
|
|
485
|
+
bool ph2_enable_rx_crypto_ = true;
|
|
474
486
|
};
|
|
475
487
|
|
|
476
488
|
// Implementation of flow control that abides to HTTP/2 spec and attempts
|