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
|
@@ -47,10 +47,10 @@
|
|
|
47
47
|
#include "src/core/ext/transport/chttp2/transport/http2_status.h"
|
|
48
48
|
#include "src/core/ext/transport/chttp2/transport/http2_transport.h"
|
|
49
49
|
#include "src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h"
|
|
50
|
-
#include "src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h"
|
|
51
50
|
#include "src/core/ext/transport/chttp2/transport/keepalive.h"
|
|
52
51
|
#include "src/core/ext/transport/chttp2/transport/message_assembler.h"
|
|
53
52
|
#include "src/core/ext/transport/chttp2/transport/ping_promise.h"
|
|
53
|
+
#include "src/core/ext/transport/chttp2/transport/read_context.h"
|
|
54
54
|
#include "src/core/ext/transport/chttp2/transport/security_frame.h"
|
|
55
55
|
#include "src/core/ext/transport/chttp2/transport/stream.h"
|
|
56
56
|
#include "src/core/ext/transport/chttp2/transport/stream_data_queue.h"
|
|
@@ -140,20 +140,20 @@ void Http2ClientTransport::PerformOp(grpc_transport_op* op) {
|
|
|
140
140
|
void Http2ClientTransport::StartConnectivityWatch(
|
|
141
141
|
grpc_connectivity_state state,
|
|
142
142
|
OrphanablePtr<ConnectivityStateWatcherInterface> watcher) {
|
|
143
|
-
MutexLock lock(
|
|
143
|
+
MutexLock lock(transport_mutex_);
|
|
144
144
|
state_tracker_.AddWatcher(state, std::move(watcher));
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
void Http2ClientTransport::StopConnectivityWatch(
|
|
148
148
|
ConnectivityStateWatcherInterface* watcher) {
|
|
149
|
-
MutexLock lock(
|
|
149
|
+
MutexLock lock(transport_mutex_);
|
|
150
150
|
state_tracker_.RemoveWatcher(watcher);
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
void Http2ClientTransport::ReportDisconnection(
|
|
154
154
|
const absl::Status& status, StateWatcher::DisconnectInfo disconnect_info,
|
|
155
155
|
const char* reason) {
|
|
156
|
-
MutexLock lock(
|
|
156
|
+
MutexLock lock(transport_mutex_);
|
|
157
157
|
ReportDisconnectionLocked(status, disconnect_info, reason);
|
|
158
158
|
}
|
|
159
159
|
|
|
@@ -168,14 +168,14 @@ void Http2ClientTransport::ReportDisconnectionLocked(
|
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
void Http2ClientTransport::StartWatch(RefCountedPtr<StateWatcher> watcher) {
|
|
171
|
-
MutexLock lock(
|
|
171
|
+
MutexLock lock(transport_mutex_);
|
|
172
172
|
GRPC_CHECK(watcher_ == nullptr);
|
|
173
173
|
watcher_ = std::move(watcher);
|
|
174
|
-
if (
|
|
174
|
+
if (shutdown_tracker_.IsShutdownInitiated(transport_mutex_)) {
|
|
175
175
|
// TODO(tjagtap) : [PH2][P2] : Provide better status message and
|
|
176
176
|
// disconnect info here.
|
|
177
177
|
NotifyStateWatcherOnDisconnectLocked(
|
|
178
|
-
absl::
|
|
178
|
+
absl::UnavailableError("transport closed before watcher started"), {});
|
|
179
179
|
} else {
|
|
180
180
|
// TODO(tjagtap) : [PH2][P2] : Notify the state watcher of the current
|
|
181
181
|
// value of the peer's MAX_CONCURRENT_STREAMS setting.
|
|
@@ -183,7 +183,7 @@ void Http2ClientTransport::StartWatch(RefCountedPtr<StateWatcher> watcher) {
|
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
void Http2ClientTransport::StopWatch(RefCountedPtr<StateWatcher> watcher) {
|
|
186
|
-
MutexLock lock(
|
|
186
|
+
MutexLock lock(transport_mutex_);
|
|
187
187
|
if (watcher_ == watcher) watcher_.reset();
|
|
188
188
|
}
|
|
189
189
|
|
|
@@ -219,7 +219,7 @@ absl::Status Http2ClientTransport::AckPing(uint64_t opaque_data) {
|
|
|
219
219
|
|
|
220
220
|
void Http2ClientTransport::Orphan() {
|
|
221
221
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::Orphan Begin";
|
|
222
|
-
// Accessing
|
|
222
|
+
// Accessing transport_party here is not advisable. It may so happen that
|
|
223
223
|
// the party is already freed/may free up any time. The only guarantee here
|
|
224
224
|
// is that the transport is still valid.
|
|
225
225
|
SourceDestructing();
|
|
@@ -243,15 +243,18 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(Http2DataFrame&& frame) {
|
|
|
243
243
|
|
|
244
244
|
RefCountedPtr<Stream> stream = LookupStream(frame.stream_id);
|
|
245
245
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
246
|
+
if (frame.payload.Length() > 0) {
|
|
247
|
+
// DATA frames with empty payload are legitimate frames. CHTTP2 and PH2 send
|
|
248
|
+
// empty DATA frames with END_Stream flag set to true.
|
|
249
|
+
ValueOrHttp2Status<chttp2::FlowControlAction> flow_control_action =
|
|
250
|
+
ProcessIncomingDataFrameFlowControl(
|
|
251
|
+
read_context_.GetCurrentFrameHeader(), flow_control_, stream.get());
|
|
252
|
+
if (!flow_control_action.IsOk()) {
|
|
253
|
+
return ValueOrHttp2Status<chttp2::FlowControlAction>::TakeStatus(
|
|
254
|
+
std::move(flow_control_action));
|
|
255
|
+
}
|
|
256
|
+
ActOnFlowControlAction(flow_control_action.value(), stream.get());
|
|
252
257
|
}
|
|
253
|
-
ActOnFlowControlAction(flow_control_action.value(), stream.get());
|
|
254
|
-
|
|
255
258
|
if (stream == nullptr) {
|
|
256
259
|
// TODO(tjagtap) : [PH2][P2] : Implement the correct behaviour later.
|
|
257
260
|
// RFC9113 : If a DATA frame is received whose stream is not in the "open"
|
|
@@ -263,9 +266,6 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(Http2DataFrame&& frame) {
|
|
|
263
266
|
return Http2Status::Ok();
|
|
264
267
|
}
|
|
265
268
|
|
|
266
|
-
// TODO(akshitpatel) : [PH2][P3] : We should add a check to reset stream if
|
|
267
|
-
// the stream state is kIdle as well.
|
|
268
|
-
|
|
269
269
|
Http2Status stream_status = stream->CanStreamReceiveDataFrames();
|
|
270
270
|
if (!stream_status.IsOk()) {
|
|
271
271
|
return stream_status;
|
|
@@ -300,8 +300,7 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(Http2DataFrame&& frame) {
|
|
|
300
300
|
if (message != nullptr) {
|
|
301
301
|
GRPC_HTTP2_CLIENT_DLOG
|
|
302
302
|
<< "Http2ClientTransport::ProcessIncomingFrame(DataFrame) "
|
|
303
|
-
"SpawnPushMessage "
|
|
304
|
-
<< message->DebugString();
|
|
303
|
+
"SpawnPushMessage ";
|
|
305
304
|
stream->GetCallHandler().SpawnPushMessage(std::move(message));
|
|
306
305
|
continue;
|
|
307
306
|
}
|
|
@@ -310,26 +309,20 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(Http2DataFrame&& frame) {
|
|
|
310
309
|
break;
|
|
311
310
|
}
|
|
312
311
|
|
|
313
|
-
// TODO(tjagtap) : [PH2][P2] : List of Tests:
|
|
314
|
-
// 1. Data frame with unknown stream ID
|
|
315
|
-
// 2. Data frame with only half a message and then end stream
|
|
316
|
-
// 3. One data frame with a full message
|
|
317
|
-
// 4. Three data frames with one full message
|
|
318
|
-
// 5. One data frame with three full messages. All messages should be pushed.
|
|
319
|
-
// Will need to mock the call_handler object and test this along with the
|
|
320
|
-
// Header reading code. Because we need a stream in place for the lookup to
|
|
321
|
-
// work.
|
|
322
312
|
return Http2Status::Ok();
|
|
323
313
|
}
|
|
324
314
|
|
|
325
315
|
template <typename T>
|
|
326
316
|
Http2Status Http2ClientTransport::ProcessIncomingMetadata(T&& frame) {
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
317
|
+
GRPC_HTTP2_CLIENT_DLOG
|
|
318
|
+
<< "Http2ClientTransport::ProcessIncomingMetadata { stream_id="
|
|
319
|
+
<< frame.stream_id << ", end_headers=" << frame.end_headers << " }";
|
|
330
320
|
ping_manager_->ReceivedDataFrame();
|
|
331
321
|
|
|
332
322
|
RefCountedPtr<Stream> stream = LookupStream(frame.stream_id);
|
|
323
|
+
// State update MUST happen before processing the frame.
|
|
324
|
+
read_context_.UpdateState(frame, /*is_existing_stream=*/(stream != nullptr));
|
|
325
|
+
|
|
333
326
|
if (stream == nullptr) {
|
|
334
327
|
// TODO(tjagtap) : [PH2][P3] : Implement this.
|
|
335
328
|
// RFC9113 : The identifier of a newly established stream MUST be
|
|
@@ -338,36 +331,33 @@ Http2Status Http2ClientTransport::ProcessIncomingMetadata(T&& frame) {
|
|
|
338
331
|
// frame and streams that are reserved using PUSH_PROMISE. An endpoint that
|
|
339
332
|
// receives an unexpected stream identifier MUST respond with a connection
|
|
340
333
|
// error (Section 5.4.1) of type PROTOCOL_ERROR.
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
return incoming_headers_.ParseAndDiscardHeaders(
|
|
345
|
-
std::move(frame.payload), frame.end_headers, /*stream=*/nullptr,
|
|
346
|
-
Http2Status::Ok(), settings_->acked().max_header_list_size());
|
|
334
|
+
return read_context_.ParseAndDiscardHeaders(
|
|
335
|
+
std::move(frame.payload), frame.end_headers, Http2Status::Ok(),
|
|
336
|
+
settings_->acked().max_header_list_size());
|
|
347
337
|
}
|
|
348
338
|
|
|
349
|
-
Http2Status validation_status =
|
|
350
|
-
|
|
351
|
-
settings_->acked().max_header_list_size());
|
|
339
|
+
Http2Status validation_status = ValidateMetadataFrameState(
|
|
340
|
+
frame, *stream, read_context_, settings_->acked().max_header_list_size());
|
|
352
341
|
if (!validation_status.IsOk()) {
|
|
353
342
|
return validation_status;
|
|
354
343
|
}
|
|
355
344
|
|
|
356
|
-
Http2Status append_result =
|
|
345
|
+
Http2Status append_result =
|
|
346
|
+
read_context_.header_assembler().AppendFrame(frame);
|
|
357
347
|
if (!append_result.IsOk()) {
|
|
358
348
|
// Frame payload is not consumed if AppendFrame returns a non-OK
|
|
359
349
|
// status. We need to process it to keep our in consistent state.
|
|
360
|
-
return
|
|
361
|
-
std::move(frame.payload), frame.end_headers,
|
|
362
|
-
|
|
350
|
+
return read_context_.ParseAndDiscardHeaders(
|
|
351
|
+
std::move(frame.payload), frame.end_headers, std::move(append_result),
|
|
352
|
+
settings_->acked().max_header_list_size());
|
|
363
353
|
}
|
|
364
354
|
|
|
365
355
|
Http2Status status = ProcessMetadata(stream);
|
|
366
356
|
if (!status.IsOk()) {
|
|
367
357
|
// Frame payload has been moved to the HeaderAssembler. So calling
|
|
368
358
|
// ParseAndDiscardHeaders with an empty buffer.
|
|
369
|
-
return
|
|
370
|
-
SliceBuffer(), frame.end_headers,
|
|
359
|
+
return read_context_.ParseAndDiscardHeaders(
|
|
360
|
+
SliceBuffer(), frame.end_headers, std::move(status),
|
|
371
361
|
settings_->acked().max_header_list_size());
|
|
372
362
|
}
|
|
373
363
|
|
|
@@ -379,9 +369,8 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
379
369
|
Http2HeaderFrame&& frame) {
|
|
380
370
|
// https://www.rfc-editor.org/rfc/rfc9113.html#name-headers
|
|
381
371
|
GRPC_HTTP2_CLIENT_DLOG
|
|
382
|
-
<< "Http2ClientTransport::ProcessIncomingFrame(HeaderFrame)
|
|
383
|
-
<< frame.
|
|
384
|
-
<< ", end_stream=" << frame.end_stream << " }";
|
|
372
|
+
<< "Http2ClientTransport::ProcessIncomingFrame(HeaderFrame) end_stream="
|
|
373
|
+
<< frame.end_stream;
|
|
385
374
|
return ProcessIncomingMetadata(std::forward<Http2HeaderFrame>(frame));
|
|
386
375
|
}
|
|
387
376
|
|
|
@@ -393,15 +382,13 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
393
382
|
"stream_id="
|
|
394
383
|
<< frame.stream_id << ", error_code=" << frame.error_code << " }";
|
|
395
384
|
|
|
385
|
+
read_context_.OnResetFrameReceived();
|
|
396
386
|
Http2ErrorCode error_code = FrameErrorCodeToHttp2ErrorCode(frame.error_code);
|
|
397
387
|
absl::Status status = absl::Status(ErrorCodeToAbslStatusCode(error_code),
|
|
398
388
|
"Reset stream frame received.");
|
|
399
389
|
RefCountedPtr<Stream> stream = LookupStream(frame.stream_id);
|
|
400
390
|
if (stream != nullptr) {
|
|
401
|
-
stream->
|
|
402
|
-
BeginCloseStream(std::move(stream),
|
|
403
|
-
/*reset_stream_error_code=*/std::nullopt,
|
|
404
|
-
CancelledServerMetadataFromStatus(status));
|
|
391
|
+
HandleStreamStateChange(*stream, stream->OnResetReceived(status));
|
|
405
392
|
}
|
|
406
393
|
|
|
407
394
|
// In case of stream error, we do not want the Read Loop to be broken. Hence
|
|
@@ -418,33 +405,30 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
418
405
|
<< frame.ack << ", settings length=" << frame.settings.size() << "}";
|
|
419
406
|
|
|
420
407
|
if (!frame.ack) {
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
408
|
+
read_context_.OnSettingsFrameReceived();
|
|
409
|
+
Http2Status s = settings_->BufferPeerSettings(std::move(frame.settings));
|
|
410
|
+
if (!s.IsOk()) {
|
|
411
|
+
return s;
|
|
424
412
|
}
|
|
425
|
-
settings_->BufferPeerSettings(std::move(frame.settings));
|
|
426
413
|
absl::Status trigger_write_status = TriggerWriteCycle();
|
|
427
414
|
if (!trigger_write_status.ok()) {
|
|
428
415
|
return ToHttpOkOrConnError(trigger_write_status);
|
|
429
416
|
}
|
|
430
|
-
|
|
431
417
|
if (GPR_UNLIKELY(!settings_->IsFirstPeerSettingsApplied())) {
|
|
432
418
|
// Apply the first settings before we read any other frames.
|
|
433
|
-
|
|
419
|
+
read_context_.SetPauseReadLoop();
|
|
434
420
|
}
|
|
435
421
|
} else {
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
ActOnFlowControlAction(flow_control_.SetAckedInitialWindow(
|
|
440
|
-
settings_->acked().initial_window_size()),
|
|
441
|
-
/*stream=*/nullptr);
|
|
442
|
-
} else {
|
|
443
|
-
// CHTTP2 returns a connection error for an unsolicited SETTINGS ACK.
|
|
444
|
-
// However, we ignore it in PH2 since RFC 9113 doesn't explicitly mandate
|
|
445
|
-
// an error.
|
|
446
|
-
LOG(ERROR) << "Settings ack received without sending settings. Ignore.";
|
|
422
|
+
Http2Status status = settings_->OnSettingsAckReceived();
|
|
423
|
+
if (!status.IsOk()) {
|
|
424
|
+
return status;
|
|
447
425
|
}
|
|
426
|
+
read_context_.SetMaxHeaderTableSize(settings_->acked().header_table_size());
|
|
427
|
+
read_context_.header_assembler().MaybeSetAllowTrueBinaryMetadataAcked(
|
|
428
|
+
settings_->acked().allow_true_binary_metadata());
|
|
429
|
+
ActOnFlowControlAction(flow_control_.SetAckedInitialWindow(
|
|
430
|
+
settings_->acked().initial_window_size()),
|
|
431
|
+
/*stream=*/nullptr);
|
|
448
432
|
}
|
|
449
433
|
|
|
450
434
|
return Http2Status::Ok();
|
|
@@ -458,17 +442,9 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(Http2PingFrame&& frame) {
|
|
|
458
442
|
if (frame.ack) {
|
|
459
443
|
return ToHttpOkOrConnError(AckPing(frame.opaque));
|
|
460
444
|
} else {
|
|
445
|
+
read_context_.OnPingFrameReceived();
|
|
461
446
|
if (test_only_ack_pings_) {
|
|
462
|
-
// TODO(akshitpatel) : [PH2][P2] : Have a counter to track number
|
|
463
|
-
// of pending induced frames (Ping/Settings Ack). This is to
|
|
464
|
-
// ensure that if write is taking a long time, we can stop reads
|
|
465
|
-
// and prioritize writes. RFC9113: PING responses SHOULD be given
|
|
466
|
-
// higher priority than any other frame.
|
|
467
447
|
ping_manager_->AddPendingPingAck(frame.opaque);
|
|
468
|
-
// TODO(akshitpatel) : [PH2][P2] : This is done assuming that the
|
|
469
|
-
// other ProcessFrame promises may return stream or connection
|
|
470
|
-
// failures. If this does not turn out to be true, consider
|
|
471
|
-
// returning absl::Status here.
|
|
472
448
|
return ToHttpOkOrConnError(TriggerWriteCycle());
|
|
473
449
|
} else {
|
|
474
450
|
GRPC_HTTP2_CLIENT_DLOG
|
|
@@ -504,17 +480,6 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
504
480
|
}
|
|
505
481
|
SetMaxAllowedStreamId(last_stream_id);
|
|
506
482
|
|
|
507
|
-
bool close_transport = false;
|
|
508
|
-
{
|
|
509
|
-
MutexLock lock(&transport_mutex_);
|
|
510
|
-
if (CanCloseTransportLocked()) {
|
|
511
|
-
close_transport = true;
|
|
512
|
-
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::ProcessIncomingFrame("
|
|
513
|
-
"GoawayFrame) "
|
|
514
|
-
"stream_list_ is empty";
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
|
|
518
483
|
StateWatcher::DisconnectInfo disconnect_info;
|
|
519
484
|
disconnect_info.reason = Transport::StateWatcher::kGoaway;
|
|
520
485
|
disconnect_info.http2_error_code =
|
|
@@ -536,29 +501,10 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
536
501
|
keepalive_time_.millis() > max_keepalive_time_millis
|
|
537
502
|
? INT_MAX
|
|
538
503
|
: keepalive_time_.millis() * KEEPALIVE_TIME_BACKOFF_MULTIPLIER;
|
|
539
|
-
if (!IsSubchannelConnectionScalingEnabled()) {
|
|
540
|
-
status.SetPayload(kKeepaliveThrottlingKey,
|
|
541
|
-
absl::Cord(std::to_string(throttled_keepalive_time)));
|
|
542
|
-
}
|
|
543
504
|
disconnect_info.keepalive_time =
|
|
544
505
|
Duration::Milliseconds(throttled_keepalive_time);
|
|
545
506
|
}
|
|
546
507
|
|
|
547
|
-
if (close_transport) {
|
|
548
|
-
// TODO(akshitpatel) : [PH2][P3] : Ideally the error here should be
|
|
549
|
-
// kNoError. However, Http2Status does not support kNoError. We should
|
|
550
|
-
// revisit this and update the error code.
|
|
551
|
-
MaybeSpawnCloseTransport(Http2Status::Http2ConnectionError(
|
|
552
|
-
FrameErrorCodeToHttp2ErrorCode((
|
|
553
|
-
frame.error_code ==
|
|
554
|
-
Http2ErrorCodeToFrameErrorCode(Http2ErrorCode::kNoError)
|
|
555
|
-
? Http2ErrorCodeToFrameErrorCode(Http2ErrorCode::kInternalError)
|
|
556
|
-
: frame.error_code)),
|
|
557
|
-
frame.debug_data.empty()
|
|
558
|
-
? std::string("GOAWAY received")
|
|
559
|
-
: std::string(frame.debug_data.as_string_view())));
|
|
560
|
-
}
|
|
561
|
-
|
|
562
508
|
// lie: use transient failure from the transport to indicate goaway has been
|
|
563
509
|
// received.
|
|
564
510
|
ReportDisconnection(status, disconnect_info, "got_goaway");
|
|
@@ -604,16 +550,12 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
604
550
|
Http2ContinuationFrame&& frame) {
|
|
605
551
|
// https://www.rfc-editor.org/rfc/rfc9113.html#name-continuation
|
|
606
552
|
GRPC_HTTP2_CLIENT_DLOG
|
|
607
|
-
<< "Http2ClientTransport::ProcessIncomingFrame(ContinuationFrame)
|
|
608
|
-
"stream_id="
|
|
609
|
-
<< frame.stream_id << ", end_headers=" << frame.end_headers << " }";
|
|
553
|
+
<< "Http2ClientTransport::ProcessIncomingFrame(ContinuationFrame)";
|
|
610
554
|
return ProcessIncomingMetadata(std::forward<Http2ContinuationFrame>(frame));
|
|
611
555
|
}
|
|
612
556
|
|
|
613
557
|
Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
614
558
|
Http2SecurityFrame&& frame) {
|
|
615
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
616
|
-
<< "Http2ClientTransport::ProcessIncomingFrame(SecurityFrame) ";
|
|
617
559
|
if (settings_->IsSecurityFrameExpected()) {
|
|
618
560
|
security_frame_handler_->ProcessPayload(std::move(frame.payload));
|
|
619
561
|
}
|
|
@@ -624,8 +566,6 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
624
566
|
GRPC_UNUSED Http2UnknownFrame&& frame) {
|
|
625
567
|
// RFC9113: Implementations MUST ignore and discard frames of
|
|
626
568
|
// unknown types.
|
|
627
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
628
|
-
<< "Http2ClientTransport::ProcessIncomingFrame(UnknownFrame) ";
|
|
629
569
|
return Http2Status::Ok();
|
|
630
570
|
}
|
|
631
571
|
|
|
@@ -637,30 +577,27 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
637
577
|
|
|
638
578
|
Http2Status Http2ClientTransport::ProcessMetadata(
|
|
639
579
|
RefCountedPtr<Stream> stream) {
|
|
640
|
-
HeaderAssembler& assembler =
|
|
580
|
+
HeaderAssembler& assembler = read_context_.header_assembler();
|
|
641
581
|
CallHandler& call = stream->GetCallHandler();
|
|
642
582
|
|
|
643
583
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::ProcessMetadata";
|
|
644
584
|
if (assembler.IsReady()) {
|
|
645
585
|
ValueOrHttp2Status<ServerMetadataHandle> read_result =
|
|
646
|
-
assembler.ReadMetadata(
|
|
647
|
-
!
|
|
586
|
+
assembler.ReadMetadata(read_context_.parser(),
|
|
587
|
+
!read_context_.HeaderHasEndStream(),
|
|
648
588
|
/*max_header_list_size_soft_limit=*/
|
|
649
|
-
|
|
589
|
+
read_context_.soft_limit(),
|
|
650
590
|
/*max_header_list_size_hard_limit=*/
|
|
651
591
|
settings_->acked().max_header_list_size());
|
|
652
592
|
if (read_result.IsOk()) {
|
|
653
593
|
ServerMetadataHandle metadata = TakeValue(std::move(read_result));
|
|
654
|
-
if (
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
BeginCloseStream(std::move(stream),
|
|
658
|
-
/*reset_stream_error_code=*/std::nullopt,
|
|
659
|
-
std::move(metadata));
|
|
594
|
+
if (read_context_.HeaderHasEndStream()) {
|
|
595
|
+
HandleStreamStateChange(
|
|
596
|
+
*stream, stream->OnTrailingMetadataReceived(std::move(metadata)));
|
|
660
597
|
} else {
|
|
661
598
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::ProcessMetadata "
|
|
662
599
|
"SpawnPushServerInitialMetadata";
|
|
663
|
-
metadata->Set(PeerString(),
|
|
600
|
+
metadata->Set(PeerString(), read_context_.peer_string());
|
|
664
601
|
stream->SetInitialMetadataReceived();
|
|
665
602
|
call.SpawnPushServerInitialMetadata(std::move(metadata));
|
|
666
603
|
}
|
|
@@ -684,71 +621,68 @@ auto Http2ClientTransport::ReadAndProcessOneFrame() {
|
|
|
684
621
|
EndpointReadSlice(kFrameHeaderSize),
|
|
685
622
|
// Parse the frame header.
|
|
686
623
|
[this](Slice header_bytes) {
|
|
687
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
688
|
-
<< "Http2ClientTransport::ReadAndProcessOneFrame Parse "
|
|
689
|
-
<< header_bytes.as_string_view();
|
|
690
624
|
Http2FrameHeader header = Http2FrameHeader::Parse(header_bytes.begin());
|
|
691
625
|
// Validate the incoming frame as per the current state of the transport
|
|
692
|
-
Http2Status status =
|
|
693
|
-
/*max_frame_size_setting
|
|
694
|
-
/*
|
|
695
|
-
incoming_headers_.IsWaitingForContinuationFrame(),
|
|
696
|
-
/*incoming_header_stream_id*/
|
|
697
|
-
incoming_headers_.GetStreamId(),
|
|
698
|
-
/*current_frame_header*/ header,
|
|
626
|
+
Http2Status status = read_context_.ValidateHeader(
|
|
627
|
+
/*max_frame_size_setting=*/settings_->acked().max_frame_size(),
|
|
628
|
+
/*current_frame_header=*/header,
|
|
699
629
|
/*last_stream_id=*/GetLastStreamId(),
|
|
700
|
-
/*
|
|
630
|
+
/*is_first_settings_processed=*/
|
|
701
631
|
settings_->IsFirstPeerSettingsApplied());
|
|
702
632
|
|
|
703
633
|
if (GPR_UNLIKELY(!status.IsOk())) {
|
|
704
634
|
GRPC_DCHECK(status.GetType() ==
|
|
705
635
|
Http2Status::Http2ErrorType::kConnectionError);
|
|
706
|
-
return HandleError(
|
|
636
|
+
return HandleError(/*stream=*/nullptr, std::move(status));
|
|
707
637
|
}
|
|
708
|
-
|
|
709
|
-
<< "Http2ClientTransport::ReadAndProcessOneFrame "
|
|
710
|
-
"Validated Frame Header:"
|
|
711
|
-
<< header.ToString();
|
|
712
|
-
current_frame_header_ = header;
|
|
638
|
+
read_context_.SetCurrentFrameHeader(header);
|
|
713
639
|
return absl::OkStatus();
|
|
714
640
|
},
|
|
715
641
|
// Read the payload of the frame.
|
|
716
642
|
[this]() {
|
|
717
643
|
GRPC_HTTP2_CLIENT_DLOG
|
|
718
644
|
<< "Http2ClientTransport::ReadAndProcessOneFrame Read Frame ";
|
|
719
|
-
return AssertResultType<absl::Status>(
|
|
720
|
-
EndpointRead(
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
645
|
+
return AssertResultType<absl::Status>(
|
|
646
|
+
Map(EndpointRead(read_context_.GetCurrentFrameHeader().length),
|
|
647
|
+
[this](absl::StatusOr<SliceBuffer>&& payload) {
|
|
648
|
+
if (GPR_UNLIKELY(!payload.ok())) {
|
|
649
|
+
return payload.status();
|
|
650
|
+
}
|
|
651
|
+
GRPC_HTTP2_CLIENT_DLOG
|
|
652
|
+
<< "Http2ClientTransport::ReadAndProcessOneFrame "
|
|
653
|
+
"ParseFramePayload payload length: "
|
|
654
|
+
<< payload.value().Length();
|
|
655
|
+
ValueOrHttp2Status<Http2Frame> frame =
|
|
656
|
+
ParseFramePayload(read_context_.GetCurrentFrameHeader(),
|
|
657
|
+
TakeValue(std::move(payload)));
|
|
658
|
+
if (GPR_UNLIKELY(!frame.IsOk())) {
|
|
659
|
+
return HandleError(
|
|
660
|
+
LookupStream(
|
|
661
|
+
read_context_.GetCurrentFrameHeader().stream_id),
|
|
662
|
+
ValueOrHttp2Status<Http2Frame>::TakeStatus(
|
|
663
|
+
std::move(frame)));
|
|
664
|
+
}
|
|
665
|
+
Http2Status status =
|
|
666
|
+
ProcessOneIncomingFrame(TakeValue(std::move(frame)));
|
|
667
|
+
if (GPR_UNLIKELY(!status.IsOk())) {
|
|
668
|
+
return HandleError(
|
|
669
|
+
LookupStream(
|
|
670
|
+
read_context_.GetCurrentFrameHeader().stream_id),
|
|
671
|
+
std::move(status));
|
|
672
|
+
}
|
|
673
|
+
return absl::OkStatus();
|
|
674
|
+
}));
|
|
744
675
|
},
|
|
745
676
|
[this]() -> Poll<absl::Status> {
|
|
746
|
-
|
|
677
|
+
Poll<absl::Status> poll_result = read_context_.MaybePauseReadLoop();
|
|
678
|
+
if (poll_result.pending()) {
|
|
679
|
+
TriggerWriteCycleOrHandleError();
|
|
680
|
+
}
|
|
681
|
+
return poll_result;
|
|
747
682
|
}));
|
|
748
683
|
}
|
|
749
684
|
|
|
750
685
|
auto Http2ClientTransport::ReadLoop() {
|
|
751
|
-
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::ReadLoop Factory";
|
|
752
686
|
return AssertResultType<absl::Status>(Loop([this]() {
|
|
753
687
|
return TrySeq(ReadAndProcessOneFrame(), []() -> LoopCtl<absl::Status> {
|
|
754
688
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::ReadLoop Continue";
|
|
@@ -760,39 +694,26 @@ auto Http2ClientTransport::ReadLoop() {
|
|
|
760
694
|
///////////////////////////////////////////////////////////////////////////////
|
|
761
695
|
// Flow Control for the Transport
|
|
762
696
|
|
|
763
|
-
auto Http2ClientTransport::
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
// TODO(tjagtap) [PH2][P2][BDP] Remove this when the BDP code is
|
|
784
|
-
// done. We must continue to do PeriodicUpdate once BDP is in
|
|
785
|
-
// place.
|
|
786
|
-
MutexLock lock(&transport_mutex_);
|
|
787
|
-
if (GetActiveStreamCountLocked() == 0) {
|
|
788
|
-
AddPeriodicUpdatePromiseWaker();
|
|
789
|
-
return Pending{};
|
|
790
|
-
}
|
|
791
|
-
}
|
|
792
|
-
return absl::OkStatus();
|
|
793
|
-
},
|
|
794
|
-
[]() -> LoopCtl<absl::Status> { return Continue{}; });
|
|
795
|
-
}));
|
|
697
|
+
auto Http2ClientTransport::BdpLoop() {
|
|
698
|
+
return AssertResultType<absl::Status>(Loop([this]() {
|
|
699
|
+
return TrySeq(
|
|
700
|
+
flow_control_.WaitForBdpActivation(),
|
|
701
|
+
[this]() {
|
|
702
|
+
// TODO(akshitpatel) : [PH2][P1] : Reset the keepalive ping timer
|
|
703
|
+
// when a BDP ping is sent, similar to CHTTP2's start_bdp_ping_locked.
|
|
704
|
+
TriggerWriteCycleOrHandleError();
|
|
705
|
+
return ping_manager_->RequestPing(
|
|
706
|
+
[this] { flow_control_.StartBdpPing(); },
|
|
707
|
+
/*important=*/false);
|
|
708
|
+
},
|
|
709
|
+
[this]() {
|
|
710
|
+
Duration sleep_duration = flow_control_.CompleteBdpPing();
|
|
711
|
+
chttp2::FlowControlAction action = flow_control_.PeriodicUpdate();
|
|
712
|
+
ActOnFlowControlAction(action, nullptr);
|
|
713
|
+
return Sleep(sleep_duration);
|
|
714
|
+
},
|
|
715
|
+
[]() -> LoopCtl<absl::Status> { return Continue{}; });
|
|
716
|
+
}));
|
|
796
717
|
}
|
|
797
718
|
|
|
798
719
|
// Equivalent to grpc_chttp2_act_on_flowctl_action in chttp2_transport.cc
|
|
@@ -816,9 +737,7 @@ void Http2ClientTransport::ActOnFlowControlAction(
|
|
|
816
737
|
}
|
|
817
738
|
}
|
|
818
739
|
|
|
819
|
-
ActOnFlowControlActionSettings(
|
|
820
|
-
action, settings_->mutable_local(),
|
|
821
|
-
enable_preferred_rx_crypto_frame_advertisement_);
|
|
740
|
+
ActOnFlowControlActionSettings(action, settings_->mutable_local());
|
|
822
741
|
|
|
823
742
|
if (action.AnyUpdateImmediately()) {
|
|
824
743
|
// Prioritize sending flow control updates over reading data. If we
|
|
@@ -826,7 +745,7 @@ void Http2ClientTransport::ActOnFlowControlAction(
|
|
|
826
745
|
// exhaust the flow control window. This prevents us from sending window
|
|
827
746
|
// updates to the peer, causing the peer to block unnecessarily while
|
|
828
747
|
// waiting for flow control tokens.
|
|
829
|
-
|
|
748
|
+
read_context_.SetPauseReadLoop();
|
|
830
749
|
if (!TriggerWriteCycleOrHandleError()) {
|
|
831
750
|
return;
|
|
832
751
|
}
|
|
@@ -837,7 +756,7 @@ void Http2ClientTransport::ActOnFlowControlAction(
|
|
|
837
756
|
}
|
|
838
757
|
|
|
839
758
|
absl::Status Http2ClientTransport::UpdateAllStreamsWritability() {
|
|
840
|
-
MutexLock lock(
|
|
759
|
+
MutexLock lock(transport_mutex_);
|
|
841
760
|
GRPC_HTTP2_CLIENT_DLOG
|
|
842
761
|
<< "Http2ClientTransport::UpdateAllStreamsWritability total streams: "
|
|
843
762
|
<< stream_list_.size();
|
|
@@ -892,11 +811,6 @@ absl::Status Http2ClientTransport::PrepareControlFrames() {
|
|
|
892
811
|
// by a SETTINGS frame, which MAY be empty.
|
|
893
812
|
settings_->MaybeGetSettingsAndSettingsAckFrames(flow_control_,
|
|
894
813
|
frame_sender);
|
|
895
|
-
// TODO(tjagtap) [PH2][P2][Server] : This will be opposite for server. We
|
|
896
|
-
// must read before we write for the server. So the ReadLoop will be Spawned
|
|
897
|
-
// just after the constructor, and the write loop should be spawned only
|
|
898
|
-
// after the first SETTINGS frame is completely received.
|
|
899
|
-
//
|
|
900
814
|
// Because the client is expected to write before it reads, we spawn the
|
|
901
815
|
// ReadLoop of the client only after the first write is queued.
|
|
902
816
|
SpawnGuardedTransportParty("ReadLoop", UntilTransportClosed(ReadLoop()));
|
|
@@ -911,14 +825,13 @@ absl::Status Http2ClientTransport::PrepareControlFrames() {
|
|
|
911
825
|
// 5. Custom gRPC security frame
|
|
912
826
|
|
|
913
827
|
goaway_manager_.MaybeGetSerializedGoawayFrame(frame_sender);
|
|
914
|
-
|
|
828
|
+
ApplySettingsResult apply_settings_result;
|
|
915
829
|
|
|
916
830
|
const uint32_t old_initial_window_size =
|
|
917
831
|
settings_->peer().initial_window_size();
|
|
918
|
-
http2::Http2ErrorCode apply_status =
|
|
919
|
-
settings_->MaybeReportAndApplyBufferedPeerSettings(
|
|
920
|
-
|
|
921
|
-
|
|
832
|
+
const http2::Http2ErrorCode apply_status =
|
|
833
|
+
settings_->MaybeReportAndApplyBufferedPeerSettings(event_engine_.get(),
|
|
834
|
+
apply_settings_result);
|
|
922
835
|
if (apply_status == http2::Http2ErrorCode::kNoError) {
|
|
923
836
|
const uint32_t new_initial_window_size =
|
|
924
837
|
settings_->peer().initial_window_size();
|
|
@@ -936,7 +849,7 @@ absl::Status Http2ClientTransport::PrepareControlFrames() {
|
|
|
936
849
|
}
|
|
937
850
|
}
|
|
938
851
|
|
|
939
|
-
if (should_spawn_security_frame_loop) {
|
|
852
|
+
if (apply_settings_result.should_spawn_security_frame_loop) {
|
|
940
853
|
const SecurityFrameHandler::EndpointExtensionState state =
|
|
941
854
|
security_frame_handler_->Initialize(event_engine_);
|
|
942
855
|
if (state.is_set) {
|
|
@@ -957,7 +870,7 @@ absl::Status Http2ClientTransport::PrepareControlFrames() {
|
|
|
957
870
|
}
|
|
958
871
|
|
|
959
872
|
if (apply_status != http2::Http2ErrorCode::kNoError) {
|
|
960
|
-
return HandleError(
|
|
873
|
+
return HandleError(/*stream=*/nullptr,
|
|
961
874
|
Http2Status::Http2ConnectionError(
|
|
962
875
|
apply_status, "Failed to apply incoming settings"));
|
|
963
876
|
}
|
|
@@ -985,7 +898,7 @@ void Http2ClientTransport::NotifyFramesWriteDone() {
|
|
|
985
898
|
// Notify Control modules that we have sent the frames.
|
|
986
899
|
// All notifications are expected to be synchronous.
|
|
987
900
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::NotifyFramesWriteDone";
|
|
988
|
-
|
|
901
|
+
read_context_.ResumeReadLoopIfPaused();
|
|
989
902
|
MaybeSpawnPingTimeout(ping_manager_->NotifyPingSent());
|
|
990
903
|
goaway_manager_.NotifyGoawaySent();
|
|
991
904
|
MaybeSpawnWaitForSettingsTimeout();
|
|
@@ -1043,7 +956,7 @@ absl::Status Http2ClientTransport::DequeueStreamFrames(
|
|
|
1043
956
|
"enqueue stream "
|
|
1044
957
|
<< stream->GetStreamId() << " with status: " << status;
|
|
1045
958
|
// Close transport if we fail to enqueue stream.
|
|
1046
|
-
return HandleError(
|
|
959
|
+
return HandleError(/*stream=*/nullptr, ToHttpOkOrConnError(status));
|
|
1047
960
|
}
|
|
1048
961
|
}
|
|
1049
962
|
|
|
@@ -1060,7 +973,7 @@ absl::Status Http2ClientTransport::DequeueStreamFrames(
|
|
|
1060
973
|
<< "Http2ClientTransport::DequeueStreamFrames InitialMetadataDequeued "
|
|
1061
974
|
"stream_id = "
|
|
1062
975
|
<< stream->GetStreamId();
|
|
1063
|
-
stream->
|
|
976
|
+
stream->OnInitialMetadataSent();
|
|
1064
977
|
// After this point, initial metadata is guaranteed to be sent out.
|
|
1065
978
|
AddToStreamList(stream);
|
|
1066
979
|
}
|
|
@@ -1069,28 +982,16 @@ absl::Status Http2ClientTransport::DequeueStreamFrames(
|
|
|
1069
982
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::DequeueStreamFrames "
|
|
1070
983
|
"HalfCloseDequeued stream_id = "
|
|
1071
984
|
<< stream->GetStreamId();
|
|
1072
|
-
stream->
|
|
1073
|
-
|
|
1074
|
-
if (stream->IsTrailingMetadataReceived()) {
|
|
1075
|
-
CloseStream(*stream, CloseStreamArgs{/*close_reads=*/true,
|
|
1076
|
-
/*close_writes=*/true});
|
|
1077
|
-
}
|
|
985
|
+
HandleStreamStateChange(*stream, stream->OnHalfCloseSent());
|
|
1078
986
|
}
|
|
1079
987
|
if (result.IsResetStreamDequeued()) {
|
|
1080
988
|
GRPC_HTTP2_CLIENT_DLOG
|
|
1081
989
|
<< "Http2ClientTransport::DequeueStreamFrames ResetStreamDequeued "
|
|
1082
990
|
"stream_id = "
|
|
1083
991
|
<< stream->GetStreamId();
|
|
1084
|
-
stream->
|
|
1085
|
-
CloseStream(*stream, CloseStreamArgs{/*close_reads=*/true,
|
|
1086
|
-
/*close_writes=*/true});
|
|
992
|
+
HandleStreamStateChange(*stream, stream->OnResetSent());
|
|
1087
993
|
}
|
|
1088
994
|
|
|
1089
|
-
// Update the write_bytes_remaining_ based on the bytes consumed
|
|
1090
|
-
// in the current dequeue.
|
|
1091
|
-
// Note: We do tend to overestimate the bytes consumed here. This may result
|
|
1092
|
-
// in sending less data than target_write_size_.
|
|
1093
|
-
|
|
1094
995
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::DequeueStreamFrames "
|
|
1095
996
|
"After dequeue: "
|
|
1096
997
|
<< write_cycle.DebugString()
|
|
@@ -1126,10 +1027,6 @@ auto Http2ClientTransport::MultiplexerLoop() {
|
|
|
1126
1027
|
}
|
|
1127
1028
|
NotifyUrgentFramesWriteDone();
|
|
1128
1029
|
WriteCycle& write_cycle = transport_write_context_.GetWriteCycle();
|
|
1129
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
1130
|
-
<< "Http2ClientTransport::MultiplexerLoop "
|
|
1131
|
-
<< "Starting to iterate over writable stream list "
|
|
1132
|
-
<< write_cycle.DebugString();
|
|
1133
1030
|
// Drain all the writable streams till we have written
|
|
1134
1031
|
// max_write_size_ bytes of data or there is no more data to send.
|
|
1135
1032
|
// In some cases, we may write more than max_write_size_ bytes(like
|
|
@@ -1163,9 +1060,7 @@ auto Http2ClientTransport::MultiplexerLoop() {
|
|
|
1163
1060
|
"Failed to assign stream id and add to stream list for"
|
|
1164
1061
|
" stream: "
|
|
1165
1062
|
<< stream.get() << " closing this stream.";
|
|
1166
|
-
|
|
1167
|
-
/*reset_stream_error_code=*/std::nullopt,
|
|
1168
|
-
CancelledServerMetadataFromStatus(status));
|
|
1063
|
+
HandleStreamStateChange(*stream, stream->ForceClose(status));
|
|
1169
1064
|
continue;
|
|
1170
1065
|
}
|
|
1171
1066
|
}
|
|
@@ -1214,6 +1109,9 @@ auto Http2ClientTransport::MultiplexerLoop() {
|
|
|
1214
1109
|
}
|
|
1215
1110
|
|
|
1216
1111
|
absl::Status Http2ClientTransport::InitializeStream(Stream& stream) {
|
|
1112
|
+
if (shutdown_tracker_.IsPartyShutdownInitiated()) {
|
|
1113
|
+
return absl::UnavailableError("Transport closed");
|
|
1114
|
+
}
|
|
1217
1115
|
absl::StatusOr<uint32_t> next_stream_id = NextStreamId();
|
|
1218
1116
|
if (!next_stream_id.ok()) {
|
|
1219
1117
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::InitializeStream "
|
|
@@ -1226,16 +1124,14 @@ absl::Status Http2ClientTransport::InitializeStream(Stream& stream) {
|
|
|
1226
1124
|
<< next_stream_id.value() << " to stream: " << &stream
|
|
1227
1125
|
<< ", allow_true_binary_metadata:"
|
|
1228
1126
|
<< settings_->peer().allow_true_binary_metadata();
|
|
1229
|
-
stream.InitializeClientStream(
|
|
1230
|
-
|
|
1231
|
-
settings_->acked().allow_true_binary_metadata());
|
|
1127
|
+
stream.InitializeClientStream(next_stream_id.value(),
|
|
1128
|
+
settings_->peer().allow_true_binary_metadata());
|
|
1232
1129
|
return absl::OkStatus();
|
|
1233
1130
|
}
|
|
1234
1131
|
|
|
1235
1132
|
void Http2ClientTransport::AddToStreamList(RefCountedPtr<Stream> stream) {
|
|
1236
|
-
bool should_wake_periodic_updates = false;
|
|
1237
1133
|
{
|
|
1238
|
-
MutexLock lock(
|
|
1134
|
+
MutexLock lock(transport_mutex_);
|
|
1239
1135
|
GRPC_DCHECK(stream != nullptr) << "stream is null";
|
|
1240
1136
|
GRPC_DCHECK_GT(stream->GetStreamId(), 0u) << "stream id is invalid";
|
|
1241
1137
|
GRPC_HTTP2_CLIENT_DLOG
|
|
@@ -1243,15 +1139,6 @@ void Http2ClientTransport::AddToStreamList(RefCountedPtr<Stream> stream) {
|
|
|
1243
1139
|
<< stream->GetStreamId();
|
|
1244
1140
|
const uint32_t stream_id = stream->GetStreamId();
|
|
1245
1141
|
stream_list_.emplace(stream_id, std::move(stream));
|
|
1246
|
-
// TODO(tjagtap) [PH2][P2][BDP] Remove this when the BDP code is done.
|
|
1247
|
-
if (GetActiveStreamCountLocked() == 1) {
|
|
1248
|
-
should_wake_periodic_updates = true;
|
|
1249
|
-
}
|
|
1250
|
-
}
|
|
1251
|
-
// TODO(tjagtap) [PH2][P2][BDP] Remove this when the BDP code is done.
|
|
1252
|
-
if (should_wake_periodic_updates) {
|
|
1253
|
-
// Release the lock before you wake up another promise on the party.
|
|
1254
|
-
WakeupPeriodicUpdatePromise();
|
|
1255
1142
|
}
|
|
1256
1143
|
}
|
|
1257
1144
|
|
|
@@ -1266,9 +1153,9 @@ auto Http2ClientTransport::WaitForSettingsTimeoutOnDone() {
|
|
|
1266
1153
|
return [self = RefAsSubclass<Http2ClientTransport>()](absl::Status status) {
|
|
1267
1154
|
if (!status.ok()) {
|
|
1268
1155
|
GRPC_UNUSED absl::Status result = self->HandleError(
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1156
|
+
/*stream=*/nullptr, Http2Status::Http2ConnectionError(
|
|
1157
|
+
Http2ErrorCode::kProtocolError,
|
|
1158
|
+
std::string(RFC9113::kSettingsTimeout)));
|
|
1272
1159
|
}
|
|
1273
1160
|
};
|
|
1274
1161
|
}
|
|
@@ -1308,35 +1195,36 @@ Http2ClientTransport::Http2ClientTransport(
|
|
|
1308
1195
|
event_engine_(std::move(event_engine)),
|
|
1309
1196
|
endpoint_(std::move(endpoint)),
|
|
1310
1197
|
settings_(MakeRefCounted<SettingsPromiseManager>(
|
|
1311
|
-
std::move(on_receive_settings))),
|
|
1198
|
+
kIsClient, std::move(on_receive_settings))),
|
|
1312
1199
|
next_stream_id_(/*Initial Stream ID*/ 1),
|
|
1313
1200
|
should_reset_ping_clock_(false),
|
|
1314
|
-
|
|
1315
|
-
|
|
1201
|
+
read_context_(MaxNewStreamsPerRead(channel_args), endpoint_, kIsClient,
|
|
1202
|
+
GetMaxSecurityFrameSize(channel_args),
|
|
1203
|
+
GetPingOnRstStreamPercent(channel_args, kIsClient)),
|
|
1316
1204
|
transport_write_context_(kIsClient),
|
|
1317
1205
|
ping_manager_(std::nullopt),
|
|
1318
1206
|
keepalive_manager_(std::nullopt),
|
|
1319
1207
|
goaway_manager_(GoawayInterfaceImpl::Make(this)),
|
|
1320
|
-
security_frame_handler_(MakeRefCounted<SecurityFrameHandler>()),
|
|
1321
1208
|
memory_owner_(channel_args.GetObject<ResourceQuota>()
|
|
1322
1209
|
->memory_quota()
|
|
1323
1210
|
->CreateMemoryOwner()),
|
|
1324
1211
|
flow_control_(
|
|
1325
|
-
|
|
1212
|
+
/*peer_name=*/read_context_.peer_string().as_string_view(),
|
|
1326
1213
|
channel_args.GetBool(GRPC_ARG_HTTP2_BDP_PROBE).value_or(true),
|
|
1327
1214
|
&memory_owner_),
|
|
1215
|
+
security_frame_handler_(MakeRefCounted<SecurityFrameHandler>()),
|
|
1328
1216
|
ztrace_collector_(std::make_shared<PromiseHttp2ZTraceCollector>()) {
|
|
1329
1217
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::Http2ClientTransport Begin";
|
|
1330
|
-
// Initialize the
|
|
1218
|
+
// Initialize the transport party and write party.
|
|
1331
1219
|
RefCountedPtr<Arena> party_arena = SimpleArenaAllocator(0)->MakeArena();
|
|
1332
1220
|
party_arena->SetContext<EventEngine>(event_engine_.get());
|
|
1333
|
-
|
|
1221
|
+
transport_party_ = Party::Make(std::move(party_arena));
|
|
1334
1222
|
|
|
1335
1223
|
InitLocalSettings(settings_->mutable_local(), /*is_client=*/kIsClient);
|
|
1336
1224
|
TransportChannelArgs args;
|
|
1337
1225
|
ReadChannelArgs(channel_args, args);
|
|
1338
1226
|
|
|
1339
|
-
ping_manager_.emplace(channel_args, args.ping_timeout,
|
|
1227
|
+
ping_manager_.emplace(channel_args, kIsClient, args.ping_timeout,
|
|
1340
1228
|
PingSystemInterfaceImpl::Make(this), event_engine_);
|
|
1341
1229
|
|
|
1342
1230
|
// The keepalive loop is only spawned if the keepalive time is not infinity.
|
|
@@ -1355,19 +1243,25 @@ Http2ClientTransport::Http2ClientTransport(
|
|
|
1355
1243
|
void Http2ClientTransport::SpawnTransportLoops() {
|
|
1356
1244
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::SpawnTransportLoops Begin";
|
|
1357
1245
|
MaybeSpawnKeepaliveLoop();
|
|
1358
|
-
SpawnGuardedTransportParty(
|
|
1359
|
-
"FlowControlPeriodicUpdateLoop",
|
|
1360
|
-
UntilTransportClosed(FlowControlPeriodicUpdateLoop()));
|
|
1361
|
-
|
|
1362
1246
|
if (!TriggerWriteCycleOrHandleError()) {
|
|
1363
1247
|
return;
|
|
1364
1248
|
}
|
|
1365
1249
|
// For Client, write happens before read. So MultiplexerLoop is spawned first.
|
|
1366
1250
|
// ReadLoop is spawned after the first write.
|
|
1367
1251
|
// For Server, read happens before write. So ReadLoop is spawned first.
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1252
|
+
SpawnGuardedTransportParty(
|
|
1253
|
+
"MultiplexerLoop",
|
|
1254
|
+
|
|
1255
|
+
[self = RefAsSubclass<Http2ClientTransport>()]() {
|
|
1256
|
+
return self->UntilTransportClosed(self->MultiplexerLoop());
|
|
1257
|
+
});
|
|
1258
|
+
if (flow_control_.bdp_probe()) {
|
|
1259
|
+
SpawnGuardedTransportParty(
|
|
1260
|
+
"BdpLoop", [self = RefAsSubclass<Http2ClientTransport>()]() {
|
|
1261
|
+
return self->UntilTransportClosed(self->BdpLoop());
|
|
1262
|
+
});
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1371
1265
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::SpawnTransportLoops End";
|
|
1372
1266
|
}
|
|
1373
1267
|
|
|
@@ -1379,10 +1273,8 @@ void Http2ClientTransport::ReadChannelArgs(const ChannelArgs& channel_args,
|
|
|
1379
1273
|
|
|
1380
1274
|
// Assign the channel args to the member variables.
|
|
1381
1275
|
keepalive_time_ = args.keepalive_time;
|
|
1382
|
-
|
|
1276
|
+
read_context_.set_soft_limit(args.max_header_list_size_soft_limit);
|
|
1383
1277
|
keepalive_permit_without_calls_ = args.keepalive_permit_without_calls;
|
|
1384
|
-
enable_preferred_rx_crypto_frame_advertisement_ =
|
|
1385
|
-
args.enable_preferred_rx_crypto_frame_advertisement;
|
|
1386
1278
|
test_only_ack_pings_ = args.test_only_ack_pings;
|
|
1387
1279
|
|
|
1388
1280
|
if (args.initial_sequence_number > 0) {
|
|
@@ -1395,9 +1287,9 @@ void Http2ClientTransport::ReadChannelArgs(const ChannelArgs& channel_args,
|
|
|
1395
1287
|
}
|
|
1396
1288
|
}
|
|
1397
1289
|
|
|
1398
|
-
absl::Status Http2ClientTransport::HandleError(
|
|
1399
|
-
|
|
1400
|
-
|
|
1290
|
+
absl::Status Http2ClientTransport::HandleError(RefCountedPtr<Stream> stream,
|
|
1291
|
+
Http2Status status,
|
|
1292
|
+
DebugLocation whence) {
|
|
1401
1293
|
Http2Status::Http2ErrorType error_type = status.GetType();
|
|
1402
1294
|
GRPC_DCHECK(error_type != Http2Status::Http2ErrorType::kOk);
|
|
1403
1295
|
|
|
@@ -1405,13 +1297,13 @@ absl::Status Http2ClientTransport::HandleError(
|
|
|
1405
1297
|
GRPC_HTTP2_CLIENT_ERROR_DLOG
|
|
1406
1298
|
<< "Http2ClientTransport::HandleError Stream Error:"
|
|
1407
1299
|
<< status.DebugString();
|
|
1408
|
-
GRPC_DCHECK(
|
|
1300
|
+
GRPC_DCHECK(stream != nullptr);
|
|
1409
1301
|
// Passing a cancelled server metadata handle to propagate the error
|
|
1410
1302
|
// to the upper layers.
|
|
1411
1303
|
BeginCloseStream(
|
|
1412
|
-
|
|
1304
|
+
std::move(stream),
|
|
1413
1305
|
Http2ErrorCodeToFrameErrorCode(status.GetStreamErrorCode()),
|
|
1414
|
-
|
|
1306
|
+
status.GetAbslStreamError(), whence);
|
|
1415
1307
|
return absl::OkStatus();
|
|
1416
1308
|
} else if (error_type == Http2Status::Http2ErrorType::kConnectionError) {
|
|
1417
1309
|
GRPC_HTTP2_CLIENT_ERROR_DLOG
|
|
@@ -1424,196 +1316,157 @@ absl::Status Http2ClientTransport::HandleError(
|
|
|
1424
1316
|
GPR_UNREACHABLE_CODE(return absl::InternalError("Invalid error type"));
|
|
1425
1317
|
}
|
|
1426
1318
|
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
1450
|
-
<< "Http2ClientTransport::CloseStream for stream id: "
|
|
1451
|
-
<< stream.GetStreamId() << " closing stream for reads.";
|
|
1452
|
-
// If the stream is closed while reading HEADER/CONTINUATION frames, we
|
|
1453
|
-
// should still parse the enqueued buffer to maintain HPACK state between
|
|
1454
|
-
// peers.
|
|
1455
|
-
if (incoming_headers_.IsWaitingForContinuationFrame()) {
|
|
1456
|
-
Http2Status result = incoming_headers_.ParseAndDiscardHeaders(
|
|
1457
|
-
SliceBuffer(), /*is_end_headers=*/false, &stream,
|
|
1458
|
-
/*original_status=*/Http2Status::Ok(),
|
|
1459
|
-
settings_->acked().max_header_list_size());
|
|
1460
|
-
if (result.GetType() == Http2Status::Http2ErrorType::kConnectionError) {
|
|
1461
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
1462
|
-
<< "Http2ClientTransport::CloseStream for stream id: "
|
|
1463
|
-
<< stream.GetStreamId() << " failed to partially process header: "
|
|
1464
|
-
<< result.DebugString();
|
|
1465
|
-
close_transport_error.emplace(std::move(result));
|
|
1466
|
-
}
|
|
1467
|
-
}
|
|
1468
|
-
|
|
1469
|
-
stream_list_.erase(stream.GetStreamId());
|
|
1470
|
-
if (!close_transport_error.has_value() && CanCloseTransportLocked()) {
|
|
1471
|
-
// TODO(akshitpatel) : [PH2][P3] : Is kInternalError the right error
|
|
1472
|
-
// code to use here? IMO it should be kNoError.
|
|
1473
|
-
close_transport_error.emplace(Http2Status::Http2ConnectionError(
|
|
1474
|
-
Http2ErrorCode::kInternalError,
|
|
1475
|
-
std::string(RFC9113::kLastStreamClosed)));
|
|
1319
|
+
void Http2ClientTransport::HandleStreamStateChange(Stream& stream,
|
|
1320
|
+
StreamStateChange change) {
|
|
1321
|
+
if (change.reads_became_closed) {
|
|
1322
|
+
// If a stream is closing for reads and was actively waiting for a
|
|
1323
|
+
// continuation frame, parse the buffered HEADER/CONTINUATION frames
|
|
1324
|
+
if (read_context_.IsWaitingForContinuationFrame() &&
|
|
1325
|
+
read_context_.GetStreamId() == stream.GetStreamId()) {
|
|
1326
|
+
Http2Status result = read_context_.ParseAndDiscardHeaders(
|
|
1327
|
+
SliceBuffer(), /*is_end_headers=*/false,
|
|
1328
|
+
/*original_status=*/Http2Status::Ok(),
|
|
1329
|
+
settings_->acked().max_header_list_size());
|
|
1330
|
+
if (GPR_UNLIKELY(result.GetType() ==
|
|
1331
|
+
Http2Status::Http2ErrorType::kConnectionError)) {
|
|
1332
|
+
GRPC_HTTP2_CLIENT_DLOG
|
|
1333
|
+
<< "Http2ClientTransport::HandleStreamStateChange (DiscardHeaders) "
|
|
1334
|
+
"for "
|
|
1335
|
+
"stream id: "
|
|
1336
|
+
<< stream.GetStreamId()
|
|
1337
|
+
<< " failed to partially process header: " << result.DebugString();
|
|
1338
|
+
GRPC_UNUSED absl::Status unused =
|
|
1339
|
+
HandleError(/*stream=*/nullptr, std::move(result));
|
|
1340
|
+
return;
|
|
1476
1341
|
}
|
|
1477
1342
|
}
|
|
1478
1343
|
}
|
|
1344
|
+
if (change.stream_became_closed) {
|
|
1345
|
+
CleanupStream(stream);
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1349
|
+
void Http2ClientTransport::CleanupStream(Stream& stream) {
|
|
1350
|
+
{
|
|
1351
|
+
MutexLock lock(transport_mutex_);
|
|
1352
|
+
stream_list_.erase(stream.GetStreamId());
|
|
1353
|
+
}
|
|
1354
|
+
// Subtract any positive announced window delta of closed stream from the
|
|
1355
|
+
// transport flow control.
|
|
1356
|
+
stream.GetStreamFlowControl().OnStreamClosed();
|
|
1357
|
+
}
|
|
1479
1358
|
|
|
1480
|
-
if (close_transport_error.has_value()) {
|
|
1481
|
-
GRPC_UNUSED absl::Status status = HandleError(
|
|
1482
|
-
/*stream_id=*/std::nullopt, std::move(*close_transport_error));
|
|
1483
|
-
}
|
|
1484
|
-
}
|
|
1485
|
-
|
|
1486
|
-
// This function is idempotent and MUST be called from the transport party.
|
|
1487
|
-
// All the scenarios that can lead to this function being called are:
|
|
1488
|
-
// 1. Reading a RST stream frame: In this case, the stream is immediately
|
|
1489
|
-
// closed for reads and writes and removed from the stream_list_.
|
|
1490
|
-
// 2. Reading a Trailing Metadata frame: There are two possible scenarios:
|
|
1491
|
-
// a. The stream is closed for writes: Close the stream for reads and writes
|
|
1492
|
-
// and remove the stream from the stream_list_.
|
|
1493
|
-
// b. The stream is NOT closed for writes: Stream is kept open for reads and
|
|
1494
|
-
// writes. CallHandler OnDone will trigger sending a half close frame. If
|
|
1495
|
-
// before the multiplexer loop triggers sending a half close a RST stream
|
|
1496
|
-
// is read, the stream is closed for reads and writes immediately and the
|
|
1497
|
-
// half close is discarded. If no RST stream is read, the stream is closed
|
|
1498
|
-
// for reads and writes upon sending the half close frame from the
|
|
1499
|
-
// multiplexer loop.
|
|
1500
|
-
// 3. Hitting error condition in the transport: In this case, RST stream is
|
|
1501
|
-
// enqueued and the stream is closed for reads immediately. This implies we
|
|
1502
|
-
// reduce the number of active streams inline. When multiplexer loop
|
|
1503
|
-
// processes the RST stream frame, the stream ref will dropped. The other
|
|
1504
|
-
// stream ref will be dropped when CallHandler's OnDone is executed causing
|
|
1505
|
-
// the stream to be destroyed. CallHandlers OnDone also tries to enqueue a
|
|
1506
|
-
// RST stream frame. This is a no-op at this point.
|
|
1507
|
-
// 4. Application abort: In this case, CallHandler OnDone will enqueue RST
|
|
1508
|
-
// stream frame to the stream data queue. The multiplexer loop will send the
|
|
1509
|
-
// reset stream frame and close the stream from reads and writes.
|
|
1510
|
-
// 5. Transport close: This takes up the same path as case 3.
|
|
1511
|
-
// In all the above cases, trailing metadata is pushed to the call spine.
|
|
1512
|
-
// Note: The stream ref is held in atmost 3 places:
|
|
1513
|
-
// 1. stream_list_ : This is released when the stream is closed for reads.
|
|
1514
|
-
// 2. CallHandler OnDone : This is released when Trailing Metadata is pushed to
|
|
1515
|
-
// the call spine.
|
|
1516
|
-
// 3. List of writable streams : This is released after the final frame is
|
|
1517
|
-
// dequeued from the StreamDataQueue.
|
|
1518
1359
|
void Http2ClientTransport::BeginCloseStream(
|
|
1519
|
-
RefCountedPtr<Stream> stream,
|
|
1520
|
-
|
|
1521
|
-
|
|
1360
|
+
RefCountedPtr<Stream> stream, uint32_t reset_stream_error_code,
|
|
1361
|
+
absl::Status trailing_metadata_status, DebugLocation whence) {
|
|
1362
|
+
GRPC_DCHECK(!trailing_metadata_status.ok());
|
|
1522
1363
|
if (stream == nullptr) {
|
|
1523
1364
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::BeginCloseStream stream "
|
|
1524
1365
|
"is null reset_stream_error_code="
|
|
1525
|
-
<<
|
|
1526
|
-
? absl::StrCat(*reset_stream_error_code)
|
|
1527
|
-
: "nullopt")
|
|
1528
|
-
<< " metadata=" << metadata->DebugString();
|
|
1366
|
+
<< reset_stream_error_code;
|
|
1529
1367
|
return;
|
|
1530
1368
|
}
|
|
1531
1369
|
|
|
1532
1370
|
GRPC_HTTP2_CLIENT_DLOG
|
|
1533
1371
|
<< "Http2ClientTransport::BeginCloseStream for stream id: "
|
|
1534
|
-
<< stream->GetStreamId() << " error_code="
|
|
1535
|
-
<<
|
|
1536
|
-
|
|
1537
|
-
: "nullopt")
|
|
1538
|
-
<< " ServerMetadata=" << metadata->DebugString()
|
|
1539
|
-
<< " location=" << whence.file() << ":" << whence.line();
|
|
1540
|
-
|
|
1541
|
-
bool close_reads = false;
|
|
1542
|
-
bool close_writes = false;
|
|
1543
|
-
if (metadata->get(GrpcCallWasCancelled())) {
|
|
1544
|
-
if (!reset_stream_error_code) {
|
|
1545
|
-
// Callers taking this path:
|
|
1546
|
-
// 1. Reading a RST stream frame (will not send any frame out).
|
|
1547
|
-
// 2. Closing a stream before initial metadata is sent.
|
|
1548
|
-
close_reads = true;
|
|
1549
|
-
close_writes = true;
|
|
1550
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
1551
|
-
<< "Http2ClientTransport::BeginCloseStream for stream id: "
|
|
1552
|
-
<< stream->GetStreamId() << " close_reads= " << close_reads
|
|
1553
|
-
<< " close_writes= " << close_writes;
|
|
1554
|
-
} else {
|
|
1555
|
-
// Callers taking this path:
|
|
1556
|
-
// 1. Processing Error in transport (will send reset stream from here).
|
|
1557
|
-
absl::StatusOr<StreamWritabilityUpdate> enqueue_result =
|
|
1558
|
-
stream->EnqueueResetStream(reset_stream_error_code.value());
|
|
1559
|
-
GRPC_HTTP2_CLIENT_DLOG << "Enqueued ResetStream with error code="
|
|
1560
|
-
<< reset_stream_error_code.value()
|
|
1561
|
-
<< " status=" << enqueue_result.status();
|
|
1562
|
-
if (enqueue_result.ok()) {
|
|
1563
|
-
GRPC_UNUSED absl::Status status =
|
|
1564
|
-
MaybeAddStreamToWritableStreamList(stream, enqueue_result.value());
|
|
1565
|
-
}
|
|
1566
|
-
close_reads = true;
|
|
1567
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
1568
|
-
<< "Http2ClientTransport::BeginCloseStream for stream id: "
|
|
1569
|
-
<< stream->GetStreamId() << " close_reads= " << close_reads
|
|
1570
|
-
<< " close_writes= " << close_writes;
|
|
1571
|
-
}
|
|
1572
|
-
} else {
|
|
1573
|
-
// Callers taking this path:
|
|
1574
|
-
// 1. Reading Trailing Metadata (MAY send half close from OnDone).
|
|
1575
|
-
// If a half close frame has already been sent, we should close the stream
|
|
1576
|
-
// for reads and writes.
|
|
1577
|
-
if (stream->IsHalfClosedLocal() || stream->IsStreamClosed()) {
|
|
1578
|
-
close_reads = true;
|
|
1579
|
-
close_writes = true;
|
|
1580
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
1581
|
-
<< "Http2ClientTransport::BeginCloseStream for stream id: "
|
|
1582
|
-
<< stream->GetStreamId() << " close_reads= " << close_reads
|
|
1583
|
-
<< " close_writes= " << close_writes;
|
|
1584
|
-
}
|
|
1585
|
-
}
|
|
1586
|
-
|
|
1587
|
-
if (close_reads || close_writes) {
|
|
1588
|
-
CloseStream(*stream, CloseStreamArgs{close_reads, close_writes}, whence);
|
|
1589
|
-
}
|
|
1372
|
+
<< stream->GetStreamId() << " error_code=" << reset_stream_error_code
|
|
1373
|
+
<< " status=" << trailing_metadata_status << " location=" << whence.file()
|
|
1374
|
+
<< ":" << whence.line();
|
|
1590
1375
|
|
|
1591
|
-
//
|
|
1592
|
-
|
|
1376
|
+
// Enqueue RST_STREAM.
|
|
1377
|
+
EnqueueResetStreamFromTransportParty(stream, reset_stream_error_code);
|
|
1378
|
+
HandleStreamStateChange(
|
|
1379
|
+
*stream, stream->OnInitiateReset(std::move(trailing_metadata_status)));
|
|
1380
|
+
}
|
|
1593
1381
|
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
//
|
|
1606
|
-
|
|
1382
|
+
void Http2ClientTransport::EnqueueResetStreamFromTransportParty(
|
|
1383
|
+
RefCountedPtr<Stream> stream, const uint32_t reset_stream_error_code) {
|
|
1384
|
+
const absl::StatusOr<StreamWritabilityUpdate> enqueue_result =
|
|
1385
|
+
stream->EnqueueResetStream(reset_stream_error_code);
|
|
1386
|
+
GRPC_HTTP2_CLIENT_DLOG << "Enqueued ResetStream with error code="
|
|
1387
|
+
<< reset_stream_error_code
|
|
1388
|
+
<< " status=" << enqueue_result.status();
|
|
1389
|
+
if (GPR_LIKELY(enqueue_result.ok())) {
|
|
1390
|
+
GRPC_UNUSED absl::Status status = MaybeAddStreamToWritableStreamList(
|
|
1391
|
+
std::move(stream), enqueue_result.value());
|
|
1392
|
+
}
|
|
1393
|
+
// This function could be hit multiple times for the same stream. So there is
|
|
1394
|
+
// a chance that we may overcount induced frames.
|
|
1395
|
+
// It is a bug, but not worth fixing for now.
|
|
1396
|
+
read_context_.OnResetFrameEnqueued(reset_stream_error_code);
|
|
1607
1397
|
}
|
|
1608
1398
|
|
|
1609
1399
|
void Http2ClientTransport::CloseTransport() {
|
|
1610
1400
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::CloseTransport";
|
|
1611
1401
|
|
|
1612
|
-
|
|
1402
|
+
shutdown_tracker_.MarkShutdownComplete();
|
|
1613
1403
|
settings_->HandleTransportShutdown(event_engine_.get());
|
|
1614
1404
|
|
|
1615
|
-
// This is the only place where the
|
|
1616
|
-
|
|
1405
|
+
// This is the only place where the transport_party_ is reset.
|
|
1406
|
+
transport_party_.reset();
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
void Http2ClientTransport::CloseAllActiveStreams(
|
|
1410
|
+
absl::flat_hash_map<uint32_t, RefCountedPtr<Stream>>&& stream_list,
|
|
1411
|
+
const Http2Status& http2_status, DebugLocation whence) {
|
|
1412
|
+
// Close all the streams that are still active on the transport.
|
|
1413
|
+
absl::flat_hash_map<uint32_t, RefCountedPtr<Stream>> stream_list_2;
|
|
1414
|
+
{
|
|
1415
|
+
MutexLock lock(transport_mutex_);
|
|
1416
|
+
stream_list_2 = std::move(stream_list_);
|
|
1417
|
+
stream_list_.clear();
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::CloseAllActiveStreams "
|
|
1421
|
+
"Cleaning up call stacks";
|
|
1422
|
+
|
|
1423
|
+
auto close_streams =
|
|
1424
|
+
[&](const absl::flat_hash_map<uint32_t, RefCountedPtr<Stream>>& list) {
|
|
1425
|
+
for (const auto& pair : list) {
|
|
1426
|
+
RefCountedPtr<Stream> stream = pair.second;
|
|
1427
|
+
BeginCloseStream(std::move(stream),
|
|
1428
|
+
Http2ErrorCodeToFrameErrorCode(
|
|
1429
|
+
http2_status.GetConnectionErrorCode()),
|
|
1430
|
+
http2_status.GetAbslConnectionError(), whence);
|
|
1431
|
+
}
|
|
1432
|
+
};
|
|
1433
|
+
|
|
1434
|
+
close_streams(stream_list); // Snapshot 1
|
|
1435
|
+
close_streams(stream_list_2); // Snapshot 2
|
|
1436
|
+
}
|
|
1437
|
+
|
|
1438
|
+
auto Http2ClientTransport::CloseTransportFactory(
|
|
1439
|
+
absl::flat_hash_map<uint32_t, RefCountedPtr<Stream>> stream_list,
|
|
1440
|
+
Http2Status http2_status, DebugLocation whence) {
|
|
1441
|
+
return [self = RefAsSubclass<Http2ClientTransport>(),
|
|
1442
|
+
stream_list = std::move(stream_list),
|
|
1443
|
+
http2_status = std::move(http2_status), whence]() mutable {
|
|
1444
|
+
self->shutdown_tracker_.InitiatePartyShutdown();
|
|
1445
|
+
self->security_frame_handler_->OnTransportClosed();
|
|
1446
|
+
|
|
1447
|
+
self->CloseAllActiveStreams(std::move(stream_list), http2_status, whence);
|
|
1448
|
+
|
|
1449
|
+
// RFC9113 : A GOAWAY frame might not immediately precede closing of
|
|
1450
|
+
// the connection; a receiver of a GOAWAY that has no more use for the
|
|
1451
|
+
// connection SHOULD still send a GOAWAY frame before terminating the
|
|
1452
|
+
// connection.
|
|
1453
|
+
return Map(
|
|
1454
|
+
// TODO(akshitpatel) : [PH2][P4] : This is creating a copy of
|
|
1455
|
+
// the debug data. Verify if this is causing a performance
|
|
1456
|
+
// issue.
|
|
1457
|
+
Race(AssertResultType<absl::Status>(self->goaway_manager_.RequestGoaway(
|
|
1458
|
+
http2_status.GetConnectionErrorCode(),
|
|
1459
|
+
/*debug_data=*/
|
|
1460
|
+
Slice::FromCopiedString(
|
|
1461
|
+
http2_status.GetAbslConnectionError().message()),
|
|
1462
|
+
kLastIncomingStreamIdClient, /*immediate=*/true)),
|
|
1463
|
+
// Failsafe to close.
|
|
1464
|
+
Sleep(Duration::Seconds(kGoawaySendTimeoutSeconds))),
|
|
1465
|
+
[self](auto) mutable {
|
|
1466
|
+
self->CloseTransport();
|
|
1467
|
+
return Empty{};
|
|
1468
|
+
});
|
|
1469
|
+
};
|
|
1617
1470
|
}
|
|
1618
1471
|
|
|
1619
1472
|
void Http2ClientTransport::MaybeSpawnCloseTransport(Http2Status http2_status,
|
|
@@ -1627,14 +1480,14 @@ void Http2ClientTransport::MaybeSpawnCloseTransport(Http2Status http2_status,
|
|
|
1627
1480
|
// in the MPSC to be drained and block any additional frames from being
|
|
1628
1481
|
// enqueued. Additionally this also prevents additional frames with non-zero
|
|
1629
1482
|
// stream_ids from being processed by the read loop.
|
|
1630
|
-
ReleasableMutexLock lock(
|
|
1631
|
-
if (
|
|
1483
|
+
ReleasableMutexLock lock(transport_mutex_);
|
|
1484
|
+
if (shutdown_tracker_.IsShutdownInitiated(transport_mutex_)) {
|
|
1632
1485
|
lock.Release();
|
|
1633
1486
|
return;
|
|
1634
1487
|
}
|
|
1635
1488
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::MaybeSpawnCloseTransport "
|
|
1636
1489
|
"Initiating transport close";
|
|
1637
|
-
|
|
1490
|
+
shutdown_tracker_.InitiateShutdown(transport_mutex_);
|
|
1638
1491
|
absl::flat_hash_map<uint32_t, RefCountedPtr<Stream>> stream_list =
|
|
1639
1492
|
std::move(stream_list_);
|
|
1640
1493
|
stream_list_.clear();
|
|
@@ -1644,71 +1497,14 @@ void Http2ClientTransport::MaybeSpawnCloseTransport(Http2Status http2_status,
|
|
|
1644
1497
|
lock.Release();
|
|
1645
1498
|
|
|
1646
1499
|
SpawnInfallibleTransportParty(
|
|
1647
|
-
"CloseTransport",
|
|
1648
|
-
|
|
1649
|
-
http2_status = std::move(http2_status)]() mutable {
|
|
1650
|
-
self->security_frame_handler_->OnTransportClosed();
|
|
1651
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
1652
|
-
<< "Http2ClientTransport::MaybeSpawnCloseTransport "
|
|
1653
|
-
"Cleaning up call stacks";
|
|
1654
|
-
// Clean up the call stacks for all active streams.
|
|
1655
|
-
for (const auto& pair : stream_list) {
|
|
1656
|
-
// There is no merit in transitioning the stream to
|
|
1657
|
-
// closed state here as the subsequent lookups would
|
|
1658
|
-
// fail. Also, as this is running on the transport
|
|
1659
|
-
// party, there would not be concurrent access to the stream.
|
|
1660
|
-
RefCountedPtr<Stream> stream = pair.second;
|
|
1661
|
-
self->BeginCloseStream(std::move(stream),
|
|
1662
|
-
Http2ErrorCodeToFrameErrorCode(
|
|
1663
|
-
http2_status.GetConnectionErrorCode()),
|
|
1664
|
-
CancelledServerMetadataFromStatus(
|
|
1665
|
-
http2_status.GetAbslConnectionError()));
|
|
1666
|
-
}
|
|
1667
|
-
|
|
1668
|
-
// RFC9113 : A GOAWAY frame might not immediately precede closing of
|
|
1669
|
-
// the connection; a receiver of a GOAWAY that has no more use for the
|
|
1670
|
-
// connection SHOULD still send a GOAWAY frame before terminating the
|
|
1671
|
-
// connection.
|
|
1672
|
-
return Map(
|
|
1673
|
-
// TODO(akshitpatel) : [PH2][P4] : This is creating a copy of
|
|
1674
|
-
// the debug data. Verify if this is causing a performance
|
|
1675
|
-
// issue.
|
|
1676
|
-
Race(AssertResultType<absl::Status>(
|
|
1677
|
-
self->goaway_manager_.RequestGoaway(
|
|
1678
|
-
http2_status.GetConnectionErrorCode(),
|
|
1679
|
-
/*debug_data=*/
|
|
1680
|
-
Slice::FromCopiedString(
|
|
1681
|
-
http2_status.GetAbslConnectionError().message()),
|
|
1682
|
-
kLastIncomingStreamIdClient, /*immediate=*/true)),
|
|
1683
|
-
// Failsafe to close the transport if goaway is not
|
|
1684
|
-
// sent within kGoawaySendTimeoutSeconds seconds.
|
|
1685
|
-
Sleep(Duration::Seconds(kGoawaySendTimeoutSeconds))),
|
|
1686
|
-
[self](auto) mutable {
|
|
1687
|
-
self->CloseTransport();
|
|
1688
|
-
return Empty{};
|
|
1689
|
-
});
|
|
1690
|
-
;
|
|
1691
|
-
});
|
|
1692
|
-
}
|
|
1693
|
-
|
|
1694
|
-
bool Http2ClientTransport::CanCloseTransportLocked() const {
|
|
1695
|
-
// If there are no more streams and next stream id is greater than the
|
|
1696
|
-
// max allowed stream id, then no more streams can be created and it is
|
|
1697
|
-
// safe to close the transport.
|
|
1698
|
-
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::CanCloseTransportLocked "
|
|
1699
|
-
"GetActiveStreamCountLocked="
|
|
1700
|
-
<< GetActiveStreamCountLocked()
|
|
1701
|
-
<< " PeekNextStreamId=" << PeekNextStreamId()
|
|
1702
|
-
<< " GetMaxAllowedStreamId="
|
|
1703
|
-
<< GetMaxAllowedStreamId();
|
|
1704
|
-
return GetActiveStreamCountLocked() == 0 &&
|
|
1705
|
-
PeekNextStreamId() > GetMaxAllowedStreamId();
|
|
1500
|
+
"CloseTransport", CloseTransportFactory(std::move(stream_list),
|
|
1501
|
+
std::move(http2_status), whence));
|
|
1706
1502
|
}
|
|
1707
1503
|
|
|
1708
1504
|
Http2ClientTransport::~Http2ClientTransport() {
|
|
1709
1505
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::~Http2ClientTransport Begin";
|
|
1710
1506
|
GRPC_DCHECK(stream_list_.empty());
|
|
1711
|
-
GRPC_DCHECK(
|
|
1507
|
+
GRPC_DCHECK(transport_party_ == nullptr);
|
|
1712
1508
|
memory_owner_.Reset();
|
|
1713
1509
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::~Http2ClientTransport End";
|
|
1714
1510
|
}
|
|
@@ -1726,11 +1522,13 @@ void Http2ClientTransport::SpawnAddChannelzData(RefCountedPtr<Party> party,
|
|
|
1726
1522
|
.Set("keepalive_time", self->keepalive_time_)
|
|
1727
1523
|
.Set("keepalive_permit_without_calls",
|
|
1728
1524
|
self->keepalive_permit_without_calls_)
|
|
1525
|
+
.Set("max_requests_per_read",
|
|
1526
|
+
self->read_context_.max_new_streams_per_read_cycle())
|
|
1729
1527
|
.Set("settings", self->settings_->ChannelzProperties())
|
|
1730
1528
|
.Set("flow_control",
|
|
1731
1529
|
self->flow_control_.stats().ChannelzProperties()));
|
|
1732
|
-
self->
|
|
1733
|
-
|
|
1530
|
+
self->transport_party_->ExportToChannelz("Http2ClientTransport Party",
|
|
1531
|
+
sink);
|
|
1734
1532
|
GRPC_HTTP2_CLIENT_DLOG
|
|
1735
1533
|
<< "Http2ClientTransport::SpawnAddChannelzData End";
|
|
1736
1534
|
return Empty{};
|
|
@@ -1744,10 +1542,11 @@ void Http2ClientTransport::AddData(channelz::DataSink sink) {
|
|
|
1744
1542
|
sink = std::move(sink)]() mutable {
|
|
1745
1543
|
RefCountedPtr<Party> party = nullptr;
|
|
1746
1544
|
{
|
|
1747
|
-
MutexLock lock(
|
|
1748
|
-
if (GPR_LIKELY(!self->
|
|
1749
|
-
|
|
1750
|
-
|
|
1545
|
+
MutexLock lock(self->transport_mutex_);
|
|
1546
|
+
if (GPR_LIKELY(!self->shutdown_tracker_.IsShutdownInitiated(
|
|
1547
|
+
self->transport_mutex_))) {
|
|
1548
|
+
GRPC_DCHECK(self->transport_party_ != nullptr);
|
|
1549
|
+
party = self->transport_party_;
|
|
1751
1550
|
} else {
|
|
1752
1551
|
GRPC_HTTP2_CLIENT_DLOG
|
|
1753
1552
|
<< "Http2ClientTransport::AddData Transport is closed.";
|
|
@@ -1777,8 +1576,8 @@ RefCountedPtr<channelz::SocketNode> Http2ClientTransport::GetSocketNode()
|
|
|
1777
1576
|
|
|
1778
1577
|
absl::StatusOr<uint32_t> Http2ClientTransport::NextStreamId() {
|
|
1779
1578
|
if (next_stream_id_ > GetMaxAllowedStreamId()) {
|
|
1780
|
-
// TODO(tjagtap) : [PH2][
|
|
1781
|
-
// ids
|
|
1579
|
+
// TODO(tjagtap) : [PH2][P2] : Handle case if transport runs out of stream
|
|
1580
|
+
// ids. Similar check is there in the same function. Check what to do.
|
|
1782
1581
|
// RFC9113 : Stream identifiers cannot be reused. Long-lived connections
|
|
1783
1582
|
// can result in an endpoint exhausting the available range of stream
|
|
1784
1583
|
// identifiers. A client that is unable to establish a new stream
|
|
@@ -1796,7 +1595,7 @@ absl::StatusOr<uint32_t> Http2ClientTransport::NextStreamId() {
|
|
|
1796
1595
|
// this for incoming streams only. If a server receives more
|
|
1797
1596
|
// streams from a client than is allowed by the clients settings,
|
|
1798
1597
|
// whether or not we should fail is debatable.
|
|
1799
|
-
MutexLock lock(
|
|
1598
|
+
MutexLock lock(transport_mutex_);
|
|
1800
1599
|
if (GetActiveStreamCountLocked() >=
|
|
1801
1600
|
settings_->peer().max_concurrent_streams()) {
|
|
1802
1601
|
return absl::ResourceExhaustedError("Reached max concurrent streams");
|
|
@@ -1824,23 +1623,23 @@ absl::Status Http2ClientTransport::MaybeAddStreamToWritableStreamList(
|
|
|
1824
1623
|
<< "Http2ClientTransport::MaybeAddStreamToWritableStreamList Stream "
|
|
1825
1624
|
"id: "
|
|
1826
1625
|
<< stream->GetStreamId() << " became writable";
|
|
1827
|
-
// TODO(akshitpatel) [Perf]: Might be worth exploring if this
|
|
1828
|
-
// should take a raw stream ptr and take a ref here.
|
|
1626
|
+
// TODO(akshitpatel) [PH2][P4][Perf]: Might be worth exploring if this
|
|
1627
|
+
// function should take a raw stream ptr and take a ref here.
|
|
1829
1628
|
absl::Status status =
|
|
1830
1629
|
writable_stream_list_.Enqueue(std::move(stream), result.priority);
|
|
1831
1630
|
if (!status.ok()) {
|
|
1832
1631
|
return HandleError(
|
|
1833
|
-
|
|
1632
|
+
/*stream=*/nullptr,
|
|
1834
1633
|
Http2Status::Http2ConnectionError(
|
|
1835
1634
|
Http2ErrorCode::kRefusedStream,
|
|
1836
|
-
|
|
1635
|
+
std::string(GrpcErrors::kFailedToEnqueueStream)));
|
|
1837
1636
|
}
|
|
1838
1637
|
}
|
|
1839
1638
|
return absl::OkStatus();
|
|
1840
1639
|
}
|
|
1841
1640
|
|
|
1842
1641
|
RefCountedPtr<Stream> Http2ClientTransport::LookupStream(uint32_t stream_id) {
|
|
1843
|
-
MutexLock lock(
|
|
1642
|
+
MutexLock lock(transport_mutex_);
|
|
1844
1643
|
auto it = stream_list_.find(stream_id);
|
|
1845
1644
|
if (it == stream_list_.end()) {
|
|
1846
1645
|
GRPC_HTTP2_CLIENT_DLOG
|
|
@@ -1932,14 +1731,10 @@ void Http2ClientTransport::SetMaxAllowedStreamId(
|
|
|
1932
1731
|
if (GPR_LIKELY(max_allowed_stream_id <= old_max_allowed_stream_id)) {
|
|
1933
1732
|
max_allowed_stream_id_ = max_allowed_stream_id;
|
|
1934
1733
|
} else {
|
|
1734
|
+
GRPC_DCHECK_LE(max_allowed_stream_id, old_max_allowed_stream_id);
|
|
1935
1735
|
LOG_IF(ERROR, max_allowed_stream_id > old_max_allowed_stream_id)
|
|
1936
1736
|
<< "Endpoints MUST NOT increase the value they send in the last "
|
|
1937
|
-
"stream "
|
|
1938
|
-
"identifier";
|
|
1939
|
-
GRPC_DCHECK_LE(max_allowed_stream_id, old_max_allowed_stream_id)
|
|
1940
|
-
<< "Endpoints MUST NOT increase the value they send in the last "
|
|
1941
|
-
"stream "
|
|
1942
|
-
"identifier";
|
|
1737
|
+
"stream identifier";
|
|
1943
1738
|
}
|
|
1944
1739
|
}
|
|
1945
1740
|
|
|
@@ -1968,7 +1763,7 @@ auto Http2ClientTransport::CallOutboundLoop(RefCountedPtr<Stream> stream) {
|
|
|
1968
1763
|
if (GPR_UNLIKELY(!enqueue_result.ok())) {
|
|
1969
1764
|
return enqueue_result.status();
|
|
1970
1765
|
}
|
|
1971
|
-
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport
|
|
1766
|
+
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::CallOutboundLoop "
|
|
1972
1767
|
"Enqueued Initial Metadata";
|
|
1973
1768
|
return MaybeAddStreamToWritableStreamList(std::move(stream),
|
|
1974
1769
|
enqueue_result.value());
|
|
@@ -1980,7 +1775,7 @@ auto Http2ClientTransport::CallOutboundLoop(RefCountedPtr<Stream> stream) {
|
|
|
1980
1775
|
if (GPR_UNLIKELY(!enqueue_result.ok())) {
|
|
1981
1776
|
return enqueue_result.status();
|
|
1982
1777
|
}
|
|
1983
|
-
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport
|
|
1778
|
+
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::CallOutboundLoop "
|
|
1984
1779
|
"Enqueued Half Closed";
|
|
1985
1780
|
return MaybeAddStreamToWritableStreamList(std::move(stream),
|
|
1986
1781
|
enqueue_result.value());
|
|
@@ -2004,15 +1799,31 @@ auto Http2ClientTransport::CallOutboundLoop(RefCountedPtr<Stream> stream) {
|
|
|
2004
1799
|
[send_half_closed = std::move(send_half_closed)]() mutable {
|
|
2005
1800
|
return std::move(send_half_closed)();
|
|
2006
1801
|
},
|
|
2007
|
-
[stream]() mutable {
|
|
1802
|
+
[this, stream]() mutable {
|
|
2008
1803
|
return Map(
|
|
2009
|
-
stream->GetCallHandler().WasCancelled(),
|
|
1804
|
+
stream->GetCallHandler().WasCancelled(),
|
|
1805
|
+
[this, stream](bool cancelled) mutable {
|
|
2010
1806
|
GRPC_HTTP2_CLIENT_DLOG
|
|
2011
1807
|
<< "Http2ClientTransport::CallOutboundLoop End with "
|
|
2012
1808
|
"cancelled="
|
|
2013
1809
|
<< cancelled;
|
|
2014
|
-
|
|
2015
|
-
|
|
1810
|
+
if (cancelled) {
|
|
1811
|
+
// Enqueue an RST_STREAM frame immediately upon call
|
|
1812
|
+
// cancellation rather than waiting for CallHandler::OnDone.
|
|
1813
|
+
absl::StatusOr<StreamWritabilityUpdate> enqueue_result =
|
|
1814
|
+
stream->EnqueueResetStream(
|
|
1815
|
+
static_cast<uint32_t>(Http2ErrorCode::kCancel));
|
|
1816
|
+
GRPC_HTTP2_CLIENT_DLOG
|
|
1817
|
+
<< "Enqueued ResetStream with error code="
|
|
1818
|
+
<< static_cast<uint32_t>(Http2ErrorCode::kCancel)
|
|
1819
|
+
<< " status=" << enqueue_result.status();
|
|
1820
|
+
if (GPR_LIKELY(enqueue_result.ok())) {
|
|
1821
|
+
GRPC_UNUSED absl::Status status =
|
|
1822
|
+
MaybeAddStreamToWritableStreamList(
|
|
1823
|
+
std::move(stream), enqueue_result.value());
|
|
1824
|
+
}
|
|
1825
|
+
}
|
|
1826
|
+
return absl::OkStatus();
|
|
2016
1827
|
});
|
|
2017
1828
|
}));
|
|
2018
1829
|
}
|
|
@@ -2112,7 +1923,7 @@ Http2ClientTransport::PingSystemInterfaceImpl::PingTimeout() {
|
|
|
2112
1923
|
// kRefusedStream doesn't seem to fit this case. We should revisit this
|
|
2113
1924
|
// and update the error code.
|
|
2114
1925
|
return Immediate(transport_->HandleError(
|
|
2115
|
-
|
|
1926
|
+
nullptr,
|
|
2116
1927
|
Http2Status::Http2ConnectionError(Http2ErrorCode::kRefusedStream,
|
|
2117
1928
|
GRPC_CHTTP2_PING_TIMEOUT_STR)));
|
|
2118
1929
|
}
|
|
@@ -2144,7 +1955,7 @@ Http2ClientTransport::KeepAliveInterfaceImpl::OnKeepAliveTimeout() {
|
|
|
2144
1955
|
// kRefusedStream doesn't seem to fit this case. We should revisit this
|
|
2145
1956
|
// and update the error code.
|
|
2146
1957
|
return Immediate(transport_->HandleError(
|
|
2147
|
-
|
|
1958
|
+
nullptr,
|
|
2148
1959
|
Http2Status::Http2ConnectionError(Http2ErrorCode::kRefusedStream,
|
|
2149
1960
|
GRPC_CHTTP2_KEEPALIVE_TIMEOUT_STR)));
|
|
2150
1961
|
}
|
|
@@ -2152,7 +1963,7 @@ Http2ClientTransport::KeepAliveInterfaceImpl::OnKeepAliveTimeout() {
|
|
|
2152
1963
|
bool Http2ClientTransport::KeepAliveInterfaceImpl::NeedToSendKeepAlivePing() {
|
|
2153
1964
|
bool need_to_send_ping = false;
|
|
2154
1965
|
{
|
|
2155
|
-
MutexLock lock(
|
|
1966
|
+
MutexLock lock(transport_->transport_mutex_);
|
|
2156
1967
|
need_to_send_ping = (transport_->keepalive_permit_without_calls_ ||
|
|
2157
1968
|
transport_->GetActiveStreamCountLocked() > 0);
|
|
2158
1969
|
}
|
|
@@ -2177,7 +1988,7 @@ uint32_t Http2ClientTransport::GoawayInterfaceImpl::GetLastAcceptedStreamId() {
|
|
|
2177
1988
|
// TODO(akshitpatel) : [PH2][P2] : Eventually there should be a separate ref
|
|
2178
1989
|
// counted struct/class passed to all the transport promises/members. This
|
|
2179
1990
|
// will help removing back references from the transport members to
|
|
2180
|
-
// transport and greatly
|
|
1991
|
+
// transport and greatly simplify the cleanup path. Need to do this for
|
|
2181
1992
|
// PingSystemInterfaceImpl, KeepAliveInterfaceImpl and GoawayInterfaceImpl.
|
|
2182
1993
|
|
|
2183
1994
|
} // namespace http2
|