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
|
@@ -116,7 +116,7 @@ Http2ErrorCode Http2Settings::Apply(uint16_t key, uint32_t value) {
|
|
|
116
116
|
max_frame_size_ = value;
|
|
117
117
|
break;
|
|
118
118
|
case kMaxHeaderListSizeWireId:
|
|
119
|
-
max_header_list_size_ = std::min(value,
|
|
119
|
+
max_header_list_size_ = std::min(value, kDefaultMaxHeaderListSize);
|
|
120
120
|
break;
|
|
121
121
|
case kGrpcAllowTrueBinaryMetadataWireId:
|
|
122
122
|
if (value > 1) return Http2ErrorCode::kProtocolError;
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
#include <grpc/support/port_platform.h>
|
|
21
21
|
#include <stdint.h>
|
|
22
22
|
|
|
23
|
+
#include <algorithm>
|
|
23
24
|
#include <cstdint>
|
|
24
25
|
#include <optional>
|
|
25
26
|
|
|
@@ -48,6 +49,25 @@ class Http2Settings {
|
|
|
48
49
|
kGrpcAllowSecurityFrameWireId = 65029,
|
|
49
50
|
};
|
|
50
51
|
|
|
52
|
+
constexpr static uint8_t kNumSettings = 9u;
|
|
53
|
+
|
|
54
|
+
// RFC9113 defines the default value for some of these settings.
|
|
55
|
+
// https://datatracker.ietf.org/doc/html/rfc9113#name-defined-settings
|
|
56
|
+
// RFC defined defaults for RFC defined settings :
|
|
57
|
+
constexpr static uint32_t kDefaultHeaderTableSize = 4096u;
|
|
58
|
+
constexpr static uint32_t kDefaultMaxConcurrentStreams = 4294967295u;
|
|
59
|
+
constexpr static uint32_t kDefaultInitialWindowSize = 65535u;
|
|
60
|
+
constexpr static uint32_t kDefaultMaxFrameSize = 16384u;
|
|
61
|
+
constexpr static bool kDefaultEnablePush = true;
|
|
62
|
+
|
|
63
|
+
// gRPC defined defaults for RFC defined settings :
|
|
64
|
+
constexpr static uint32_t kDefaultMaxHeaderListSize = 16777216u;
|
|
65
|
+
|
|
66
|
+
// gRPC defined defaults.
|
|
67
|
+
constexpr static uint32_t kDefaultPreferredReceiveCryptoMessageSize = 0u;
|
|
68
|
+
constexpr static bool kDefaultAllowTrueBinaryMetadata = false;
|
|
69
|
+
constexpr static bool kDefaultAllowSecurityFrame = false;
|
|
70
|
+
|
|
51
71
|
void Diff(bool is_first_send, const Http2Settings& old_setting,
|
|
52
72
|
absl::FunctionRef<void(uint16_t key, uint32_t value)> cb) const;
|
|
53
73
|
GRPC_MUST_USE_RESULT http2::Http2ErrorCode Apply(uint16_t key,
|
|
@@ -79,7 +99,7 @@ class Http2Settings {
|
|
|
79
99
|
}
|
|
80
100
|
void SetEnablePush(bool x) { enable_push_ = x; }
|
|
81
101
|
void SetMaxHeaderListSize(uint32_t x) {
|
|
82
|
-
max_header_list_size_ = std::min(x,
|
|
102
|
+
max_header_list_size_ = std::min(x, kDefaultMaxHeaderListSize);
|
|
83
103
|
}
|
|
84
104
|
void SetAllowTrueBinaryMetadata(bool x) { allow_true_binary_metadata_ = x; }
|
|
85
105
|
void SetMaxFrameSize(uint32_t x) {
|
|
@@ -124,6 +144,23 @@ class Http2Settings {
|
|
|
124
144
|
return 2147483647u;
|
|
125
145
|
}
|
|
126
146
|
|
|
147
|
+
static bool IsKnownSettingId(const uint16_t id) {
|
|
148
|
+
switch (id) {
|
|
149
|
+
case kHeaderTableSizeWireId:
|
|
150
|
+
case kEnablePushWireId:
|
|
151
|
+
case kMaxConcurrentStreamsWireId:
|
|
152
|
+
case kInitialWindowSizeWireId:
|
|
153
|
+
case kMaxFrameSizeWireId:
|
|
154
|
+
case kMaxHeaderListSizeWireId:
|
|
155
|
+
case kGrpcAllowTrueBinaryMetadataWireId:
|
|
156
|
+
case kGrpcPreferredReceiveCryptoFrameSizeWireId:
|
|
157
|
+
case kGrpcAllowSecurityFrameWireId:
|
|
158
|
+
return true;
|
|
159
|
+
default:
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
127
164
|
static std::string WireIdToName(uint16_t wire_id);
|
|
128
165
|
|
|
129
166
|
bool operator==(const Http2Settings& rhs) const {
|
|
@@ -159,45 +196,42 @@ class Http2Settings {
|
|
|
159
196
|
// RFC9113 states the default value for SETTINGS_HEADER_TABLE_SIZE
|
|
160
197
|
// Currently this is set only once in the lifetime of a transport.
|
|
161
198
|
// We plan to change that in the future.
|
|
162
|
-
uint32_t header_table_size_ =
|
|
199
|
+
uint32_t header_table_size_ = kDefaultHeaderTableSize;
|
|
163
200
|
|
|
164
|
-
// TODO(tjagtap) [PH2][P4] : Get the history of why this default was decided
|
|
165
|
-
// and write it here.
|
|
166
201
|
// CLIENT : Set only once in the lifetime of a client transport. This is set
|
|
167
202
|
// to 0 for client.
|
|
168
203
|
// SERVER : This setting can change for the server. This is usually changed to
|
|
169
204
|
// handle memory pressure.
|
|
170
|
-
uint32_t initial_max_concurrent_streams_ =
|
|
171
|
-
uint32_t max_concurrent_streams_ =
|
|
205
|
+
uint32_t initial_max_concurrent_streams_ = kDefaultMaxConcurrentStreams;
|
|
206
|
+
uint32_t max_concurrent_streams_ = kDefaultMaxConcurrentStreams;
|
|
172
207
|
|
|
173
208
|
// RFC9113 states the default for SETTINGS_INITIAL_WINDOW_SIZE
|
|
174
209
|
// Both client and servers can change this setting. This is usually changed to
|
|
175
210
|
// handle memory pressure.
|
|
176
|
-
uint32_t initial_window_size_ =
|
|
211
|
+
uint32_t initial_window_size_ = kDefaultInitialWindowSize;
|
|
177
212
|
|
|
178
213
|
// RFC9113 states the default for SETTINGS_MAX_FRAME_SIZE
|
|
179
214
|
// Both client and servers can change this setting. This is usually changed to
|
|
180
215
|
// handle memory pressure.
|
|
181
|
-
uint32_t max_frame_size_ =
|
|
216
|
+
uint32_t max_frame_size_ = kDefaultMaxFrameSize;
|
|
182
217
|
|
|
183
|
-
// TODO(tjagtap) [PH2][P4] : Get the history of why this default was decided
|
|
184
|
-
// and write it here.
|
|
185
218
|
// This is an advisory but we currently enforce it.
|
|
186
219
|
// Set only once in the lifetime of a transport currently.
|
|
187
220
|
// When a peer that updates this more than once, that may indicate either an
|
|
188
221
|
// underlying issue or a malicious peer.
|
|
189
|
-
uint32_t max_header_list_size_ =
|
|
222
|
+
uint32_t max_header_list_size_ = kDefaultMaxHeaderListSize;
|
|
190
223
|
|
|
191
224
|
// gRPC defined setting
|
|
192
225
|
// Both client and servers can change this setting. This is usually changed to
|
|
193
226
|
// handle memory pressure.
|
|
194
|
-
uint32_t preferred_receive_crypto_message_size_ =
|
|
227
|
+
uint32_t preferred_receive_crypto_message_size_ =
|
|
228
|
+
kDefaultPreferredReceiveCryptoMessageSize;
|
|
195
229
|
|
|
196
230
|
// RFC9113 defined default is true. However, for gRPC we always then set it to
|
|
197
231
|
// false via the SetEnablePush function
|
|
198
232
|
// Currently this is set only once in the lifetime of a transport.
|
|
199
233
|
// We have no plans to support this in the future.
|
|
200
|
-
bool enable_push_ =
|
|
234
|
+
bool enable_push_ = kDefaultEnablePush;
|
|
201
235
|
|
|
202
236
|
// gRPC defined setting
|
|
203
237
|
// Currently this is set only once in the lifetime of a transport.
|
|
@@ -206,7 +240,7 @@ class Http2Settings {
|
|
|
206
240
|
// flag. Both peers can send each other the default non-binary METADATA
|
|
207
241
|
// irrespective of this flag. This flag says if we are willing to accept
|
|
208
242
|
// Binary-Metadata from the peer or not.
|
|
209
|
-
bool allow_true_binary_metadata_ =
|
|
243
|
+
bool allow_true_binary_metadata_ = kDefaultAllowTrueBinaryMetadata;
|
|
210
244
|
|
|
211
245
|
// gRPC defined setting
|
|
212
246
|
// Unlike most other SETTINGS, this setting is negotiated between the client
|
|
@@ -214,7 +248,7 @@ class Http2Settings {
|
|
|
214
248
|
// apply the custom SECURITY frame.
|
|
215
249
|
// Currently this is set only once in the lifetime of a transport.
|
|
216
250
|
// Disconnect if it is received more than once from the peer.
|
|
217
|
-
bool allow_security_frame_ =
|
|
251
|
+
bool allow_security_frame_ = kDefaultAllowSecurityFrame;
|
|
218
252
|
};
|
|
219
253
|
|
|
220
254
|
} // namespace grpc_core
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
#include <grpc/support/port_platform.h>
|
|
24
24
|
|
|
25
25
|
#include <algorithm>
|
|
26
|
+
#include <cstddef>
|
|
26
27
|
#include <cstdint>
|
|
27
28
|
#include <optional>
|
|
28
29
|
#include <string>
|
|
@@ -49,6 +50,7 @@
|
|
|
49
50
|
#include "src/core/util/grpc_check.h"
|
|
50
51
|
#include "src/core/util/ref_counted.h"
|
|
51
52
|
#include "src/core/util/time.h"
|
|
53
|
+
#include "absl/container/flat_hash_map.h"
|
|
52
54
|
#include "absl/functional/any_invocable.h"
|
|
53
55
|
#include "absl/log/log.h"
|
|
54
56
|
#include "absl/status/status.h"
|
|
@@ -64,6 +66,11 @@ namespace grpc_core {
|
|
|
64
66
|
#define GRPC_SETTINGS_TIMEOUT_DLOG \
|
|
65
67
|
DLOG_IF(INFO, GRPC_TRACE_FLAG_ENABLED(http2_ph2_transport))
|
|
66
68
|
|
|
69
|
+
struct ApplySettingsResult {
|
|
70
|
+
bool did_change_peer_max_concurrent_streams = false;
|
|
71
|
+
bool should_spawn_security_frame_loop = false;
|
|
72
|
+
};
|
|
73
|
+
|
|
67
74
|
// This class can only be used only from a promise based HTTP2 transports
|
|
68
75
|
// general_party_ .
|
|
69
76
|
// This class is designed with the assumption that only 1 SETTINGS frame will be
|
|
@@ -72,9 +79,13 @@ namespace grpc_core {
|
|
|
72
79
|
class SettingsPromiseManager final : public RefCounted<SettingsPromiseManager> {
|
|
73
80
|
public:
|
|
74
81
|
explicit SettingsPromiseManager(
|
|
82
|
+
const bool is_client,
|
|
75
83
|
absl::AnyInvocable<void(absl::StatusOr<uint32_t>)> on_receive_settings)
|
|
76
|
-
:
|
|
77
|
-
|
|
84
|
+
: is_client_(is_client),
|
|
85
|
+
on_receive_first_settings_(std::move(on_receive_settings)),
|
|
86
|
+
state_(SettingsState::kWaitingForFirstPeerSettings) {
|
|
87
|
+
pending_peer_settings_.reserve(Http2Settings::kNumSettings + 1);
|
|
88
|
+
}
|
|
78
89
|
|
|
79
90
|
~SettingsPromiseManager() override {
|
|
80
91
|
GRPC_DCHECK(on_receive_first_settings_ == nullptr);
|
|
@@ -113,12 +124,19 @@ class SettingsPromiseManager final : public RefCounted<SettingsPromiseManager> {
|
|
|
113
124
|
// Called when transport receives a SETTINGS ACK frame from peer.
|
|
114
125
|
// This SETTINGS ACK was sent by peer to confirm receipt of SETTINGS frame
|
|
115
126
|
// sent by us. Stop the settings timeout promise.
|
|
116
|
-
|
|
127
|
+
http2::Http2Status OnSettingsAckReceived() {
|
|
117
128
|
bool is_valid = settings_.AckLastSend();
|
|
118
129
|
if (is_valid) {
|
|
119
130
|
RecordReceivedAck();
|
|
131
|
+
} else {
|
|
132
|
+
LOG(ERROR) << "Settings ack received without sending settings.";
|
|
133
|
+
// CHTTP2 and PH2 return connection error for an unsolicited SETTINGS ACK.
|
|
134
|
+
// RFC 9113 does not explicitly specify unsolicited ACK handling.
|
|
135
|
+
return http2::Http2Status::Http2ConnectionError(
|
|
136
|
+
http2::Http2ErrorCode::kInternalError,
|
|
137
|
+
std::string(GrpcErrors::kUnsolicitedSettingsAck));
|
|
120
138
|
}
|
|
121
|
-
return
|
|
139
|
+
return http2::Http2Status::Ok();
|
|
122
140
|
}
|
|
123
141
|
|
|
124
142
|
// Called when our transport enqueues a SETTINGS frame to send to the peer.
|
|
@@ -193,15 +211,24 @@ class SettingsPromiseManager final : public RefCounted<SettingsPromiseManager> {
|
|
|
193
211
|
// Buffers SETTINGS frames received from peer.
|
|
194
212
|
// Buffered to apply settings at start of next write cycle, only after
|
|
195
213
|
// SETTINGS ACK is written to the endpoint.
|
|
196
|
-
|
|
214
|
+
http2::Http2Status BufferPeerSettings(
|
|
215
|
+
std::vector<Http2SettingsFrame::Setting>&& settings) {
|
|
216
|
+
http2::Http2Status status = ValidateSettingsValues(settings);
|
|
217
|
+
if (!status.IsOk()) {
|
|
218
|
+
return status;
|
|
219
|
+
}
|
|
197
220
|
if (state_ == SettingsState::kWaitingForFirstPeerSettings) {
|
|
198
221
|
state_ = SettingsState::kFirstPeerSettingsReceived;
|
|
199
222
|
}
|
|
200
223
|
++num_acks_to_send_;
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
224
|
+
for (const auto& setting : settings) {
|
|
225
|
+
// RFC9113: An endpoint that receives a SETTINGS frame with any unknown or
|
|
226
|
+
// unsupported identifier MUST ignore that setting.
|
|
227
|
+
if (Http2Settings::IsKnownSettingId(setting.id)) {
|
|
228
|
+
pending_peer_settings_[setting.id] = setting.value;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return http2::Http2Status::Ok();
|
|
205
232
|
}
|
|
206
233
|
|
|
207
234
|
// Applies settings buffered by BufferPeerSettings().
|
|
@@ -210,14 +237,33 @@ class SettingsPromiseManager final : public RefCounted<SettingsPromiseManager> {
|
|
|
210
237
|
// the peer that that needs some special handling too.
|
|
211
238
|
http2::Http2ErrorCode MaybeReportAndApplyBufferedPeerSettings(
|
|
212
239
|
grpc_event_engine::experimental::EventEngine* event_engine,
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
240
|
+
ApplySettingsResult& apply_settings_result) {
|
|
241
|
+
const uint32_t old_setting = settings_.peer().max_concurrent_streams();
|
|
242
|
+
std::vector<Http2SettingsFrame::Setting> settings_to_apply;
|
|
243
|
+
settings_to_apply.reserve(pending_peer_settings_.size());
|
|
244
|
+
for (const auto& [id, value] : pending_peer_settings_) {
|
|
245
|
+
settings_to_apply.emplace_back(id, value);
|
|
246
|
+
}
|
|
247
|
+
pending_peer_settings_.clear();
|
|
248
|
+
http2::Http2ErrorCode status =
|
|
249
|
+
settings_.ApplyIncomingSettings(settings_to_apply);
|
|
250
|
+
if (status == http2::Http2ErrorCode::kNoError && is_client_) {
|
|
251
|
+
// Since PH2-Servers do not initiate streams, we ignore this setting for
|
|
252
|
+
// Servers.
|
|
253
|
+
const uint32_t applied_max_concurrent_streams =
|
|
254
|
+
settings_.peer().max_concurrent_streams();
|
|
255
|
+
apply_settings_result.did_change_peer_max_concurrent_streams =
|
|
256
|
+
(applied_max_concurrent_streams != old_setting);
|
|
257
|
+
// TODO(tjagtap) : [PH2][P0] : Plumb this with the StateWatcher code.
|
|
258
|
+
}
|
|
259
|
+
|
|
216
260
|
if (state_ == SettingsState::kFirstPeerSettingsReceived) {
|
|
217
261
|
MaybeReportInitialSettings(event_engine);
|
|
218
262
|
state_ = SettingsState::kReady;
|
|
219
|
-
should_spawn_security_frame_loop =
|
|
263
|
+
apply_settings_result.should_spawn_security_frame_loop =
|
|
264
|
+
IsSecurityFrameExpected();
|
|
220
265
|
}
|
|
266
|
+
GRPC_DCHECK(pending_peer_settings_.empty());
|
|
221
267
|
return status;
|
|
222
268
|
}
|
|
223
269
|
|
|
@@ -269,11 +315,11 @@ class SettingsPromiseManager final : public RefCounted<SettingsPromiseManager> {
|
|
|
269
315
|
return settings_.ChannelzProperties().SetColumn(
|
|
270
316
|
"Counters",
|
|
271
317
|
channelz::PropertyList().Set("initial_window_size_increase_count",
|
|
272
|
-
|
|
318
|
+
num_peer_initial_window_size_increases_));
|
|
273
319
|
}
|
|
274
320
|
|
|
275
321
|
void IncrementInitialWindowSizeIncreaseCount() {
|
|
276
|
-
++
|
|
322
|
+
++num_peer_initial_window_size_increases_;
|
|
277
323
|
}
|
|
278
324
|
|
|
279
325
|
bool IsSecurityFrameExpected() const {
|
|
@@ -281,20 +327,19 @@ class SettingsPromiseManager final : public RefCounted<SettingsPromiseManager> {
|
|
|
281
327
|
<< "Security frame must not be received before SETTINGS frame";
|
|
282
328
|
// TODO(tjagtap) : [PH2][P3] : Evaluate when to accept the frame and when to
|
|
283
329
|
// reject it. Compare it with the requirement and with CHTTP2.
|
|
284
|
-
|
|
285
|
-
|
|
330
|
+
const bool is_expected = (settings_.local().allow_security_frame()) &&
|
|
331
|
+
settings_.peer().allow_security_frame();
|
|
332
|
+
GRPC_SETTINGS_TIMEOUT_DLOG
|
|
333
|
+
<< "SettingsPromiseManager::IsSecurityFrameExpected: " << is_expected;
|
|
334
|
+
return is_expected;
|
|
286
335
|
};
|
|
287
336
|
|
|
288
337
|
private:
|
|
289
|
-
Http2SettingsManager settings_;
|
|
290
|
-
|
|
291
338
|
//////////////////////////////////////////////////////////////////////////////
|
|
292
339
|
// Plumbing Settings with Chttp2Connector class
|
|
293
340
|
|
|
294
341
|
void MaybeReportInitialSettings(
|
|
295
342
|
grpc_event_engine::experimental::EventEngine* event_engine) {
|
|
296
|
-
// TODO(tjagtap) [PH2][P2] Relook at this while writing server. I think this
|
|
297
|
-
// will be different for client and server.
|
|
298
343
|
if (on_receive_first_settings_ != nullptr) {
|
|
299
344
|
GRPC_DCHECK(state_ == SettingsState::kFirstPeerSettingsReceived);
|
|
300
345
|
GRPC_DCHECK(event_engine != nullptr);
|
|
@@ -315,8 +360,6 @@ class SettingsPromiseManager final : public RefCounted<SettingsPromiseManager> {
|
|
|
315
360
|
|
|
316
361
|
void MaybeReportInitialSettingsAbort(
|
|
317
362
|
grpc_event_engine::experimental::EventEngine* event_engine) {
|
|
318
|
-
// TODO(tjagtap) [PH2][P2] Relook at this while writing server. I think this
|
|
319
|
-
// will be different for client and server.
|
|
320
363
|
if (on_receive_first_settings_ != nullptr) {
|
|
321
364
|
GRPC_DCHECK(event_engine != nullptr);
|
|
322
365
|
GRPC_DCHECK(state_ != SettingsState::kReady);
|
|
@@ -417,9 +460,10 @@ class SettingsPromiseManager final : public RefCounted<SettingsPromiseManager> {
|
|
|
417
460
|
|
|
418
461
|
//////////////////////////////////////////////////////////////////////////////
|
|
419
462
|
// Data Members for SETTINGS being received from the peer.
|
|
463
|
+
const bool is_client_;
|
|
420
464
|
|
|
421
465
|
absl::AnyInvocable<void(absl::StatusOr<uint32_t>)> on_receive_first_settings_;
|
|
422
|
-
|
|
466
|
+
absl::flat_hash_map<uint16_t, uint32_t> pending_peer_settings_;
|
|
423
467
|
// Number of incoming SETTINGS frames that we have received but not ACKed yet.
|
|
424
468
|
uint32_t num_acks_to_send_ = 0;
|
|
425
469
|
|
|
@@ -430,8 +474,12 @@ class SettingsPromiseManager final : public RefCounted<SettingsPromiseManager> {
|
|
|
430
474
|
};
|
|
431
475
|
SettingsState state_;
|
|
432
476
|
|
|
433
|
-
//
|
|
434
|
-
|
|
477
|
+
// Number of times the peer has increased the initial window size. Currently,
|
|
478
|
+
// PH2 handles this by iterating over all the active streams to potentially
|
|
479
|
+
// make them writable. This is tracked via channelz in case it causes any
|
|
480
|
+
// performance issues in the future.
|
|
481
|
+
size_t num_peer_initial_window_size_increases_ = 0;
|
|
482
|
+
Http2SettingsManager settings_;
|
|
435
483
|
};
|
|
436
484
|
|
|
437
485
|
} // namespace grpc_core
|
|
@@ -72,6 +72,9 @@ namespace http2 {
|
|
|
72
72
|
// Milestone 4. Either do the TODOs or delete them.
|
|
73
73
|
// [PH2][EXT] This is a TODO related to a project unrelated to PH2 but happening
|
|
74
74
|
// in parallel.
|
|
75
|
+
// [PH2][CHTTP2] This TODO is a part of CHTTP2 deletion.
|
|
76
|
+
// [PH2][Px][FCV3] This TODO is related to Flow Control plumbing with the
|
|
77
|
+
// Application and the Call V3 stack.
|
|
75
78
|
|
|
76
79
|
constexpr Duration kDefaultPingTimeout = Duration::Minutes(1);
|
|
77
80
|
constexpr Duration kDefaultKeepaliveTimeout = Duration::Seconds(20);
|
|
@@ -132,8 +135,6 @@ std::string TransportChannelArgs::DebugString() const {
|
|
|
132
135
|
" keepalive_timeout: ", keepalive_timeout,
|
|
133
136
|
" ping_timeout: ", ping_timeout, " settings_timeout: ", settings_timeout,
|
|
134
137
|
" keepalive_permit_without_calls: ", keepalive_permit_without_calls,
|
|
135
|
-
" enable_preferred_rx_crypto_frame_advertisement: ",
|
|
136
|
-
enable_preferred_rx_crypto_frame_advertisement,
|
|
137
138
|
" max_header_list_size_soft_limit: ", max_header_list_size_soft_limit,
|
|
138
139
|
" max_usable_hpack_table_size: ", max_usable_hpack_table_size,
|
|
139
140
|
" initial_sequence_number: ", initial_sequence_number,
|
|
@@ -173,11 +174,6 @@ void ReadChannelArgs(const ChannelArgs& channel_args,
|
|
|
173
174
|
channel_args.GetBool(GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS)
|
|
174
175
|
.value_or(kDefaultKeepalivePermitWithoutCalls);
|
|
175
176
|
|
|
176
|
-
args.enable_preferred_rx_crypto_frame_advertisement =
|
|
177
|
-
channel_args
|
|
178
|
-
.GetBool(GRPC_ARG_EXPERIMENTAL_HTTP2_PREFERRED_CRYPTO_FRAME_SIZE)
|
|
179
|
-
.value_or(kDefaultEnablePreferredRxCryptoFrameAdvertisement);
|
|
180
|
-
|
|
181
177
|
args.max_usable_hpack_table_size =
|
|
182
178
|
channel_args.GetInt(GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER).value_or(-1);
|
|
183
179
|
|
|
@@ -235,9 +231,12 @@ void ReadSettingsFromChannelArgs(const ChannelArgs& channel_args,
|
|
|
235
231
|
channel_args.GetInt(GRPC_ARG_HTTP2_MAX_FRAME_SIZE).value_or(-1));
|
|
236
232
|
}
|
|
237
233
|
|
|
238
|
-
|
|
234
|
+
const bool enable_preferred_crypto =
|
|
235
|
+
channel_args
|
|
239
236
|
.GetBool(GRPC_ARG_EXPERIMENTAL_HTTP2_PREFERRED_CRYPTO_FRAME_SIZE)
|
|
240
|
-
.value_or(
|
|
237
|
+
.value_or(kDefaultEnablePreferredRxCryptoFrameAdvertisement);
|
|
238
|
+
flow_control.set_ph2_enable_rx_crypto(enable_preferred_crypto);
|
|
239
|
+
if (enable_preferred_crypto) {
|
|
241
240
|
local_settings.SetPreferredReceiveCryptoMessageSize(INT_MAX);
|
|
242
241
|
}
|
|
243
242
|
|
|
@@ -250,11 +249,6 @@ void ReadSettingsFromChannelArgs(const ChannelArgs& channel_args,
|
|
|
250
249
|
local_settings.SetAllowSecurityFrame(
|
|
251
250
|
channel_args.GetBool(GRPC_ARG_SECURITY_FRAME_ALLOWED).value_or(false));
|
|
252
251
|
|
|
253
|
-
// TODO(tjagtap) : [PH2][P4] : If max_header_list_size is set only once
|
|
254
|
-
// in the life of a transport, consider making this a data member of
|
|
255
|
-
// class IncomingMetadataTracker instead of accessing via acked settings again
|
|
256
|
-
// and again. Else delete this comment.
|
|
257
|
-
|
|
258
252
|
GRPC_HTTP2_COMMON_DLOG
|
|
259
253
|
<< "Http2Settings: {"
|
|
260
254
|
<< "header_table_size: " << local_settings.header_table_size()
|
|
@@ -271,6 +265,20 @@ void ReadSettingsFromChannelArgs(const ChannelArgs& channel_args,
|
|
|
271
265
|
<< "}";
|
|
272
266
|
}
|
|
273
267
|
|
|
268
|
+
uint32_t MaxNewStreamsPerRead(const ChannelArgs& channel_args) {
|
|
269
|
+
return Clamp(
|
|
270
|
+
channel_args.GetInt("grpc.http2.max_requests_per_read").value_or(32), 1,
|
|
271
|
+
10000);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
uint32_t GetMaxSecurityFrameSize(const ChannelArgs& channel_args) {
|
|
275
|
+
return static_cast<uint32_t>(
|
|
276
|
+
Clamp(channel_args.GetInt(GRPC_ARG_MAX_SECURITY_FRAME_SIZE)
|
|
277
|
+
.value_or(GrpcErrors::kMaxSecurityFrameSize),
|
|
278
|
+
GrpcErrors::kMinMaxSecurityFrameSize,
|
|
279
|
+
static_cast<int>(GrpcErrors::kMaxSecurityFrameSize)));
|
|
280
|
+
}
|
|
281
|
+
|
|
274
282
|
///////////////////////////////////////////////////////////////////////////////
|
|
275
283
|
// ChannelZ helpers
|
|
276
284
|
|
|
@@ -311,7 +319,7 @@ void ProcessOutgoingDataFrameFlowControl(
|
|
|
311
319
|
}
|
|
312
320
|
|
|
313
321
|
ValueOrHttp2Status<chttp2::FlowControlAction>
|
|
314
|
-
ProcessIncomingDataFrameFlowControl(Http2FrameHeader& frame_header,
|
|
322
|
+
ProcessIncomingDataFrameFlowControl(const Http2FrameHeader& frame_header,
|
|
315
323
|
chttp2::TransportFlowControl& flow_control,
|
|
316
324
|
Stream* stream) {
|
|
317
325
|
GRPC_DCHECK_EQ(frame_header.type, 0u);
|
|
@@ -401,6 +409,22 @@ bool ProcessIncomingWindowUpdateFrameFlowControl(
|
|
|
401
409
|
|
|
402
410
|
void MaybeAddTransportWindowUpdateFrame(
|
|
403
411
|
chttp2::TransportFlowControl& flow_control, FrameSender& frame_sender) {
|
|
412
|
+
// Known Limitation:
|
|
413
|
+
// 1. writing_anyway is set to true always. This might cause the write cycle
|
|
414
|
+
// to just write 1 window update frame in one entire iteration of the
|
|
415
|
+
// Multiplexer Loop, making it wasteful. In most of the scenarios this is fine
|
|
416
|
+
// as TriggerWriteCycle is only invoked from code points that want to write
|
|
417
|
+
// frames on the wire.
|
|
418
|
+
// 2. This is because we write control frames before we write HEADER and DATA
|
|
419
|
+
// frames. So we don't know if we are going to write or not when we call
|
|
420
|
+
// this function.
|
|
421
|
+
// 3. Setting writing_anyway to false always might be a problem, because we
|
|
422
|
+
// would rather send a WINDOW_UPDATE frame with a small increment, than not
|
|
423
|
+
// send it at all.
|
|
424
|
+
// 4. In the future if we want to fix this, we need to call
|
|
425
|
+
// MaybeAddTransportWindowUpdateFrame once while writing control frames, and
|
|
426
|
+
// once after all the DATA and HEADER frames are written for the current write
|
|
427
|
+
// cycle.
|
|
404
428
|
uint32_t window_size =
|
|
405
429
|
flow_control.DesiredAnnounceSize(/*writing_anyway=*/true);
|
|
406
430
|
if (window_size > 0) {
|
|
@@ -45,8 +45,8 @@ namespace http2 {
|
|
|
45
45
|
// and it is functions. The code will be written iteratively.
|
|
46
46
|
// Do not use or edit any of these functions unless you are
|
|
47
47
|
// familiar with the PH2 project (Moving chttp2 to promises.)
|
|
48
|
-
// TODO(tjagtap) : [PH2][P3] : Update the experimental status of the code
|
|
49
|
-
//
|
|
48
|
+
// TODO(tjagtap) : [PH2][P3] : Update the experimental status of the code when
|
|
49
|
+
// CHTTP2 is deleted.
|
|
50
50
|
|
|
51
51
|
#define GRPC_HTTP2_CLIENT_DLOG \
|
|
52
52
|
DLOG_IF(INFO, GRPC_TRACE_FLAG_ENABLED(http2_ph2_transport))
|
|
@@ -67,6 +67,14 @@ struct CloseStreamArgs {
|
|
|
67
67
|
bool close_writes;
|
|
68
68
|
};
|
|
69
69
|
|
|
70
|
+
inline bool ShouldEnablePh2Client() {
|
|
71
|
+
return IsPh2ClientEnabled() || IsPh2ClientServerEnabled();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
inline bool ShouldEnablePh2Server() {
|
|
75
|
+
return IsPh2ServerEnabled() || IsPh2ClientServerEnabled();
|
|
76
|
+
}
|
|
77
|
+
|
|
70
78
|
// TODO(akshitpatel) [PH2][P3] : Write a way to measure the total size of a
|
|
71
79
|
// transport object. Reference :
|
|
72
80
|
// https://github.com/grpc/grpc/pull/41294/files#diff-c685cc4847f228327938326e2a45083a2d0845bacff0ac004bd802027a670c4e
|
|
@@ -74,48 +82,7 @@ struct CloseStreamArgs {
|
|
|
74
82
|
///////////////////////////////////////////////////////////////////////////////
|
|
75
83
|
// Read and Write helpers
|
|
76
84
|
|
|
77
|
-
|
|
78
|
-
public:
|
|
79
|
-
Http2ReadContext() = default;
|
|
80
|
-
Http2ReadContext(const Http2ReadContext&) = delete;
|
|
81
|
-
Http2ReadContext& operator=(const Http2ReadContext&) = delete;
|
|
82
|
-
Http2ReadContext(Http2ReadContext&&) = delete;
|
|
83
|
-
Http2ReadContext& operator=(Http2ReadContext&&) = delete;
|
|
84
|
-
|
|
85
|
-
// Signals that the read loop should pause. If it's already paused, this is a
|
|
86
|
-
// no-op.
|
|
87
|
-
void SetPauseReadLoop() {
|
|
88
|
-
// TODO(tjagtap) [PH2][P2][Settings] Plumb with when we receive urgent
|
|
89
|
-
// settings. Example - initial window size 0 is urgent because it indicates
|
|
90
|
-
// extreme memory pressure on the server.
|
|
91
|
-
should_pause_read_loop_ = true;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// If SetPauseReadLoop() was called, this returns Pending and
|
|
95
|
-
// registers a waker that will be woken by WakeReadLoop().
|
|
96
|
-
// If SetPauseReadLoop() was not called, this returns OkStatus.
|
|
97
|
-
// This should be polled by the read loop to yield control when requested.
|
|
98
|
-
Poll<absl::Status> MaybePauseReadLoop() {
|
|
99
|
-
if (should_pause_read_loop_) {
|
|
100
|
-
read_loop_waker_ = GetContext<Activity>()->MakeNonOwningWaker();
|
|
101
|
-
return Pending{};
|
|
102
|
-
}
|
|
103
|
-
return absl::OkStatus();
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// If SetPauseReadLoop() was called, resumes it by
|
|
107
|
-
// waking up the ReadLoop. If not paused, this is a no-op.
|
|
108
|
-
void ResumeReadLoopIfPaused() {
|
|
109
|
-
if (should_pause_read_loop_) {
|
|
110
|
-
should_pause_read_loop_ = false;
|
|
111
|
-
read_loop_waker_.Wakeup();
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
private:
|
|
116
|
-
bool should_pause_read_loop_ = false;
|
|
117
|
-
Waker read_loop_waker_;
|
|
118
|
-
};
|
|
85
|
+
constexpr uint32_t kMaxFramesReadPerReadCycle = 16u * 1024u; // 16K frames
|
|
119
86
|
|
|
120
87
|
Http2Status ValidateIncomingConnectionPreface(
|
|
121
88
|
const absl::StatusOr<Slice>& status);
|
|
@@ -126,7 +93,7 @@ inline Http2Status ValidateMetadataFrameState(
|
|
|
126
93
|
const uint32_t max_header_list_size) {
|
|
127
94
|
if (stream.IsStreamHalfClosedRemote()) {
|
|
128
95
|
return incoming_headers.ParseAndDiscardHeaders(
|
|
129
|
-
std::move(frame.payload), frame.end_headers,
|
|
96
|
+
std::move(frame.payload), frame.end_headers,
|
|
130
97
|
Http2Status::Http2StreamError(
|
|
131
98
|
Http2ErrorCode::kStreamClosed,
|
|
132
99
|
std::string(RFC9113::kHalfClosedRemoteState)),
|
|
@@ -138,7 +105,7 @@ inline Http2Status ValidateMetadataFrameState(
|
|
|
138
105
|
stream.IsInitialMetadataReceived(),
|
|
139
106
|
stream.IsTrailingMetadataReceived())) {
|
|
140
107
|
return incoming_headers.ParseAndDiscardHeaders(
|
|
141
|
-
std::move(frame.payload), frame.end_headers,
|
|
108
|
+
std::move(frame.payload), frame.end_headers,
|
|
142
109
|
Http2Status::Http2StreamError(
|
|
143
110
|
Http2ErrorCode::kInternalError,
|
|
144
111
|
std::string(GrpcErrors::kTooManyMetadata)),
|
|
@@ -163,7 +130,6 @@ struct TransportChannelArgs {
|
|
|
163
130
|
Duration ping_timeout;
|
|
164
131
|
Duration settings_timeout;
|
|
165
132
|
bool keepalive_permit_without_calls;
|
|
166
|
-
bool enable_preferred_rx_crypto_frame_advertisement;
|
|
167
133
|
// This is used to test peer behaviour when we never send a ping ack.
|
|
168
134
|
bool test_only_ack_pings;
|
|
169
135
|
uint32_t max_header_list_size_soft_limit;
|
|
@@ -183,6 +149,10 @@ void ReadSettingsFromChannelArgs(const ChannelArgs& channel_args,
|
|
|
183
149
|
chttp2::TransportFlowControl& flow_control,
|
|
184
150
|
bool is_client);
|
|
185
151
|
|
|
152
|
+
uint32_t MaxNewStreamsPerRead(const ChannelArgs& channel_args);
|
|
153
|
+
|
|
154
|
+
uint32_t GetMaxSecurityFrameSize(const ChannelArgs& channel_args);
|
|
155
|
+
|
|
186
156
|
///////////////////////////////////////////////////////////////////////////////
|
|
187
157
|
// ChannelZ helpers
|
|
188
158
|
|
|
@@ -199,7 +169,7 @@ void ProcessOutgoingDataFrameFlowControl(
|
|
|
199
169
|
uint32_t flow_control_tokens_consumed);
|
|
200
170
|
|
|
201
171
|
ValueOrHttp2Status<chttp2::FlowControlAction>
|
|
202
|
-
ProcessIncomingDataFrameFlowControl(Http2FrameHeader& frame,
|
|
172
|
+
ProcessIncomingDataFrameFlowControl(const Http2FrameHeader& frame,
|
|
203
173
|
chttp2::TransportFlowControl& flow_control,
|
|
204
174
|
Stream* stream);
|
|
205
175
|
|
|
@@ -72,6 +72,7 @@
|
|
|
72
72
|
#include "src/core/lib/transport/connectivity_state.h"
|
|
73
73
|
#include "src/core/lib/transport/transport.h"
|
|
74
74
|
#include "src/core/lib/transport/transport_framing_endpoint_extension.h"
|
|
75
|
+
#include "src/core/mitigation_engine/mitigation_engine.h"
|
|
75
76
|
#include "src/core/telemetry/call_tracer.h"
|
|
76
77
|
#include "src/core/telemetry/context_list_entry.h"
|
|
77
78
|
#include "src/core/telemetry/stats.h"
|
|
@@ -94,6 +95,9 @@
|
|
|
94
95
|
// bits being used for flags defined above)
|
|
95
96
|
#define CLOSURE_BARRIER_FIRST_REF_BIT (1 << 16)
|
|
96
97
|
|
|
98
|
+
constexpr uint32_t kMaxSecurityFrameSize = 16u * 1024u;
|
|
99
|
+
constexpr int kMinMaxSecurityFrameSize = 0;
|
|
100
|
+
|
|
97
101
|
// streams are kept in various linked lists depending on what things need to
|
|
98
102
|
// happen to them... this enum labels each list
|
|
99
103
|
typedef enum {
|
|
@@ -230,6 +234,9 @@ typedef enum {
|
|
|
230
234
|
GRPC_CHTTP2_KEEPALIVE_STATE_DISABLED,
|
|
231
235
|
} grpc_chttp2_keepalive_state;
|
|
232
236
|
|
|
237
|
+
constexpr uint16_t kMaxNoopDataFrames = 16384u;
|
|
238
|
+
constexpr uint16_t kMaxNoopContinuationFrames = 128u;
|
|
239
|
+
|
|
233
240
|
struct grpc_chttp2_transport final : public grpc_core::FilterStackTransport,
|
|
234
241
|
public grpc_core::KeepsGrpcInitialized {
|
|
235
242
|
grpc_chttp2_transport(const grpc_core::ChannelArgs& channel_args,
|
|
@@ -458,6 +465,7 @@ struct grpc_chttp2_transport final : public grpc_core::FilterStackTransport,
|
|
|
458
465
|
/// parser for goaway frames
|
|
459
466
|
grpc_chttp2_goaway_parser goaway_parser;
|
|
460
467
|
// parser for secure frames
|
|
468
|
+
uint32_t max_security_frame_size;
|
|
461
469
|
grpc_chttp2_security_frame_parser security_frame_parser;
|
|
462
470
|
|
|
463
471
|
grpc_core::chttp2::TransportFlowControl flow_control;
|
|
@@ -472,6 +480,8 @@ struct grpc_chttp2_transport final : public grpc_core::FilterStackTransport,
|
|
|
472
480
|
uint8_t incoming_frame_flags = 0;
|
|
473
481
|
uint8_t header_eof = 0;
|
|
474
482
|
bool is_first_frame = true;
|
|
483
|
+
uint16_t noop_continuation_frames = 0u;
|
|
484
|
+
uint16_t noop_data_frames = 0u;
|
|
475
485
|
uint32_t expect_continuation_stream_id = 0;
|
|
476
486
|
uint32_t incoming_frame_size = 0;
|
|
477
487
|
|
|
@@ -618,6 +628,9 @@ struct grpc_chttp2_transport final : public grpc_core::FilterStackTransport,
|
|
|
618
628
|
grpc_core::Timestamp last_ztrace_time = grpc_core::Timestamp::InfPast();
|
|
619
629
|
|
|
620
630
|
GPR_NO_UNIQUE_ADDRESS grpc_core::latent_see::Flow write_flow;
|
|
631
|
+
|
|
632
|
+
// Current mitigation engine, retrieved once per connection.
|
|
633
|
+
grpc_core::RefCountedPtr<grpc_core::MitigationEngine> mitigation_engine;
|
|
621
634
|
};
|
|
622
635
|
|
|
623
636
|
typedef enum {
|
|
@@ -878,6 +891,11 @@ void grpc_chttp2_stream_unref(grpc_chttp2_stream* s);
|
|
|
878
891
|
#endif
|
|
879
892
|
|
|
880
893
|
void grpc_chttp2_ack_ping(grpc_chttp2_transport* t, uint64_t id);
|
|
894
|
+
grpc_error_handle grpc_chttp2_increase_num_pending_induced_frames(
|
|
895
|
+
grpc_chttp2_transport* t);
|
|
896
|
+
|
|
897
|
+
void grpc_chttp2_close_transport_locked(grpc_chttp2_transport* t,
|
|
898
|
+
grpc_error_handle error);
|
|
881
899
|
|
|
882
900
|
/// Sends GOAWAY with error code ENHANCE_YOUR_CALM and additional debug data
|
|
883
901
|
/// resembling "too_many_pings" followed by immediately closing the connection.
|