grpc 1.81.1 → 1.85.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 +70 -47
- data/etc/roots.pem +9008 -3936
- data/include/grpc/credentials.h +10 -0
- data/include/grpc/event_engine/memory_allocator.h +1 -0
- data/include/grpc/grpc.h +9 -7
- data/include/grpc/grpc_audit_logging.h +2 -2
- data/include/grpc/grpc_security_constants.h +6 -0
- data/include/grpc/impl/channel_arg_names.h +39 -1
- data/src/core/call/call_filters.h +35 -17
- data/src/core/call/call_spine.h +4 -4
- data/src/core/call/client_call.cc +22 -10
- data/src/core/call/client_call.h +4 -0
- data/src/core/{lib/security/authorization → call}/evaluate_args.cc +22 -1
- data/src/core/{lib/security/authorization → call}/evaluate_args.h +19 -5
- data/src/core/call/filter_fusion.h +15 -15
- data/src/core/call/interception_chain.cc +2 -0
- data/src/core/call/interception_chain.h +23 -13
- data/src/core/call/metadata.cc +7 -4
- data/src/core/call/metadata.h +1 -1
- data/src/core/call/metadata_batch.cc +2 -1
- data/src/core/call/metadata_batch.h +74 -38
- data/src/core/call/parsed_metadata.h +10 -5
- data/src/core/call/request_buffer.cc +6 -6
- data/src/core/call/request_buffer.h +1 -1
- data/src/core/call/server_call.cc +47 -18
- data/src/core/call/server_call.h +18 -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 +8 -6
- data/src/core/channelz/channel_trace.h +1 -1
- data/src/core/channelz/channelz.cc +9 -9
- data/src/core/channelz/channelz.h +12 -12
- data/src/core/channelz/channelz_registry.cc +10 -10
- data/src/core/channelz/text_encode.cc +9 -4
- data/src/core/channelz/v2tov1/convert.cc +2 -2
- data/src/core/channelz/ztrace_collector.h +5 -5
- data/src/core/client_channel/backup_poller.cc +3 -19
- data/src/core/client_channel/client_channel.cc +33 -65
- data/src/core/client_channel/client_channel.h +5 -3
- data/src/core/client_channel/client_channel_filter.cc +55 -99
- data/src/core/client_channel/client_channel_filter.h +4 -4
- data/src/core/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/client_channel/client_channel_service_config.cc +4 -28
- data/src/core/client_channel/config_selector.h +2 -7
- data/src/core/client_channel/direct_channel.cc +12 -2
- data/src/core/client_channel/direct_channel.h +5 -3
- 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/global_subchannel_pool.cc +4 -4
- data/src/core/client_channel/load_balanced_call_destination.cc +5 -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 +6 -13
- 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 +335 -1082
- data/src/core/client_channel/subchannel.h +44 -329
- data/src/core/client_channel/subchannel_metrics.cc +48 -0
- data/src/core/client_channel/subchannel_metrics.h +60 -0
- data/src/core/client_channel/subchannel_stream_client.cc +5 -5
- data/src/core/{resolver/dns/dns_resolver_plugin.h → config/experiment_env_var.cc} +12 -9
- data/src/core/config/experiment_env_var.h +26 -0
- data/src/core/credentials/call/external/aws_external_account_credentials.cc +7 -7
- data/src/core/credentials/call/external/aws_request_signer.cc +16 -0
- data/src/core/credentials/call/external/external_account_credentials.cc +129 -16
- data/src/core/credentials/call/external/external_account_credentials.h +6 -1
- data/src/core/credentials/call/external/file_external_account_credentials.cc +1 -1
- data/src/core/credentials/call/external/url_external_account_credentials.cc +2 -3
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +8 -24
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.h +3 -6
- data/src/core/credentials/call/gdch_service_account/gdch_service_account_credentials.cc +525 -0
- data/src/core/credentials/call/gdch_service_account/gdch_service_account_credentials.h +138 -0
- data/src/core/credentials/call/json_util.h +1 -0
- data/src/core/credentials/call/jwt/json_token.cc +10 -2
- 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/jwt/jwt_verifier.cc +15 -1
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +1 -1
- data/src/core/credentials/call/oauth2/oauth2_credentials.cc +78 -62
- data/src/core/credentials/call/oauth2/oauth2_credentials.h +2 -6
- 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 +57 -36
- data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +28 -9
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +6 -7
- 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_credentials.cc +59 -72
- data/src/core/credentials/transport/ssl/ssl_credentials.h +9 -8
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +26 -8
- data/src/core/credentials/transport/ssl/ssl_security_connector.h +4 -4
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +38 -27
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +10 -7
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +51 -62
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +5 -4
- data/src/core/credentials/transport/tls/grpc_tls_certificate_selector.cc +172 -0
- data/src/core/credentials/transport/tls/grpc_tls_certificate_selector.h +129 -0
- data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +3 -3
- data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +5 -5
- data/src/core/credentials/transport/tls/load_system_roots.h +2 -6
- data/src/core/credentials/transport/tls/load_system_roots_fallback.cc +5 -6
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +23 -18
- data/src/core/credentials/transport/tls/load_system_roots_supported.h +3 -2
- data/src/core/credentials/transport/tls/load_system_roots_windows.cc +5 -8
- data/src/core/credentials/transport/tls/spiffe_utils.cc +1 -1
- data/src/core/credentials/transport/tls/ssl_utils.cc +49 -28
- data/src/core/credentials/transport/tls/ssl_utils.h +12 -49
- data/src/core/credentials/transport/tls/tls_security_connector.cc +71 -44
- data/src/core/credentials/transport/tls/tls_security_connector.h +37 -16
- data/src/core/credentials/transport/tls/tls_utils.h +9 -0
- 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/channel_idle/legacy_channel_idle_filter.cc +16 -12
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +29 -67
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +0 -8
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +26 -60
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +24 -19
- data/src/core/ext/filters/http/http_filters_plugin.cc +20 -9
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +40 -32
- data/src/core/ext/filters/http/message_compress/compression_filter.h +0 -1
- 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_filter.cc +43 -21
- data/src/core/ext/filters/rbac/rbac_filter.h +22 -4
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +4 -3
- 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 +7 -7
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +218 -93
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +15 -12
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +177 -95
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +6 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +92 -10
- 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 +68 -10
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +33 -2
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +55 -23
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -0
- 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 +24 -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 +51 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +8 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +361 -550
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +71 -50
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +2294 -0
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +800 -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 +75 -28
- data/src/core/ext/transport/chttp2/transport/http2_status.h +38 -37
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +207 -22
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +337 -53
- data/src/core/ext/transport/chttp2/transport/internal.h +25 -1
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +1 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +97 -29
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +25 -5
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +7 -14
- data/src/core/ext/transport/chttp2/transport/read_context.h +614 -0
- data/src/core/ext/transport/chttp2/transport/reclaimer.cc +32 -0
- data/src/core/ext/transport/chttp2/transport/reclaimer.h +64 -0
- data/src/core/ext/transport/chttp2/transport/security_frame.h +20 -10
- data/src/core/ext/transport/chttp2/transport/stream.h +347 -155
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +100 -74
- data/src/core/ext/transport/chttp2/transport/write_cycle.h +32 -4
- data/src/core/ext/transport/chttp2/transport/writing.cc +0 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +6 -10
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +20 -19
- 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/ext_proc/v3/ext_proc.upb.h +1912 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb_minitable.c +300 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb_minitable.h +37 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb.h +187 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb_minitable.c +64 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb_minitable.h +31 -0
- 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/ext_proc/v3/external_processor.upb.h +2362 -0
- data/src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb_minitable.c +556 -0
- data/src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb_minitable.h +47 -0
- 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 → grpc/channelz/v1}/channelz.upb.h +1651 -1191
- data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb_minitable.c +1157 -0
- data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb_minitable.h +69 -0
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb.h +76 -56
- data/src/core/ext/upb-gen/grpc/gcp/altscontext.upb_minitable.c +93 -0
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.h +5 -7
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb.h +621 -425
- data/src/core/ext/upb-gen/grpc/gcp/handshaker.upb_minitable.c +415 -0
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.h +5 -17
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb.h +118 -88
- data/src/core/ext/upb-gen/grpc/gcp/transport_security_common.upb_minitable.c +119 -0
- data/src/core/ext/upb-gen/grpc/gcp/transport_security_common.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/grpc/health/v1/health.upb.h +329 -0
- data/src/core/ext/upb-gen/grpc/health/v1/health.upb_minitable.c +128 -0
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/health/v1/health.upb_minitable.h +8 -7
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb.h +313 -234
- data/src/core/ext/upb-gen/grpc/lb/v1/load_balancer.upb_minitable.c +243 -0
- data/src/core/ext/upb-gen/grpc/lb/v1/load_balancer.upb_minitable.h +39 -0
- data/src/core/ext/upb-gen/grpc/lookup/v1/rls.upb.h +497 -0
- data/src/core/ext/upb-gen/grpc/lookup/v1/rls.upb_minitable.c +120 -0
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.h +5 -8
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb.h +540 -331
- data/src/core/ext/upb-gen/grpc/lookup/v1/rls_config.upb_minitable.c +290 -0
- data/src/core/ext/upb-gen/grpc/lookup/v1/rls_config.upb_minitable.h +39 -0
- 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/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/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upbdefs.c +453 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upbdefs.h +67 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upbdefs.c +142 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upbdefs.h +37 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +885 -855
- data/src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.c +733 -0
- data/src/core/ext/upbdefs-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upbdefs.h +44 -44
- data/src/core/ext/upbdefs-gen/grpc/lookup/v1/rls_config.upbdefs.c +182 -0
- data/src/core/ext/upbdefs-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upbdefs.h +14 -14
- data/src/core/filter/auth/server_auth_filter.cc +2 -3
- data/src/core/filter/composite/composite_filter.cc +53 -34
- data/src/core/filter/composite/composite_filter.h +16 -5
- data/src/core/filter/ext_proc/ext_proc_filter.cc +1781 -0
- data/src/core/filter/ext_proc/ext_proc_filter.h +188 -0
- data/src/core/filter/ext_proc/ext_proc_messages.cc +756 -0
- data/src/core/filter/ext_proc/ext_proc_messages.h +324 -0
- data/src/core/filter/filter_args.h +17 -24
- data/src/core/handshaker/handshaker.cc +14 -6
- data/src/core/handshaker/http_connect/http_connect_client_handshaker.cc +3 -3
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +30 -3
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +10 -10
- data/src/core/handshaker/security/secure_endpoint.cc +69 -14
- data/src/core/handshaker/security/security_handshaker.cc +15 -12
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +4 -4
- data/src/core/lib/channel/channel_args.cc +20 -0
- data/src/core/lib/channel/channel_args.h +29 -23
- data/src/core/lib/channel/channel_stack.cc +4 -2
- data/src/core/lib/channel/channel_stack.h +3 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +2 -3
- data/src/core/lib/channel/channel_stack_builder_impl.h +0 -7
- data/src/core/lib/channel/promise_based_filter.cc +222 -24
- data/src/core/lib/channel/promise_based_filter.h +328 -206
- data/src/core/lib/compression/compression_internal.cc +4 -5
- data/src/core/lib/compression/message_compress.cc +132 -97
- data/src/core/lib/compression/message_compress.h +24 -0
- data/src/core/lib/debug/trace_flags.cc +10 -0
- data/src/core/lib/debug/trace_flags.h +4 -0
- data/src/core/lib/event_engine/ares_resolver.cc +68 -64
- data/src/core/lib/event_engine/ares_resolver.h +3 -2
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +7 -7
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +4 -4
- data/src/core/lib/event_engine/default_event_engine.cc +5 -5
- 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/ev_epoll1_linux.cc +12 -12
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +20 -24
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +6 -6
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +3 -3
- 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 +84 -40
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +11 -11
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +32 -37
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +4 -4
- 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/posix_engine/tcp_socket_utils.cc +3 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -0
- data/src/core/lib/event_engine/posix_engine/timer.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.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/thread_pool/thread_count.cc +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.h +3 -3
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +50 -21
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +3 -3
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +4 -4
- data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +5 -4
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +1 -3
- data/src/core/lib/event_engine/windows/windows_engine.cc +15 -15
- data/src/core/lib/event_engine/windows/windows_listener.cc +6 -6
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +6 -6
- data/src/core/lib/experiments/experiments.cc +414 -267
- data/src/core/lib/experiments/experiments.h +231 -130
- data/src/core/lib/iomgr/buffer_list.cc +3 -3
- data/src/core/lib/iomgr/buffer_list.h +2 -2
- data/src/core/lib/iomgr/cfstream_handle.cc +2 -6
- data/src/core/lib/iomgr/combiner.cc +0 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -10
- data/src/core/lib/iomgr/error.cc +5 -79
- 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_apple.cc +4 -4
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -7
- data/src/core/lib/iomgr/ev_poll_posix.cc +7 -15
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +1 -1
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +5 -6
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +1 -2
- data/src/core/lib/iomgr/iomgr_posix.cc +0 -4
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +0 -4
- data/src/core/lib/iomgr/iomgr_windows.cc +0 -4
- data/src/core/lib/iomgr/socket_factory_posix.h +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.cc +3 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
- data/src/core/lib/iomgr/systemd_utils.cc +0 -1
- data/src/core/lib/iomgr/tcp_client.h +1 -1
- data/src/core/lib/iomgr/tcp_client_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_posix.cc +33 -28
- data/src/core/lib/iomgr/tcp_server.h +1 -1
- data/src/core/lib/iomgr/tcp_server_posix.cc +5 -6
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
- data/src/core/lib/iomgr/tcp_server_windows.cc +0 -1
- data/src/core/lib/iomgr/tcp_windows.cc +5 -10
- data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -4
- data/src/core/lib/iomgr/unix_sockets_posix.h +3 -1
- data/src/core/lib/iomgr/vsock.h +3 -1
- data/src/core/lib/promise/activity.cc +1 -1
- data/src/core/lib/promise/activity.h +1 -1
- data/src/core/lib/promise/arena_promise.h +7 -7
- data/src/core/lib/promise/detail/promise_factory.h +14 -14
- data/src/core/lib/promise/detail/promise_like.h +4 -4
- data/src/core/lib/promise/inter_activity_latch.h +6 -6
- data/src/core/lib/promise/inter_activity_pipe.h +1 -1
- data/src/core/lib/promise/interceptor_list.h +1 -1
- data/src/core/lib/promise/observable.h +3 -3
- data/src/core/lib/promise/party.cc +1 -1
- data/src/core/lib/promise/try_seq.h +4 -4
- data/src/core/lib/resource_quota/arena.h +3 -3
- data/src/core/lib/resource_quota/memory_quota.cc +17 -17
- data/src/core/lib/resource_quota/memory_quota.h +1 -1
- data/src/core/lib/resource_quota/telemetry.cc +54 -0
- data/src/core/lib/resource_quota/telemetry.h +5 -23
- data/src/core/lib/resource_quota/thread_quota.cc +3 -3
- data/src/core/lib/security/authorization/audit_logging.cc +7 -7
- data/src/core/lib/security/authorization/audit_logging.h +3 -3
- data/src/core/lib/security/authorization/authorization_engine.h +1 -1
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +11 -13
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +2 -2
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
- data/src/core/lib/security/authorization/matchers.cc +20 -20
- data/src/core/lib/security/authorization/matchers.h +16 -17
- data/src/core/lib/security/authorization/rbac_policy.cc +139 -56
- data/src/core/lib/security/authorization/rbac_policy.h +22 -4
- 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 +16 -24
- data/src/core/lib/surface/call.h +14 -3
- data/src/core/lib/surface/call_utils.h +117 -0
- data/src/core/lib/surface/channel.cc +22 -3
- data/src/core/lib/surface/channel.h +15 -7
- data/src/core/lib/surface/channel_create.cc +1 -1
- data/src/core/lib/surface/channel_create.h +0 -2
- data/src/core/lib/surface/channel_init.cc +78 -39
- data/src/core/lib/surface/channel_init.h +30 -16
- data/src/core/lib/surface/filter_stack_call.cc +15 -39
- data/src/core/lib/surface/init.cc +20 -34
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +11 -9
- 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 +23 -162
- data/src/core/lib/transport/error_utils.h +0 -16
- data/src/core/lib/transport/promise_endpoint.h +8 -8
- data/src/core/lib/transport/transport.h +38 -9
- data/src/core/lib/transport/transport_framing_endpoint_extension.h +3 -3
- data/src/core/load_balancing/autosharding/autosharding.cc +931 -0
- data/src/core/load_balancing/autosharding/autosharding.h +78 -0
- data/src/core/load_balancing/grpclb/grpclb.cc +2 -1
- data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +2 -2
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +1 -1
- data/src/core/load_balancing/grpclb/load_balancer_api.h +3 -1
- data/src/core/load_balancing/health_check_client.cc +7 -7
- data/src/core/load_balancing/lb_policy.cc +1 -1
- data/src/core/load_balancing/oob_backend_metric.cc +5 -5
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +2 -2
- data/src/core/load_balancing/pick_first/pick_first.cc +35 -2
- data/src/core/load_balancing/pick_first/pick_first.h +6 -0
- data/src/core/load_balancing/ring_hash/ring_hash.cc +112 -47
- data/src/core/load_balancing/rls/rls.cc +53 -29
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +146 -88
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.h +86 -0
- data/src/core/load_balancing/xds/cds.cc +88 -61
- data/src/core/load_balancing/xds/cds.h +21 -0
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +2 -3
- data/src/core/load_balancing/xds/xds_override_host.cc +10 -10
- data/src/core/mitigation_engine/mitigation.h +62 -0
- data/src/core/mitigation_engine/mitigation_engine.h +109 -0
- data/src/core/mitigation_engine/mitigation_provider.h +63 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +41 -10
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -5
- data/src/core/resolver/dns/{event_engine/event_engine_client_channel_resolver.cc → dns_resolver.cc} +49 -48
- data/src/core/resolver/dns/{event_engine/event_engine_client_channel_resolver.h → dns_resolver.h} +8 -5
- data/src/core/resolver/dns/{event_engine/service_config_helper.cc → service_config_helper.cc} +1 -1
- data/src/core/resolver/dns/{event_engine/service_config_helper.h → service_config_helper.h} +3 -3
- data/src/core/resolver/endpoint_addresses.h +3 -0
- data/src/core/resolver/fake/fake_resolver.cc +5 -5
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +40 -31
- data/src/core/resolver/xds/xds_resolver.cc +66 -147
- data/src/core/server/server.cc +72 -54
- data/src/core/server/server.h +30 -21
- data/src/core/server/server_config_selector.h +23 -7
- data/src/core/server/server_config_selector_filter.cc +228 -32
- data/src/core/server/server_config_selector_filter.h +59 -3
- data/src/core/server/xds_server_config_fetcher.cc +821 -759
- data/src/core/server/xds_server_config_fetcher.h +49 -0
- data/src/core/server/xds_server_config_fetcher_legacy.cc +1340 -0
- data/src/core/telemetry/call_tracer.cc +49 -2
- data/src/core/telemetry/call_tracer.h +1 -0
- data/src/core/telemetry/default_tcp_tracer.cc +1 -1
- data/src/core/telemetry/histogram.h +99 -98
- data/src/core/telemetry/instrument.cc +209 -90
- data/src/core/telemetry/instrument.h +123 -61
- data/src/core/telemetry/metrics.h +5 -0
- data/src/core/telemetry/tcp_tracer.h +38 -0
- data/src/core/{resolver/dns/c_ares/dns_resolver_ares.h → telemetry/telemetry_label.h} +11 -9
- 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/aes_gcm.cc +10 -13
- data/src/core/tsi/alts/crypt/gsec.h +4 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +4 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +6 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +5 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -1
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +5 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +3 -3
- data/src/core/tsi/ssl_telemetry_utils.cc +300 -0
- data/src/core/tsi/ssl_telemetry_utils.h +84 -0
- data/src/core/tsi/ssl_transport_security.cc +846 -377
- data/src/core/tsi/ssl_transport_security.h +81 -28
- data/src/core/tsi/ssl_transport_security_utils.cc +18 -6
- data/src/core/tsi/tls_telemetry.cc +31 -0
- data/src/core/tsi/tls_telemetry.h +47 -0
- data/src/core/tsi/transport_security.cc +2 -2
- data/src/core/tsi/transport_security.h +8 -1
- data/src/core/tsi/transport_security_interface.h +1 -1
- data/src/core/{resolver/dns/native/dns_resolver.h → util/address_sorting_init.cc} +21 -8
- data/src/core/{resolver/dns/c_ares/grpc_ares_wrapper_posix.cc → util/address_sorting_init.h} +7 -8
- data/src/core/util/event_log.cc +3 -3
- data/src/core/util/http_client/httpcli.cc +21 -61
- data/src/core/util/http_client/httpcli.h +1 -8
- data/src/core/util/http_client/httpcli_security_connector.cc +14 -8
- data/src/core/util/http_client/parser.cc +1 -1
- data/src/core/util/json/json_object_loader.cc +7 -0
- data/src/core/util/json/json_object_loader.h +17 -2
- data/src/core/util/latent_see.cc +123 -36
- data/src/core/util/latent_see.h +14 -1
- data/src/core/util/linux/cpu.cc +1 -1
- data/src/core/util/load_file.cc +3 -9
- data/src/core/util/load_file.h +3 -4
- data/src/core/util/lru_cache.h +2 -0
- data/src/core/util/matchers.h +8 -0
- data/src/core/util/mpscq.cc +1 -1
- data/src/core/util/notification.h +4 -4
- data/src/core/util/posix/cpu.cc +1 -1
- data/src/core/util/ref_counted_string.h +1 -1
- data/src/core/util/status_helper.cc +68 -209
- data/src/core/util/status_helper.h +18 -34
- data/src/core/util/sync.h +20 -6
- data/src/core/util/table.h +20 -22
- data/src/core/util/tchar.cc +13 -7
- data/src/core/util/trie_lookup.h +1 -1
- data/src/core/util/work_serializer.cc +2 -2
- data/src/core/xds/grpc/blackboard.cc +59 -0
- data/src/core/{filter → xds/grpc}/blackboard.h +30 -11
- data/src/core/xds/grpc/certificate_provider_store.cc +2 -2
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +2 -11
- data/src/core/xds/grpc/streaming_call_promise_wrapper.cc +181 -0
- data/src/core/xds/grpc/streaming_call_promise_wrapper.h +213 -0
- data/src/core/xds/grpc/xds_audit_logger_registry.cc +51 -31
- data/src/core/xds/grpc/xds_audit_logger_registry.h +17 -3
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +4 -17
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +8 -6
- data/src/core/xds/grpc/xds_bootstrap_grpc_builder.cc +488 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc_builder.h +97 -0
- data/src/core/xds/grpc/xds_certificate_provider.cc +7 -7
- data/src/core/xds/grpc/xds_client_grpc.cc +12 -16
- data/src/core/xds/grpc/xds_client_grpc.h +0 -4
- data/src/core/xds/grpc/xds_cluster.h +1 -0
- data/src/core/xds/grpc/xds_cluster_parser.cc +5 -20
- data/src/core/xds/grpc/xds_cluster_parser.h +0 -2
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -4
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +0 -2
- data/src/core/xds/grpc/xds_common_types.cc +96 -91
- data/src/core/xds/grpc/xds_common_types.h +36 -54
- data/src/core/xds/grpc/xds_common_types_parser.cc +191 -414
- data/src/core/xds/grpc/xds_common_types_parser.h +25 -10
- data/src/core/xds/grpc/xds_endpoint.cc +1 -1
- data/src/core/xds/grpc/xds_endpoint_parser.cc +18 -20
- data/src/core/xds/grpc/xds_grpc_service_parser.cc +179 -0
- data/src/core/{filter/blackboard.cc → xds/grpc/xds_grpc_service_parser.h} +14 -13
- data/src/core/xds/grpc/xds_http_composite_filter.cc +53 -32
- data/src/core/xds/grpc/xds_http_composite_filter.h +10 -6
- data/src/core/xds/grpc/xds_http_ext_proc_filter.cc +421 -0
- data/src/core/xds/grpc/xds_http_ext_proc_filter.h +89 -0
- data/src/core/xds/grpc/xds_http_fault_filter.cc +9 -161
- data/src/core/xds/grpc/xds_http_fault_filter.h +20 -12
- data/src/core/xds/grpc/xds_http_filter.cc +4 -2
- data/src/core/xds/grpc/xds_http_filter.h +11 -20
- data/src/core/xds/grpc/xds_http_filter_registry.cc +10 -137
- data/src/core/xds/grpc/xds_http_filter_registry.h +7 -59
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +36 -131
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +30 -17
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +406 -37
- data/src/core/xds/grpc/xds_http_rbac_filter.h +1 -3
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +8 -162
- data/src/core/xds/grpc/xds_http_stateful_session_filter.h +20 -12
- data/src/core/xds/grpc/xds_lb_policy_registry.cc +0 -274
- data/src/core/xds/grpc/xds_lb_policy_registry.h +7 -3
- data/src/core/xds/grpc/xds_listener.cc +2 -0
- data/src/core/xds/grpc/xds_listener.h +5 -0
- data/src/core/xds/grpc/xds_listener_parser.cc +28 -19
- data/src/core/xds/grpc/xds_matcher.h +2 -2
- data/src/core/xds/grpc/xds_matcher_parse.h +3 -1
- data/src/core/xds/grpc/xds_metadata_parser.cc +6 -3
- data/src/core/xds/grpc/xds_metadata_parser.h +2 -0
- data/src/core/xds/grpc/xds_route_config.cc +2 -0
- data/src/core/xds/grpc/xds_route_config.h +4 -2
- data/src/core/xds/grpc/xds_route_config_parser.cc +21 -93
- data/src/core/xds/grpc/xds_route_config_parser.h +0 -3
- data/src/core/xds/grpc/xds_routing.cc +192 -120
- data/src/core/xds/grpc/xds_routing.h +92 -32
- 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_tls_context.cc +117 -0
- data/src/core/xds/grpc/xds_tls_context.h +76 -0
- data/src/core/xds/grpc/xds_tls_context_parser.cc +275 -0
- data/src/core/xds/grpc/xds_tls_context_parser.h +35 -0
- data/src/core/xds/grpc/xds_transport_grpc.cc +243 -95
- data/src/core/xds/grpc/xds_transport_grpc.h +50 -9
- data/src/core/xds/xds_client/lrs_client.cc +26 -27
- data/src/core/xds/xds_client/xds_bootstrap.cc +4 -16
- data/src/core/xds/xds_client/xds_client.cc +21 -31
- data/src/core/xds/xds_client/xds_transport.h +52 -3
- data/src/ruby/ext/grpc/rb_byte_buffer.c +1 -0
- data/src/ruby/ext/grpc/rb_call.c +29 -15
- 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 +7 -5
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +8 -4
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +12 -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/README.md +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -1
- data/src/ruby/pb/test/client.rb +5 -4
- data/src/ruby/spec/call_credentials_spec.rb +52 -2
- data/src/ruby/spec/call_spec.rb +14 -0
- 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 +14 -3
- data/third_party/abseil-cpp/absl/algorithm/algorithm.h +34 -2
- data/third_party/abseil-cpp/absl/algorithm/container.h +345 -147
- data/third_party/abseil-cpp/absl/base/attributes.h +67 -44
- data/third_party/abseil-cpp/absl/base/call_once.h +1 -0
- data/third_party/abseil-cpp/absl/base/casts.cc +61 -0
- data/third_party/abseil-cpp/absl/base/casts.h +135 -2
- data/third_party/abseil-cpp/absl/base/config.h +63 -41
- data/third_party/abseil-cpp/absl/base/fast_type_id.h +30 -2
- data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/base/internal/hardening.h +136 -0
- data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +6 -2
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -4
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +26 -24
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +74 -29
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -11
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +5 -1
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
- data/third_party/abseil-cpp/absl/base/macros.h +76 -37
- data/third_party/abseil-cpp/absl/base/nullability.h +5 -5
- data/third_party/abseil-cpp/absl/base/optimization.h +4 -5
- data/third_party/abseil-cpp/absl/base/options.h +46 -18
- data/third_party/abseil-cpp/absl/base/policy_checks.h +5 -5
- data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
- data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +7 -2
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
- data/third_party/abseil-cpp/absl/container/btree_map.h +60 -10
- data/third_party/abseil-cpp/absl/container/btree_set.h +61 -15
- data/third_party/abseil-cpp/absl/container/fixed_array.h +19 -21
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +49 -27
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +50 -26
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +42 -36
- data/third_party/abseil-cpp/absl/container/internal/btree.h +32 -24
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +30 -22
- data/third_party/abseil-cpp/absl/container/internal/common.h +57 -5
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +40 -36
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +119 -39
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +14 -2
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +14 -22
- data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +52 -52
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +7 -7
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +7 -7
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +32 -40
- data/third_party/abseil-cpp/absl/container/internal/layout.h +13 -13
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +95 -72
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +633 -365
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1016 -749
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +0 -1
- data/third_party/abseil-cpp/absl/container/node_hash_map.h +58 -35
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +23 -6
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -6
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +304 -188
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
- data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc +15 -1
- data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +12 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -11
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +14 -8
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +48 -38
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +63 -118
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +7 -47
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +20 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +83 -149
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
- data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +8 -6
- data/third_party/abseil-cpp/absl/flags/declare.h +9 -0
- data/third_party/abseil-cpp/absl/flags/flag.h +2 -1
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +19 -18
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +33 -34
- data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
- data/third_party/abseil-cpp/absl/flags/marshalling.cc +1 -16
- data/third_party/abseil-cpp/absl/flags/marshalling.h +2 -28
- data/third_party/abseil-cpp/absl/flags/reflection.cc +11 -7
- data/third_party/abseil-cpp/absl/flags/usage_config.cc +2 -2
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +22 -19
- data/third_party/abseil-cpp/absl/functional/bind_front.h +7 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +125 -20
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +43 -31
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +44 -6
- data/third_party/abseil-cpp/absl/hash/hash.h +1 -1
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +39 -51
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +379 -14
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +457 -353
- data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
- data/third_party/abseil-cpp/absl/log/internal/check_impl.h +2 -1
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +4 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +128 -50
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +38 -35
- data/third_party/abseil-cpp/absl/log/internal/log_impl.h +108 -110
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +10 -6
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +19 -1
- data/third_party/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -1
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +13 -0
- data/third_party/abseil-cpp/absl/log/internal/strip.h +30 -31
- data/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
- data/third_party/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +30 -30
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
- data/third_party/abseil-cpp/absl/log/log.h +2 -2
- data/third_party/abseil-cpp/absl/log/log_entry.cc +263 -0
- data/third_party/abseil-cpp/absl/log/log_entry.h +2 -0
- data/third_party/abseil-cpp/absl/log/vlog_is_on.h +0 -2
- data/third_party/abseil-cpp/absl/memory/memory.h +55 -5
- data/third_party/abseil-cpp/absl/meta/type_traits.h +161 -56
- data/third_party/abseil-cpp/absl/numeric/int128.h +41 -21
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +32 -4
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +2 -2
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/distributions.h +17 -17
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
- data/third_party/abseil-cpp/absl/random/internal/entropy_pool.cc +2 -2
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
- data/third_party/abseil-cpp/absl/random/internal/platform.h +0 -13
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +5 -31
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/traits.h +21 -0
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
- data/third_party/abseil-cpp/absl/random/mocking_access.h +74 -0
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +30 -4
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +225 -63
- data/third_party/abseil-cpp/absl/status/status.cc +66 -70
- data/third_party/abseil-cpp/absl/status/status.h +254 -23
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +3 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +117 -137
- data/third_party/abseil-cpp/absl/strings/ascii.h +10 -6
- data/third_party/abseil-cpp/absl/strings/cord.cc +41 -17
- data/third_party/abseil-cpp/absl/strings/cord.h +26 -17
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +4 -2
- data/third_party/abseil-cpp/absl/strings/escaping.cc +305 -125
- data/third_party/abseil-cpp/absl/strings/escaping.h +12 -2
- data/third_party/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +27 -21
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +11 -19
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
- data/third_party/abseil-cpp/absl/strings/internal/escaping.h +2 -24
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -36
- data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +921 -231
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -16
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +16 -12
- data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
- data/third_party/abseil-cpp/absl/strings/numbers.cc +477 -8
- data/third_party/abseil-cpp/absl/strings/numbers.h +29 -12
- data/third_party/abseil-cpp/absl/strings/resize_and_overwrite.h +198 -0
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +96 -91
- data/third_party/abseil-cpp/absl/strings/str_cat.h +53 -13
- data/third_party/abseil-cpp/absl/strings/str_split.h +14 -9
- data/third_party/abseil-cpp/absl/strings/string_view.h +10 -716
- data/third_party/abseil-cpp/absl/strings/substitute.cc +24 -24
- data/third_party/abseil-cpp/absl/strings/substitute.h +2 -2
- data/third_party/abseil-cpp/absl/synchronization/barrier.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +24 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +41 -29
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +199 -94
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +5 -5
- data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
- data/third_party/abseil-cpp/absl/time/clock.cc +29 -30
- data/third_party/abseil-cpp/absl/time/clock.h +3 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +2 -2
- data/third_party/abseil-cpp/absl/time/format.cc +3 -10
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +131 -91
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +185 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
- data/third_party/abseil-cpp/absl/time/time.cc +4 -4
- data/third_party/abseil-cpp/absl/time/time.h +14 -13
- data/third_party/abseil-cpp/absl/types/compare.h +64 -63
- data/third_party/abseil-cpp/absl/types/internal/span.h +6 -6
- data/third_party/abseil-cpp/absl/types/optional.h +31 -4
- data/third_party/abseil-cpp/absl/types/optional_ref.h +295 -0
- data/third_party/{boringssl-with-bazel/crypto/x509/x_val.cc → abseil-cpp/absl/types/source_location.cc} +4 -14
- data/third_party/abseil-cpp/absl/types/source_location.h +172 -0
- data/third_party/abseil-cpp/absl/types/span.h +67 -38
- data/third_party/abseil-cpp/absl/types/variant.h +75 -18
- data/third_party/abseil-cpp/absl/utility/utility.h +112 -16
- data/third_party/boringssl-with-bazel/crypto/aes/aes.cc +3 -0
- data/third_party/boringssl-with-bazel/crypto/armv8_feature_parsing.h +67 -0
- data/third_party/boringssl-with-bazel/crypto/asn1/a_bitstr.cc +143 -105
- data/third_party/boringssl-with-bazel/crypto/asn1/a_bool.cc +5 -8
- data/third_party/boringssl-with-bazel/crypto/asn1/a_d2i_fp.cc +3 -3
- data/third_party/boringssl-with-bazel/crypto/asn1/a_dup.cc +6 -6
- data/third_party/boringssl-with-bazel/crypto/asn1/a_gentm.cc +33 -12
- data/third_party/boringssl-with-bazel/crypto/asn1/a_i2d_fp.cc +7 -6
- data/third_party/boringssl-with-bazel/crypto/asn1/a_int.cc +80 -52
- data/third_party/boringssl-with-bazel/crypto/asn1/a_mbstr.cc +7 -4
- data/third_party/boringssl-with-bazel/crypto/asn1/a_object.cc +70 -72
- data/third_party/boringssl-with-bazel/crypto/asn1/a_strex.cc +38 -42
- data/third_party/boringssl-with-bazel/crypto/asn1/a_strnid.cc +41 -39
- data/third_party/boringssl-with-bazel/crypto/asn1/a_time.cc +59 -35
- data/third_party/boringssl-with-bazel/crypto/asn1/a_type.cc +275 -15
- data/third_party/boringssl-with-bazel/crypto/asn1/a_utctm.cc +32 -13
- data/third_party/boringssl-with-bazel/crypto/asn1/asn1_lib.cc +128 -30
- data/third_party/boringssl-with-bazel/crypto/asn1/asn_pack.cc +10 -10
- data/third_party/boringssl-with-bazel/crypto/asn1/f_int.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/asn1/f_string.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/asn1/internal.h +261 -115
- data/third_party/boringssl-with-bazel/crypto/asn1/posix_time.cc +8 -5
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_dec.cc +373 -725
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_enc.cc +211 -526
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_fre.cc +22 -19
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_new.cc +26 -24
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_typ.cc +19 -5
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_utl.cc +47 -51
- data/third_party/boringssl-with-bazel/crypto/base64/base64.cc +14 -15
- data/third_party/boringssl-with-bazel/crypto/bcm_support.h +7 -29
- data/third_party/boringssl-with-bazel/crypto/bio/bio.cc +234 -176
- data/third_party/boringssl-with-bazel/crypto/bio/bio_mem.cc +72 -86
- data/third_party/boringssl-with-bazel/crypto/bio/connect.cc +153 -199
- data/third_party/boringssl-with-bazel/crypto/bio/errno.cc +3 -1
- data/third_party/boringssl-with-bazel/crypto/bio/fd.cc +56 -55
- data/third_party/boringssl-with-bazel/crypto/bio/file.cc +70 -78
- data/third_party/boringssl-with-bazel/crypto/bio/hexdump.cc +6 -4
- data/third_party/boringssl-with-bazel/crypto/bio/internal.h +69 -17
- data/third_party/boringssl-with-bazel/crypto/bio/pair.cc +117 -136
- data/third_party/boringssl-with-bazel/crypto/bio/printf.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/bio/socket.cc +116 -50
- data/third_party/boringssl-with-bazel/crypto/bio/socket_helper.cc +53 -5
- data/third_party/boringssl-with-bazel/crypto/blake2/blake2.cc +9 -5
- data/third_party/boringssl-with-bazel/crypto/bn/bn_asn1.cc +2 -2
- data/third_party/boringssl-with-bazel/crypto/bn/convert.cc +56 -70
- data/third_party/boringssl-with-bazel/crypto/bn/div.cc +102 -0
- data/third_party/boringssl-with-bazel/crypto/bn/exponentiation.cc +26 -42
- data/third_party/boringssl-with-bazel/crypto/bn/sqrt.cc +93 -0
- data/third_party/boringssl-with-bazel/crypto/buf/buf.cc +6 -5
- data/third_party/boringssl-with-bazel/crypto/bytestring/asn1_compat.cc +6 -5
- data/third_party/boringssl-with-bazel/crypto/bytestring/ber.cc +22 -20
- data/third_party/boringssl-with-bazel/crypto/bytestring/cbb.cc +119 -59
- data/third_party/boringssl-with-bazel/crypto/bytestring/cbs.cc +115 -31
- data/third_party/boringssl-with-bazel/crypto/bytestring/internal.h +79 -24
- data/third_party/boringssl-with-bazel/crypto/bytestring/unicode.cc +2 -2
- data/third_party/boringssl-with-bazel/crypto/chacha/chacha.cc +5 -3
- data/third_party/boringssl-with-bazel/crypto/chacha/internal.h +23 -22
- data/third_party/boringssl-with-bazel/crypto/cipher/derive_key.cc +14 -18
- data/third_party/boringssl-with-bazel/crypto/cipher/e_aesctrhmac.cc +73 -58
- data/third_party/boringssl-with-bazel/crypto/cipher/e_aeseax.cc +132 -70
- data/third_party/boringssl-with-bazel/crypto/cipher/e_aesgcmsiv.cc +390 -249
- data/third_party/boringssl-with-bazel/crypto/cipher/e_chacha20poly1305.cc +200 -137
- data/third_party/boringssl-with-bazel/crypto/cipher/e_des.cc +45 -29
- data/third_party/boringssl-with-bazel/crypto/cipher/e_null.cc +9 -5
- data/third_party/boringssl-with-bazel/crypto/cipher/e_rc2.cc +43 -28
- data/third_party/boringssl-with-bazel/crypto/cipher/e_rc4.cc +7 -5
- data/third_party/boringssl-with-bazel/crypto/cipher/e_tls.cc +250 -237
- data/third_party/boringssl-with-bazel/crypto/cipher/get_cipher.cc +12 -12
- data/third_party/boringssl-with-bazel/crypto/cipher/internal.h +59 -59
- data/third_party/boringssl-with-bazel/crypto/cipher/tls_cbc.cc +111 -111
- data/third_party/boringssl-with-bazel/crypto/cms/cms.cc +48 -42
- data/third_party/boringssl-with-bazel/crypto/conf/conf.cc +69 -63
- data/third_party/boringssl-with-bazel/crypto/conf/internal.h +11 -12
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_apple.cc +8 -5
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_fuchsia.cc +6 -1
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_linux.cc +7 -1
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_openbsd.cc +7 -21
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_sysreg.cc +15 -41
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_win.cc +16 -3
- data/third_party/boringssl-with-bazel/crypto/cpu_arm_freebsd.cc +4 -2
- data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.cc +54 -31
- data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.h +79 -101
- data/third_party/boringssl-with-bazel/crypto/cpu_intel.cc +51 -45
- data/third_party/boringssl-with-bazel/crypto/crypto.cc +26 -55
- data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519.cc +28 -25
- data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519_tables.h +6 -6
- data/third_party/boringssl-with-bazel/crypto/curve25519/internal.h +14 -15
- data/third_party/boringssl-with-bazel/crypto/curve25519/spake25519.cc +23 -20
- data/third_party/boringssl-with-bazel/crypto/des/des.cc +27 -19
- data/third_party/boringssl-with-bazel/crypto/des/internal.h +4 -9
- data/third_party/boringssl-with-bazel/crypto/dh/dh_asn1.cc +34 -49
- data/third_party/boringssl-with-bazel/crypto/dh/params.cc +44 -41
- data/third_party/boringssl-with-bazel/crypto/digest/digest_extra.cc +87 -40
- data/third_party/boringssl-with-bazel/crypto/dsa/dsa.cc +237 -260
- data/third_party/boringssl-with-bazel/crypto/dsa/dsa_asn1.cc +100 -173
- data/third_party/boringssl-with-bazel/crypto/dsa/internal.h +23 -21
- data/third_party/boringssl-with-bazel/crypto/ec/ec_asn1.cc +181 -209
- data/third_party/boringssl-with-bazel/crypto/ec/ec_derive.cc +26 -28
- data/third_party/boringssl-with-bazel/crypto/ec/hash_to_curve.cc +265 -174
- data/third_party/boringssl-with-bazel/crypto/ec/internal.h +54 -18
- data/third_party/boringssl-with-bazel/crypto/ecdh/ecdh.cc +7 -5
- data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_asn1.cc +50 -70
- data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_p1363.cc +54 -0
- data/third_party/boringssl-with-bazel/crypto/engine/engine.cc +7 -7
- data/third_party/boringssl-with-bazel/crypto/err/err.cc +116 -105
- data/third_party/boringssl-with-bazel/crypto/err/internal.h +8 -21
- data/third_party/boringssl-with-bazel/crypto/evp/evp.cc +238 -166
- data/third_party/boringssl-with-bazel/crypto/evp/evp_asn1.cc +202 -234
- data/third_party/boringssl-with-bazel/crypto/evp/evp_ctx.cc +260 -159
- data/third_party/boringssl-with-bazel/crypto/evp/evp_kem.cc +82 -0
- data/third_party/boringssl-with-bazel/crypto/evp/internal.h +292 -137
- data/third_party/boringssl-with-bazel/crypto/evp/p_dh.cc +198 -25
- data/third_party/boringssl-with-bazel/crypto/evp/p_dsa.cc +333 -0
- data/third_party/boringssl-with-bazel/crypto/evp/p_ec.cc +427 -42
- data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519.cc +270 -14
- data/third_party/boringssl-with-bazel/crypto/evp/p_hkdf.cc +70 -102
- data/third_party/boringssl-with-bazel/crypto/evp/p_mldsa.cc +549 -0
- data/third_party/boringssl-with-bazel/crypto/evp/p_mlkem.cc +485 -0
- data/third_party/boringssl-with-bazel/crypto/evp/p_rsa.cc +666 -158
- data/third_party/boringssl-with-bazel/crypto/evp/p_x25519.cc +290 -28
- data/third_party/boringssl-with-bazel/crypto/evp/p_xwing.cc +273 -0
- data/third_party/boringssl-with-bazel/crypto/evp/pbkdf.cc +14 -7
- data/third_party/boringssl-with-bazel/crypto/evp/print.cc +34 -89
- data/third_party/boringssl-with-bazel/crypto/evp/scrypt.cc +23 -21
- data/third_party/boringssl-with-bazel/crypto/evp/sign.cc +23 -42
- data/third_party/boringssl-with-bazel/crypto/ex_data.cc +40 -41
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes.cc.inc +34 -28
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes_nohw.cc.inc +119 -121
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cbc.cc.inc +16 -14
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cfb.cc.inc +12 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ctr.cc.inc +7 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm.cc.inc +39 -29
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm_nohw.cc.inc +15 -13
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/internal.h +193 -177
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/key_wrap.cc.inc +5 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/mode_wrappers.cc.inc +7 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ofb.cc.inc +7 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm.cc +24 -19
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm_interface.h +512 -384
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/add.cc.inc +7 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +63 -44
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bn.cc.inc +40 -37
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bytes.cc.inc +27 -22
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/cmp.cc.inc +9 -7
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/ctx.cc.inc +62 -126
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div.cc.inc +92 -167
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div_extra.cc.inc +15 -12
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/exponentiation.cc.inc +96 -93
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd.cc.inc +73 -92
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd_extra.cc.inc +59 -71
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/generic.cc.inc +54 -57
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/internal.h +333 -255
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/jacobi.cc.inc +12 -19
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery.cc.inc +80 -95
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery_inv.cc.inc +53 -96
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/mul.cc.inc +58 -419
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/prime.cc.inc +164 -213
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/random.cc.inc +27 -26
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.cc.inc +12 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.h +47 -49
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/shift.cc.inc +14 -17
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/sqrt.cc.inc +19 -108
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/aead.cc.inc +427 -105
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/cipher.cc.inc +412 -212
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aes.cc.inc +230 -225
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aesccm.cc.inc +115 -84
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/internal.h +374 -27
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cmac/cmac.cc.inc +28 -23
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/delocate.h +36 -40
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/check.cc.inc +68 -78
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/dh.cc.inc +154 -196
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/internal.h +24 -24
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digest.cc.inc +40 -69
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digests.cc.inc +13 -7
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/internal.h +13 -11
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/md32_common.h +86 -81
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digestsign/digestsign.cc.inc +38 -34
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec.cc.inc +187 -196
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_key.cc.inc +196 -154
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_montgomery.cc.inc +65 -125
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/felem.cc.inc +85 -22
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/internal.h +281 -287
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/oct.cc.inc +23 -22
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256.cc.inc +514 -573
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256_internal.h +193 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/scalar.cc.inc +44 -39
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple.cc.inc +58 -90
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple_mul.cc.inc +39 -34
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/util.cc.inc +6 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/wnaf.cc.inc +23 -20
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdh/ecdh.cc.inc +6 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +47 -37
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/internal.h +5 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/internal.h +38 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/jitter.cc.inc +463 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/hkdf/hkdf.cc.inc +8 -6
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/hmac/hmac.cc.inc +19 -16
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/internal.h +41 -15
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/keccak.cc.inc +172 -44
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/fips_known_values.inc +5 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/mldsa.cc.inc +1632 -766
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/fips_known_values.inc +5 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/mlkem.cc.inc +740 -436
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/ctrdrbg.cc.inc +240 -53
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/internal.h +41 -26
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/rand.cc.inc +221 -218
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/internal.h +64 -67
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/padding.cc.inc +49 -57
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa.cc.inc +247 -234
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa_impl.cc.inc +392 -692
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/fips.cc.inc +10 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/self_check.cc.inc +479 -449
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/internal.h +34 -11
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +46 -43
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/internal.h +61 -70
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha1.cc.inc +27 -13
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha256.cc.inc +46 -30
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha512.cc.inc +47 -47
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/address.h +98 -73
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.cc.inc +108 -98
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.h +14 -24
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.cc.inc +94 -91
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.h +19 -31
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/params.h +156 -56
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +318 -132
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.cc.inc +234 -81
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.h +20 -34
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.cc.inc +97 -96
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.h +10 -20
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/internal.h +2 -16
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/kdf.cc.inc +26 -26
- data/third_party/boringssl-with-bazel/crypto/fuzzer_mode.cc +5 -5
- data/third_party/boringssl-with-bazel/crypto/hpke/hpke.cc +461 -97
- data/third_party/boringssl-with-bazel/crypto/hrss/hrss.cc +153 -149
- data/third_party/boringssl-with-bazel/crypto/hrss/internal.h +9 -13
- data/third_party/boringssl-with-bazel/crypto/internal.h +531 -394
- data/third_party/boringssl-with-bazel/crypto/kyber/internal.h +117 -12
- data/third_party/boringssl-with-bazel/crypto/kyber/kyber.cc +59 -58
- data/third_party/boringssl-with-bazel/crypto/lhash/internal.h +38 -37
- data/third_party/boringssl-with-bazel/crypto/lhash/lhash.cc +68 -65
- data/third_party/boringssl-with-bazel/crypto/md4/md4.cc +19 -6
- data/third_party/boringssl-with-bazel/crypto/md5/internal.h +6 -9
- data/third_party/boringssl-with-bazel/crypto/md5/md5.cc +18 -6
- data/third_party/boringssl-with-bazel/crypto/mem.cc +61 -65
- data/third_party/boringssl-with-bazel/crypto/mem_internal.h +671 -0
- data/third_party/boringssl-with-bazel/crypto/mldsa/mldsa.cc +238 -32
- data/third_party/boringssl-with-bazel/crypto/mlkem/mlkem.cc +21 -65
- data/third_party/boringssl-with-bazel/crypto/obj/obj.cc +132 -157
- data/third_party/boringssl-with-bazel/crypto/obj/obj_dat.h +79 -1
- data/third_party/boringssl-with-bazel/crypto/obj/obj_xref.cc +14 -11
- data/third_party/boringssl-with-bazel/crypto/params_internal.h +30 -0
- data/third_party/boringssl-with-bazel/crypto/pem/internal.h +20 -15
- data/third_party/boringssl-with-bazel/crypto/pem/pem_all.cc +20 -19
- data/third_party/boringssl-with-bazel/crypto/pem/pem_info.cc +72 -76
- data/third_party/boringssl-with-bazel/crypto/pem/pem_lib.cc +215 -217
- data/third_party/boringssl-with-bazel/crypto/pem/pem_oth.cc +6 -6
- data/third_party/boringssl-with-bazel/crypto/pem/pem_pk8.cc +13 -13
- data/third_party/boringssl-with-bazel/crypto/pem/pem_pkey.cc +11 -11
- data/third_party/boringssl-with-bazel/crypto/pkcs7/internal.h +12 -17
- data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7.cc +29 -27
- data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7_x509.cc +55 -49
- data/third_party/boringssl-with-bazel/crypto/pkcs8/internal.h +21 -26
- data/third_party/boringssl-with-bazel/crypto/pkcs8/p5_pbev2.cc +33 -31
- data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8.cc +73 -81
- data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8_x509.cc +139 -138
- data/third_party/boringssl-with-bazel/crypto/poly1305/internal.h +3 -7
- data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305.cc +5 -4
- data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_arm.cc +43 -47
- data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_vec.cc +29 -26
- data/third_party/boringssl-with-bazel/crypto/pool/internal.h +64 -20
- data/third_party/boringssl-with-bazel/crypto/pool/pool.cc +177 -157
- data/third_party/boringssl-with-bazel/crypto/rand/deterministic.cc +9 -16
- data/third_party/boringssl-with-bazel/crypto/rand/fork_detect.cc +70 -42
- data/third_party/boringssl-with-bazel/crypto/rand/forkunsafe.cc +7 -7
- data/third_party/boringssl-with-bazel/crypto/rand/getentropy.cc +6 -13
- data/third_party/boringssl-with-bazel/crypto/rand/internal.h +16 -4
- data/third_party/boringssl-with-bazel/crypto/rand/ios.cc +4 -11
- data/third_party/boringssl-with-bazel/crypto/rand/rand.cc +11 -9
- data/third_party/boringssl-with-bazel/crypto/rand/trusty.cc +4 -11
- data/third_party/boringssl-with-bazel/crypto/rand/urandom.cc +16 -195
- data/third_party/boringssl-with-bazel/crypto/rand/windows.cc +12 -19
- data/third_party/boringssl-with-bazel/crypto/refcount.cc +7 -17
- data/third_party/boringssl-with-bazel/crypto/rsa/internal.h +22 -7
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_asn1.cc +199 -78
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_crypt.cc +49 -50
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_extra.cc +11 -0
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_print.cc +4 -6
- data/third_party/boringssl-with-bazel/crypto/sha/sha1.cc +3 -0
- data/third_party/boringssl-with-bazel/crypto/sha/sha256.cc +3 -1
- data/third_party/boringssl-with-bazel/crypto/sha/sha512.cc +6 -4
- data/third_party/boringssl-with-bazel/crypto/siphash/siphash.cc +2 -0
- data/third_party/boringssl-with-bazel/crypto/slhdsa/slhdsa.cc +43 -6
- data/third_party/boringssl-with-bazel/crypto/spake2plus/internal.h +31 -31
- data/third_party/boringssl-with-bazel/crypto/spake2plus/spake2plus.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/stack/stack.cc +89 -130
- data/third_party/boringssl-with-bazel/crypto/thread.cc +14 -14
- data/third_party/boringssl-with-bazel/crypto/thread_none.cc +10 -13
- data/third_party/boringssl-with-bazel/crypto/thread_pthread.cc +22 -35
- data/third_party/boringssl-with-bazel/crypto/thread_win.cc +29 -40
- data/third_party/boringssl-with-bazel/crypto/trust_token/internal.h +81 -88
- data/third_party/boringssl-with-bazel/crypto/trust_token/pmbtoken.cc +160 -144
- data/third_party/boringssl-with-bazel/crypto/trust_token/trust_token.cc +96 -80
- data/third_party/boringssl-with-bazel/crypto/trust_token/voprf.cc +90 -87
- data/third_party/boringssl-with-bazel/crypto/x509/a_digest.cc +5 -5
- data/third_party/boringssl-with-bazel/crypto/x509/a_sign.cc +51 -48
- data/third_party/boringssl-with-bazel/crypto/x509/a_verify.cc +30 -34
- data/third_party/boringssl-with-bazel/crypto/x509/algorithm.cc +47 -16
- data/third_party/boringssl-with-bazel/crypto/x509/asn1_gen.cc +41 -43
- data/third_party/boringssl-with-bazel/crypto/x509/by_dir.cc +183 -237
- data/third_party/boringssl-with-bazel/crypto/x509/by_file.cc +29 -30
- data/third_party/boringssl-with-bazel/crypto/x509/internal.h +276 -180
- data/third_party/boringssl-with-bazel/crypto/x509/name_print.cc +15 -13
- data/third_party/boringssl-with-bazel/crypto/x509/policy.cc +415 -525
- data/third_party/boringssl-with-bazel/crypto/x509/rsa_pss.cc +94 -271
- data/third_party/boringssl-with-bazel/crypto/x509/t_crl.cc +11 -8
- data/third_party/boringssl-with-bazel/crypto/x509/t_req.cc +26 -23
- data/third_party/boringssl-with-bazel/crypto/x509/t_x509.cc +26 -22
- data/third_party/boringssl-with-bazel/crypto/x509/t_x509a.cc +3 -1
- data/third_party/boringssl-with-bazel/crypto/x509/v3_akey.cc +69 -76
- data/third_party/boringssl-with-bazel/crypto/x509/v3_akeya.cc +2 -2
- data/third_party/boringssl-with-bazel/crypto/x509/v3_alt.cc +112 -69
- data/third_party/boringssl-with-bazel/crypto/x509/v3_bcons.cc +15 -14
- data/third_party/boringssl-with-bazel/crypto/x509/v3_bitst.cc +16 -18
- data/third_party/boringssl-with-bazel/crypto/x509/v3_conf.cc +62 -67
- data/third_party/boringssl-with-bazel/crypto/x509/v3_cpols.cc +143 -170
- data/third_party/boringssl-with-bazel/crypto/x509/v3_crld.cc +121 -165
- data/third_party/boringssl-with-bazel/crypto/x509/v3_enum.cc +13 -12
- data/third_party/boringssl-with-bazel/crypto/x509/v3_extku.cc +17 -34
- data/third_party/boringssl-with-bazel/crypto/x509/v3_genn.cc +20 -10
- data/third_party/boringssl-with-bazel/crypto/x509/v3_ia5.cc +22 -18
- data/third_party/boringssl-with-bazel/crypto/x509/v3_info.cc +45 -47
- data/third_party/boringssl-with-bazel/crypto/x509/v3_int.cc +35 -33
- data/third_party/boringssl-with-bazel/crypto/x509/v3_lib.cc +106 -61
- data/third_party/boringssl-with-bazel/crypto/x509/v3_ncons.cc +642 -358
- data/third_party/boringssl-with-bazel/crypto/x509/v3_ocsp.cc +25 -22
- data/third_party/boringssl-with-bazel/crypto/x509/v3_pcons.cc +15 -14
- data/third_party/boringssl-with-bazel/crypto/x509/v3_pmaps.cc +16 -15
- data/third_party/boringssl-with-bazel/crypto/x509/v3_prn.cc +6 -6
- data/third_party/boringssl-with-bazel/crypto/x509/v3_purp.cc +150 -137
- data/third_party/boringssl-with-bazel/crypto/x509/v3_skey.cc +23 -26
- data/third_party/boringssl-with-bazel/crypto/x509/v3_utl.cc +151 -178
- data/third_party/boringssl-with-bazel/crypto/x509/x509.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/x509/x509_att.cc +32 -30
- data/third_party/boringssl-with-bazel/crypto/x509/x509_cmp.cc +95 -88
- data/third_party/boringssl-with-bazel/crypto/x509/x509_d2.cc +9 -9
- data/third_party/boringssl-with-bazel/crypto/x509/x509_def.cc +6 -8
- data/third_party/boringssl-with-bazel/crypto/x509/x509_ext.cc +46 -24
- data/third_party/boringssl-with-bazel/crypto/x509/x509_lu.cc +211 -195
- data/third_party/boringssl-with-bazel/crypto/x509/x509_obj.cc +20 -16
- data/third_party/boringssl-with-bazel/crypto/x509/x509_req.cc +37 -46
- data/third_party/boringssl-with-bazel/crypto/x509/x509_set.cc +62 -90
- data/third_party/boringssl-with-bazel/crypto/x509/x509_trs.cc +18 -13
- data/third_party/boringssl-with-bazel/crypto/x509/x509_v3.cc +33 -33
- data/third_party/boringssl-with-bazel/crypto/x509/x509_vfy.cc +109 -110
- data/third_party/boringssl-with-bazel/crypto/x509/x509_vpm.cc +56 -47
- data/third_party/boringssl-with-bazel/crypto/x509/x509cset.cc +27 -40
- data/third_party/boringssl-with-bazel/crypto/x509/x509name.cc +77 -67
- data/third_party/boringssl-with-bazel/crypto/x509/x509rset.cc +5 -17
- data/third_party/boringssl-with-bazel/crypto/x509/x509spki.cc +13 -13
- data/third_party/boringssl-with-bazel/crypto/x509/x_algor.cc +131 -24
- data/third_party/boringssl-with-bazel/crypto/x509/x_all.cc +72 -39
- data/third_party/boringssl-with-bazel/crypto/x509/x_attrib.cc +10 -4
- data/third_party/boringssl-with-bazel/crypto/x509/x_crl.cc +77 -44
- data/third_party/boringssl-with-bazel/crypto/x509/x_exten.cc +6 -0
- data/third_party/boringssl-with-bazel/crypto/x509/x_name.cc +311 -383
- data/third_party/boringssl-with-bazel/crypto/x509/x_pubkey.cc +129 -82
- data/third_party/boringssl-with-bazel/crypto/x509/x_req.cc +11 -6
- data/third_party/boringssl-with-bazel/crypto/x509/x_sig.cc +4 -4
- data/third_party/boringssl-with-bazel/crypto/x509/x_spki.cc +11 -1
- data/third_party/boringssl-with-bazel/crypto/x509/x_x509.cc +285 -280
- data/third_party/boringssl-with-bazel/crypto/x509/x_x509a.cc +60 -60
- data/third_party/boringssl-with-bazel/crypto/xwing/xwing.cc +257 -0
- data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +301 -0
- data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +301 -0
- data/third_party/boringssl-with-bazel/gen/crypto/err_data.cc +526 -500
- data/third_party/boringssl-with-bazel/include/openssl/aead.h +286 -114
- data/third_party/boringssl-with-bazel/include/openssl/aes.h +43 -43
- data/third_party/boringssl-with-bazel/include/openssl/asm_base.h +29 -16
- data/third_party/boringssl-with-bazel/include/openssl/asn1.h +641 -631
- data/third_party/boringssl-with-bazel/include/openssl/asn1t.h +7 -9
- data/third_party/boringssl-with-bazel/include/openssl/base.h +34 -54
- data/third_party/boringssl-with-bazel/include/openssl/base64.h +30 -30
- data/third_party/boringssl-with-bazel/include/openssl/bio.h +373 -316
- data/third_party/boringssl-with-bazel/include/openssl/blake2.h +15 -11
- data/third_party/boringssl-with-bazel/include/openssl/blowfish.h +10 -3
- data/third_party/boringssl-with-bazel/include/openssl/bn.h +298 -306
- data/third_party/boringssl-with-bazel/include/openssl/buf.h +14 -14
- data/third_party/boringssl-with-bazel/include/openssl/bytestring.h +272 -207
- data/third_party/boringssl-with-bazel/include/openssl/cast.h +45 -8
- data/third_party/boringssl-with-bazel/include/openssl/chacha.h +3 -3
- data/third_party/boringssl-with-bazel/include/openssl/cipher.h +334 -152
- data/third_party/boringssl-with-bazel/include/openssl/cmac.h +13 -13
- data/third_party/boringssl-with-bazel/include/openssl/cms.h +35 -34
- data/third_party/boringssl-with-bazel/include/openssl/conf.h +15 -14
- data/third_party/boringssl-with-bazel/include/openssl/crypto.h +15 -13
- data/third_party/boringssl-with-bazel/include/openssl/ctrdrbg.h +49 -15
- data/third_party/boringssl-with-bazel/include/openssl/curve25519.h +24 -24
- data/third_party/boringssl-with-bazel/include/openssl/des.h +22 -16
- data/third_party/boringssl-with-bazel/include/openssl/dh.h +95 -95
- data/third_party/boringssl-with-bazel/include/openssl/digest.h +140 -71
- data/third_party/boringssl-with-bazel/include/openssl/dsa.h +101 -101
- data/third_party/boringssl-with-bazel/include/openssl/ec.h +143 -119
- data/third_party/boringssl-with-bazel/include/openssl/ec_key.h +97 -97
- data/third_party/boringssl-with-bazel/include/openssl/ecdh.h +9 -9
- data/third_party/boringssl-with-bazel/include/openssl/ecdsa.h +89 -46
- data/third_party/boringssl-with-bazel/include/openssl/engine.h +5 -5
- data/third_party/boringssl-with-bazel/include/openssl/err.h +73 -71
- data/third_party/boringssl-with-bazel/include/openssl/evp.h +824 -344
- data/third_party/boringssl-with-bazel/include/openssl/evp_errors.h +9 -2
- data/third_party/boringssl-with-bazel/include/openssl/ex_data.h +27 -32
- data/third_party/boringssl-with-bazel/include/openssl/hkdf.h +6 -6
- data/third_party/boringssl-with-bazel/include/openssl/hmac.h +31 -31
- data/third_party/boringssl-with-bazel/include/openssl/hpke.h +133 -117
- data/third_party/boringssl-with-bazel/include/openssl/hrss.h +14 -8
- data/third_party/boringssl-with-bazel/include/openssl/kdf.h +20 -19
- data/third_party/boringssl-with-bazel/include/openssl/lhash.h +4 -25
- data/third_party/boringssl-with-bazel/include/openssl/md4.h +14 -7
- data/third_party/boringssl-with-bazel/include/openssl/md5.h +7 -7
- data/third_party/boringssl-with-bazel/include/openssl/mem.h +38 -38
- data/third_party/boringssl-with-bazel/include/openssl/mldsa.h +380 -24
- data/third_party/boringssl-with-bazel/include/openssl/mlkem.h +43 -43
- data/third_party/boringssl-with-bazel/include/openssl/nid.h +1297 -2
- data/third_party/boringssl-with-bazel/include/openssl/obj.h +49 -49
- data/third_party/boringssl-with-bazel/include/openssl/opensslconf.h +30 -0
- data/third_party/boringssl-with-bazel/include/openssl/params.h +42 -0
- data/third_party/boringssl-with-bazel/include/openssl/pem.h +39 -30
- data/third_party/boringssl-with-bazel/include/openssl/pkcs7.h +40 -40
- data/third_party/boringssl-with-bazel/include/openssl/pkcs8.h +69 -63
- data/third_party/boringssl-with-bazel/include/openssl/poly1305.h +8 -5
- data/third_party/boringssl-with-bazel/include/openssl/pool.h +54 -25
- data/third_party/boringssl-with-bazel/include/openssl/posix_time.h +6 -6
- data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols.h +7866 -0
- data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_S.h +585 -0
- data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_c.h +305 -0
- data/third_party/boringssl-with-bazel/include/openssl/rand.h +18 -18
- data/third_party/boringssl-with-bazel/include/openssl/rc4.h +4 -4
- data/third_party/boringssl-with-bazel/include/openssl/ripemd.h +15 -10
- data/third_party/boringssl-with-bazel/include/openssl/rsa.h +272 -235
- data/third_party/boringssl-with-bazel/include/openssl/service_indicator.h +4 -81
- data/third_party/boringssl-with-bazel/include/openssl/sha.h +43 -166
- data/third_party/boringssl-with-bazel/include/openssl/sha2.h +201 -0
- data/third_party/boringssl-with-bazel/include/openssl/slhdsa.h +100 -48
- data/third_party/boringssl-with-bazel/include/openssl/span.h +190 -75
- data/third_party/boringssl-with-bazel/include/openssl/ssl.h +2168 -1567
- data/third_party/boringssl-with-bazel/include/openssl/ssl3.h +11 -69
- data/third_party/boringssl-with-bazel/include/openssl/stack.h +135 -80
- data/third_party/boringssl-with-bazel/include/openssl/target.h +13 -1
- data/third_party/boringssl-with-bazel/include/openssl/thread.h +0 -10
- data/third_party/boringssl-with-bazel/include/openssl/tls1.h +31 -310
- data/third_party/boringssl-with-bazel/include/openssl/tls_prf.h +47 -0
- data/third_party/boringssl-with-bazel/include/openssl/trust_token.h +97 -92
- data/third_party/boringssl-with-bazel/include/openssl/type_check.h +1 -1
- data/third_party/boringssl-with-bazel/include/openssl/x509.h +1805 -1857
- data/third_party/boringssl-with-bazel/include/openssl/x509v3.h +1 -1
- data/third_party/boringssl-with-bazel/include/openssl/xwing.h +115 -0
- data/third_party/boringssl-with-bazel/ssl/bio_ssl.cc +24 -19
- data/third_party/boringssl-with-bazel/ssl/d1_both.cc +59 -57
- data/third_party/boringssl-with-bazel/ssl/d1_lib.cc +53 -42
- data/third_party/boringssl-with-bazel/ssl/d1_pkt.cc +4 -4
- data/third_party/boringssl-with-bazel/ssl/d1_srtp.cc +2 -2
- data/third_party/boringssl-with-bazel/ssl/dtls_method.cc +10 -10
- data/third_party/boringssl-with-bazel/ssl/dtls_record.cc +6 -6
- data/third_party/boringssl-with-bazel/ssl/encrypted_client_hello.cc +61 -71
- data/third_party/boringssl-with-bazel/ssl/extensions.cc +967 -366
- data/third_party/boringssl-with-bazel/ssl/handoff.cc +77 -38
- data/third_party/boringssl-with-bazel/ssl/handshake.cc +63 -30
- data/third_party/boringssl-with-bazel/ssl/handshake_client.cc +129 -85
- data/third_party/boringssl-with-bazel/ssl/handshake_server.cc +116 -68
- data/third_party/boringssl-with-bazel/ssl/internal.h +983 -1207
- data/third_party/boringssl-with-bazel/ssl/s3_both.cc +34 -29
- data/third_party/boringssl-with-bazel/ssl/s3_lib.cc +4 -3
- data/third_party/boringssl-with-bazel/ssl/s3_pkt.cc +12 -12
- data/third_party/boringssl-with-bazel/ssl/ssl_aead_ctx.cc +5 -5
- data/third_party/boringssl-with-bazel/ssl/ssl_asn1.cc +114 -59
- data/third_party/boringssl-with-bazel/ssl/ssl_buffer.cc +17 -18
- data/third_party/boringssl-with-bazel/ssl/ssl_cert.cc +99 -61
- data/third_party/boringssl-with-bazel/ssl/ssl_cipher.cc +143 -134
- data/third_party/boringssl-with-bazel/ssl/ssl_credential.cc +188 -90
- data/third_party/boringssl-with-bazel/ssl/ssl_file.cc +132 -225
- data/third_party/boringssl-with-bazel/ssl/ssl_key_share.cc +79 -7
- data/third_party/boringssl-with-bazel/ssl/ssl_lib.cc +698 -302
- data/third_party/boringssl-with-bazel/ssl/ssl_privkey.cc +102 -45
- data/third_party/boringssl-with-bazel/ssl/ssl_session.cc +117 -102
- data/third_party/boringssl-with-bazel/ssl/ssl_transcript.cc +3 -3
- data/third_party/boringssl-with-bazel/ssl/ssl_versions.cc +24 -24
- data/third_party/boringssl-with-bazel/ssl/ssl_x509.cc +184 -170
- data/third_party/boringssl-with-bazel/ssl/t1_enc.cc +12 -10
- data/third_party/boringssl-with-bazel/ssl/tls13_both.cc +86 -54
- data/third_party/boringssl-with-bazel/ssl/tls13_client.cc +176 -90
- data/third_party/boringssl-with-bazel/ssl/tls13_enc.cc +166 -112
- data/third_party/boringssl-with-bazel/ssl/tls13_server.cc +188 -97
- data/third_party/boringssl-with-bazel/ssl/tls_method.cc +23 -23
- data/third_party/boringssl-with-bazel/ssl/tls_record.cc +17 -14
- data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/curve25519_64_adx.h +37 -33
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_64.h +4 -93
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_64_msvc.h +4 -69
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_32.br.c.inc +71 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_64.br.c.inc +84 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_point.br.c.inc +166 -0
- 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 +158 -96
- 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/bin_decoder.cc +0 -240
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +0 -56
- data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +0 -217
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +0 -835
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h +0 -108
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +0 -73
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +0 -298
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +0 -97
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +0 -38
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +0 -150
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +0 -60
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +0 -199
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +0 -48
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +0 -300
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +0 -84
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +0 -213
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +0 -48
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.c +0 -716
- data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +0 -181
- data/src/core/lib/iomgr/resolve_address.cc +0 -59
- data/src/core/lib/iomgr/resolve_address.h +0 -125
- data/src/core/lib/iomgr/resolve_address_impl.h +0 -58
- data/src/core/lib/iomgr/resolve_address_posix.cc +0 -184
- data/src/core/lib/iomgr/resolve_address_posix.h +0 -78
- data/src/core/lib/iomgr/resolve_address_windows.cc +0 -169
- data/src/core/lib/iomgr/resolve_address_windows.h +0 -76
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +0 -781
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +0 -93
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +0 -203
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +0 -838
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +0 -1237
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +0 -130
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +0 -35
- data/src/core/resolver/dns/dns_resolver_plugin.cc +0 -69
- data/src/core/resolver/dns/native/dns_resolver.cc +0 -173
- data/src/core/util/json/json_util.cc +0 -101
- data/src/core/util/json/json_util.h +0 -163
- data/third_party/abseil-cpp/absl/base/internal/identity.h +0 -39
- data/third_party/abseil-cpp/absl/base/internal/nullability_deprecated.h +0 -106
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -105
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -50
- data/third_party/abseil-cpp/absl/strings/string_view.cc +0 -257
- data/third_party/boringssl-with-bazel/crypto/evp/p_dh_asn1.cc +0 -142
- data/third_party/boringssl-with-bazel/crypto/evp/p_dsa_asn1.cc +0 -279
- data/third_party/boringssl-with-bazel/crypto/evp/p_ec_asn1.cc +0 -286
- data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519_asn1.cc +0 -225
- data/third_party/boringssl-with-bazel/crypto/evp/p_rsa_asn1.cc +0 -198
- data/third_party/boringssl-with-bazel/crypto/evp/p_x25519_asn1.cc +0 -237
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p224-64.cc.inc +0 -1163
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.cc.inc +0 -741
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.h +0 -207
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/blinding.cc.inc +0 -147
- data/third_party/boringssl-with-bazel/crypto/rand/getrandom_fillin.h +0 -64
- data/third_party/boringssl-with-bazel/crypto/rand/passive.cc +0 -178
- data/third_party/boringssl-with-bazel/crypto/x509/ext_dat.h +0 -92
- data/third_party/boringssl-with-bazel/include/openssl/bcm_public.h +0 -82
- data/third_party/boringssl-with-bazel/include/openssl/experimental/kyber.h +0 -146
- data/third_party/upb/upb/message/internal/tagged_ptr.h +0 -56
- data/third_party/upb/upb/message/tagged_ptr.h +0 -48
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
#include "src/core/channelz/channelz.h"
|
|
35
35
|
#include "src/core/client_channel/buffered_call.h"
|
|
36
36
|
#include "src/core/client_channel/client_channel_internal.h"
|
|
37
|
+
#include "src/core/client_channel/subchannel_metrics.h"
|
|
37
38
|
#include "src/core/client_channel/subchannel_pool_interface.h"
|
|
38
39
|
#include "src/core/client_channel/subchannel_stream_limiter.h"
|
|
39
40
|
#include "src/core/config/core_configuration.h"
|
|
@@ -57,6 +58,7 @@
|
|
|
57
58
|
#include "src/core/lib/transport/transport.h"
|
|
58
59
|
#include "src/core/telemetry/stats.h"
|
|
59
60
|
#include "src/core/telemetry/stats_data.h"
|
|
61
|
+
#include "src/core/transport/auth_context.h"
|
|
60
62
|
#include "src/core/util/alloc.h"
|
|
61
63
|
#include "src/core/util/backoff.h"
|
|
62
64
|
#include "src/core/util/debug_location.h"
|
|
@@ -97,972 +99,56 @@ using ::grpc_event_engine::experimental::EventEngine;
|
|
|
97
99
|
// Subchannel::ConnectivityStateWatcherInterface.
|
|
98
100
|
using TransportConnectivityStateWatcher = ConnectivityStateWatcherInterface;
|
|
99
101
|
|
|
100
|
-
|
|
101
|
-
// Subchannel::Call
|
|
102
|
-
//
|
|
103
|
-
|
|
104
|
-
RefCountedPtr<Subchannel::Call> Subchannel::Call::Ref() {
|
|
105
|
-
IncrementRefCount();
|
|
106
|
-
return RefCountedPtr<Subchannel::Call>(this);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
RefCountedPtr<Subchannel::Call> Subchannel::Call::Ref(
|
|
110
|
-
const DebugLocation& location, const char* reason) {
|
|
111
|
-
IncrementRefCount(location, reason);
|
|
112
|
-
return RefCountedPtr<Subchannel::Call>(this);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
//
|
|
116
|
-
// Subchannel
|
|
117
|
-
//
|
|
118
|
-
|
|
119
|
-
RefCountedPtr<Subchannel> Subchannel::Create(
|
|
120
|
-
OrphanablePtr<SubchannelConnector> connector,
|
|
121
|
-
const grpc_resolved_address& address, const ChannelArgs& args) {
|
|
122
|
-
if (!IsSubchannelConnectionScalingEnabled()) {
|
|
123
|
-
return OldSubchannel::Create(std::move(connector), address, args);
|
|
124
|
-
}
|
|
125
|
-
return NewSubchannel::Create(std::move(connector), address, args);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
Subchannel::Subchannel()
|
|
129
|
-
: DualRefCounted<Subchannel>(GRPC_TRACE_FLAG_ENABLED(subchannel_refcount)
|
|
130
|
-
? "Subchannel"
|
|
131
|
-
: nullptr) {}
|
|
132
|
-
|
|
133
|
-
ChannelArgs Subchannel::MakeSubchannelArgs(
|
|
134
|
-
const ChannelArgs& channel_args, const ChannelArgs& address_args,
|
|
135
|
-
const RefCountedPtr<SubchannelPoolInterface>& subchannel_pool,
|
|
136
|
-
const std::string& channel_default_authority) {
|
|
137
|
-
// Note that we start with the channel-level args and then apply the
|
|
138
|
-
// per-address args, so that if a value is present in both, the one
|
|
139
|
-
// in the channel-level args is used. This is particularly important
|
|
140
|
-
// for the GRPC_ARG_DEFAULT_AUTHORITY arg, which we want to allow
|
|
141
|
-
// resolvers to set on a per-address basis only if the application
|
|
142
|
-
// did not explicitly set it at the channel level.
|
|
143
|
-
return channel_args.UnionWith(address_args)
|
|
144
|
-
.SetObject(subchannel_pool)
|
|
145
|
-
// If we haven't already set the default authority arg (i.e., it
|
|
146
|
-
// was not explicitly set by the application nor overridden by
|
|
147
|
-
// the resolver), add it from the channel's default.
|
|
148
|
-
.SetIfUnset(GRPC_ARG_DEFAULT_AUTHORITY, channel_default_authority)
|
|
149
|
-
// Remove channel args that should not affect subchannel
|
|
150
|
-
// uniqueness.
|
|
151
|
-
.Remove(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME)
|
|
152
|
-
.Remove(GRPC_ARG_INHIBIT_HEALTH_CHECKING)
|
|
153
|
-
.Remove(GRPC_ARG_MAX_CONNECTIONS_PER_SUBCHANNEL)
|
|
154
|
-
.Remove(GRPC_ARG_MAX_CONNECTIONS_PER_SUBCHANNEL_CAP)
|
|
155
|
-
.Remove(GRPC_ARG_CHANNELZ_CHANNEL_NODE)
|
|
156
|
-
// Remove all keys with the no-subchannel prefix.
|
|
157
|
-
.RemoveAllKeysWithPrefix(GRPC_ARG_NO_SUBCHANNEL_PREFIX);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
//
|
|
161
|
-
// OldSubchannel::ConnectedSubchannel
|
|
162
|
-
//
|
|
163
|
-
|
|
164
|
-
class OldSubchannel::ConnectedSubchannel
|
|
165
|
-
: public RefCounted<ConnectedSubchannel> {
|
|
166
|
-
public:
|
|
167
|
-
const ChannelArgs& args() const { return args_; }
|
|
168
|
-
|
|
169
|
-
virtual void StartWatch(
|
|
170
|
-
grpc_pollset_set* interested_parties,
|
|
171
|
-
OrphanablePtr<TransportConnectivityStateWatcher> watcher) = 0;
|
|
172
|
-
|
|
173
|
-
// Methods for v3 stack.
|
|
174
|
-
virtual void Ping(absl::AnyInvocable<void(absl::Status)> on_ack) = 0;
|
|
175
|
-
virtual RefCountedPtr<UnstartedCallDestination> unstarted_call_destination()
|
|
176
|
-
const = 0;
|
|
177
|
-
|
|
178
|
-
// Methods for legacy stack.
|
|
179
|
-
virtual RefCountedPtr<Call> CreateCall(CreateCallArgs args,
|
|
180
|
-
grpc_error_handle* error) = 0;
|
|
181
|
-
virtual void Ping(grpc_closure* on_initiate, grpc_closure* on_ack) = 0;
|
|
182
|
-
|
|
183
|
-
protected:
|
|
184
|
-
explicit ConnectedSubchannel(const ChannelArgs& args)
|
|
185
|
-
: RefCounted<ConnectedSubchannel>(
|
|
186
|
-
GRPC_TRACE_FLAG_ENABLED(subchannel_refcount) ? "ConnectedSubchannel"
|
|
187
|
-
: nullptr),
|
|
188
|
-
args_(args) {}
|
|
189
|
-
|
|
190
|
-
private:
|
|
191
|
-
ChannelArgs args_;
|
|
192
|
-
};
|
|
193
|
-
|
|
194
|
-
//
|
|
195
|
-
// OldSubchannel::LegacyConnectedSubchannel
|
|
196
|
-
//
|
|
197
|
-
|
|
198
|
-
class OldSubchannel::LegacyConnectedSubchannel final
|
|
199
|
-
: public ConnectedSubchannel {
|
|
200
|
-
public:
|
|
201
|
-
LegacyConnectedSubchannel(
|
|
202
|
-
RefCountedPtr<grpc_channel_stack> channel_stack, const ChannelArgs& args,
|
|
203
|
-
RefCountedPtr<channelz::SubchannelNode> channelz_node)
|
|
204
|
-
: ConnectedSubchannel(args),
|
|
205
|
-
channelz_node_(std::move(channelz_node)),
|
|
206
|
-
channel_stack_(std::move(channel_stack)) {}
|
|
207
|
-
|
|
208
|
-
~LegacyConnectedSubchannel() override {
|
|
209
|
-
channel_stack_.reset(DEBUG_LOCATION, "ConnectedSubchannel");
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
void StartWatch(
|
|
213
|
-
grpc_pollset_set* interested_parties,
|
|
214
|
-
OrphanablePtr<TransportConnectivityStateWatcher> watcher) override {
|
|
215
|
-
grpc_transport_op* op = grpc_make_transport_op(nullptr);
|
|
216
|
-
op->start_connectivity_watch = std::move(watcher);
|
|
217
|
-
op->start_connectivity_watch_state = GRPC_CHANNEL_READY;
|
|
218
|
-
op->bind_pollset_set = interested_parties;
|
|
219
|
-
grpc_channel_element* elem =
|
|
220
|
-
grpc_channel_stack_element(channel_stack_.get(), 0);
|
|
221
|
-
elem->filter->start_transport_op(elem, op);
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
void Ping(absl::AnyInvocable<void(absl::Status)>) override {
|
|
225
|
-
Crash("call v3 ping method called in legacy impl");
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
RefCountedPtr<UnstartedCallDestination> unstarted_call_destination()
|
|
229
|
-
const override {
|
|
230
|
-
Crash("call v3 unstarted_call_destination method called in legacy impl");
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
RefCountedPtr<Call> CreateCall(CreateCallArgs args,
|
|
234
|
-
grpc_error_handle* error) override {
|
|
235
|
-
const size_t allocation_size =
|
|
236
|
-
GPR_ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(SubchannelCall)) +
|
|
237
|
-
channel_stack_->call_stack_size;
|
|
238
|
-
Arena* arena = args.arena;
|
|
239
|
-
return RefCountedPtr<SubchannelCall>(
|
|
240
|
-
new (arena->Alloc(allocation_size)) SubchannelCall(
|
|
241
|
-
RefAsSubclass<LegacyConnectedSubchannel>(), args, error));
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
void Ping(grpc_closure* on_initiate, grpc_closure* on_ack) override {
|
|
245
|
-
grpc_transport_op* op = grpc_make_transport_op(nullptr);
|
|
246
|
-
op->send_ping.on_initiate = on_initiate;
|
|
247
|
-
op->send_ping.on_ack = on_ack;
|
|
248
|
-
grpc_channel_element* elem =
|
|
249
|
-
grpc_channel_stack_element(channel_stack_.get(), 0);
|
|
250
|
-
elem->filter->start_transport_op(elem, op);
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
private:
|
|
254
|
-
class SubchannelCall final : public Call {
|
|
255
|
-
public:
|
|
256
|
-
SubchannelCall(
|
|
257
|
-
RefCountedPtr<LegacyConnectedSubchannel> connected_subchannel,
|
|
258
|
-
CreateCallArgs args, grpc_error_handle* error);
|
|
259
|
-
|
|
260
|
-
void StartTransportStreamOpBatch(
|
|
261
|
-
grpc_transport_stream_op_batch* batch) override;
|
|
262
|
-
|
|
263
|
-
void SetAfterCallStackDestroy(grpc_closure* closure) override;
|
|
264
|
-
|
|
265
|
-
// When refcount drops to 0, destroys itself and the associated call stack,
|
|
266
|
-
// but does NOT free the memory because it's in the call arena.
|
|
267
|
-
void Unref() override;
|
|
268
|
-
void Unref(const DebugLocation& location, const char* reason) override;
|
|
269
|
-
|
|
270
|
-
private:
|
|
271
|
-
// If channelz is enabled, intercepts recv_trailing so that we may check the
|
|
272
|
-
// status and associate it to a subchannel.
|
|
273
|
-
void MaybeInterceptRecvTrailingMetadata(
|
|
274
|
-
grpc_transport_stream_op_batch* batch);
|
|
275
|
-
|
|
276
|
-
static void RecvTrailingMetadataReady(void* arg, grpc_error_handle error);
|
|
277
|
-
|
|
278
|
-
// Interface of RefCounted<>.
|
|
279
|
-
void IncrementRefCount() override;
|
|
280
|
-
void IncrementRefCount(const DebugLocation& location,
|
|
281
|
-
const char* reason) override;
|
|
282
|
-
|
|
283
|
-
static void Destroy(void* arg, grpc_error_handle error);
|
|
284
|
-
|
|
285
|
-
RefCountedPtr<LegacyConnectedSubchannel> connected_subchannel_;
|
|
286
|
-
grpc_closure* after_call_stack_destroy_ = nullptr;
|
|
287
|
-
// State needed to support channelz interception of recv trailing metadata.
|
|
288
|
-
grpc_closure recv_trailing_metadata_ready_;
|
|
289
|
-
grpc_closure* original_recv_trailing_metadata_ = nullptr;
|
|
290
|
-
grpc_metadata_batch* recv_trailing_metadata_ = nullptr;
|
|
291
|
-
Timestamp deadline_;
|
|
292
|
-
};
|
|
293
|
-
|
|
294
|
-
RefCountedPtr<channelz::SubchannelNode> channelz_node_;
|
|
295
|
-
RefCountedPtr<grpc_channel_stack> channel_stack_;
|
|
296
|
-
};
|
|
297
|
-
|
|
298
|
-
//
|
|
299
|
-
// OldSubchannel::LegacyConnectedSubchannel::SubchannelCall
|
|
300
|
-
//
|
|
301
|
-
|
|
302
|
-
OldSubchannel::LegacyConnectedSubchannel::SubchannelCall::SubchannelCall(
|
|
303
|
-
RefCountedPtr<LegacyConnectedSubchannel> connected_subchannel,
|
|
304
|
-
CreateCallArgs args, grpc_error_handle* error)
|
|
305
|
-
: connected_subchannel_(std::move(connected_subchannel)),
|
|
306
|
-
deadline_(args.deadline) {
|
|
307
|
-
grpc_call_stack* callstk = SUBCHANNEL_CALL_TO_CALL_STACK(this);
|
|
308
|
-
const grpc_call_element_args call_args = {
|
|
309
|
-
callstk, // call_stack
|
|
310
|
-
nullptr, // server_transport_data
|
|
311
|
-
args.start_time, // start_time
|
|
312
|
-
args.deadline, // deadline
|
|
313
|
-
args.arena, // arena
|
|
314
|
-
args.call_combiner // call_combiner
|
|
315
|
-
};
|
|
316
|
-
*error = grpc_call_stack_init(connected_subchannel_->channel_stack_.get(), 1,
|
|
317
|
-
SubchannelCall::Destroy, this, &call_args);
|
|
318
|
-
if (GPR_UNLIKELY(!error->ok())) {
|
|
319
|
-
LOG(ERROR) << "error: " << StatusToString(*error);
|
|
320
|
-
return;
|
|
321
|
-
}
|
|
322
|
-
grpc_call_stack_set_pollset_or_pollset_set(callstk, args.pollent);
|
|
323
|
-
if (connected_subchannel_->channelz_node_ != nullptr) {
|
|
324
|
-
connected_subchannel_->channelz_node_->RecordCallStarted();
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
void OldSubchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
329
|
-
StartTransportStreamOpBatch(grpc_transport_stream_op_batch* batch) {
|
|
330
|
-
MaybeInterceptRecvTrailingMetadata(batch);
|
|
331
|
-
grpc_call_stack* call_stack = SUBCHANNEL_CALL_TO_CALL_STACK(this);
|
|
332
|
-
grpc_call_element* top_elem = grpc_call_stack_element(call_stack, 0);
|
|
333
|
-
GRPC_TRACE_LOG(channel, INFO)
|
|
334
|
-
<< "OP[" << top_elem->filter->name << ":" << top_elem
|
|
335
|
-
<< "]: " << grpc_transport_stream_op_batch_string(batch, false);
|
|
336
|
-
top_elem->filter->start_transport_stream_op_batch(top_elem, batch);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
void OldSubchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
340
|
-
SetAfterCallStackDestroy(grpc_closure* closure) {
|
|
341
|
-
GRPC_CHECK_EQ(after_call_stack_destroy_, nullptr);
|
|
342
|
-
GRPC_CHECK_NE(closure, nullptr);
|
|
343
|
-
after_call_stack_destroy_ = closure;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
void OldSubchannel::LegacyConnectedSubchannel::SubchannelCall::Unref() {
|
|
347
|
-
GRPC_CALL_STACK_UNREF(SUBCHANNEL_CALL_TO_CALL_STACK(this), "");
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
void OldSubchannel::LegacyConnectedSubchannel::SubchannelCall::Unref(
|
|
351
|
-
const DebugLocation& /*location*/, const char* reason) {
|
|
352
|
-
GRPC_CALL_STACK_UNREF(SUBCHANNEL_CALL_TO_CALL_STACK(this), reason);
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
void OldSubchannel::LegacyConnectedSubchannel::SubchannelCall::Destroy(
|
|
356
|
-
void* arg, grpc_error_handle /*error*/) {
|
|
357
|
-
SubchannelCall* self = static_cast<SubchannelCall*>(arg);
|
|
358
|
-
// Keep some members before destroying the subchannel call.
|
|
359
|
-
grpc_closure* after_call_stack_destroy = self->after_call_stack_destroy_;
|
|
360
|
-
RefCountedPtr<ConnectedSubchannel> connected_subchannel =
|
|
361
|
-
std::move(self->connected_subchannel_);
|
|
362
|
-
// Destroy the subchannel call.
|
|
363
|
-
self->~SubchannelCall();
|
|
364
|
-
// Destroy the call stack. This should be after destroying the subchannel
|
|
365
|
-
// call, because call->after_call_stack_destroy(), if not null, will free
|
|
366
|
-
// the call arena.
|
|
367
|
-
grpc_call_stack_destroy(SUBCHANNEL_CALL_TO_CALL_STACK(self), nullptr,
|
|
368
|
-
after_call_stack_destroy);
|
|
369
|
-
// Automatically reset connected_subchannel. This should be after destroying
|
|
370
|
-
// the call stack, because destroying call stack needs access to the channel
|
|
371
|
-
// stack.
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
void OldSubchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
375
|
-
MaybeInterceptRecvTrailingMetadata(grpc_transport_stream_op_batch* batch) {
|
|
376
|
-
// only intercept payloads with recv trailing.
|
|
377
|
-
if (!batch->recv_trailing_metadata) return;
|
|
378
|
-
// only add interceptor is channelz is enabled.
|
|
379
|
-
if (connected_subchannel_->channelz_node_ == nullptr) return;
|
|
380
|
-
GRPC_CLOSURE_INIT(&recv_trailing_metadata_ready_, RecvTrailingMetadataReady,
|
|
381
|
-
this, grpc_schedule_on_exec_ctx);
|
|
382
|
-
// save some state needed for the interception callback.
|
|
383
|
-
GRPC_CHECK_EQ(recv_trailing_metadata_, nullptr);
|
|
384
|
-
recv_trailing_metadata_ =
|
|
385
|
-
batch->payload->recv_trailing_metadata.recv_trailing_metadata;
|
|
386
|
-
original_recv_trailing_metadata_ =
|
|
387
|
-
batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready;
|
|
388
|
-
batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready =
|
|
389
|
-
&recv_trailing_metadata_ready_;
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
namespace {
|
|
393
|
-
|
|
394
|
-
// Sets *status based on the rest of the parameters.
|
|
395
|
-
void GetCallStatus(grpc_status_code* status, Timestamp deadline,
|
|
396
|
-
grpc_metadata_batch* md_batch, grpc_error_handle error) {
|
|
397
|
-
if (!error.ok()) {
|
|
398
|
-
grpc_error_get_status(error, deadline, status, nullptr, nullptr, nullptr);
|
|
399
|
-
} else {
|
|
400
|
-
*status = md_batch->get(GrpcStatusMetadata()).value_or(GRPC_STATUS_UNKNOWN);
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
} // namespace
|
|
405
|
-
|
|
406
|
-
void OldSubchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
407
|
-
RecvTrailingMetadataReady(void* arg, grpc_error_handle error) {
|
|
408
|
-
SubchannelCall* call = static_cast<SubchannelCall*>(arg);
|
|
409
|
-
GRPC_CHECK_NE(call->recv_trailing_metadata_, nullptr);
|
|
410
|
-
grpc_status_code status = GRPC_STATUS_OK;
|
|
411
|
-
GetCallStatus(&status, call->deadline_, call->recv_trailing_metadata_, error);
|
|
412
|
-
channelz::SubchannelNode* channelz_node =
|
|
413
|
-
call->connected_subchannel_->channelz_node_.get();
|
|
414
|
-
GRPC_CHECK_NE(channelz_node, nullptr);
|
|
415
|
-
if (status == GRPC_STATUS_OK) {
|
|
416
|
-
channelz_node->RecordCallSucceeded();
|
|
417
|
-
} else {
|
|
418
|
-
channelz_node->RecordCallFailed();
|
|
419
|
-
}
|
|
420
|
-
Closure::Run(DEBUG_LOCATION, call->original_recv_trailing_metadata_, error);
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
void OldSubchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
424
|
-
IncrementRefCount() {
|
|
425
|
-
GRPC_CALL_STACK_REF(SUBCHANNEL_CALL_TO_CALL_STACK(this), "");
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
void OldSubchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
429
|
-
IncrementRefCount(const DebugLocation& /*location*/, const char* reason) {
|
|
430
|
-
GRPC_CALL_STACK_REF(SUBCHANNEL_CALL_TO_CALL_STACK(this), reason);
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
//
|
|
434
|
-
// OldSubchannel::NewConnectedSubchannel
|
|
435
|
-
//
|
|
436
|
-
|
|
437
|
-
class OldSubchannel::NewConnectedSubchannel final : public ConnectedSubchannel {
|
|
438
|
-
public:
|
|
439
|
-
class TransportCallDestination final : public CallDestination {
|
|
440
|
-
public:
|
|
441
|
-
explicit TransportCallDestination(OrphanablePtr<ClientTransport> transport)
|
|
442
|
-
: transport_(std::move(transport)) {}
|
|
443
|
-
|
|
444
|
-
ClientTransport* transport() { return transport_.get(); }
|
|
445
|
-
|
|
446
|
-
void HandleCall(CallHandler handler) override {
|
|
447
|
-
transport_->StartCall(std::move(handler));
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
void Orphaned() override { transport_.reset(); }
|
|
451
|
-
|
|
452
|
-
private:
|
|
453
|
-
OrphanablePtr<ClientTransport> transport_;
|
|
454
|
-
};
|
|
455
|
-
|
|
456
|
-
NewConnectedSubchannel(
|
|
457
|
-
RefCountedPtr<UnstartedCallDestination> call_destination,
|
|
458
|
-
RefCountedPtr<TransportCallDestination> transport,
|
|
459
|
-
const ChannelArgs& args)
|
|
460
|
-
: ConnectedSubchannel(args),
|
|
461
|
-
call_destination_(std::move(call_destination)),
|
|
462
|
-
transport_(std::move(transport)) {}
|
|
463
|
-
|
|
464
|
-
void StartWatch(
|
|
465
|
-
grpc_pollset_set*,
|
|
466
|
-
OrphanablePtr<TransportConnectivityStateWatcher> watcher) override {
|
|
467
|
-
transport_->transport()->StartConnectivityWatch(std::move(watcher));
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
void Ping(absl::AnyInvocable<void(absl::Status)>) override {
|
|
471
|
-
// TODO(ctiller): add new transport API for this in v3 stack
|
|
472
|
-
Crash("not implemented");
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
RefCountedPtr<UnstartedCallDestination> unstarted_call_destination()
|
|
476
|
-
const override {
|
|
477
|
-
return call_destination_;
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
RefCountedPtr<Call> CreateCall(CreateCallArgs, grpc_error_handle*) override {
|
|
481
|
-
Crash("legacy CreateCall() called on v3 impl");
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
void Ping(grpc_closure*, grpc_closure*) override {
|
|
485
|
-
Crash("legacy ping method called in call v3 impl");
|
|
486
|
-
}
|
|
487
|
-
|
|
488
|
-
private:
|
|
489
|
-
RefCountedPtr<UnstartedCallDestination> call_destination_;
|
|
490
|
-
RefCountedPtr<TransportCallDestination> transport_;
|
|
491
|
-
};
|
|
492
|
-
|
|
493
|
-
//
|
|
494
|
-
// OldSubchannel::ConnectedSubchannelStateWatcher
|
|
495
|
-
//
|
|
496
|
-
|
|
497
|
-
class OldSubchannel::ConnectedSubchannelStateWatcher final
|
|
498
|
-
: public AsyncConnectivityStateWatcherInterface {
|
|
499
|
-
public:
|
|
500
|
-
// Must be instantiated while holding c->mu.
|
|
501
|
-
explicit ConnectedSubchannelStateWatcher(WeakRefCountedPtr<OldSubchannel> c)
|
|
502
|
-
: subchannel_(std::move(c)) {}
|
|
503
|
-
|
|
504
|
-
~ConnectedSubchannelStateWatcher() override {
|
|
505
|
-
subchannel_.reset(DEBUG_LOCATION, "state_watcher");
|
|
506
|
-
}
|
|
507
|
-
|
|
508
|
-
private:
|
|
509
|
-
void OnConnectivityStateChange(grpc_connectivity_state new_state,
|
|
510
|
-
const absl::Status& status) override {
|
|
511
|
-
OldSubchannel* c = subchannel_.get();
|
|
512
|
-
{
|
|
513
|
-
MutexLock lock(&c->mu_);
|
|
514
|
-
// If we're either shutting down or have already seen this connection
|
|
515
|
-
// failure (i.e., c->connected_subchannel_ is null), do nothing.
|
|
516
|
-
//
|
|
517
|
-
// The transport reports TRANSIENT_FAILURE upon GOAWAY but SHUTDOWN
|
|
518
|
-
// upon connection close. So if the server gracefully shuts down,
|
|
519
|
-
// we will see TRANSIENT_FAILURE followed by SHUTDOWN, but if not, we
|
|
520
|
-
// will see only SHUTDOWN. Either way, we react to the first one we
|
|
521
|
-
// see, ignoring anything that happens after that.
|
|
522
|
-
if (new_state == GRPC_CHANNEL_TRANSIENT_FAILURE ||
|
|
523
|
-
new_state == GRPC_CHANNEL_SHUTDOWN) {
|
|
524
|
-
RefCountedPtr<ConnectedSubchannel> connected_subchannel =
|
|
525
|
-
std::move(c->connected_subchannel_);
|
|
526
|
-
if (connected_subchannel == nullptr) return;
|
|
527
|
-
GRPC_TRACE_LOG(subchannel, INFO)
|
|
528
|
-
<< "subchannel " << c << " " << c->key_.ToString()
|
|
529
|
-
<< ": Connected subchannel " << connected_subchannel.get()
|
|
530
|
-
<< " reports " << ConnectivityStateName(new_state) << ": "
|
|
531
|
-
<< status;
|
|
532
|
-
// If the subchannel was created from an endpoint, then we report
|
|
533
|
-
// TRANSIENT_FAILURE here instead of IDLE. The subchannel will never
|
|
534
|
-
// leave TRANSIENT_FAILURE state, because there is no way for us to
|
|
535
|
-
// establish a new connection.
|
|
536
|
-
//
|
|
537
|
-
// Otherwise, we report IDLE here. Note that even though we're not
|
|
538
|
-
// reporting TRANSIENT_FAILURE, we pass along the status from the
|
|
539
|
-
// transport, since it may have keepalive info attached to it that the
|
|
540
|
-
// channel needs.
|
|
541
|
-
// TODO(roth): Consider whether there's a cleaner way to propagate the
|
|
542
|
-
// keepalive info.
|
|
543
|
-
c->SetConnectivityStateLocked(c->created_from_endpoint_
|
|
544
|
-
? GRPC_CHANNEL_TRANSIENT_FAILURE
|
|
545
|
-
: GRPC_CHANNEL_IDLE,
|
|
546
|
-
status);
|
|
547
|
-
c->backoff_.Reset();
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
WeakRefCountedPtr<OldSubchannel> subchannel_;
|
|
553
|
-
};
|
|
554
|
-
|
|
555
|
-
//
|
|
556
|
-
// OldSubchannel::ConnectivityStateWatcherList
|
|
557
|
-
//
|
|
558
|
-
|
|
559
|
-
void OldSubchannel::ConnectivityStateWatcherList::AddWatcherLocked(
|
|
560
|
-
RefCountedPtr<ConnectivityStateWatcherInterface> watcher) {
|
|
561
|
-
watchers_.insert(std::move(watcher));
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
void OldSubchannel::ConnectivityStateWatcherList::RemoveWatcherLocked(
|
|
565
|
-
ConnectivityStateWatcherInterface* watcher) {
|
|
566
|
-
watchers_.erase(watcher);
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
void OldSubchannel::ConnectivityStateWatcherList::NotifyLocked(
|
|
570
|
-
grpc_connectivity_state state, const absl::Status& status) {
|
|
571
|
-
for (const auto& watcher : watchers_) {
|
|
572
|
-
subchannel_->work_serializer_.Run([watcher, state, status]() {
|
|
573
|
-
watcher->OnConnectivityStateChange(state, status);
|
|
574
|
-
});
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
|
|
578
|
-
void OldSubchannel::ConnectivityStateWatcherList::NotifyOnKeepaliveUpdateLocked(
|
|
579
|
-
Duration new_keepalive_time) {
|
|
580
|
-
for (const auto& watcher : watchers_) {
|
|
581
|
-
subchannel_->work_serializer_.Run([watcher, new_keepalive_time]() {
|
|
582
|
-
watcher->OnKeepaliveUpdate(new_keepalive_time);
|
|
583
|
-
});
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
uint32_t
|
|
588
|
-
OldSubchannel::ConnectivityStateWatcherList::GetMaxConnectionsPerSubchannel()
|
|
589
|
-
const {
|
|
590
|
-
uint32_t max_connections_per_subchannel = 1;
|
|
591
|
-
for (const auto& watcher : watchers_) {
|
|
592
|
-
max_connections_per_subchannel =
|
|
593
|
-
std::max(max_connections_per_subchannel,
|
|
594
|
-
watcher->max_connections_per_subchannel());
|
|
595
|
-
}
|
|
596
|
-
return max_connections_per_subchannel;
|
|
597
|
-
}
|
|
598
|
-
|
|
599
|
-
//
|
|
600
|
-
// OldSubchannel
|
|
601
|
-
//
|
|
602
|
-
|
|
603
|
-
namespace {
|
|
604
|
-
|
|
605
|
-
BackOff::Options ParseArgsForBackoffValues(const ChannelArgs& args,
|
|
606
|
-
Duration* min_connect_timeout) {
|
|
607
|
-
const std::optional<Duration> fixed_reconnect_backoff =
|
|
608
|
-
args.GetDurationFromIntMillis("grpc.testing.fixed_reconnect_backoff_ms");
|
|
609
|
-
if (fixed_reconnect_backoff.has_value()) {
|
|
610
|
-
const Duration backoff =
|
|
611
|
-
std::max(Duration::Milliseconds(100), *fixed_reconnect_backoff);
|
|
612
|
-
*min_connect_timeout = backoff;
|
|
613
|
-
return BackOff::Options()
|
|
614
|
-
.set_initial_backoff(backoff)
|
|
615
|
-
.set_multiplier(1.0)
|
|
616
|
-
.set_jitter(0.0)
|
|
617
|
-
.set_max_backoff(backoff);
|
|
618
|
-
}
|
|
619
|
-
const Duration initial_backoff = std::max(
|
|
620
|
-
Duration::Milliseconds(100),
|
|
621
|
-
args.GetDurationFromIntMillis(GRPC_ARG_INITIAL_RECONNECT_BACKOFF_MS)
|
|
622
|
-
.value_or(Duration::Seconds(
|
|
623
|
-
GRPC_SUBCHANNEL_INITIAL_CONNECT_BACKOFF_SECONDS)));
|
|
624
|
-
*min_connect_timeout =
|
|
625
|
-
std::max(Duration::Milliseconds(100),
|
|
626
|
-
args.GetDurationFromIntMillis(GRPC_ARG_MIN_RECONNECT_BACKOFF_MS)
|
|
627
|
-
.value_or(Duration::Seconds(
|
|
628
|
-
GRPC_SUBCHANNEL_RECONNECT_MIN_TIMEOUT_SECONDS)));
|
|
629
|
-
const Duration max_backoff =
|
|
630
|
-
std::max(Duration::Milliseconds(100),
|
|
631
|
-
args.GetDurationFromIntMillis(GRPC_ARG_MAX_RECONNECT_BACKOFF_MS)
|
|
632
|
-
.value_or(Duration::Seconds(
|
|
633
|
-
GRPC_SUBCHANNEL_RECONNECT_MAX_BACKOFF_SECONDS)));
|
|
634
|
-
return BackOff::Options()
|
|
635
|
-
.set_initial_backoff(initial_backoff)
|
|
636
|
-
.set_multiplier(GRPC_SUBCHANNEL_RECONNECT_BACKOFF_MULTIPLIER)
|
|
637
|
-
.set_jitter(GRPC_SUBCHANNEL_RECONNECT_JITTER)
|
|
638
|
-
.set_max_backoff(max_backoff);
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
} // namespace
|
|
642
|
-
|
|
643
|
-
OldSubchannel::OldSubchannel(SubchannelKey key,
|
|
644
|
-
OrphanablePtr<SubchannelConnector> connector,
|
|
645
|
-
const ChannelArgs& args)
|
|
646
|
-
: key_(std::move(key)),
|
|
647
|
-
created_from_endpoint_(args.Contains(GRPC_ARG_SUBCHANNEL_ENDPOINT)),
|
|
648
|
-
args_(args),
|
|
649
|
-
pollset_set_(grpc_pollset_set_create()),
|
|
650
|
-
connector_(std::move(connector)),
|
|
651
|
-
watcher_list_(this),
|
|
652
|
-
work_serializer_(args_.GetObjectRef<EventEngine>()),
|
|
653
|
-
backoff_(ParseArgsForBackoffValues(args_, &min_connect_timeout_)),
|
|
654
|
-
event_engine_(args_.GetObjectRef<EventEngine>()) {
|
|
655
|
-
// A grpc_init is added here to ensure that grpc_shutdown does not happen
|
|
656
|
-
// until the subchannel is destroyed. Subchannels can persist longer than
|
|
657
|
-
// channels because they maybe reused/shared among multiple channels. As a
|
|
658
|
-
// result the subchannel destruction happens asynchronously to channel
|
|
659
|
-
// destruction. If the last channel destruction triggers a grpc_shutdown
|
|
660
|
-
// before the last subchannel destruction, then there maybe race conditions
|
|
661
|
-
// triggering segmentation faults. To prevent this issue, we call a
|
|
662
|
-
// grpc_init here and a grpc_shutdown in the subchannel destructor.
|
|
663
|
-
InitInternally();
|
|
664
|
-
global_stats().IncrementClientSubchannelsCreated();
|
|
665
|
-
GRPC_CLOSURE_INIT(&on_connecting_finished_, OnConnectingFinished, this,
|
|
666
|
-
grpc_schedule_on_exec_ctx);
|
|
667
|
-
// Check proxy mapper to determine address to connect to and channel
|
|
668
|
-
// args to use.
|
|
669
|
-
address_for_connect_ = CoreConfiguration::Get()
|
|
670
|
-
.proxy_mapper_registry()
|
|
671
|
-
.MapAddress(key_.address(), &args_)
|
|
672
|
-
.value_or(key_.address());
|
|
673
|
-
// Initialize channelz.
|
|
674
|
-
const bool channelz_enabled = args_.GetBool(GRPC_ARG_ENABLE_CHANNELZ)
|
|
675
|
-
.value_or(GRPC_ENABLE_CHANNELZ_DEFAULT);
|
|
676
|
-
if (channelz_enabled) {
|
|
677
|
-
const size_t channel_tracer_max_memory = Clamp(
|
|
678
|
-
args_.GetInt(GRPC_ARG_MAX_CHANNEL_TRACE_EVENT_MEMORY_PER_NODE)
|
|
679
|
-
.value_or(GRPC_MAX_CHANNEL_TRACE_EVENT_MEMORY_PER_NODE_DEFAULT),
|
|
680
|
-
0, INT_MAX);
|
|
681
|
-
channelz_node_ = MakeRefCounted<channelz::SubchannelNode>(
|
|
682
|
-
grpc_sockaddr_to_uri(&key_.address())
|
|
683
|
-
.value_or("<unknown address type>"),
|
|
684
|
-
channel_tracer_max_memory);
|
|
685
|
-
GRPC_CHANNELZ_LOG(channelz_node_) << "subchannel created";
|
|
686
|
-
channelz_node_->SetChannelArgs(args_);
|
|
687
|
-
args_ = args_.SetObject<channelz::BaseNode>(channelz_node_);
|
|
688
|
-
}
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
OldSubchannel::~OldSubchannel() {
|
|
692
|
-
if (channelz_node_ != nullptr) {
|
|
693
|
-
GRPC_CHANNELZ_LOG(channelz_node_) << "Subchannel destroyed";
|
|
694
|
-
channelz_node_->UpdateConnectivityState(GRPC_CHANNEL_SHUTDOWN);
|
|
695
|
-
}
|
|
696
|
-
connector_.reset();
|
|
697
|
-
grpc_pollset_set_destroy(pollset_set_);
|
|
698
|
-
// grpc_shutdown is called here because grpc_init is called in the ctor.
|
|
699
|
-
ShutdownInternally();
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
RefCountedPtr<Subchannel> OldSubchannel::Create(
|
|
703
|
-
OrphanablePtr<SubchannelConnector> connector,
|
|
704
|
-
const grpc_resolved_address& address, const ChannelArgs& args) {
|
|
705
|
-
SubchannelKey key(address, args);
|
|
706
|
-
auto* subchannel_pool = args.GetObject<SubchannelPoolInterface>();
|
|
707
|
-
GRPC_CHECK_NE(subchannel_pool, nullptr);
|
|
708
|
-
RefCountedPtr<OldSubchannel> c =
|
|
709
|
-
subchannel_pool->FindSubchannel(key).TakeAsSubclass<OldSubchannel>();
|
|
710
|
-
if (c != nullptr) {
|
|
711
|
-
return c;
|
|
712
|
-
}
|
|
713
|
-
c = MakeRefCounted<OldSubchannel>(std::move(key), std::move(connector), args);
|
|
714
|
-
if (c->created_from_endpoint_) {
|
|
715
|
-
// We don't interact with the subchannel pool in this case.
|
|
716
|
-
// Instead, we unconditionally return the newly created subchannel.
|
|
717
|
-
// Before returning, we explicitly trigger a connection attempt
|
|
718
|
-
// by calling RequestConnection(), which sets the subchannel’s
|
|
719
|
-
// connectivity state to CONNECTING.
|
|
720
|
-
c->RequestConnection();
|
|
721
|
-
return c;
|
|
722
|
-
}
|
|
723
|
-
// Try to register the subchannel before setting the subchannel pool.
|
|
724
|
-
// Otherwise, in case of a registration race, unreffing c in
|
|
725
|
-
// RegisterSubchannel() will cause c to be tried to be unregistered, while
|
|
726
|
-
// its key maps to a different subchannel.
|
|
727
|
-
RefCountedPtr<OldSubchannel> registered =
|
|
728
|
-
subchannel_pool->RegisterSubchannel(c->key_, c)
|
|
729
|
-
.TakeAsSubclass<OldSubchannel>();
|
|
730
|
-
if (registered == c) c->subchannel_pool_ = subchannel_pool->Ref();
|
|
731
|
-
return registered;
|
|
732
|
-
}
|
|
733
|
-
|
|
734
|
-
void OldSubchannel::ThrottleKeepaliveTime(Duration new_keepalive_time) {
|
|
735
|
-
MutexLock lock(&mu_);
|
|
736
|
-
ThrottleKeepaliveTimeLocked(new_keepalive_time);
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
void OldSubchannel::ThrottleKeepaliveTimeLocked(Duration new_keepalive_time) {
|
|
740
|
-
// Only update the value if the new keepalive time is larger.
|
|
741
|
-
if (new_keepalive_time > keepalive_time_) {
|
|
742
|
-
keepalive_time_ = new_keepalive_time;
|
|
743
|
-
GRPC_TRACE_LOG(subchannel, INFO)
|
|
744
|
-
<< "subchannel " << this << " " << key_.ToString()
|
|
745
|
-
<< ": throttling keepalive time to " << new_keepalive_time;
|
|
746
|
-
args_ = args_.Set(GRPC_ARG_KEEPALIVE_TIME_MS, new_keepalive_time.millis());
|
|
747
|
-
}
|
|
748
|
-
}
|
|
749
|
-
|
|
750
|
-
channelz::SubchannelNode* OldSubchannel::channelz_node() {
|
|
751
|
-
return channelz_node_.get();
|
|
752
|
-
}
|
|
753
|
-
|
|
754
|
-
void OldSubchannel::WatchConnectivityState(
|
|
755
|
-
RefCountedPtr<ConnectivityStateWatcherInterface> watcher) {
|
|
756
|
-
MutexLock lock(&mu_);
|
|
757
|
-
grpc_pollset_set* interested_parties = watcher->interested_parties();
|
|
758
|
-
if (interested_parties != nullptr) {
|
|
759
|
-
grpc_pollset_set_add_pollset_set(pollset_set_, interested_parties);
|
|
760
|
-
}
|
|
761
|
-
work_serializer_.Run(
|
|
762
|
-
[watcher, state = state_, status = status_]() {
|
|
763
|
-
watcher->OnConnectivityStateChange(state, status);
|
|
764
|
-
},
|
|
765
|
-
DEBUG_LOCATION);
|
|
766
|
-
watcher_list_.AddWatcherLocked(std::move(watcher));
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
void OldSubchannel::CancelConnectivityStateWatch(
|
|
770
|
-
ConnectivityStateWatcherInterface* watcher) {
|
|
771
|
-
MutexLock lock(&mu_);
|
|
772
|
-
grpc_pollset_set* interested_parties = watcher->interested_parties();
|
|
773
|
-
if (interested_parties != nullptr) {
|
|
774
|
-
grpc_pollset_set_del_pollset_set(pollset_set_, interested_parties);
|
|
775
|
-
}
|
|
776
|
-
watcher_list_.RemoveWatcherLocked(watcher);
|
|
777
|
-
}
|
|
778
|
-
|
|
779
|
-
void OldSubchannel::RequestConnection() {
|
|
780
|
-
MutexLock lock(&mu_);
|
|
781
|
-
if (state_ == GRPC_CHANNEL_IDLE) {
|
|
782
|
-
StartConnectingLocked();
|
|
783
|
-
}
|
|
784
|
-
}
|
|
785
|
-
|
|
786
|
-
void OldSubchannel::ResetBackoff() {
|
|
787
|
-
// Hold a ref to ensure cancellation and subsequent deletion of the closure
|
|
788
|
-
// does not eliminate the last ref and destroy the Subchannel before the
|
|
789
|
-
// method returns.
|
|
790
|
-
auto self = WeakRef(DEBUG_LOCATION, "ResetBackoff");
|
|
791
|
-
MutexLock lock(&mu_);
|
|
792
|
-
backoff_.Reset();
|
|
793
|
-
if (state_ == GRPC_CHANNEL_TRANSIENT_FAILURE &&
|
|
794
|
-
event_engine_->Cancel(retry_timer_handle_)) {
|
|
795
|
-
OnRetryTimerLocked();
|
|
796
|
-
} else if (state_ == GRPC_CHANNEL_CONNECTING) {
|
|
797
|
-
next_attempt_time_ = Timestamp::Now();
|
|
798
|
-
}
|
|
799
|
-
}
|
|
800
|
-
|
|
801
|
-
void OldSubchannel::Orphaned() {
|
|
802
|
-
// The subchannel_pool is only used once here in this subchannel, so the
|
|
803
|
-
// access can be outside of the lock.
|
|
804
|
-
if (subchannel_pool_ != nullptr) {
|
|
805
|
-
subchannel_pool_->UnregisterSubchannel(key_, this);
|
|
806
|
-
subchannel_pool_.reset();
|
|
807
|
-
}
|
|
808
|
-
MutexLock lock(&mu_);
|
|
809
|
-
GRPC_CHECK(!shutdown_);
|
|
810
|
-
shutdown_ = true;
|
|
811
|
-
connector_.reset();
|
|
812
|
-
connected_subchannel_.reset();
|
|
813
|
-
}
|
|
814
|
-
|
|
815
|
-
void OldSubchannel::GetOrAddDataProducer(
|
|
816
|
-
UniqueTypeName type,
|
|
817
|
-
std::function<void(DataProducerInterface**)> get_or_add) {
|
|
818
|
-
MutexLock lock(&mu_);
|
|
819
|
-
auto it = data_producer_map_.emplace(type, nullptr).first;
|
|
820
|
-
get_or_add(&it->second);
|
|
821
|
-
}
|
|
822
|
-
|
|
823
|
-
void OldSubchannel::RemoveDataProducer(DataProducerInterface* data_producer) {
|
|
824
|
-
MutexLock lock(&mu_);
|
|
825
|
-
auto it = data_producer_map_.find(data_producer->type());
|
|
826
|
-
if (it != data_producer_map_.end() && it->second == data_producer) {
|
|
827
|
-
data_producer_map_.erase(it);
|
|
828
|
-
}
|
|
829
|
-
}
|
|
830
|
-
|
|
831
|
-
// Note: Must be called with a state that is different from the current state.
|
|
832
|
-
void OldSubchannel::SetConnectivityStateLocked(grpc_connectivity_state state,
|
|
833
|
-
const absl::Status& status) {
|
|
834
|
-
state_ = state;
|
|
835
|
-
if (status.ok()) {
|
|
836
|
-
status_ = status;
|
|
837
|
-
} else {
|
|
838
|
-
// Augment status message to include IP address.
|
|
839
|
-
status_ = absl::Status(status.code(),
|
|
840
|
-
absl::StrCat(grpc_sockaddr_to_uri(&key_.address())
|
|
841
|
-
.value_or("<unknown address type>"),
|
|
842
|
-
": ", status.message()));
|
|
843
|
-
status.ForEachPayload(
|
|
844
|
-
[this](absl::string_view key, const absl::Cord& value)
|
|
845
|
-
// Want to use ABSL_EXCLUSIVE_LOCKS_REQUIRED(&mu_) here,
|
|
846
|
-
// but that won't work, because we can't pass the lock
|
|
847
|
-
// annotation through absl::Status::ForEachPayload().
|
|
848
|
-
ABSL_NO_THREAD_SAFETY_ANALYSIS { status_.SetPayload(key, value); });
|
|
849
|
-
}
|
|
850
|
-
if (channelz_node_ != nullptr) {
|
|
851
|
-
channelz_node_->UpdateConnectivityState(state);
|
|
852
|
-
if (status.ok()) {
|
|
853
|
-
GRPC_CHANNELZ_LOG(channelz_node_)
|
|
854
|
-
<< "Subchannel connectivity state changed to "
|
|
855
|
-
<< ConnectivityStateName(state);
|
|
856
|
-
} else {
|
|
857
|
-
GRPC_CHANNELZ_LOG(channelz_node_)
|
|
858
|
-
<< "Subchannel connectivity state changed to "
|
|
859
|
-
<< ConnectivityStateName(state) << ": " << status;
|
|
860
|
-
}
|
|
861
|
-
}
|
|
862
|
-
// Notify watchers.
|
|
863
|
-
watcher_list_.NotifyLocked(state, status_);
|
|
864
|
-
}
|
|
865
|
-
|
|
866
|
-
void OldSubchannel::OnRetryTimer() {
|
|
867
|
-
MutexLock lock(&mu_);
|
|
868
|
-
OnRetryTimerLocked();
|
|
869
|
-
}
|
|
870
|
-
|
|
871
|
-
void OldSubchannel::OnRetryTimerLocked() {
|
|
872
|
-
if (shutdown_) return;
|
|
873
|
-
GRPC_TRACE_LOG(subchannel, INFO)
|
|
874
|
-
<< "subchannel " << this << " " << key_.ToString()
|
|
875
|
-
<< ": backoff delay elapsed, reporting IDLE";
|
|
876
|
-
SetConnectivityStateLocked(GRPC_CHANNEL_IDLE, absl::OkStatus());
|
|
877
|
-
}
|
|
878
|
-
|
|
879
|
-
void OldSubchannel::StartConnectingLocked() {
|
|
880
|
-
// Set next attempt time.
|
|
881
|
-
const Timestamp now = Timestamp::Now();
|
|
882
|
-
const Timestamp min_deadline = now + min_connect_timeout_;
|
|
883
|
-
next_attempt_time_ = now + backoff_.NextAttemptDelay();
|
|
884
|
-
// Report CONNECTING.
|
|
885
|
-
SetConnectivityStateLocked(GRPC_CHANNEL_CONNECTING, absl::OkStatus());
|
|
886
|
-
// Start connection attempt.
|
|
887
|
-
SubchannelConnector::Args args;
|
|
888
|
-
args.address = &address_for_connect_;
|
|
889
|
-
args.interested_parties = pollset_set_;
|
|
890
|
-
args.deadline = std::max(next_attempt_time_, min_deadline);
|
|
891
|
-
args.channel_args = args_;
|
|
892
|
-
WeakRef(DEBUG_LOCATION, "Connect").release(); // Ref held by callback.
|
|
893
|
-
connector_->Connect(args, &connecting_result_, &on_connecting_finished_);
|
|
894
|
-
}
|
|
895
|
-
|
|
896
|
-
void OldSubchannel::OnConnectingFinished(void* arg, grpc_error_handle error) {
|
|
897
|
-
WeakRefCountedPtr<OldSubchannel> c(static_cast<OldSubchannel*>(arg));
|
|
898
|
-
{
|
|
899
|
-
MutexLock lock(&c->mu_);
|
|
900
|
-
c->OnConnectingFinishedLocked(error);
|
|
901
|
-
}
|
|
902
|
-
c.reset(DEBUG_LOCATION, "Connect");
|
|
903
|
-
}
|
|
102
|
+
namespace {
|
|
904
103
|
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
const
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
SetConnectivityStateLocked(GRPC_CHANNEL_TRANSIENT_FAILURE,
|
|
927
|
-
grpc_error_to_absl_status(error));
|
|
928
|
-
if (created_from_endpoint_) return;
|
|
929
|
-
retry_timer_handle_ = event_engine_->RunAfter(
|
|
930
|
-
time_until_next_attempt,
|
|
931
|
-
[self = WeakRef(DEBUG_LOCATION, "RetryTimer")
|
|
932
|
-
.TakeAsSubclass<OldSubchannel>()]() mutable {
|
|
933
|
-
{
|
|
934
|
-
ExecCtx exec_ctx;
|
|
935
|
-
self->OnRetryTimer();
|
|
936
|
-
// Subchannel deletion might require an active ExecCtx. So if
|
|
937
|
-
// self.reset() is not called here, the WeakRefCountedPtr
|
|
938
|
-
// destructor may run after the ExecCtx declared in the callback
|
|
939
|
-
// is destroyed. Since subchannel may get destroyed when the
|
|
940
|
-
// WeakRefCountedPtr destructor runs, it may not have an active
|
|
941
|
-
// ExecCtx - thus leading to crashes.
|
|
942
|
-
self.reset();
|
|
943
|
-
}
|
|
944
|
-
});
|
|
945
|
-
}
|
|
946
|
-
}
|
|
947
|
-
|
|
948
|
-
bool OldSubchannel::PublishTransportLocked() {
|
|
949
|
-
auto socket_node = connecting_result_.transport->GetSocketNode();
|
|
950
|
-
if (connecting_result_.transport->filter_stack_transport() != nullptr) {
|
|
951
|
-
// Construct channel stack.
|
|
952
|
-
// Builder takes ownership of transport.
|
|
953
|
-
ChannelStackBuilderImpl builder(
|
|
954
|
-
"subchannel", GRPC_CLIENT_SUBCHANNEL,
|
|
955
|
-
connecting_result_.channel_args.SetObject(
|
|
956
|
-
std::exchange(connecting_result_.transport, nullptr)));
|
|
957
|
-
if (!CoreConfiguration::Get().channel_init().CreateStack(&builder)) {
|
|
958
|
-
return false;
|
|
959
|
-
}
|
|
960
|
-
absl::StatusOr<RefCountedPtr<grpc_channel_stack>> stack = builder.Build();
|
|
961
|
-
if (!stack.ok()) {
|
|
962
|
-
connecting_result_.Reset();
|
|
963
|
-
LOG(ERROR) << "subchannel " << this << " " << key_.ToString()
|
|
964
|
-
<< ": error initializing subchannel stack: " << stack.status();
|
|
965
|
-
return false;
|
|
966
|
-
}
|
|
967
|
-
connected_subchannel_ = MakeRefCounted<LegacyConnectedSubchannel>(
|
|
968
|
-
std::move(*stack), args_, channelz_node_);
|
|
969
|
-
} else {
|
|
970
|
-
OrphanablePtr<ClientTransport> transport(
|
|
971
|
-
std::exchange(connecting_result_.transport, nullptr)
|
|
972
|
-
->client_transport());
|
|
973
|
-
InterceptionChainBuilder builder(
|
|
974
|
-
connecting_result_.channel_args.SetObject(transport.get()));
|
|
975
|
-
if (channelz_node_ != nullptr) {
|
|
976
|
-
// TODO(ctiller): If/when we have a good way to access the subchannel
|
|
977
|
-
// from a filter (maybe GetContext<Subchannel>?), consider replacing
|
|
978
|
-
// these two hooks with a filter so that we can avoid storing two
|
|
979
|
-
// separate refs to the channelz node in each connection.
|
|
980
|
-
builder.AddOnClientInitialMetadata(
|
|
981
|
-
[channelz_node = channelz_node_](ClientMetadata&) {
|
|
982
|
-
channelz_node->RecordCallStarted();
|
|
983
|
-
});
|
|
984
|
-
builder.AddOnServerTrailingMetadata(
|
|
985
|
-
[channelz_node = channelz_node_](ServerMetadata& metadata) {
|
|
986
|
-
if (IsStatusOk(metadata)) {
|
|
987
|
-
channelz_node->RecordCallSucceeded();
|
|
988
|
-
} else {
|
|
989
|
-
channelz_node->RecordCallFailed();
|
|
990
|
-
}
|
|
991
|
-
});
|
|
992
|
-
}
|
|
993
|
-
CoreConfiguration::Get().channel_init().AddToInterceptionChainBuilder(
|
|
994
|
-
GRPC_CLIENT_SUBCHANNEL, builder);
|
|
995
|
-
auto transport_destination =
|
|
996
|
-
MakeRefCounted<NewConnectedSubchannel::TransportCallDestination>(
|
|
997
|
-
std::move(transport));
|
|
998
|
-
auto call_destination = builder.Build(transport_destination);
|
|
999
|
-
if (!call_destination.ok()) {
|
|
1000
|
-
connecting_result_.Reset();
|
|
1001
|
-
LOG(ERROR) << "subchannel " << this << " " << key_.ToString()
|
|
1002
|
-
<< ": error initializing subchannel stack: "
|
|
1003
|
-
<< call_destination.status();
|
|
1004
|
-
return false;
|
|
1005
|
-
}
|
|
1006
|
-
connected_subchannel_ = MakeRefCounted<NewConnectedSubchannel>(
|
|
1007
|
-
std::move(*call_destination), std::move(transport_destination), args_);
|
|
1008
|
-
}
|
|
1009
|
-
connecting_result_.Reset();
|
|
1010
|
-
// Publish.
|
|
1011
|
-
GRPC_TRACE_LOG(subchannel, INFO)
|
|
1012
|
-
<< "subchannel " << this << " " << key_.ToString()
|
|
1013
|
-
<< ": new connected subchannel at " << connected_subchannel_.get();
|
|
1014
|
-
if (channelz_node_ != nullptr) {
|
|
1015
|
-
if (socket_node != nullptr) {
|
|
1016
|
-
socket_node->AddParent(channelz_node_.get());
|
|
104
|
+
constexpr absl::string_view kSecurityLevelUnknown = "unknown";
|
|
105
|
+
constexpr absl::string_view kSecurityLevelNone = "none";
|
|
106
|
+
constexpr absl::string_view kSecurityLevelIntegrityOnly = "integrity_only";
|
|
107
|
+
constexpr absl::string_view kSecurityLevelPrivacyAndIntegrity =
|
|
108
|
+
"privacy_and_integrity";
|
|
109
|
+
|
|
110
|
+
absl::string_view GetSecurityLevelFromArgs(const ChannelArgs& args) {
|
|
111
|
+
auto auth_context = args.GetObject<grpc_auth_context>();
|
|
112
|
+
if (auth_context != nullptr) {
|
|
113
|
+
grpc_auth_property_iterator it = grpc_auth_context_find_properties_by_name(
|
|
114
|
+
auth_context, GRPC_TRANSPORT_SECURITY_LEVEL_PROPERTY_NAME);
|
|
115
|
+
const grpc_auth_property* prop = grpc_auth_property_iterator_next(&it);
|
|
116
|
+
if (prop != nullptr) {
|
|
117
|
+
absl::string_view tsi_level(prop->value, prop->value_length);
|
|
118
|
+
if (tsi_level == "TSI_SECURITY_NONE") {
|
|
119
|
+
return kSecurityLevelNone;
|
|
120
|
+
} else if (tsi_level == "TSI_INTEGRITY_ONLY") {
|
|
121
|
+
return kSecurityLevelIntegrityOnly;
|
|
122
|
+
} else if (tsi_level == "TSI_PRIVACY_AND_INTEGRITY") {
|
|
123
|
+
return kSecurityLevelPrivacyAndIntegrity;
|
|
124
|
+
}
|
|
1017
125
|
}
|
|
1018
126
|
}
|
|
1019
|
-
|
|
1020
|
-
pollset_set_, MakeOrphanable<ConnectedSubchannelStateWatcher>(
|
|
1021
|
-
WeakRef(DEBUG_LOCATION, "state_watcher")
|
|
1022
|
-
.TakeAsSubclass<OldSubchannel>()));
|
|
1023
|
-
// Report initial state.
|
|
1024
|
-
SetConnectivityStateLocked(GRPC_CHANNEL_READY, absl::Status());
|
|
1025
|
-
return true;
|
|
1026
|
-
}
|
|
1027
|
-
|
|
1028
|
-
RefCountedPtr<Subchannel::Call> OldSubchannel::CreateCall(
|
|
1029
|
-
CreateCallArgs args, grpc_error_handle* error) {
|
|
1030
|
-
auto connected_subchannel = GetConnectedSubchannel();
|
|
1031
|
-
if (connected_subchannel == nullptr) return nullptr;
|
|
1032
|
-
return connected_subchannel->CreateCall(args, error);
|
|
127
|
+
return kSecurityLevelUnknown;
|
|
1033
128
|
}
|
|
1034
129
|
|
|
1035
|
-
|
|
1036
|
-
auto connected_subchannel = GetConnectedSubchannel();
|
|
1037
|
-
if (connected_subchannel == nullptr) return nullptr;
|
|
1038
|
-
return connected_subchannel->unstarted_call_destination();
|
|
1039
|
-
}
|
|
130
|
+
} // namespace
|
|
1040
131
|
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
132
|
+
//
|
|
133
|
+
// Subchannel::Call
|
|
134
|
+
//
|
|
1044
135
|
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
if (connected_subchannel == nullptr) {
|
|
1049
|
-
return absl::UnavailableError("no connection");
|
|
1050
|
-
}
|
|
1051
|
-
connected_subchannel->Ping(on_initiate, on_ack);
|
|
1052
|
-
return absl::OkStatus();
|
|
136
|
+
RefCountedPtr<Subchannel::Call> Subchannel::Call::Ref() {
|
|
137
|
+
IncrementRefCount();
|
|
138
|
+
return RefCountedPtr<Subchannel::Call>(this);
|
|
1053
139
|
}
|
|
1054
140
|
|
|
1055
|
-
RefCountedPtr<
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
return
|
|
141
|
+
RefCountedPtr<Subchannel::Call> Subchannel::Call::Ref(
|
|
142
|
+
const DebugLocation& location, const char* reason) {
|
|
143
|
+
IncrementRefCount(location, reason);
|
|
144
|
+
return RefCountedPtr<Subchannel::Call>(this);
|
|
1059
145
|
}
|
|
1060
146
|
|
|
1061
147
|
//
|
|
1062
|
-
//
|
|
148
|
+
// Subchannel::ConnectedSubchannel
|
|
1063
149
|
//
|
|
1064
150
|
|
|
1065
|
-
class
|
|
151
|
+
class Subchannel::ConnectedSubchannel
|
|
1066
152
|
: public DualRefCounted<ConnectedSubchannel> {
|
|
1067
153
|
public:
|
|
1068
154
|
~ConnectedSubchannel() override {
|
|
@@ -1070,7 +156,7 @@ class NewSubchannel::ConnectedSubchannel
|
|
|
1070
156
|
}
|
|
1071
157
|
|
|
1072
158
|
const ChannelArgs& args() const { return args_; }
|
|
1073
|
-
|
|
159
|
+
Subchannel* subchannel() const { return subchannel_.get(); }
|
|
1074
160
|
|
|
1075
161
|
virtual void StartWatch(
|
|
1076
162
|
grpc_pollset_set* interested_parties,
|
|
@@ -1086,6 +172,7 @@ class NewSubchannel::ConnectedSubchannel
|
|
|
1086
172
|
grpc_error_handle* error) = 0;
|
|
1087
173
|
virtual void Ping(grpc_closure* on_initiate, grpc_closure* on_ack) = 0;
|
|
1088
174
|
|
|
175
|
+
absl::string_view security_level() const { return security_level_; }
|
|
1089
176
|
// Returns true if there is quota for another RPC to start on this
|
|
1090
177
|
// connection.
|
|
1091
178
|
GRPC_MUST_USE_RESULT bool SetMaxConcurrentStreams(
|
|
@@ -1107,7 +194,7 @@ class NewSubchannel::ConnectedSubchannel
|
|
|
1107
194
|
bool ReturnQuotaForRpc() { return stream_limiter_.ReturnQuotaForRpc(); }
|
|
1108
195
|
|
|
1109
196
|
protected:
|
|
1110
|
-
explicit ConnectedSubchannel(WeakRefCountedPtr<
|
|
197
|
+
explicit ConnectedSubchannel(WeakRefCountedPtr<Subchannel> subchannel,
|
|
1111
198
|
const ChannelArgs& args,
|
|
1112
199
|
uint32_t max_concurrent_streams)
|
|
1113
200
|
: DualRefCounted<ConnectedSubchannel>(
|
|
@@ -1115,23 +202,24 @@ class NewSubchannel::ConnectedSubchannel
|
|
|
1115
202
|
: nullptr),
|
|
1116
203
|
subchannel_(std::move(subchannel)),
|
|
1117
204
|
args_(args),
|
|
205
|
+
security_level_(GetSecurityLevelFromArgs(args)),
|
|
1118
206
|
stream_limiter_(max_concurrent_streams) {}
|
|
1119
207
|
|
|
1120
208
|
private:
|
|
1121
|
-
WeakRefCountedPtr<
|
|
209
|
+
WeakRefCountedPtr<Subchannel> subchannel_;
|
|
1122
210
|
ChannelArgs args_;
|
|
211
|
+
const absl::string_view security_level_;
|
|
1123
212
|
SubchannelStreamLimiter stream_limiter_;
|
|
1124
213
|
};
|
|
1125
214
|
|
|
1126
215
|
//
|
|
1127
|
-
//
|
|
216
|
+
// Subchannel::LegacyConnectedSubchannel
|
|
1128
217
|
//
|
|
1129
218
|
|
|
1130
|
-
class
|
|
1131
|
-
: public ConnectedSubchannel {
|
|
219
|
+
class Subchannel::LegacyConnectedSubchannel final : public ConnectedSubchannel {
|
|
1132
220
|
public:
|
|
1133
221
|
LegacyConnectedSubchannel(
|
|
1134
|
-
WeakRefCountedPtr<
|
|
222
|
+
WeakRefCountedPtr<Subchannel> subchannel,
|
|
1135
223
|
RefCountedPtr<grpc_channel_stack> channel_stack, const ChannelArgs& args,
|
|
1136
224
|
RefCountedPtr<channelz::SubchannelNode> channelz_node,
|
|
1137
225
|
uint32_t max_concurrent_streams)
|
|
@@ -1236,10 +324,10 @@ class NewSubchannel::LegacyConnectedSubchannel final
|
|
|
1236
324
|
};
|
|
1237
325
|
|
|
1238
326
|
//
|
|
1239
|
-
//
|
|
327
|
+
// Subchannel::LegacyConnectedSubchannel::SubchannelCall
|
|
1240
328
|
//
|
|
1241
329
|
|
|
1242
|
-
|
|
330
|
+
Subchannel::LegacyConnectedSubchannel::SubchannelCall::SubchannelCall(
|
|
1243
331
|
RefCountedPtr<LegacyConnectedSubchannel> connected_subchannel,
|
|
1244
332
|
CreateCallArgs args, grpc_error_handle* error)
|
|
1245
333
|
: connected_subchannel_(std::move(connected_subchannel)),
|
|
@@ -1268,7 +356,7 @@ NewSubchannel::LegacyConnectedSubchannel::SubchannelCall::SubchannelCall(
|
|
|
1268
356
|
}
|
|
1269
357
|
}
|
|
1270
358
|
|
|
1271
|
-
void
|
|
359
|
+
void Subchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
1272
360
|
StartTransportStreamOpBatch(grpc_transport_stream_op_batch* batch) {
|
|
1273
361
|
GRPC_TRACE_LOG(subchannel_call, INFO)
|
|
1274
362
|
<< "subchannel " << connected_subchannel_->subchannel() << " connection "
|
|
@@ -1283,23 +371,23 @@ void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
|
1283
371
|
top_elem->filter->start_transport_stream_op_batch(top_elem, batch);
|
|
1284
372
|
}
|
|
1285
373
|
|
|
1286
|
-
void
|
|
374
|
+
void Subchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
1287
375
|
SetAfterCallStackDestroy(grpc_closure* closure) {
|
|
1288
376
|
GRPC_CHECK_EQ(after_call_stack_destroy_, nullptr);
|
|
1289
377
|
GRPC_CHECK_NE(closure, nullptr);
|
|
1290
378
|
after_call_stack_destroy_ = closure;
|
|
1291
379
|
}
|
|
1292
380
|
|
|
1293
|
-
void
|
|
381
|
+
void Subchannel::LegacyConnectedSubchannel::SubchannelCall::Unref() {
|
|
1294
382
|
GRPC_CALL_STACK_UNREF(SUBCHANNEL_CALL_TO_CALL_STACK(this), "");
|
|
1295
383
|
}
|
|
1296
384
|
|
|
1297
|
-
void
|
|
385
|
+
void Subchannel::LegacyConnectedSubchannel::SubchannelCall::Unref(
|
|
1298
386
|
const DebugLocation& /*location*/, const char* reason) {
|
|
1299
387
|
GRPC_CALL_STACK_UNREF(SUBCHANNEL_CALL_TO_CALL_STACK(this), reason);
|
|
1300
388
|
}
|
|
1301
389
|
|
|
1302
|
-
void
|
|
390
|
+
void Subchannel::LegacyConnectedSubchannel::SubchannelCall::Destroy(
|
|
1303
391
|
void* arg, grpc_error_handle /*error*/) {
|
|
1304
392
|
SubchannelCall* self = static_cast<SubchannelCall*>(arg);
|
|
1305
393
|
// Just in case we didn't already take care of this in the
|
|
@@ -1321,7 +409,7 @@ void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall::Destroy(
|
|
|
1321
409
|
// stack.
|
|
1322
410
|
}
|
|
1323
411
|
|
|
1324
|
-
void
|
|
412
|
+
void Subchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
1325
413
|
MaybeInterceptRecvTrailingMetadata(grpc_transport_stream_op_batch* batch) {
|
|
1326
414
|
// only intercept payloads with recv trailing.
|
|
1327
415
|
if (!batch->recv_trailing_metadata) return;
|
|
@@ -1337,7 +425,21 @@ void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
|
1337
425
|
&recv_trailing_metadata_ready_;
|
|
1338
426
|
}
|
|
1339
427
|
|
|
1340
|
-
|
|
428
|
+
namespace {
|
|
429
|
+
|
|
430
|
+
// Sets *status based on the rest of the parameters.
|
|
431
|
+
void GetCallStatus(grpc_status_code* status, Timestamp deadline,
|
|
432
|
+
grpc_metadata_batch* md_batch, grpc_error_handle error) {
|
|
433
|
+
if (!error.ok()) {
|
|
434
|
+
grpc_error_get_status(error, deadline, status, nullptr, nullptr, nullptr);
|
|
435
|
+
} else {
|
|
436
|
+
*status = md_batch->get(GrpcStatusMetadata()).value_or(GRPC_STATUS_UNKNOWN);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
} // namespace
|
|
441
|
+
|
|
442
|
+
void Subchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
1341
443
|
RecvTrailingMetadataReady(void* arg, grpc_error_handle error) {
|
|
1342
444
|
SubchannelCall* call = static_cast<SubchannelCall*>(arg);
|
|
1343
445
|
GRPC_CHECK_NE(call->recv_trailing_metadata_, nullptr);
|
|
@@ -1359,8 +461,7 @@ void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
|
1359
461
|
Closure::Run(DEBUG_LOCATION, call->original_recv_trailing_metadata_, error);
|
|
1360
462
|
}
|
|
1361
463
|
|
|
1362
|
-
void
|
|
1363
|
-
MaybeReturnQuota() {
|
|
464
|
+
void Subchannel::LegacyConnectedSubchannel::SubchannelCall::MaybeReturnQuota() {
|
|
1364
465
|
if (returned_quota_) return; // Already returned.
|
|
1365
466
|
returned_quota_ = true;
|
|
1366
467
|
GRPC_TRACE_LOG(subchannel_call, INFO)
|
|
@@ -1372,23 +473,23 @@ void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
|
1372
473
|
}
|
|
1373
474
|
}
|
|
1374
475
|
|
|
1375
|
-
void
|
|
476
|
+
void Subchannel::LegacyConnectedSubchannel::SubchannelCall::
|
|
1376
477
|
IncrementRefCount() {
|
|
1377
478
|
GRPC_CALL_STACK_REF(SUBCHANNEL_CALL_TO_CALL_STACK(this), "");
|
|
1378
479
|
}
|
|
1379
480
|
|
|
1380
|
-
void
|
|
1381
|
-
|
|
481
|
+
void Subchannel::LegacyConnectedSubchannel::SubchannelCall::IncrementRefCount(
|
|
482
|
+
const DebugLocation& /*location*/, const char* reason) {
|
|
1382
483
|
GRPC_CALL_STACK_REF(SUBCHANNEL_CALL_TO_CALL_STACK(this), reason);
|
|
1383
484
|
}
|
|
1384
485
|
|
|
1385
486
|
//
|
|
1386
|
-
//
|
|
487
|
+
// Subchannel::QueuedCall
|
|
1387
488
|
//
|
|
1388
489
|
|
|
1389
|
-
class
|
|
490
|
+
class Subchannel::QueuedCall final : public Subchannel::Call {
|
|
1390
491
|
public:
|
|
1391
|
-
QueuedCall(WeakRefCountedPtr<
|
|
492
|
+
QueuedCall(WeakRefCountedPtr<Subchannel> subchannel, CreateCallArgs args);
|
|
1392
493
|
~QueuedCall() override;
|
|
1393
494
|
|
|
1394
495
|
void StartTransportStreamOpBatch(
|
|
@@ -1407,10 +508,10 @@ class NewSubchannel::QueuedCall final : public Subchannel::Call {
|
|
|
1407
508
|
}
|
|
1408
509
|
|
|
1409
510
|
void ResumeOnConnectionLocked(ConnectedSubchannel* connected_subchannel)
|
|
1410
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&
|
|
511
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&Subchannel::mu_);
|
|
1411
512
|
|
|
1412
513
|
void FailLocked(absl::Status status)
|
|
1413
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&
|
|
514
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&Subchannel::mu_);
|
|
1414
515
|
|
|
1415
516
|
private:
|
|
1416
517
|
// Allow RefCountedPtr<> to access IncrementRefCount().
|
|
@@ -1429,7 +530,7 @@ class NewSubchannel::QueuedCall final : public Subchannel::Call {
|
|
|
1429
530
|
static void RecvTrailingMetadataReady(void* arg, grpc_error_handle error);
|
|
1430
531
|
|
|
1431
532
|
RefCount ref_count_;
|
|
1432
|
-
WeakRefCountedPtr<
|
|
533
|
+
WeakRefCountedPtr<Subchannel> subchannel_;
|
|
1433
534
|
CreateCallArgs args_;
|
|
1434
535
|
|
|
1435
536
|
// Note that unlike in the resolver and LB code, the subchannel code
|
|
@@ -1438,7 +539,7 @@ class NewSubchannel::QueuedCall final : public Subchannel::Call {
|
|
|
1438
539
|
// and try to resume it before buffered_call_ contains any batches.
|
|
1439
540
|
// In that case, we will not be holding the call combiner here, so we
|
|
1440
541
|
// need a mutex for synchronization.
|
|
1441
|
-
Mutex mu_ ABSL_ACQUIRED_AFTER(
|
|
542
|
+
Mutex mu_ ABSL_ACQUIRED_AFTER(Subchannel::mu_);
|
|
1442
543
|
grpc_closure* after_call_stack_destroy_ ABSL_GUARDED_BY(&mu_) = nullptr;
|
|
1443
544
|
grpc_error_handle cancel_error_ ABSL_GUARDED_BY(&mu_);
|
|
1444
545
|
BufferedCall buffered_call_ ABSL_GUARDED_BY(&mu_);
|
|
@@ -1451,7 +552,7 @@ class NewSubchannel::QueuedCall final : public Subchannel::Call {
|
|
|
1451
552
|
// don't try to dequeue this call after it's been cancelled.
|
|
1452
553
|
QueuedCall*& queue_entry_;
|
|
1453
554
|
|
|
1454
|
-
Canceller* canceller_ ABSL_GUARDED_BY(&
|
|
555
|
+
Canceller* canceller_ ABSL_GUARDED_BY(&Subchannel::mu_);
|
|
1455
556
|
|
|
1456
557
|
std::atomic<bool> is_retriable_{false};
|
|
1457
558
|
grpc_closure recv_trailing_metadata_ready_;
|
|
@@ -1467,7 +568,7 @@ class NewSubchannel::QueuedCall final : public Subchannel::Call {
|
|
|
1467
568
|
// the call is cancelled. In that case, it removes the call from the
|
|
1468
569
|
// queue and fails any pending batches, thus immediately releasing the
|
|
1469
570
|
// call combiner and allowing the cancellation to proceed.
|
|
1470
|
-
class
|
|
571
|
+
class Subchannel::QueuedCall::Canceller final {
|
|
1471
572
|
public:
|
|
1472
573
|
explicit Canceller(RefCountedPtr<QueuedCall> call) : call_(std::move(call)) {
|
|
1473
574
|
GRPC_CLOSURE_INIT(&cancel_, CancelLocked, this, nullptr);
|
|
@@ -1479,7 +580,7 @@ class NewSubchannel::QueuedCall::Canceller final {
|
|
|
1479
580
|
auto* self = static_cast<Canceller*>(arg);
|
|
1480
581
|
bool cancelled = false;
|
|
1481
582
|
{
|
|
1482
|
-
MutexLock lock(
|
|
583
|
+
MutexLock lock(self->call_->subchannel_->mu_);
|
|
1483
584
|
if (self->call_->canceller_ == self && !error.ok()) {
|
|
1484
585
|
GRPC_TRACE_LOG(subchannel_call, INFO)
|
|
1485
586
|
<< "subchannel " << self->call_->subchannel_.get()
|
|
@@ -1491,7 +592,7 @@ class NewSubchannel::QueuedCall::Canceller final {
|
|
|
1491
592
|
}
|
|
1492
593
|
}
|
|
1493
594
|
if (cancelled) {
|
|
1494
|
-
MutexLock lock(
|
|
595
|
+
MutexLock lock(self->call_->mu_);
|
|
1495
596
|
// Fail pending batches on the call.
|
|
1496
597
|
self->call_->buffered_call_.Fail(
|
|
1497
598
|
error, BufferedCall::YieldCallCombinerIfPendingBatchesFound);
|
|
@@ -1503,8 +604,8 @@ class NewSubchannel::QueuedCall::Canceller final {
|
|
|
1503
604
|
grpc_closure cancel_;
|
|
1504
605
|
};
|
|
1505
606
|
|
|
1506
|
-
|
|
1507
|
-
|
|
607
|
+
Subchannel::QueuedCall::QueuedCall(WeakRefCountedPtr<Subchannel> subchannel,
|
|
608
|
+
CreateCallArgs args)
|
|
1508
609
|
: subchannel_(std::move(subchannel)),
|
|
1509
610
|
args_(args),
|
|
1510
611
|
buffered_call_(args_.call_combiner, &subchannel_call_trace),
|
|
@@ -1515,7 +616,7 @@ NewSubchannel::QueuedCall::QueuedCall(
|
|
|
1515
616
|
canceller_ = new Canceller(Ref().TakeAsSubclass<QueuedCall>());
|
|
1516
617
|
}
|
|
1517
618
|
|
|
1518
|
-
|
|
619
|
+
Subchannel::QueuedCall::~QueuedCall() {
|
|
1519
620
|
GRPC_TRACE_LOG(subchannel_call, INFO) << "subchannel " << subchannel_.get()
|
|
1520
621
|
<< ": destroying queued call " << this;
|
|
1521
622
|
if (after_call_stack_destroy_ != nullptr) {
|
|
@@ -1523,10 +624,9 @@ NewSubchannel::QueuedCall::~QueuedCall() {
|
|
|
1523
624
|
}
|
|
1524
625
|
}
|
|
1525
626
|
|
|
1526
|
-
void
|
|
1527
|
-
grpc_closure* closure) {
|
|
627
|
+
void Subchannel::QueuedCall::SetAfterCallStackDestroy(grpc_closure* closure) {
|
|
1528
628
|
GRPC_CHECK_NE(closure, nullptr);
|
|
1529
|
-
MutexLock lock(
|
|
629
|
+
MutexLock lock(mu_);
|
|
1530
630
|
if (subchannel_call_ != nullptr) {
|
|
1531
631
|
subchannel_call_->SetAfterCallStackDestroy(closure);
|
|
1532
632
|
} else {
|
|
@@ -1535,13 +635,13 @@ void NewSubchannel::QueuedCall::SetAfterCallStackDestroy(
|
|
|
1535
635
|
}
|
|
1536
636
|
}
|
|
1537
637
|
|
|
1538
|
-
void
|
|
638
|
+
void Subchannel::QueuedCall::StartTransportStreamOpBatch(
|
|
1539
639
|
grpc_transport_stream_op_batch* batch) {
|
|
1540
640
|
GRPC_TRACE_LOG(subchannel_call, INFO)
|
|
1541
641
|
<< "subchannel " << subchannel_.get() << " queued call " << this
|
|
1542
642
|
<< ": starting batch: "
|
|
1543
643
|
<< grpc_transport_stream_op_batch_string(batch, false);
|
|
1544
|
-
MutexLock lock(
|
|
644
|
+
MutexLock lock(mu_);
|
|
1545
645
|
// If we already have a real subchannel call, pass the batch down to it.
|
|
1546
646
|
if (subchannel_call_ != nullptr) {
|
|
1547
647
|
subchannel_call_->StartTransportStreamOpBatch(batch);
|
|
@@ -1588,7 +688,7 @@ void NewSubchannel::QueuedCall::StartTransportStreamOpBatch(
|
|
|
1588
688
|
}
|
|
1589
689
|
}
|
|
1590
690
|
|
|
1591
|
-
void
|
|
691
|
+
void Subchannel::QueuedCall::RecvTrailingMetadataReady(
|
|
1592
692
|
void* arg, grpc_error_handle error) {
|
|
1593
693
|
QueuedCall* call = static_cast<QueuedCall*>(arg);
|
|
1594
694
|
GRPC_CHECK_NE(call->recv_trailing_metadata_, nullptr);
|
|
@@ -1599,14 +699,14 @@ void NewSubchannel::QueuedCall::RecvTrailingMetadataReady(
|
|
|
1599
699
|
Closure::Run(DEBUG_LOCATION, call->original_recv_trailing_metadata_, error);
|
|
1600
700
|
}
|
|
1601
701
|
|
|
1602
|
-
void
|
|
702
|
+
void Subchannel::QueuedCall::ResumeOnConnectionLocked(
|
|
1603
703
|
ConnectedSubchannel* connected_subchannel) {
|
|
1604
704
|
GRPC_TRACE_LOG(subchannel_call, INFO)
|
|
1605
705
|
<< "subchannel " << subchannel_.get() << " queued call " << this
|
|
1606
706
|
<< ": resuming on connected_subchannel " << connected_subchannel;
|
|
1607
707
|
canceller_ = nullptr;
|
|
1608
708
|
queue_entry_ = nullptr;
|
|
1609
|
-
MutexLock lock(
|
|
709
|
+
MutexLock lock(mu_);
|
|
1610
710
|
grpc_error_handle error;
|
|
1611
711
|
subchannel_call_ = connected_subchannel->CreateCall(args_, &error);
|
|
1612
712
|
if (after_call_stack_destroy_ != nullptr) {
|
|
@@ -1616,7 +716,7 @@ void NewSubchannel::QueuedCall::ResumeOnConnectionLocked(
|
|
|
1616
716
|
// It's possible that the subchannel will get quota for the call
|
|
1617
717
|
// and try to resume it before buffered_call_ contains any batches.
|
|
1618
718
|
// In that case, we will not be holding the call combiner here, so we
|
|
1619
|
-
// must not
|
|
719
|
+
// must not yield it. That's why we use
|
|
1620
720
|
// YieldCallCombinerIfPendingBatchesFound here.
|
|
1621
721
|
if (!error.ok()) {
|
|
1622
722
|
buffered_call_.Fail(error,
|
|
@@ -1632,24 +732,24 @@ void NewSubchannel::QueuedCall::ResumeOnConnectionLocked(
|
|
|
1632
732
|
}
|
|
1633
733
|
}
|
|
1634
734
|
|
|
1635
|
-
void
|
|
735
|
+
void Subchannel::QueuedCall::FailLocked(absl::Status status) {
|
|
1636
736
|
GRPC_TRACE_LOG(subchannel_call, INFO)
|
|
1637
737
|
<< "subchannel " << subchannel_.get() << " queued call " << this
|
|
1638
738
|
<< ": failing: " << status;
|
|
1639
739
|
canceller_ = nullptr;
|
|
1640
740
|
queue_entry_ = nullptr;
|
|
1641
741
|
is_retriable_.store(true);
|
|
1642
|
-
MutexLock lock(
|
|
742
|
+
MutexLock lock(mu_);
|
|
1643
743
|
cancel_error_ = status;
|
|
1644
744
|
buffered_call_.Fail(status,
|
|
1645
745
|
BufferedCall::YieldCallCombinerIfPendingBatchesFound);
|
|
1646
746
|
}
|
|
1647
747
|
|
|
1648
748
|
//
|
|
1649
|
-
//
|
|
749
|
+
// Subchannel::NewConnectedSubchannel
|
|
1650
750
|
//
|
|
1651
751
|
|
|
1652
|
-
class
|
|
752
|
+
class Subchannel::NewConnectedSubchannel final : public ConnectedSubchannel {
|
|
1653
753
|
public:
|
|
1654
754
|
class TransportCallDestination final : public CallDestination {
|
|
1655
755
|
public:
|
|
@@ -1669,7 +769,7 @@ class NewSubchannel::NewConnectedSubchannel final : public ConnectedSubchannel {
|
|
|
1669
769
|
};
|
|
1670
770
|
|
|
1671
771
|
NewConnectedSubchannel(
|
|
1672
|
-
WeakRefCountedPtr<
|
|
772
|
+
WeakRefCountedPtr<Subchannel> subchannel,
|
|
1673
773
|
RefCountedPtr<UnstartedCallDestination> call_destination,
|
|
1674
774
|
RefCountedPtr<TransportCallDestination> transport,
|
|
1675
775
|
const ChannelArgs& args, uint32_t max_concurrent_streams)
|
|
@@ -1690,7 +790,8 @@ class NewSubchannel::NewConnectedSubchannel final : public ConnectedSubchannel {
|
|
|
1690
790
|
}
|
|
1691
791
|
|
|
1692
792
|
void Ping(absl::AnyInvocable<void(absl::Status)>) override {
|
|
1693
|
-
// TODO(
|
|
793
|
+
// TODO(akshitpatel) : [PH2][P2][Client] : add new transport API for this in
|
|
794
|
+
// v3 stack
|
|
1694
795
|
Crash("not implemented");
|
|
1695
796
|
}
|
|
1696
797
|
|
|
@@ -1713,10 +814,10 @@ class NewSubchannel::NewConnectedSubchannel final : public ConnectedSubchannel {
|
|
|
1713
814
|
};
|
|
1714
815
|
|
|
1715
816
|
//
|
|
1716
|
-
//
|
|
817
|
+
// Subchannel::ConnectionStateWatcher
|
|
1717
818
|
//
|
|
1718
819
|
|
|
1719
|
-
class
|
|
820
|
+
class Subchannel::ConnectionStateWatcher final
|
|
1720
821
|
: public Transport::StateWatcher {
|
|
1721
822
|
public:
|
|
1722
823
|
explicit ConnectionStateWatcher(
|
|
@@ -1725,12 +826,22 @@ class NewSubchannel::ConnectionStateWatcher final
|
|
|
1725
826
|
|
|
1726
827
|
void OnDisconnect(absl::Status status,
|
|
1727
828
|
DisconnectInfo disconnect_info) override {
|
|
1728
|
-
|
|
829
|
+
Subchannel* subchannel = connected_subchannel_->subchannel();
|
|
1729
830
|
GRPC_TRACE_LOG(subchannel, INFO)
|
|
1730
831
|
<< "subchannel " << subchannel << " " << subchannel->key_.ToString()
|
|
1731
832
|
<< ": connected subchannel " << connected_subchannel_.get()
|
|
1732
|
-
<< " reports disconnection: " << status
|
|
1733
|
-
|
|
833
|
+
<< " reports disconnection: " << status
|
|
834
|
+
<< " (reason=" << disconnect_info.reason << ", http2_error_code="
|
|
835
|
+
<< (disconnect_info.http2_error_code.has_value()
|
|
836
|
+
? http2::Http2Status::DebugGetCode(
|
|
837
|
+
*disconnect_info.http2_error_code)
|
|
838
|
+
: "<unset>")
|
|
839
|
+
<< ", keepalive_time="
|
|
840
|
+
<< (disconnect_info.keepalive_time.has_value()
|
|
841
|
+
? disconnect_info.keepalive_time->ToString()
|
|
842
|
+
: "<unset>")
|
|
843
|
+
<< ")";
|
|
844
|
+
MutexLock lock(subchannel->mu_);
|
|
1734
845
|
// Handle keepalive update.
|
|
1735
846
|
if (disconnect_info.keepalive_time.has_value()) {
|
|
1736
847
|
subchannel->ThrottleKeepaliveTimeLocked(*disconnect_info.keepalive_time);
|
|
@@ -1739,6 +850,50 @@ class NewSubchannel::ConnectionStateWatcher final
|
|
|
1739
850
|
}
|
|
1740
851
|
// Remove the connection from the subchannel's list of connections.
|
|
1741
852
|
subchannel->RemoveConnectionLocked(connected_subchannel_.get());
|
|
853
|
+
if (subchannel->stats_plugin_group_ != nullptr) {
|
|
854
|
+
// Determine disconnect reason from DisconnectInfo
|
|
855
|
+
std::string disconnect_reason;
|
|
856
|
+
if (subchannel->shutdown_) {
|
|
857
|
+
disconnect_reason = "subchannel shutdown";
|
|
858
|
+
} else {
|
|
859
|
+
switch (disconnect_info.reason) {
|
|
860
|
+
case DisconnectReason::kGoaway:
|
|
861
|
+
if (disconnect_info.http2_error_code.has_value()) {
|
|
862
|
+
disconnect_reason = absl::StrCat(
|
|
863
|
+
"GOAWAY ", http2::Http2Status::DebugGetCode(
|
|
864
|
+
*disconnect_info.http2_error_code));
|
|
865
|
+
} else {
|
|
866
|
+
disconnect_reason = "GOAWAY UNKNOWN";
|
|
867
|
+
}
|
|
868
|
+
break;
|
|
869
|
+
case DisconnectReason::kConnectionReset:
|
|
870
|
+
disconnect_reason = "connection reset";
|
|
871
|
+
break;
|
|
872
|
+
case DisconnectReason::kConnectionTimedOut:
|
|
873
|
+
disconnect_reason = "connection timed out";
|
|
874
|
+
break;
|
|
875
|
+
case DisconnectReason::kConnectionAborted:
|
|
876
|
+
disconnect_reason = "connection aborted";
|
|
877
|
+
break;
|
|
878
|
+
case DisconnectReason::kSocketError:
|
|
879
|
+
disconnect_reason = "socket error";
|
|
880
|
+
break;
|
|
881
|
+
case DisconnectReason::kUnknown:
|
|
882
|
+
disconnect_reason = "unknown";
|
|
883
|
+
break;
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
auto scope = subchannel->stats_plugin_group_->GetCollectionScope();
|
|
887
|
+
SubchannelMetricsDomainDisconnections::GetStorage(
|
|
888
|
+
scope, subchannel->target_, subchannel->backend_service_,
|
|
889
|
+
subchannel->locality_, disconnect_reason)
|
|
890
|
+
->Increment(SubchannelMetricsDomainDisconnections::kDisconnections);
|
|
891
|
+
SubchannelConnectionsDomainOpenConnections::GetStorage(
|
|
892
|
+
scope, subchannel->target_, connected_subchannel_->security_level(),
|
|
893
|
+
subchannel->backend_service_, subchannel->locality_)
|
|
894
|
+
->Decrement(
|
|
895
|
+
SubchannelConnectionsDomainOpenConnections::kOpenConnections);
|
|
896
|
+
}
|
|
1742
897
|
// If this was the last connection, then fail all queued RPCs and
|
|
1743
898
|
// update the connectivity state.
|
|
1744
899
|
if (subchannel->connections_.empty()) {
|
|
@@ -1756,7 +911,7 @@ class NewSubchannel::ConnectionStateWatcher final
|
|
|
1756
911
|
uint32_t max_concurrent_streams,
|
|
1757
912
|
std::unique_ptr<MaxConcurrentStreamsUpdateDoneHandle> /*on_done*/)
|
|
1758
913
|
override {
|
|
1759
|
-
|
|
914
|
+
Subchannel* subchannel = connected_subchannel_->subchannel();
|
|
1760
915
|
GRPC_TRACE_LOG(subchannel, INFO)
|
|
1761
916
|
<< "subchannel " << subchannel << " " << subchannel->key_.ToString()
|
|
1762
917
|
<< ": connection " << connected_subchannel_.get()
|
|
@@ -1776,20 +931,20 @@ class NewSubchannel::ConnectionStateWatcher final
|
|
|
1776
931
|
};
|
|
1777
932
|
|
|
1778
933
|
//
|
|
1779
|
-
//
|
|
934
|
+
// Subchannel::ConnectivityStateWatcherList
|
|
1780
935
|
//
|
|
1781
936
|
|
|
1782
|
-
void
|
|
937
|
+
void Subchannel::ConnectivityStateWatcherList::AddWatcherLocked(
|
|
1783
938
|
RefCountedPtr<ConnectivityStateWatcherInterface> watcher) {
|
|
1784
939
|
watchers_.insert(std::move(watcher));
|
|
1785
940
|
}
|
|
1786
941
|
|
|
1787
|
-
void
|
|
942
|
+
void Subchannel::ConnectivityStateWatcherList::RemoveWatcherLocked(
|
|
1788
943
|
ConnectivityStateWatcherInterface* watcher) {
|
|
1789
944
|
watchers_.erase(watcher);
|
|
1790
945
|
}
|
|
1791
946
|
|
|
1792
|
-
void
|
|
947
|
+
void Subchannel::ConnectivityStateWatcherList::NotifyLocked(
|
|
1793
948
|
grpc_connectivity_state state, const absl::Status& status) {
|
|
1794
949
|
for (const auto& watcher : watchers_) {
|
|
1795
950
|
subchannel_->work_serializer_.Run([watcher, state, status]() {
|
|
@@ -1798,7 +953,7 @@ void NewSubchannel::ConnectivityStateWatcherList::NotifyLocked(
|
|
|
1798
953
|
}
|
|
1799
954
|
}
|
|
1800
955
|
|
|
1801
|
-
void
|
|
956
|
+
void Subchannel::ConnectivityStateWatcherList::NotifyOnKeepaliveUpdateLocked(
|
|
1802
957
|
Duration new_keepalive_time) {
|
|
1803
958
|
for (const auto& watcher : watchers_) {
|
|
1804
959
|
subchannel_->work_serializer_.Run([watcher, new_keepalive_time]() {
|
|
@@ -1808,7 +963,7 @@ void NewSubchannel::ConnectivityStateWatcherList::NotifyOnKeepaliveUpdateLocked(
|
|
|
1808
963
|
}
|
|
1809
964
|
|
|
1810
965
|
uint32_t
|
|
1811
|
-
|
|
966
|
+
Subchannel::ConnectivityStateWatcherList::GetMaxConnectionsPerSubchannel()
|
|
1812
967
|
const {
|
|
1813
968
|
uint32_t max_connections_per_subchannel = 1;
|
|
1814
969
|
for (const auto& watcher : watchers_) {
|
|
@@ -1820,13 +975,56 @@ NewSubchannel::ConnectivityStateWatcherList::GetMaxConnectionsPerSubchannel()
|
|
|
1820
975
|
}
|
|
1821
976
|
|
|
1822
977
|
//
|
|
1823
|
-
//
|
|
978
|
+
// Subchannel
|
|
1824
979
|
//
|
|
1825
980
|
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
981
|
+
namespace {
|
|
982
|
+
|
|
983
|
+
BackOff::Options ParseArgsForBackoffValues(const ChannelArgs& args,
|
|
984
|
+
Duration* min_connect_timeout) {
|
|
985
|
+
const std::optional<Duration> fixed_reconnect_backoff =
|
|
986
|
+
args.GetDurationFromIntMillis("grpc.testing.fixed_reconnect_backoff_ms");
|
|
987
|
+
if (fixed_reconnect_backoff.has_value()) {
|
|
988
|
+
const Duration backoff =
|
|
989
|
+
std::max(Duration::Milliseconds(100), *fixed_reconnect_backoff);
|
|
990
|
+
*min_connect_timeout = backoff;
|
|
991
|
+
return BackOff::Options()
|
|
992
|
+
.set_initial_backoff(backoff)
|
|
993
|
+
.set_multiplier(1.0)
|
|
994
|
+
.set_jitter(0.0)
|
|
995
|
+
.set_max_backoff(backoff);
|
|
996
|
+
}
|
|
997
|
+
const Duration initial_backoff = std::max(
|
|
998
|
+
Duration::Milliseconds(100),
|
|
999
|
+
args.GetDurationFromIntMillis(GRPC_ARG_INITIAL_RECONNECT_BACKOFF_MS)
|
|
1000
|
+
.value_or(Duration::Seconds(
|
|
1001
|
+
GRPC_SUBCHANNEL_INITIAL_CONNECT_BACKOFF_SECONDS)));
|
|
1002
|
+
*min_connect_timeout =
|
|
1003
|
+
std::max(Duration::Milliseconds(100),
|
|
1004
|
+
args.GetDurationFromIntMillis(GRPC_ARG_MIN_RECONNECT_BACKOFF_MS)
|
|
1005
|
+
.value_or(Duration::Seconds(
|
|
1006
|
+
GRPC_SUBCHANNEL_RECONNECT_MIN_TIMEOUT_SECONDS)));
|
|
1007
|
+
const Duration max_backoff =
|
|
1008
|
+
std::max(Duration::Milliseconds(100),
|
|
1009
|
+
args.GetDurationFromIntMillis(GRPC_ARG_MAX_RECONNECT_BACKOFF_MS)
|
|
1010
|
+
.value_or(Duration::Seconds(
|
|
1011
|
+
GRPC_SUBCHANNEL_RECONNECT_MAX_BACKOFF_SECONDS)));
|
|
1012
|
+
return BackOff::Options()
|
|
1013
|
+
.set_initial_backoff(initial_backoff)
|
|
1014
|
+
.set_multiplier(GRPC_SUBCHANNEL_RECONNECT_BACKOFF_MULTIPLIER)
|
|
1015
|
+
.set_jitter(GRPC_SUBCHANNEL_RECONNECT_JITTER)
|
|
1016
|
+
.set_max_backoff(max_backoff);
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
} // namespace
|
|
1020
|
+
|
|
1021
|
+
Subchannel::Subchannel(SubchannelKey key,
|
|
1022
|
+
OrphanablePtr<SubchannelConnector> connector,
|
|
1023
|
+
const ChannelArgs& args)
|
|
1024
|
+
: DualRefCounted<Subchannel>(GRPC_TRACE_FLAG_ENABLED(subchannel_refcount)
|
|
1025
|
+
? "Subchannel"
|
|
1026
|
+
: nullptr),
|
|
1027
|
+
key_(std::move(key)),
|
|
1830
1028
|
created_from_endpoint_(args.Contains(GRPC_ARG_SUBCHANNEL_ENDPOINT)),
|
|
1831
1029
|
args_(args),
|
|
1832
1030
|
pollset_set_(grpc_pollset_set_create()),
|
|
@@ -1834,7 +1032,17 @@ NewSubchannel::NewSubchannel(SubchannelKey key,
|
|
|
1834
1032
|
watcher_list_(this),
|
|
1835
1033
|
work_serializer_(args_.GetObjectRef<EventEngine>()),
|
|
1836
1034
|
backoff_(ParseArgsForBackoffValues(args_, &min_connect_timeout_)),
|
|
1837
|
-
event_engine_(args_.GetObjectRef<EventEngine>())
|
|
1035
|
+
event_engine_(args_.GetObjectRef<EventEngine>()),
|
|
1036
|
+
stats_plugin_group_(
|
|
1037
|
+
args_.GetObjectRef<GlobalStatsPluginRegistry::StatsPluginGroup>()),
|
|
1038
|
+
target_(args_.GetString(GRPC_ARG_DEFAULT_AUTHORITY).value_or("")),
|
|
1039
|
+
backend_service_(args_.GetString(GRPC_ARG_BACKEND_SERVICE).value_or("")),
|
|
1040
|
+
locality_(args_.GetString(GRPC_ARG_LB_LOCALITY).value_or("")) {
|
|
1041
|
+
if (stats_plugin_group_ != nullptr) {
|
|
1042
|
+
attempts_storage_ = SubchannelMetricsDomainAttempts::GetStorage(
|
|
1043
|
+
stats_plugin_group_->GetCollectionScope(), target_, backend_service_,
|
|
1044
|
+
locality_);
|
|
1045
|
+
}
|
|
1838
1046
|
GRPC_TRACE_LOG(subchannel, INFO)
|
|
1839
1047
|
<< "subchannel " << this << " " << key_.ToString() << ": created";
|
|
1840
1048
|
// A grpc_init is added here to ensure that grpc_shutdown does not happen
|
|
@@ -1873,7 +1081,7 @@ NewSubchannel::NewSubchannel(SubchannelKey key,
|
|
|
1873
1081
|
}
|
|
1874
1082
|
}
|
|
1875
1083
|
|
|
1876
|
-
|
|
1084
|
+
Subchannel::~Subchannel() {
|
|
1877
1085
|
if (channelz_node_ != nullptr) {
|
|
1878
1086
|
GRPC_CHANNELZ_LOG(channelz_node_) << "Subchannel destroyed";
|
|
1879
1087
|
channelz_node_->UpdateConnectivityState(GRPC_CHANNEL_SHUTDOWN);
|
|
@@ -1884,18 +1092,18 @@ NewSubchannel::~NewSubchannel() {
|
|
|
1884
1092
|
ShutdownInternally();
|
|
1885
1093
|
}
|
|
1886
1094
|
|
|
1887
|
-
RefCountedPtr<Subchannel>
|
|
1095
|
+
RefCountedPtr<Subchannel> Subchannel::Create(
|
|
1888
1096
|
OrphanablePtr<SubchannelConnector> connector,
|
|
1889
1097
|
const grpc_resolved_address& address, const ChannelArgs& args) {
|
|
1890
1098
|
SubchannelKey key(address, args);
|
|
1891
1099
|
auto* subchannel_pool = args.GetObject<SubchannelPoolInterface>();
|
|
1892
1100
|
GRPC_CHECK_NE(subchannel_pool, nullptr);
|
|
1893
|
-
RefCountedPtr<
|
|
1894
|
-
subchannel_pool->FindSubchannel(key).TakeAsSubclass<
|
|
1101
|
+
RefCountedPtr<Subchannel> c =
|
|
1102
|
+
subchannel_pool->FindSubchannel(key).TakeAsSubclass<Subchannel>();
|
|
1895
1103
|
if (c != nullptr) {
|
|
1896
1104
|
return c;
|
|
1897
1105
|
}
|
|
1898
|
-
c = MakeRefCounted<
|
|
1106
|
+
c = MakeRefCounted<Subchannel>(std::move(key), std::move(connector), args);
|
|
1899
1107
|
if (c->created_from_endpoint_) {
|
|
1900
1108
|
// We don't interact with the subchannel pool in this case.
|
|
1901
1109
|
// Instead, we unconditionally return the newly created subchannel.
|
|
@@ -1909,19 +1117,19 @@ RefCountedPtr<Subchannel> NewSubchannel::Create(
|
|
|
1909
1117
|
// Otherwise, in case of a registration race, unreffing c in
|
|
1910
1118
|
// RegisterSubchannel() will cause c to be tried to be unregistered, while
|
|
1911
1119
|
// its key maps to a different subchannel.
|
|
1912
|
-
RefCountedPtr<
|
|
1120
|
+
RefCountedPtr<Subchannel> registered =
|
|
1913
1121
|
subchannel_pool->RegisterSubchannel(c->key_, c)
|
|
1914
|
-
.TakeAsSubclass<
|
|
1122
|
+
.TakeAsSubclass<Subchannel>();
|
|
1915
1123
|
if (registered == c) c->subchannel_pool_ = subchannel_pool->Ref();
|
|
1916
1124
|
return registered;
|
|
1917
1125
|
}
|
|
1918
1126
|
|
|
1919
|
-
void
|
|
1920
|
-
MutexLock lock(
|
|
1127
|
+
void Subchannel::ThrottleKeepaliveTime(Duration new_keepalive_time) {
|
|
1128
|
+
MutexLock lock(mu_);
|
|
1921
1129
|
ThrottleKeepaliveTimeLocked(new_keepalive_time);
|
|
1922
1130
|
}
|
|
1923
1131
|
|
|
1924
|
-
void
|
|
1132
|
+
void Subchannel::ThrottleKeepaliveTimeLocked(Duration new_keepalive_time) {
|
|
1925
1133
|
// Only update the value if the new keepalive time is larger.
|
|
1926
1134
|
if (new_keepalive_time > keepalive_time_) {
|
|
1927
1135
|
keepalive_time_ = new_keepalive_time;
|
|
@@ -1932,13 +1140,13 @@ void NewSubchannel::ThrottleKeepaliveTimeLocked(Duration new_keepalive_time) {
|
|
|
1932
1140
|
}
|
|
1933
1141
|
}
|
|
1934
1142
|
|
|
1935
|
-
channelz::SubchannelNode*
|
|
1143
|
+
channelz::SubchannelNode* Subchannel::channelz_node() {
|
|
1936
1144
|
return channelz_node_.get();
|
|
1937
1145
|
}
|
|
1938
1146
|
|
|
1939
|
-
void
|
|
1147
|
+
void Subchannel::WatchConnectivityState(
|
|
1940
1148
|
RefCountedPtr<ConnectivityStateWatcherInterface> watcher) {
|
|
1941
|
-
MutexLock lock(
|
|
1149
|
+
MutexLock lock(mu_);
|
|
1942
1150
|
grpc_pollset_set* interested_parties = watcher->interested_parties();
|
|
1943
1151
|
if (interested_parties != nullptr) {
|
|
1944
1152
|
grpc_pollset_set_add_pollset_set(pollset_set_, interested_parties);
|
|
@@ -1954,9 +1162,9 @@ void NewSubchannel::WatchConnectivityState(
|
|
|
1954
1162
|
RetryQueuedRpcsLocked();
|
|
1955
1163
|
}
|
|
1956
1164
|
|
|
1957
|
-
void
|
|
1165
|
+
void Subchannel::CancelConnectivityStateWatch(
|
|
1958
1166
|
ConnectivityStateWatcherInterface* watcher) {
|
|
1959
|
-
MutexLock lock(
|
|
1167
|
+
MutexLock lock(mu_);
|
|
1960
1168
|
grpc_pollset_set* interested_parties = watcher->interested_parties();
|
|
1961
1169
|
if (interested_parties != nullptr) {
|
|
1962
1170
|
grpc_pollset_set_del_pollset_set(pollset_set_, interested_parties);
|
|
@@ -1964,24 +1172,24 @@ void NewSubchannel::CancelConnectivityStateWatch(
|
|
|
1964
1172
|
watcher_list_.RemoveWatcherLocked(watcher);
|
|
1965
1173
|
}
|
|
1966
1174
|
|
|
1967
|
-
void
|
|
1175
|
+
void Subchannel::RequestConnection() {
|
|
1968
1176
|
GRPC_TRACE_LOG(subchannel, INFO)
|
|
1969
1177
|
<< "subchannel " << this << " " << key_.ToString()
|
|
1970
1178
|
<< ": RequestConnection()";
|
|
1971
|
-
MutexLock lock(
|
|
1179
|
+
MutexLock lock(mu_);
|
|
1972
1180
|
if (state_ == GRPC_CHANNEL_IDLE) {
|
|
1973
1181
|
StartConnectingLocked();
|
|
1974
1182
|
}
|
|
1975
1183
|
}
|
|
1976
1184
|
|
|
1977
|
-
void
|
|
1185
|
+
void Subchannel::ResetBackoff() {
|
|
1978
1186
|
GRPC_TRACE_LOG(subchannel, INFO)
|
|
1979
1187
|
<< "subchannel " << this << " " << key_.ToString() << ": ResetBackoff()";
|
|
1980
1188
|
// Hold a ref to ensure cancellation and subsequent deletion of the closure
|
|
1981
1189
|
// does not eliminate the last ref and destroy the Subchannel before the
|
|
1982
1190
|
// method returns.
|
|
1983
1191
|
auto self = WeakRef(DEBUG_LOCATION, "ResetBackoff");
|
|
1984
|
-
MutexLock lock(
|
|
1192
|
+
MutexLock lock(mu_);
|
|
1985
1193
|
backoff_.Reset();
|
|
1986
1194
|
if (retry_timer_handle_.has_value() &&
|
|
1987
1195
|
event_engine_->Cancel(*retry_timer_handle_)) {
|
|
@@ -1991,7 +1199,7 @@ void NewSubchannel::ResetBackoff() {
|
|
|
1991
1199
|
}
|
|
1992
1200
|
}
|
|
1993
1201
|
|
|
1994
|
-
void
|
|
1202
|
+
void Subchannel::Orphaned() {
|
|
1995
1203
|
GRPC_TRACE_LOG(subchannel, INFO)
|
|
1996
1204
|
<< "subchannel " << this << " " << key_.ToString() << ": shutting down";
|
|
1997
1205
|
// The subchannel_pool is only used once here in this subchannel, so the
|
|
@@ -2000,7 +1208,7 @@ void NewSubchannel::Orphaned() {
|
|
|
2000
1208
|
subchannel_pool_->UnregisterSubchannel(key_, this);
|
|
2001
1209
|
subchannel_pool_.reset();
|
|
2002
1210
|
}
|
|
2003
|
-
MutexLock lock(
|
|
1211
|
+
MutexLock lock(mu_);
|
|
2004
1212
|
GRPC_CHECK(!shutdown_);
|
|
2005
1213
|
shutdown_ = true;
|
|
2006
1214
|
connector_.reset();
|
|
@@ -2010,16 +1218,16 @@ void NewSubchannel::Orphaned() {
|
|
|
2010
1218
|
}
|
|
2011
1219
|
}
|
|
2012
1220
|
|
|
2013
|
-
void
|
|
1221
|
+
void Subchannel::GetOrAddDataProducer(
|
|
2014
1222
|
UniqueTypeName type,
|
|
2015
1223
|
std::function<void(DataProducerInterface**)> get_or_add) {
|
|
2016
|
-
MutexLock lock(
|
|
1224
|
+
MutexLock lock(mu_);
|
|
2017
1225
|
auto it = data_producer_map_.emplace(type, nullptr).first;
|
|
2018
1226
|
get_or_add(&it->second);
|
|
2019
1227
|
}
|
|
2020
1228
|
|
|
2021
|
-
void
|
|
2022
|
-
MutexLock lock(
|
|
1229
|
+
void Subchannel::RemoveDataProducer(DataProducerInterface* data_producer) {
|
|
1230
|
+
MutexLock lock(mu_);
|
|
2023
1231
|
auto it = data_producer_map_.find(data_producer->type());
|
|
2024
1232
|
if (it != data_producer_map_.end() && it->second == data_producer) {
|
|
2025
1233
|
data_producer_map_.erase(it);
|
|
@@ -2037,12 +1245,12 @@ absl::Status PrependAddressToStatusMessage(const SubchannelKey& key,
|
|
|
2037
1245
|
|
|
2038
1246
|
} // namespace
|
|
2039
1247
|
|
|
2040
|
-
void
|
|
1248
|
+
void Subchannel::SetLastFailureLocked(const absl::Status& status) {
|
|
2041
1249
|
// Augment status message to include IP address.
|
|
2042
1250
|
last_failure_status_ = PrependAddressToStatusMessage(key_, status);
|
|
2043
1251
|
}
|
|
2044
1252
|
|
|
2045
|
-
grpc_connectivity_state
|
|
1253
|
+
grpc_connectivity_state Subchannel::ComputeConnectivityStateLocked() const {
|
|
2046
1254
|
// If we have at least one connection, report READY.
|
|
2047
1255
|
if (!connections_.empty()) return GRPC_CHANNEL_READY;
|
|
2048
1256
|
// If we were created from an endpoint and the connection is closed,
|
|
@@ -2059,13 +1267,13 @@ grpc_connectivity_state NewSubchannel::ComputeConnectivityStateLocked() const {
|
|
|
2059
1267
|
return GRPC_CHANNEL_IDLE;
|
|
2060
1268
|
}
|
|
2061
1269
|
|
|
2062
|
-
absl::Status
|
|
1270
|
+
absl::Status Subchannel::ConnectivityStatusToReportLocked() const {
|
|
2063
1271
|
// Report status in TRANSIENT_FAILURE state.
|
|
2064
1272
|
if (state_ == GRPC_CHANNEL_TRANSIENT_FAILURE) return last_failure_status_;
|
|
2065
1273
|
return absl::OkStatus();
|
|
2066
1274
|
}
|
|
2067
1275
|
|
|
2068
|
-
void
|
|
1276
|
+
void Subchannel::MaybeUpdateConnectivityStateLocked() {
|
|
2069
1277
|
// Determine what state we are in.
|
|
2070
1278
|
grpc_connectivity_state new_state = ComputeConnectivityStateLocked();
|
|
2071
1279
|
// If we're already in that state, no need to report a change.
|
|
@@ -2093,7 +1301,7 @@ void NewSubchannel::MaybeUpdateConnectivityStateLocked() {
|
|
|
2093
1301
|
watcher_list_.NotifyLocked(new_state, status);
|
|
2094
1302
|
}
|
|
2095
1303
|
|
|
2096
|
-
bool
|
|
1304
|
+
bool Subchannel::RemoveConnectionLocked(
|
|
2097
1305
|
ConnectedSubchannel* connected_subchannel) {
|
|
2098
1306
|
for (auto it = connections_.begin(); it != connections_.end(); ++it) {
|
|
2099
1307
|
if (*it == connected_subchannel) {
|
|
@@ -2107,12 +1315,12 @@ bool NewSubchannel::RemoveConnectionLocked(
|
|
|
2107
1315
|
return false;
|
|
2108
1316
|
}
|
|
2109
1317
|
|
|
2110
|
-
void
|
|
2111
|
-
MutexLock lock(
|
|
1318
|
+
void Subchannel::OnRetryTimer() {
|
|
1319
|
+
MutexLock lock(mu_);
|
|
2112
1320
|
OnRetryTimerLocked();
|
|
2113
1321
|
}
|
|
2114
1322
|
|
|
2115
|
-
void
|
|
1323
|
+
void Subchannel::OnRetryTimerLocked() {
|
|
2116
1324
|
retry_timer_handle_.reset();
|
|
2117
1325
|
if (shutdown_) return;
|
|
2118
1326
|
GRPC_TRACE_LOG(subchannel, INFO)
|
|
@@ -2122,7 +1330,7 @@ void NewSubchannel::OnRetryTimerLocked() {
|
|
|
2122
1330
|
MaybeUpdateConnectivityStateLocked();
|
|
2123
1331
|
}
|
|
2124
1332
|
|
|
2125
|
-
void
|
|
1333
|
+
void Subchannel::StartConnectingLocked() {
|
|
2126
1334
|
// Set next attempt time.
|
|
2127
1335
|
const Timestamp now = Timestamp::Now();
|
|
2128
1336
|
const Timestamp min_deadline = now + min_connect_timeout_;
|
|
@@ -2141,16 +1349,16 @@ void NewSubchannel::StartConnectingLocked() {
|
|
|
2141
1349
|
connector_->Connect(args, &connecting_result_, &on_connecting_finished_);
|
|
2142
1350
|
}
|
|
2143
1351
|
|
|
2144
|
-
void
|
|
2145
|
-
WeakRefCountedPtr<
|
|
1352
|
+
void Subchannel::OnConnectingFinished(void* arg, grpc_error_handle error) {
|
|
1353
|
+
WeakRefCountedPtr<Subchannel> c(static_cast<Subchannel*>(arg));
|
|
2146
1354
|
{
|
|
2147
|
-
MutexLock lock(
|
|
1355
|
+
MutexLock lock(c->mu_);
|
|
2148
1356
|
c->OnConnectingFinishedLocked(error);
|
|
2149
1357
|
}
|
|
2150
1358
|
c.reset(DEBUG_LOCATION, "Connect");
|
|
2151
1359
|
}
|
|
2152
1360
|
|
|
2153
|
-
void
|
|
1361
|
+
void Subchannel::OnConnectingFinishedLocked(grpc_error_handle error) {
|
|
2154
1362
|
connection_attempt_in_flight_ = false;
|
|
2155
1363
|
if (shutdown_) {
|
|
2156
1364
|
connecting_result_.Reset();
|
|
@@ -2172,11 +1380,16 @@ void NewSubchannel::OnConnectingFinishedLocked(grpc_error_handle error) {
|
|
|
2172
1380
|
"remaining in TRANSIENT_FAILURE"
|
|
2173
1381
|
: ", backing off for " +
|
|
2174
1382
|
std::to_string(time_until_next_attempt.millis()) + " ms");
|
|
1383
|
+
// Record failed connection attempt
|
|
1384
|
+
if (attempts_storage_ != nullptr) {
|
|
1385
|
+
attempts_storage_->Increment(
|
|
1386
|
+
SubchannelMetricsDomainAttempts::kConnectionAttemptsFailed);
|
|
1387
|
+
}
|
|
2175
1388
|
if (!created_from_endpoint_) {
|
|
2176
1389
|
retry_timer_handle_ = event_engine_->RunAfter(
|
|
2177
1390
|
time_until_next_attempt,
|
|
2178
1391
|
[self = WeakRef(DEBUG_LOCATION, "RetryTimer")
|
|
2179
|
-
.TakeAsSubclass<
|
|
1392
|
+
.TakeAsSubclass<Subchannel>()]() mutable {
|
|
2180
1393
|
{
|
|
2181
1394
|
ExecCtx exec_ctx;
|
|
2182
1395
|
self->OnRetryTimer();
|
|
@@ -2190,12 +1403,12 @@ void NewSubchannel::OnConnectingFinishedLocked(grpc_error_handle error) {
|
|
|
2190
1403
|
}
|
|
2191
1404
|
});
|
|
2192
1405
|
}
|
|
2193
|
-
SetLastFailureLocked(
|
|
1406
|
+
SetLastFailureLocked(error);
|
|
2194
1407
|
MaybeUpdateConnectivityStateLocked();
|
|
2195
1408
|
}
|
|
2196
1409
|
}
|
|
2197
1410
|
|
|
2198
|
-
bool
|
|
1411
|
+
bool Subchannel::PublishTransportLocked() {
|
|
2199
1412
|
auto socket_node = connecting_result_.transport->GetSocketNode();
|
|
2200
1413
|
Transport* transport = connecting_result_.transport;
|
|
2201
1414
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel;
|
|
@@ -2217,8 +1430,9 @@ bool NewSubchannel::PublishTransportLocked() {
|
|
|
2217
1430
|
return false;
|
|
2218
1431
|
}
|
|
2219
1432
|
connected_subchannel = MakeRefCounted<LegacyConnectedSubchannel>(
|
|
2220
|
-
WeakRef().TakeAsSubclass<
|
|
2221
|
-
channelz_node_,
|
|
1433
|
+
WeakRef().TakeAsSubclass<Subchannel>(), std::move(*stack),
|
|
1434
|
+
connecting_result_.channel_args, channelz_node_,
|
|
1435
|
+
connecting_result_.max_concurrent_streams);
|
|
2222
1436
|
} else {
|
|
2223
1437
|
OrphanablePtr<ClientTransport> transport(
|
|
2224
1438
|
std::exchange(connecting_result_.transport, nullptr)
|
|
@@ -2257,8 +1471,8 @@ bool NewSubchannel::PublishTransportLocked() {
|
|
|
2257
1471
|
return false;
|
|
2258
1472
|
}
|
|
2259
1473
|
connected_subchannel = MakeRefCounted<NewConnectedSubchannel>(
|
|
2260
|
-
WeakRef().TakeAsSubclass<
|
|
2261
|
-
std::move(transport_destination),
|
|
1474
|
+
WeakRef().TakeAsSubclass<Subchannel>(), std::move(*call_destination),
|
|
1475
|
+
std::move(transport_destination), connecting_result_.channel_args,
|
|
2262
1476
|
connecting_result_.max_concurrent_streams);
|
|
2263
1477
|
}
|
|
2264
1478
|
connecting_result_.Reset();
|
|
@@ -2275,6 +1489,19 @@ bool NewSubchannel::PublishTransportLocked() {
|
|
|
2275
1489
|
socket_node->AddParent(channelz_node_.get());
|
|
2276
1490
|
}
|
|
2277
1491
|
}
|
|
1492
|
+
// Record successful connection attempt
|
|
1493
|
+
if (attempts_storage_ != nullptr) {
|
|
1494
|
+
attempts_storage_->Increment(
|
|
1495
|
+
SubchannelMetricsDomainAttempts::kConnectionAttemptsSucceeded);
|
|
1496
|
+
}
|
|
1497
|
+
if (stats_plugin_group_ != nullptr) {
|
|
1498
|
+
auto scope = stats_plugin_group_->GetCollectionScope();
|
|
1499
|
+
SubchannelConnectionsDomainOpenConnections::GetStorage(
|
|
1500
|
+
scope, target_, connected_subchannel->security_level(),
|
|
1501
|
+
backend_service_, locality_)
|
|
1502
|
+
->Increment(
|
|
1503
|
+
SubchannelConnectionsDomainOpenConnections::kOpenConnections);
|
|
1504
|
+
}
|
|
2278
1505
|
transport->StartWatch(
|
|
2279
1506
|
MakeRefCounted<ConnectionStateWatcher>(connected_subchannel->WeakRef()));
|
|
2280
1507
|
connections_.push_back(std::move(connected_subchannel));
|
|
@@ -2283,11 +1510,11 @@ bool NewSubchannel::PublishTransportLocked() {
|
|
|
2283
1510
|
return true;
|
|
2284
1511
|
}
|
|
2285
1512
|
|
|
2286
|
-
RefCountedPtr<Subchannel::Call>
|
|
1513
|
+
RefCountedPtr<Subchannel::Call> Subchannel::CreateCall(
|
|
2287
1514
|
CreateCallArgs args, grpc_error_handle* error) {
|
|
2288
1515
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel;
|
|
2289
1516
|
{
|
|
2290
|
-
MutexLock lock(
|
|
1517
|
+
MutexLock lock(mu_);
|
|
2291
1518
|
// If we hit a race condition where the LB picker chose the subchannel
|
|
2292
1519
|
// at the same time as the last connection was closed, then tell the
|
|
2293
1520
|
// channel to re-queue the pick.
|
|
@@ -2300,7 +1527,7 @@ RefCountedPtr<Subchannel::Call> NewSubchannel::CreateCall(
|
|
|
2300
1527
|
if (connected_subchannel == nullptr) {
|
|
2301
1528
|
// The QueuedCall object adds itself to queued_calls_.
|
|
2302
1529
|
auto queued_call = RefCountedPtr<QueuedCall>(args.arena->New<QueuedCall>(
|
|
2303
|
-
WeakRef().TakeAsSubclass<
|
|
1530
|
+
WeakRef().TakeAsSubclass<Subchannel>(), args));
|
|
2304
1531
|
MaybeFailAllQueuedRpcsLocked();
|
|
2305
1532
|
return queued_call;
|
|
2306
1533
|
}
|
|
@@ -2312,11 +1539,11 @@ RefCountedPtr<Subchannel::Call> NewSubchannel::CreateCall(
|
|
|
2312
1539
|
return connected_subchannel->CreateCall(args, error);
|
|
2313
1540
|
}
|
|
2314
1541
|
|
|
2315
|
-
RefCountedPtr<UnstartedCallDestination>
|
|
2316
|
-
// TODO(roth): Implement connection scaling for v3.
|
|
1542
|
+
RefCountedPtr<UnstartedCallDestination> Subchannel::call_destination() {
|
|
1543
|
+
// TODO(roth) : [PH2][P2][Client] : Implement connection scaling for v3.
|
|
2317
1544
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel;
|
|
2318
1545
|
{
|
|
2319
|
-
MutexLock lock(
|
|
1546
|
+
MutexLock lock(mu_);
|
|
2320
1547
|
if (!connections_.empty()) connected_subchannel = connections_[0];
|
|
2321
1548
|
}
|
|
2322
1549
|
if (connected_subchannel == nullptr) return nullptr;
|
|
@@ -2331,8 +1558,8 @@ void TestOnlySetSubchannelAlwaysSendCallsToTransport(bool enabled) {
|
|
|
2331
1558
|
g_test_only_always_send_calls_to_transport = enabled;
|
|
2332
1559
|
}
|
|
2333
1560
|
|
|
2334
|
-
RefCountedPtr<
|
|
2335
|
-
|
|
1561
|
+
RefCountedPtr<Subchannel::ConnectedSubchannel>
|
|
1562
|
+
Subchannel::ChooseConnectionLocked() {
|
|
2336
1563
|
// Try to find a connection with quota available for the RPC.
|
|
2337
1564
|
for (auto& connection : connections_) {
|
|
2338
1565
|
if (connection->GetQuotaForRpc()) return connection;
|
|
@@ -2355,13 +1582,13 @@ NewSubchannel::ChooseConnectionLocked() {
|
|
|
2355
1582
|
return nullptr;
|
|
2356
1583
|
}
|
|
2357
1584
|
|
|
2358
|
-
void
|
|
2359
|
-
MutexLock lock(
|
|
1585
|
+
void Subchannel::RetryQueuedRpcs() {
|
|
1586
|
+
MutexLock lock(mu_);
|
|
2360
1587
|
if (shutdown_) return;
|
|
2361
1588
|
RetryQueuedRpcsLocked();
|
|
2362
1589
|
}
|
|
2363
1590
|
|
|
2364
|
-
void
|
|
1591
|
+
void Subchannel::RetryQueuedRpcsLocked() {
|
|
2365
1592
|
GRPC_TRACE_LOG(subchannel_call, INFO)
|
|
2366
1593
|
<< "subchannel " << this << " " << key_.ToString()
|
|
2367
1594
|
<< ": retrying RPCs from queue, queue size=" << queued_calls_.size();
|
|
@@ -2389,7 +1616,7 @@ void NewSubchannel::RetryQueuedRpcsLocked() {
|
|
|
2389
1616
|
}
|
|
2390
1617
|
}
|
|
2391
1618
|
|
|
2392
|
-
void
|
|
1619
|
+
void Subchannel::MaybeFailAllQueuedRpcsLocked() {
|
|
2393
1620
|
bool fail_instead_of_queuing =
|
|
2394
1621
|
args_.GetInt(GRPC_ARG_MAX_CONCURRENT_STREAMS_REJECT_ON_CLIENT)
|
|
2395
1622
|
.value_or(false);
|
|
@@ -2401,7 +1628,7 @@ void NewSubchannel::MaybeFailAllQueuedRpcsLocked() {
|
|
|
2401
1628
|
}
|
|
2402
1629
|
}
|
|
2403
1630
|
|
|
2404
|
-
void
|
|
1631
|
+
void Subchannel::FailAllQueuedRpcsLocked(absl::Status status) {
|
|
2405
1632
|
GRPC_TRACE_LOG(subchannel_call, INFO)
|
|
2406
1633
|
<< "subchannel " << this << ": failing all queued RPCs: " << status;
|
|
2407
1634
|
status = PrependAddressToStatusMessage(key_, status);
|
|
@@ -2411,15 +1638,14 @@ void NewSubchannel::FailAllQueuedRpcsLocked(absl::Status status) {
|
|
|
2411
1638
|
queued_calls_.clear();
|
|
2412
1639
|
}
|
|
2413
1640
|
|
|
2414
|
-
void
|
|
1641
|
+
void Subchannel::Ping(absl::AnyInvocable<void(absl::Status)>) {
|
|
2415
1642
|
// TODO(ctiller): Implement
|
|
2416
1643
|
}
|
|
2417
1644
|
|
|
2418
|
-
absl::Status
|
|
2419
|
-
grpc_closure* on_ack) {
|
|
1645
|
+
absl::Status Subchannel::Ping(grpc_closure* on_initiate, grpc_closure* on_ack) {
|
|
2420
1646
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel;
|
|
2421
1647
|
{
|
|
2422
|
-
MutexLock lock(
|
|
1648
|
+
MutexLock lock(mu_);
|
|
2423
1649
|
if (!connections_.empty()) connected_subchannel = connections_[0];
|
|
2424
1650
|
}
|
|
2425
1651
|
if (connected_subchannel == nullptr) {
|
|
@@ -2429,4 +1655,31 @@ absl::Status NewSubchannel::Ping(grpc_closure* on_initiate,
|
|
|
2429
1655
|
return absl::OkStatus();
|
|
2430
1656
|
}
|
|
2431
1657
|
|
|
1658
|
+
ChannelArgs Subchannel::MakeSubchannelArgs(
|
|
1659
|
+
const ChannelArgs& channel_args, const ChannelArgs& address_args,
|
|
1660
|
+
const RefCountedPtr<SubchannelPoolInterface>& subchannel_pool,
|
|
1661
|
+
const std::string& channel_default_authority) {
|
|
1662
|
+
// Note that we start with the channel-level args and then apply the
|
|
1663
|
+
// per-address args, so that if a value is present in both, the one
|
|
1664
|
+
// in the channel-level args is used. This is particularly important
|
|
1665
|
+
// for the GRPC_ARG_DEFAULT_AUTHORITY arg, which we want to allow
|
|
1666
|
+
// resolvers to set on a per-address basis only if the application
|
|
1667
|
+
// did not explicitly set it at the channel level.
|
|
1668
|
+
return channel_args.UnionWith(address_args)
|
|
1669
|
+
.SetObject(subchannel_pool)
|
|
1670
|
+
// If we haven't already set the default authority arg (i.e., it
|
|
1671
|
+
// was not explicitly set by the application nor overridden by
|
|
1672
|
+
// the resolver), add it from the channel's default.
|
|
1673
|
+
.SetIfUnset(GRPC_ARG_DEFAULT_AUTHORITY, channel_default_authority)
|
|
1674
|
+
// Remove channel args that should not affect subchannel
|
|
1675
|
+
// uniqueness.
|
|
1676
|
+
.Remove(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME)
|
|
1677
|
+
.Remove(GRPC_ARG_INHIBIT_HEALTH_CHECKING)
|
|
1678
|
+
.Remove(GRPC_ARG_MAX_CONNECTIONS_PER_SUBCHANNEL)
|
|
1679
|
+
.Remove(GRPC_ARG_MAX_CONNECTIONS_PER_SUBCHANNEL_CAP)
|
|
1680
|
+
.Remove(GRPC_ARG_CHANNELZ_CHANNEL_NODE)
|
|
1681
|
+
// Remove all keys with the no-subchannel prefix.
|
|
1682
|
+
.RemoveAllKeysWithPrefix(GRPC_ARG_NO_SUBCHANNEL_PREFIX);
|
|
1683
|
+
}
|
|
1684
|
+
|
|
2432
1685
|
} // namespace grpc_core
|