grpc 1.71.0 → 1.72.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 +78 -75
- data/include/grpc/event_engine/memory_request.h +3 -3
- data/include/grpc/impl/channel_arg_names.h +70 -50
- data/include/grpc/support/workaround_list.h +1 -4
- data/src/core/{lib/transport → call}/call_arena_allocator.cc +1 -1
- data/src/core/{lib/transport → call}/call_arena_allocator.h +3 -3
- data/src/core/{lib/transport → call}/call_destination.h +4 -4
- data/src/core/{lib/transport → call}/call_filters.cc +2 -2
- data/src/core/{lib/transport → call}/call_filters.h +25 -6
- data/src/core/{lib/channel → call}/call_finalization.h +3 -3
- data/src/core/{lib/transport → call}/call_spine.cc +1 -1
- data/src/core/{lib/transport → call}/call_spine.h +68 -26
- data/src/core/{lib/transport → call}/call_state.cc +1 -1
- data/src/core/{lib/transport → call}/call_state.h +3 -3
- data/src/core/{lib/surface → call}/client_call.cc +9 -7
- data/src/core/{lib/surface → call}/client_call.h +4 -4
- data/src/core/{lib/transport → call}/custom_metadata.h +3 -3
- data/src/core/{lib/transport → call}/interception_chain.cc +5 -5
- data/src/core/{lib/transport → call}/interception_chain.h +7 -7
- data/src/core/{lib/transport → call}/message.cc +1 -1
- data/src/core/{lib/transport → call}/message.h +7 -3
- data/src/core/{lib/transport → call}/metadata.cc +2 -2
- data/src/core/{lib/transport → call}/metadata.h +4 -4
- data/src/core/{lib/transport → call}/metadata_batch.cc +1 -1
- data/src/core/{lib/transport → call}/metadata_batch.h +7 -7
- data/src/core/{lib/transport → call}/metadata_compression_traits.h +3 -3
- data/src/core/{lib/transport → call}/metadata_info.cc +27 -9
- data/src/core/{lib/transport → call}/metadata_info.h +4 -4
- data/src/core/{lib/transport → call}/parsed_metadata.cc +1 -1
- data/src/core/{lib/transport → call}/parsed_metadata.h +3 -3
- data/src/core/call/request_buffer.h +3 -3
- data/src/core/call/security_context.cc +125 -0
- data/src/core/call/security_context.h +114 -0
- data/src/core/{lib/surface → call}/server_call.cc +3 -3
- data/src/core/{lib/surface → call}/server_call.h +5 -5
- data/src/core/{lib/transport → call}/simple_slice_based_metadata.h +4 -4
- data/src/core/{lib/channel → call}/status_util.cc +1 -1
- data/src/core/{lib/channel → call}/status_util.h +3 -3
- data/src/core/client_channel/client_channel.cc +24 -16
- data/src/core/client_channel/client_channel.h +4 -3
- data/src/core/client_channel/client_channel_filter.cc +10 -20
- data/src/core/client_channel/client_channel_filter.h +1 -1
- data/src/core/client_channel/client_channel_internal.h +1 -1
- data/src/core/client_channel/config_selector.h +2 -2
- data/src/core/client_channel/direct_channel.cc +2 -2
- data/src/core/client_channel/dynamic_filters.cc +0 -1
- data/src/core/client_channel/dynamic_filters.h +0 -1
- data/src/core/client_channel/lb_metadata.h +1 -1
- data/src/core/client_channel/load_balanced_call_destination.cc +1 -1
- data/src/core/client_channel/load_balanced_call_destination.h +1 -1
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +43 -41
- data/src/core/client_channel/retry_filter_legacy_call_data.h +6 -6
- data/src/core/client_channel/retry_interceptor.h +1 -1
- data/src/core/client_channel/retry_service_config.cc +1 -1
- data/src/core/client_channel/retry_service_config.h +1 -1
- data/src/core/client_channel/retry_throttle.cc +30 -34
- data/src/core/client_channel/retry_throttle.h +10 -2
- data/src/core/client_channel/subchannel.cc +7 -8
- data/src/core/client_channel/subchannel.h +1 -2
- data/src/core/client_channel/subchannel_stream_client.cc +14 -11
- data/src/core/client_channel/subchannel_stream_client.h +2 -2
- data/src/core/config/core_configuration.h +2 -2
- data/src/core/credentials/call/call_credentials.h +157 -0
- data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.cc +4 -4
- data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.h +4 -4
- data/src/core/{lib/security/credentials/composite/composite_credentials.cc → credentials/call/composite/composite_call_credentials.cc} +4 -57
- data/src/core/credentials/call/composite/composite_call_credentials.h +82 -0
- data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.h +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.cc +6 -6
- data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.h +4 -4
- data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.cc +3 -2
- data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.h +4 -4
- data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +3 -2
- data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.h +6 -6
- data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.h +4 -4
- data/src/core/{lib/security/util → credentials/call}/json_util.cc +1 -1
- data/src/core/{lib/security/util → credentials/call}/json_util.h +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.h +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.cc +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.cc +3 -2
- data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.h +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.cc +4 -3
- data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.cc +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.h +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.cc +4 -4
- data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.h +3 -3
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_linux.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_no_op.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_windows.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_client_options.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.h +3 -3
- data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_server_options.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry_init.cc +21 -17
- data/src/core/credentials/transport/composite/composite_channel_credentials.cc +68 -0
- data/src/core/{lib/security/credentials/composite/composite_credentials.h → credentials/transport/composite/composite_channel_credentials.h} +6 -51
- data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.cc +4 -26
- data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.h +5 -37
- data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.cc +4 -4
- data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/google_default/credentials_generic.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.cc +31 -19
- data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.h +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.cc +2 -2
- data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.h +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.h +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.cc +4 -4
- data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.h +4 -4
- data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.cc +2 -2
- data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.h +3 -3
- data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.h +6 -6
- data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.cc +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.h +4 -4
- data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_factory.h +3 -3
- data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.cc +1 -1
- data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_match.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.h +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.h +3 -3
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.h +7 -7
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.h +3 -3
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots.h +3 -3
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_fallback.cc +1 -1
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.cc +2 -2
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.h +3 -3
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_windows.cc +1 -1
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.cc +3 -3
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.cc +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.h +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.cc +6 -6
- data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.h +6 -6
- data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.h +3 -3
- data/src/core/{lib/security/credentials/credentials.cc → credentials/transport/transport_credentials.cc} +1 -3
- data/src/core/{lib/security/credentials/credentials.h → credentials/transport/transport_credentials.h} +5 -121
- data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.cc +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.h +6 -6
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -1
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -5
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +2 -2
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +1 -1
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -2
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +1 -1
- data/src/core/ext/filters/http/message_compress/compression_filter.h +1 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
- data/src/core/ext/filters/rbac/rbac_filter.cc +2 -2
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +8 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -1
- data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +1 -3
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +58 -57
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame.cc +89 -68
- data/src/core/ext/transport/chttp2/transport/frame.h +37 -1
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +10 -8
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_status.h +52 -0
- data/src/core/ext/transport/chttp2/transport/internal.h +11 -14
- data/src/core/ext/transport/chttp2/transport/parsing.cc +36 -23
- data/src/core/ext/transport/chttp2/transport/writing.cc +15 -14
- data/src/core/ext/transport/inproc/inproc_transport.cc +1 -1
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +1 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +65 -65
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +28 -28
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +14 -14
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +6 -6
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +6 -6
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +133 -133
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +71 -71
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +26 -26
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +7 -7
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +216 -218
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +66 -66
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +27 -27
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +326 -328
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +103 -103
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +58 -58
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +14 -14
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +22 -24
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +29 -29
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +16 -16
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +186 -192
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +54 -54
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +54 -54
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +21 -21
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +59 -61
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +15 -15
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +100 -100
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +34 -34
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +12 -12
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +5 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +118 -118
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +39 -39
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +19 -19
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +27 -27
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +10 -10
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +12 -14
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +41 -41
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +16 -16
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +24 -24
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +139 -139
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +46 -46
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +61 -61
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +20 -20
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +3 -3
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +6 -6
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +33 -33
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +14 -14
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +12 -14
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +52 -54
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +10 -10
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +620 -626
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +215 -215
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +13 -13
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +3 -3
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +7 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +15 -15
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +7 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +7 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +16 -16
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +10 -10
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +306 -312
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +96 -96
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +61 -61
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +27 -27
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +19 -19
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +6 -6
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +25 -25
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +34 -34
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +3 -3
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +294 -294
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +105 -105
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +3 -3
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +23 -23
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +8 -8
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +84 -84
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +28 -28
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +87 -87
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +31 -31
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +24 -24
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +5 -5
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +130 -132
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +43 -43
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +6 -6
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +60 -60
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +26 -26
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +7 -7
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +6 -6
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +7 -7
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +11 -11
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +85 -89
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +20 -20
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +80 -83
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +27 -27
- data/src/core/ext/upb-gen/google/api/http.upb.h +51 -51
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +22 -22
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +327 -301
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +97 -85
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +1 -0
- data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +9 -11
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +9 -10
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +110 -113
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +25 -25
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +6 -6
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +21 -22
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +70 -72
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +17 -17
- data/src/core/ext/upb-gen/validate/validate.upb.h +368 -368
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +117 -117
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +9 -10
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +7 -7
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +12 -12
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +27 -30
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +7 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +3 -3
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +22 -24
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +3 -3
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +98 -87
- data/src/core/{lib/security/transport → filter/auth}/auth_filters.h +8 -7
- data/src/core/{lib/security/transport → filter/auth}/client_auth_filter.cc +7 -6
- data/src/core/{lib/security/transport → filter/auth}/server_auth_filter.cc +5 -4
- data/src/core/handshaker/handshaker.cc +0 -8
- data/src/core/handshaker/security/security_handshaker.cc +1 -1
- data/src/core/handshaker/security/security_handshaker.h +1 -1
- data/src/core/lib/channel/channel_args.h +49 -30
- data/src/core/lib/channel/channel_stack.h +1 -2
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/connected_channel.cc +2 -2
- data/src/core/lib/channel/promise_based_filter.h +3 -3
- data/src/core/lib/debug/trace_flags.cc +2 -4
- data/src/core/lib/debug/trace_flags.h +1 -2
- data/src/core/lib/event_engine/default_event_engine_factory.cc +6 -6
- data/src/core/lib/event_engine/default_event_engine_factory.h +1 -1
- data/src/core/lib/event_engine/extensions/iomgr_compatible.h +39 -0
- data/src/core/lib/event_engine/extensions/supports_win_sockets.h +48 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +0 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +1 -3
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +26 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +4 -0
- data/src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc +64 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +0 -11
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +10 -2
- data/src/core/lib/event_engine/shim.cc +9 -16
- data/src/core/lib/event_engine/shim.h +11 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +15 -7
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +2 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +11 -0
- data/src/core/lib/event_engine/windows/win_socket.h +3 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +5 -10
- data/src/core/lib/event_engine/windows/windows_engine.cc +42 -0
- data/src/core/lib/event_engine/windows/windows_engine.h +8 -2
- data/src/core/lib/event_engine/windows/windows_listener.cc +5 -6
- data/src/core/lib/event_engine/windows/windows_listener.h +9 -4
- data/src/core/lib/experiments/experiments.cc +174 -21
- data/src/core/lib/experiments/experiments.h +70 -13
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +43 -16
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +43 -8
- data/src/core/lib/iomgr/error.cc +27 -43
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +13 -1
- data/src/core/lib/iomgr/ev_poll_posix.cc +13 -0
- data/src/core/lib/iomgr/polling_entity.cc +2 -7
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
- data/src/core/lib/iomgr/socket_utils_posix.cc +22 -11
- data/src/core/lib/iomgr/socket_utils_posix.h +12 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +8 -9
- data/src/core/lib/iomgr/tcp_client_posix.cc +11 -15
- data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +58 -31
- data/src/core/lib/iomgr/tcp_posix.h +10 -2
- data/src/core/lib/iomgr/tcp_server_posix.cc +9 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +27 -16
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +10 -2
- data/src/core/lib/promise/all_ok.h +31 -0
- data/src/core/lib/promise/loop.h +8 -5
- data/src/core/lib/promise/map.h +65 -2
- data/src/core/lib/promise/party.h +5 -1
- data/src/core/lib/promise/poll.h +22 -20
- data/src/core/lib/promise/promise.h +2 -2
- data/src/core/lib/promise/status_flag.h +23 -11
- data/src/core/lib/security/authorization/evaluate_args.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.h +1 -1
- 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/slice/slice.h +6 -0
- data/src/core/lib/surface/call.cc +20 -18
- data/src/core/lib/surface/call_utils.cc +3 -3
- data/src/core/lib/surface/call_utils.h +3 -3
- data/src/core/lib/surface/channel.h +2 -2
- data/src/core/lib/surface/channel_init.h +2 -2
- data/src/core/lib/surface/completion_queue.cc +77 -17
- data/src/core/lib/surface/filter_stack_call.cc +40 -27
- data/src/core/lib/surface/filter_stack_call.h +1 -1
- data/src/core/lib/surface/init.cc +2 -3
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +27 -23
- data/src/core/lib/surface/legacy_channel.h +1 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/error_utils.cc +65 -11
- data/src/core/lib/transport/error_utils.h +2 -2
- data/src/core/lib/transport/status_conversion.cc +16 -14
- data/src/core/lib/transport/status_conversion.h +5 -4
- data/src/core/lib/transport/transport.h +5 -5
- data/src/core/lib/transport/transport_op_string.cc +1 -1
- data/src/core/load_balancing/delegating_helper.h +1 -1
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -1
- data/src/core/load_balancing/grpclb/grpclb.cc +1 -2
- data/src/core/load_balancing/pick_first/pick_first.cc +0 -955
- data/src/core/load_balancing/rls/rls.cc +31 -37
- data/src/core/load_balancing/weighted_target/weighted_target.cc +1 -1
- data/src/core/load_balancing/xds/cds.cc +3 -10
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +1 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -2
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +1 -3
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +4 -0
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +1 -1
- data/src/core/resolver/xds/xds_dependency_manager.cc +8 -3
- data/src/core/resolver/xds/xds_resolver.cc +2 -2
- data/src/core/server/server.cc +7 -4
- data/src/core/server/server.h +1 -1
- data/src/core/server/server_call_tracer_filter.cc +1 -1
- data/src/core/server/server_config_selector.h +1 -1
- data/src/core/server/server_config_selector_filter.cc +1 -1
- data/src/core/server/xds_server_config_fetcher.cc +5 -5
- data/src/core/service_config/service_config_channel_arg_filter.cc +1 -1
- data/src/core/telemetry/call_tracer.cc +2 -4
- data/src/core/telemetry/call_tracer.h +3 -3
- data/src/core/telemetry/metrics.cc +30 -12
- data/src/core/telemetry/metrics.h +15 -3
- data/src/core/telemetry/stats_data.cc +75 -2
- data/src/core/telemetry/stats_data.h +46 -4
- data/src/core/telemetry/tcp_tracer.h +90 -84
- data/src/core/{lib/security/context/security_context.cc → transport/auth_context.cc} +1 -96
- data/src/core/{lib/security/context/security_context.h → transport/auth_context.h} +6 -76
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/ssl_transport_security.cc +1 -1
- data/src/core/util/check_class_size.h +48 -0
- data/src/core/util/gcp_metadata_query.cc +1 -1
- data/src/core/util/http_client/httpcli.cc +3 -3
- data/src/core/util/http_client/httpcli_security_connector.cc +3 -3
- data/src/core/util/load_file.cc +26 -14
- data/src/core/util/status_helper.cc +86 -63
- data/src/core/util/status_helper.h +9 -26
- data/src/core/xds/grpc/certificate_provider_store.cc +1 -1
- data/src/core/xds/grpc/certificate_provider_store.h +3 -3
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +1 -1
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +10 -7
- data/src/core/xds/grpc/xds_certificate_provider.cc +1 -1
- data/src/core/xds/grpc/xds_certificate_provider.h +2 -2
- data/src/core/xds/grpc/xds_client_grpc.cc +7 -6
- data/src/core/xds/grpc/xds_client_grpc.h +4 -2
- data/src/core/xds/grpc/xds_cluster.h +3 -3
- data/src/core/xds/grpc/xds_cluster_parser.cc +3 -2
- data/src/core/xds/grpc/xds_http_fault_filter.cc +1 -1
- data/src/core/xds/grpc/xds_http_filter.h +1 -1
- data/src/core/xds/grpc/xds_http_filter_registry.h +1 -1
- data/src/core/xds/grpc/xds_route_config.h +1 -1
- data/src/core/xds/grpc/xds_route_config_parser.cc +1 -1
- data/src/core/xds/grpc/xds_route_config_parser.h +1 -1
- data/src/core/xds/grpc/xds_routing.h +1 -1
- data/src/core/xds/grpc/xds_server_grpc.cc +60 -48
- data/src/core/xds/grpc/xds_server_grpc.h +23 -13
- data/src/core/xds/grpc/xds_server_grpc_interface.h +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.cc +5 -5
- data/src/core/xds/grpc/xds_transport_grpc.h +5 -3
- data/src/core/xds/xds_client/lrs_client.cc +6 -5
- data/src/core/xds/xds_client/lrs_client.h +7 -7
- data/src/core/xds/xds_client/xds_bootstrap.h +16 -1
- data/src/core/xds/xds_client/xds_client.cc +25 -23
- data/src/core/xds/xds_client/xds_client.h +3 -1
- data/src/core/xds/xds_client/xds_resource_type.h +1 -2
- data/src/core/xds/xds_client/xds_transport.h +1 -1
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +20 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +3 -25
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +3 -7
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +13 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +1 -1
- data/third_party/upb/upb/base/internal/log2.h +3 -1
- data/third_party/upb/upb/base/string_view.h +10 -0
- data/third_party/upb/upb/hash/common.c +5 -1
- data/third_party/upb/upb/json/decode.c +2 -2
- data/third_party/upb/upb/json/decode.h +0 -1
- data/third_party/upb/upb/mem/alloc.h +5 -0
- data/third_party/upb/upb/mem/arena.c +296 -142
- data/third_party/upb/upb/mem/arena.h +47 -11
- data/third_party/upb/upb/mem/arena.hpp +4 -20
- data/third_party/upb/upb/mem/internal/arena.h +4 -6
- data/third_party/upb/upb/message/accessors.h +41 -0
- data/third_party/upb/upb/message/compat.c +11 -14
- data/third_party/upb/upb/message/compat.h +4 -3
- data/third_party/upb/upb/message/copy.c +35 -30
- data/third_party/upb/upb/message/internal/accessors.h +139 -10
- data/third_party/upb/upb/message/internal/extension.c +28 -25
- data/third_party/upb/upb/message/internal/extension.h +21 -5
- data/third_party/upb/upb/message/internal/iterator.c +58 -0
- data/third_party/upb/upb/message/internal/iterator.h +29 -0
- data/third_party/upb/upb/message/internal/map.h +2 -3
- data/third_party/upb/upb/message/internal/map_sorter.h +3 -2
- data/third_party/upb/upb/message/internal/message.c +48 -29
- data/third_party/upb/upb/message/internal/message.h +154 -24
- data/third_party/upb/upb/message/map_sorter.c +20 -8
- data/third_party/upb/upb/message/message.c +90 -38
- data/third_party/upb/upb/message/message.h +58 -2
- data/third_party/upb/upb/message/value.h +9 -0
- data/third_party/upb/upb/mini_descriptor/build_enum.c +1 -1
- data/third_party/upb/upb/mini_descriptor/decode.c +97 -136
- data/third_party/upb/upb/mini_descriptor/decode.h +4 -3
- data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +1 -1
- data/third_party/upb/upb/mini_table/extension_registry.c +24 -12
- data/third_party/upb/upb/mini_table/extension_registry.h +13 -6
- data/third_party/upb/upb/mini_table/message.c +21 -13
- data/third_party/upb/upb/port/atomic.h +134 -7
- data/third_party/upb/upb/port/def.inc +140 -38
- data/third_party/upb/upb/port/undef.inc +11 -1
- data/third_party/upb/upb/reflection/def.hpp +5 -1
- data/third_party/upb/upb/reflection/def_pool.c +10 -3
- data/third_party/upb/upb/reflection/descriptor_bootstrap.h +1 -1
- data/third_party/upb/upb/reflection/file_def.c +12 -5
- data/third_party/upb/upb/reflection/internal/def_builder.c +1 -1
- data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
- data/third_party/upb/upb/reflection/message.c +19 -16
- data/third_party/upb/upb/reflection/message.h +3 -1
- data/third_party/upb/upb/text/encode.c +1 -13
- data/third_party/upb/upb/text/internal/encode.c +25 -6
- data/third_party/upb/upb/text/internal/encode.h +4 -0
- data/third_party/upb/upb/wire/decode.c +60 -45
- data/third_party/upb/upb/wire/decode.h +4 -2
- data/third_party/upb/upb/wire/encode.c +77 -42
- data/third_party/upb/upb/wire/encode.h +2 -0
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +18 -20
- data/third_party/upb/upb/wire/internal/decoder.h +4 -11
- data/third_party/utf8_range/utf8_range.c +15 -275
- data/third_party/utf8_range/utf8_range_neon.inc +117 -0
- data/third_party/utf8_range/utf8_range_sse.inc +272 -0
- data/third_party/zlib/deflate.c +40 -15
- data/third_party/zlib/deflate.h +33 -2
- data/third_party/zlib/gzguts.h +2 -6
- data/third_party/zlib/inflate.c +1 -1
- data/third_party/zlib/inftrees.c +3 -3
- data/third_party/zlib/inftrees.h +2 -2
- data/third_party/zlib/trees.c +18 -4
- data/third_party/zlib/zconf.h +1 -9
- data/third_party/zlib/zlib.h +12 -12
- data/third_party/zlib/zutil.h +4 -25
- metadata +155 -145
- data/include/grpc/grpc_cronet.h +0 -37
- data/src/core/lib/transport/http2_errors.h +0 -43
- data/third_party/upb/upb/message/internal/compare_unknown.c +0 -289
- data/third_party/upb/upb/message/internal/compare_unknown.h +0 -49
@@ -119,6 +119,20 @@ Histogram_1800000_40 operator-(const Histogram_1800000_40& left,
|
|
119
119
|
}
|
120
120
|
return result;
|
121
121
|
}
|
122
|
+
void HistogramCollector_16777216_50::Collect(
|
123
|
+
Histogram_16777216_50* result) const {
|
124
|
+
for (int i = 0; i < 50; i++) {
|
125
|
+
result->buckets_[i] += buckets_[i].load(std::memory_order_relaxed);
|
126
|
+
}
|
127
|
+
}
|
128
|
+
Histogram_16777216_50 operator-(const Histogram_16777216_50& left,
|
129
|
+
const Histogram_16777216_50& right) {
|
130
|
+
Histogram_16777216_50 result;
|
131
|
+
for (int i = 0; i < 50; i++) {
|
132
|
+
result.buckets_[i] = left.buckets_[i] - right.buckets_[i];
|
133
|
+
}
|
134
|
+
return result;
|
135
|
+
}
|
122
136
|
const absl::string_view
|
123
137
|
GlobalStats::counter_name[static_cast<int>(Counter::COUNT)] = {
|
124
138
|
"client_calls_created",
|
@@ -226,6 +240,9 @@ const absl::string_view
|
|
226
240
|
"http2_transport_remote_window_update",
|
227
241
|
"http2_transport_window_update_period",
|
228
242
|
"http2_stream_window_update_period",
|
243
|
+
"http2_write_target_size",
|
244
|
+
"http2_write_data_frame_size",
|
245
|
+
"http2_read_data_frame_size",
|
229
246
|
"wrr_subchannel_list_size",
|
230
247
|
"wrr_subchannel_ready_size",
|
231
248
|
"work_serializer_run_time_ms",
|
@@ -269,6 +286,9 @@ const absl::string_view GlobalStats::histogram_doc[static_cast<int>(
|
|
269
286
|
"Transport window update sent by peer",
|
270
287
|
"Period in milliseconds at which peer sends transport window update",
|
271
288
|
"Period in milliseconds at which peer sends stream window update",
|
289
|
+
"Number of bytes targetted for http2 writes",
|
290
|
+
"Number of bytes for each data frame written",
|
291
|
+
"Number of bytes for each data frame read",
|
272
292
|
"Number of subchannels in a subchannel list at picker creation time",
|
273
293
|
"Number of READY subchannels in a subchannel list at picker creation time",
|
274
294
|
"Number of milliseconds work serializers run for",
|
@@ -333,6 +353,20 @@ const int kStatsTable12[41] = {
|
|
333
353
|
const uint8_t kStatsTable13[37] = {
|
334
354
|
4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
|
335
355
|
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39};
|
356
|
+
const int kStatsTable14[51] = {
|
357
|
+
0, 1, 2, 3, 5, 7, 10, 14,
|
358
|
+
20, 28, 39, 54, 75, 104, 144, 200,
|
359
|
+
277, 383, 530, 733, 1014, 1402, 1939, 2681,
|
360
|
+
3706, 5123, 7082, 9790, 13533, 18707, 25859, 35746,
|
361
|
+
49412, 68303, 94416, 130512, 180408, 249380, 344720, 476509,
|
362
|
+
658682, 910501, 1258592, 1739760, 2404882, 3324285, 4595181, 6351949,
|
363
|
+
8780340, 12137120, 16777216};
|
364
|
+
const uint8_t kStatsTable15[88] = {
|
365
|
+
4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 11, 11, 12, 12, 13,
|
366
|
+
13, 14, 14, 15, 15, 16, 16, 17, 18, 18, 18, 19, 20, 20, 21, 21, 22, 22,
|
367
|
+
23, 23, 24, 24, 25, 25, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32,
|
368
|
+
32, 33, 33, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 42,
|
369
|
+
42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49, 50, 50};
|
336
370
|
} // namespace
|
337
371
|
int Histogram_100000_20::BucketFor(int value) {
|
338
372
|
if (value < 3) {
|
@@ -483,6 +517,25 @@ int Histogram_1800000_40::BucketFor(int value) {
|
|
483
517
|
}
|
484
518
|
}
|
485
519
|
}
|
520
|
+
int Histogram_16777216_50::BucketFor(int value) {
|
521
|
+
if (value < 4) {
|
522
|
+
if (value < 0) {
|
523
|
+
return 0;
|
524
|
+
} else {
|
525
|
+
return value;
|
526
|
+
}
|
527
|
+
} else {
|
528
|
+
if (value < 14680065) {
|
529
|
+
DblUint val;
|
530
|
+
val.dbl = value;
|
531
|
+
const int bucket =
|
532
|
+
kStatsTable15[((val.uint - 4616189618054758400ull) >> 50)];
|
533
|
+
return bucket - (value < kStatsTable14[bucket]);
|
534
|
+
} else {
|
535
|
+
return 49;
|
536
|
+
}
|
537
|
+
}
|
538
|
+
}
|
486
539
|
GlobalStats::GlobalStats()
|
487
540
|
: client_calls_created{0},
|
488
541
|
server_calls_created{0},
|
@@ -556,13 +609,13 @@ HistogramView GlobalStats::histogram(Histogram which) const {
|
|
556
609
|
return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
|
557
610
|
http2_header_table_size.buckets()};
|
558
611
|
case Histogram::kHttp2InitialWindowSize:
|
559
|
-
return HistogramView{&
|
612
|
+
return HistogramView{&Histogram_16777216_50::BucketFor, kStatsTable14, 50,
|
560
613
|
http2_initial_window_size.buckets()};
|
561
614
|
case Histogram::kHttp2MaxConcurrentStreams:
|
562
615
|
return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
|
563
616
|
http2_max_concurrent_streams.buckets()};
|
564
617
|
case Histogram::kHttp2MaxFrameSize:
|
565
|
-
return HistogramView{&
|
618
|
+
return HistogramView{&Histogram_16777216_50::BucketFor, kStatsTable14, 50,
|
566
619
|
http2_max_frame_size.buckets()};
|
567
620
|
case Histogram::kHttp2MaxHeaderListSize:
|
568
621
|
return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
|
@@ -583,6 +636,15 @@ HistogramView GlobalStats::histogram(Histogram which) const {
|
|
583
636
|
case Histogram::kHttp2StreamWindowUpdatePeriod:
|
584
637
|
return HistogramView{&Histogram_100000_20::BucketFor, kStatsTable0, 20,
|
585
638
|
http2_stream_window_update_period.buckets()};
|
639
|
+
case Histogram::kHttp2WriteTargetSize:
|
640
|
+
return HistogramView{&Histogram_16777216_50::BucketFor, kStatsTable14, 50,
|
641
|
+
http2_write_target_size.buckets()};
|
642
|
+
case Histogram::kHttp2WriteDataFrameSize:
|
643
|
+
return HistogramView{&Histogram_16777216_50::BucketFor, kStatsTable14, 50,
|
644
|
+
http2_write_data_frame_size.buckets()};
|
645
|
+
case Histogram::kHttp2ReadDataFrameSize:
|
646
|
+
return HistogramView{&Histogram_16777216_50::BucketFor, kStatsTable14, 50,
|
647
|
+
http2_read_data_frame_size.buckets()};
|
586
648
|
case Histogram::kWrrSubchannelListSize:
|
587
649
|
return HistogramView{&Histogram_10000_20::BucketFor, kStatsTable10, 20,
|
588
650
|
wrr_subchannel_list_size.buckets()};
|
@@ -744,6 +806,11 @@ std::unique_ptr<GlobalStats> GlobalStatsCollector::Collect() const {
|
|
744
806
|
&result->http2_transport_window_update_period);
|
745
807
|
data.http2_stream_window_update_period.Collect(
|
746
808
|
&result->http2_stream_window_update_period);
|
809
|
+
data.http2_write_target_size.Collect(&result->http2_write_target_size);
|
810
|
+
data.http2_write_data_frame_size.Collect(
|
811
|
+
&result->http2_write_data_frame_size);
|
812
|
+
data.http2_read_data_frame_size.Collect(
|
813
|
+
&result->http2_read_data_frame_size);
|
747
814
|
data.wrr_subchannel_list_size.Collect(&result->wrr_subchannel_list_size);
|
748
815
|
data.wrr_subchannel_ready_size.Collect(&result->wrr_subchannel_ready_size);
|
749
816
|
data.work_serializer_run_time_ms.Collect(
|
@@ -874,6 +941,12 @@ std::unique_ptr<GlobalStats> GlobalStats::Diff(const GlobalStats& other) const {
|
|
874
941
|
result->http2_stream_window_update_period =
|
875
942
|
http2_stream_window_update_period -
|
876
943
|
other.http2_stream_window_update_period;
|
944
|
+
result->http2_write_target_size =
|
945
|
+
http2_write_target_size - other.http2_write_target_size;
|
946
|
+
result->http2_write_data_frame_size =
|
947
|
+
http2_write_data_frame_size - other.http2_write_data_frame_size;
|
948
|
+
result->http2_read_data_frame_size =
|
949
|
+
http2_read_data_frame_size - other.http2_read_data_frame_size;
|
877
950
|
result->wrr_subchannel_list_size =
|
878
951
|
wrr_subchannel_list_size - other.wrr_subchannel_list_size;
|
879
952
|
result->wrr_subchannel_ready_size =
|
@@ -196,6 +196,30 @@ class HistogramCollector_1800000_40 {
|
|
196
196
|
private:
|
197
197
|
std::atomic<uint64_t> buckets_[40]{};
|
198
198
|
};
|
199
|
+
class HistogramCollector_16777216_50;
|
200
|
+
class Histogram_16777216_50 {
|
201
|
+
public:
|
202
|
+
static int BucketFor(int value);
|
203
|
+
const uint64_t* buckets() const { return buckets_; }
|
204
|
+
size_t bucket_count() const { return 50; }
|
205
|
+
friend Histogram_16777216_50 operator-(const Histogram_16777216_50& left,
|
206
|
+
const Histogram_16777216_50& right);
|
207
|
+
|
208
|
+
private:
|
209
|
+
friend class HistogramCollector_16777216_50;
|
210
|
+
uint64_t buckets_[50]{};
|
211
|
+
};
|
212
|
+
class HistogramCollector_16777216_50 {
|
213
|
+
public:
|
214
|
+
void Increment(int value) {
|
215
|
+
buckets_[Histogram_16777216_50::BucketFor(value)].fetch_add(
|
216
|
+
1, std::memory_order_relaxed);
|
217
|
+
}
|
218
|
+
void Collect(Histogram_16777216_50* result) const;
|
219
|
+
|
220
|
+
private:
|
221
|
+
std::atomic<uint64_t> buckets_[50]{};
|
222
|
+
};
|
199
223
|
struct GlobalStats {
|
200
224
|
enum class Counter {
|
201
225
|
kClientCallsCreated,
|
@@ -257,6 +281,9 @@ struct GlobalStats {
|
|
257
281
|
kHttp2TransportRemoteWindowUpdate,
|
258
282
|
kHttp2TransportWindowUpdatePeriod,
|
259
283
|
kHttp2StreamWindowUpdatePeriod,
|
284
|
+
kHttp2WriteTargetSize,
|
285
|
+
kHttp2WriteDataFrameSize,
|
286
|
+
kHttp2ReadDataFrameSize,
|
260
287
|
kWrrSubchannelListSize,
|
261
288
|
kWrrSubchannelReadySize,
|
262
289
|
kWorkSerializerRunTimeMs,
|
@@ -338,15 +365,18 @@ struct GlobalStats {
|
|
338
365
|
Histogram_65536_26 http2_metadata_size;
|
339
366
|
Histogram_1800000_40 http2_hpack_entry_lifetime;
|
340
367
|
Histogram_16777216_20 http2_header_table_size;
|
341
|
-
|
368
|
+
Histogram_16777216_50 http2_initial_window_size;
|
342
369
|
Histogram_16777216_20 http2_max_concurrent_streams;
|
343
|
-
|
370
|
+
Histogram_16777216_50 http2_max_frame_size;
|
344
371
|
Histogram_16777216_20 http2_max_header_list_size;
|
345
372
|
Histogram_16777216_20 http2_preferred_receive_crypto_message_size;
|
346
373
|
Histogram_16777216_20 http2_stream_remote_window_update;
|
347
374
|
Histogram_16777216_20 http2_transport_remote_window_update;
|
348
375
|
Histogram_100000_20 http2_transport_window_update_period;
|
349
376
|
Histogram_100000_20 http2_stream_window_update_period;
|
377
|
+
Histogram_16777216_50 http2_write_target_size;
|
378
|
+
Histogram_16777216_50 http2_write_data_frame_size;
|
379
|
+
Histogram_16777216_50 http2_read_data_frame_size;
|
350
380
|
Histogram_10000_20 wrr_subchannel_list_size;
|
351
381
|
Histogram_10000_20 wrr_subchannel_ready_size;
|
352
382
|
Histogram_100000_20 work_serializer_run_time_ms;
|
@@ -557,6 +587,15 @@ class GlobalStatsCollector {
|
|
557
587
|
void IncrementHttp2StreamWindowUpdatePeriod(int value) {
|
558
588
|
data_.this_cpu().http2_stream_window_update_period.Increment(value);
|
559
589
|
}
|
590
|
+
void IncrementHttp2WriteTargetSize(int value) {
|
591
|
+
data_.this_cpu().http2_write_target_size.Increment(value);
|
592
|
+
}
|
593
|
+
void IncrementHttp2WriteDataFrameSize(int value) {
|
594
|
+
data_.this_cpu().http2_write_data_frame_size.Increment(value);
|
595
|
+
}
|
596
|
+
void IncrementHttp2ReadDataFrameSize(int value) {
|
597
|
+
data_.this_cpu().http2_read_data_frame_size.Increment(value);
|
598
|
+
}
|
560
599
|
void IncrementWrrSubchannelListSize(int value) {
|
561
600
|
data_.this_cpu().wrr_subchannel_list_size.Increment(value);
|
562
601
|
}
|
@@ -668,15 +707,18 @@ class GlobalStatsCollector {
|
|
668
707
|
HistogramCollector_65536_26 http2_metadata_size;
|
669
708
|
HistogramCollector_1800000_40 http2_hpack_entry_lifetime;
|
670
709
|
HistogramCollector_16777216_20 http2_header_table_size;
|
671
|
-
|
710
|
+
HistogramCollector_16777216_50 http2_initial_window_size;
|
672
711
|
HistogramCollector_16777216_20 http2_max_concurrent_streams;
|
673
|
-
|
712
|
+
HistogramCollector_16777216_50 http2_max_frame_size;
|
674
713
|
HistogramCollector_16777216_20 http2_max_header_list_size;
|
675
714
|
HistogramCollector_16777216_20 http2_preferred_receive_crypto_message_size;
|
676
715
|
HistogramCollector_16777216_20 http2_stream_remote_window_update;
|
677
716
|
HistogramCollector_16777216_20 http2_transport_remote_window_update;
|
678
717
|
HistogramCollector_100000_20 http2_transport_window_update_period;
|
679
718
|
HistogramCollector_100000_20 http2_stream_window_update_period;
|
719
|
+
HistogramCollector_16777216_50 http2_write_target_size;
|
720
|
+
HistogramCollector_16777216_50 http2_write_data_frame_size;
|
721
|
+
HistogramCollector_16777216_50 http2_read_data_frame_size;
|
680
722
|
HistogramCollector_10000_20 wrr_subchannel_list_size;
|
681
723
|
HistogramCollector_10000_20 wrr_subchannel_ready_size;
|
682
724
|
HistogramCollector_100000_20 work_serializer_run_time_ms;
|
@@ -30,8 +30,87 @@
|
|
30
30
|
|
31
31
|
namespace grpc_core {
|
32
32
|
|
33
|
-
|
34
|
-
|
33
|
+
struct TcpConnectionMetrics {
|
34
|
+
// Congestion control name.
|
35
|
+
std::string congestion_ctrl;
|
36
|
+
// Delivery rate in Bps.
|
37
|
+
std::optional<uint64_t> delivery_rate;
|
38
|
+
// Total bytes retransmitted so far.
|
39
|
+
std::optional<uint64_t> data_retx;
|
40
|
+
// Total bytes sent so far.
|
41
|
+
std::optional<uint64_t> data_sent;
|
42
|
+
// Total packets lost so far.
|
43
|
+
// Includes lost or spuriously retransmitted packets.
|
44
|
+
std::optional<uint32_t> packet_retx;
|
45
|
+
// Total packets spuriously retransmitted so far.
|
46
|
+
std::optional<uint32_t> packet_spurious_retx;
|
47
|
+
// Total packets sent so far.
|
48
|
+
std::optional<uint32_t> packet_sent;
|
49
|
+
// Total packets delivered so far.
|
50
|
+
std::optional<uint32_t> packet_delivered;
|
51
|
+
// Total packets delivered so far with ECE marked.
|
52
|
+
// This metric is smaller than or equal to packet_delivered.
|
53
|
+
std::optional<uint32_t> packet_delivered_ce;
|
54
|
+
// Total bytes in write queue but not sent.
|
55
|
+
std::optional<uint64_t> data_notsent;
|
56
|
+
// Minimum RTT observed in usec.
|
57
|
+
std::optional<uint32_t> min_rtt;
|
58
|
+
// Smoothed RTT in usec
|
59
|
+
std::optional<uint32_t> srtt;
|
60
|
+
// TTL or hop limit of a packet received
|
61
|
+
// Only available with ACKED timestamps.
|
62
|
+
std::optional<uint32_t> ttl;
|
63
|
+
// Represents the number of recurring retransmissions of
|
64
|
+
// the first sequence that is not acknowledged yet.
|
65
|
+
std::optional<uint32_t> recurring_retrans;
|
66
|
+
// Network RTT using hardware timestamps (in usec).
|
67
|
+
// A value of -1 indicates that net_rtt could not be measured.
|
68
|
+
std::optional<int32_t> net_rtt_usec;
|
69
|
+
// Timeout-triggered rehash attempts.
|
70
|
+
std::optional<uint32_t> timeout_rehash;
|
71
|
+
// Rehash due to ECN congestion.
|
72
|
+
std::optional<uint32_t> ecn_rehash;
|
73
|
+
// Earliest departure time (CLOCK_MONOTONIC).
|
74
|
+
// Only available with SCHEDULED and SENT timestamps.
|
75
|
+
std::optional<uint64_t> edt;
|
76
|
+
// If the delivery rate is limited by the application, this is set to
|
77
|
+
// true.
|
78
|
+
std::optional<bool> is_delivery_rate_app_limited;
|
79
|
+
// Pacing rate of the connection in Bps.
|
80
|
+
std::optional<uint64_t> pacing_rate;
|
81
|
+
// Send congestion window in packets.
|
82
|
+
std::optional<uint32_t> congestion_window;
|
83
|
+
// Maximum degree of reordering (i.e., maximum number of packets reordered)
|
84
|
+
// on the connection.
|
85
|
+
std::optional<uint32_t> reordering;
|
86
|
+
// Cumulative duration (in usec) that the transport protocol
|
87
|
+
// was busy sending time.
|
88
|
+
std::optional<uint64_t> busy_usec;
|
89
|
+
// Cumulative duration (in usec) that the transport protocol
|
90
|
+
// was limited by the receive window size.
|
91
|
+
std::optional<uint64_t> rwnd_limited_usec;
|
92
|
+
// Cumulative duration (in usec) that the transport protocol
|
93
|
+
// was limited by the send buffer size.
|
94
|
+
std::optional<uint64_t> sndbuf_limited_usec;
|
95
|
+
// Slow start size threshold in packets.
|
96
|
+
// Set to TCP_INFINITE_SSTHRESH when still in slow start.
|
97
|
+
std::optional<uint32_t> snd_ssthresh;
|
98
|
+
// The extra time it takes for the receiver to generate the
|
99
|
+
// acknowledgement after receiving the last packet. This metric is not
|
100
|
+
// cumulative. Only available with ACKED timestamps.
|
101
|
+
std::optional<uint32_t> time_to_ack_usec;
|
102
|
+
// Last socket error code. Only populated for CLOSED timestamps.
|
103
|
+
std::optional<uint32_t> socket_errno;
|
104
|
+
// Peer's receive window after scaling (tcpi_snd_wnd).
|
105
|
+
// Only available with SENDMSG timestamps.
|
106
|
+
std::optional<uint32_t> peer_rwnd;
|
107
|
+
// Receive queue drops.
|
108
|
+
std::optional<uint32_t> rcvq_drops;
|
109
|
+
// The NIC Rx delay reported by the remote host.
|
110
|
+
std::optional<uint32_t> nic_rx_delay_usec;
|
111
|
+
};
|
112
|
+
|
113
|
+
class TcpCallTracer {
|
35
114
|
public:
|
36
115
|
enum class Type {
|
37
116
|
kUnknown = 0,
|
@@ -49,93 +128,20 @@ class TcpTracerInterface {
|
|
49
128
|
kClosed,
|
50
129
|
};
|
51
130
|
|
52
|
-
|
53
|
-
// Congestion control name.
|
54
|
-
std::string congestion_ctrl;
|
55
|
-
// Delivery rate in Bps.
|
56
|
-
std::optional<uint64_t> delivery_rate;
|
57
|
-
// Total bytes retransmitted so far.
|
58
|
-
std::optional<uint64_t> data_retx;
|
59
|
-
// Total bytes sent so far.
|
60
|
-
std::optional<uint64_t> data_sent;
|
61
|
-
// Total packets lost so far.
|
62
|
-
// Includes lost or spuriously retransmitted packets.
|
63
|
-
std::optional<uint32_t> packet_retx;
|
64
|
-
// Total packets spuriously retransmitted so far.
|
65
|
-
std::optional<uint32_t> packet_spurious_retx;
|
66
|
-
// Total packets sent so far.
|
67
|
-
std::optional<uint32_t> packet_sent;
|
68
|
-
// Total packets delivered so far.
|
69
|
-
std::optional<uint32_t> packet_delivered;
|
70
|
-
// Total packets delivered so far with ECE marked.
|
71
|
-
// This metric is smaller than or equal to packet_delivered.
|
72
|
-
std::optional<uint32_t> packet_delivered_ce;
|
73
|
-
// Total bytes in write queue but not sent.
|
74
|
-
std::optional<uint64_t> data_notsent;
|
75
|
-
// Minimum RTT observed in usec.
|
76
|
-
std::optional<uint32_t> min_rtt;
|
77
|
-
// Smoothed RTT in usec
|
78
|
-
std::optional<uint32_t> srtt;
|
79
|
-
// TTL or hop limit of a packet received
|
80
|
-
// Only available with ACKED timestamps.
|
81
|
-
std::optional<uint32_t> ttl;
|
82
|
-
// Represents the number of recurring retransmissions of
|
83
|
-
// the first sequence that is not acknowledged yet.
|
84
|
-
std::optional<uint32_t> recurring_retrans;
|
85
|
-
// Network RTT using hardware timestamps (in usec).
|
86
|
-
// A value of -1 indicates that net_rtt could not be measured.
|
87
|
-
std::optional<int32_t> net_rtt_usec;
|
88
|
-
// Timeout-triggered rehash attempts.
|
89
|
-
std::optional<uint32_t> timeout_rehash;
|
90
|
-
// Rehash due to ECN congestion.
|
91
|
-
std::optional<uint32_t> ecn_rehash;
|
92
|
-
// Earliest departure time (CLOCK_MONOTONIC).
|
93
|
-
// Only available with SCHEDULED and SENT timestamps.
|
94
|
-
std::optional<uint64_t> edt;
|
95
|
-
// If the delivery rate is limited by the application, this is set to
|
96
|
-
// true.
|
97
|
-
std::optional<bool> is_delivery_rate_app_limited;
|
98
|
-
// Pacing rate of the connection in Bps.
|
99
|
-
std::optional<uint64_t> pacing_rate;
|
100
|
-
// Send congestion window in packets.
|
101
|
-
std::optional<uint32_t> congestion_window;
|
102
|
-
// Maximum degree of reordering (i.e., maximum number of packets reodered)
|
103
|
-
// on the connection.
|
104
|
-
std::optional<uint32_t> reordering;
|
105
|
-
// Cumulative duration (in usec) that the transport protocol
|
106
|
-
// was busy sending time.
|
107
|
-
std::optional<uint64_t> busy_usec;
|
108
|
-
// Cumulative duration (in usec) that the transport protocol
|
109
|
-
// was limited by the receive window size.
|
110
|
-
std::optional<uint64_t> rwnd_limited_usec;
|
111
|
-
// Cumulative duration (in usec) that the transport protocol
|
112
|
-
// was limited by the send buffer size.
|
113
|
-
std::optional<uint64_t> sndbuf_limited_usec;
|
114
|
-
// Slow start size threshold in packets.
|
115
|
-
// Set to TCP_INFINITE_SSTHRESH when still in slow start.
|
116
|
-
std::optional<uint32_t> snd_ssthresh;
|
117
|
-
// The extra time it takes for the receiver to generate the
|
118
|
-
// acknowledgement after receiving the last packet. This metric is not
|
119
|
-
// cumulative. Only available with ACKED timestamps.
|
120
|
-
std::optional<uint32_t> time_to_ack_usec;
|
121
|
-
// Last socket error code. Only populated for CLOSED timestamps.
|
122
|
-
std::optional<uint32_t> socket_errno;
|
123
|
-
// Peer's receive window after scaling (tcpi_snd_wnd).
|
124
|
-
// Only available with SENDMSG timestamps.
|
125
|
-
std::optional<uint32_t> peer_rwnd;
|
126
|
-
// Receive queue drops.
|
127
|
-
std::optional<uint32_t> rcvq_drops;
|
128
|
-
// The NIC Rx delay reported by the remote host.
|
129
|
-
std::optional<uint32_t> nic_rx_delay_usec;
|
130
|
-
};
|
131
|
+
virtual ~TcpCallTracer() = default;
|
131
132
|
|
132
|
-
virtual ~TcpTracerInterface() = default;
|
133
133
|
// Records a per-message event with an optional snapshot of connection
|
134
134
|
// metrics.
|
135
135
|
virtual void RecordEvent(Type type, absl::Time time, size_t byte_offset,
|
136
|
-
std::optional<
|
136
|
+
std::optional<TcpConnectionMetrics> metrics) = 0;
|
137
|
+
};
|
138
|
+
|
139
|
+
class TcpConnectionTracer {
|
140
|
+
public:
|
141
|
+
virtual ~TcpConnectionTracer() = default;
|
142
|
+
|
137
143
|
// Records a snapshot of connection metrics.
|
138
|
-
virtual void RecordConnectionMetrics(
|
144
|
+
virtual void RecordConnectionMetrics(TcpConnectionMetrics metrics) = 0;
|
139
145
|
};
|
140
146
|
|
141
147
|
} // namespace grpc_core
|
@@ -1,5 +1,4 @@
|
|
1
1
|
//
|
2
|
-
//
|
3
2
|
// Copyright 2015 gRPC authors.
|
4
3
|
//
|
5
4
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -14,9 +13,8 @@
|
|
14
13
|
// See the License for the specific language governing permissions and
|
15
14
|
// limitations under the License.
|
16
15
|
//
|
17
|
-
//
|
18
16
|
|
19
|
-
#include "src/core/
|
17
|
+
#include "src/core/transport/auth_context.h"
|
20
18
|
|
21
19
|
#include <grpc/credentials.h>
|
22
20
|
#include <grpc/grpc_security.h>
|
@@ -33,61 +31,9 @@
|
|
33
31
|
#include "src/core/lib/debug/trace.h"
|
34
32
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
35
33
|
#include "src/core/lib/resource_quota/arena.h"
|
36
|
-
#include "src/core/lib/security/credentials/credentials.h"
|
37
34
|
#include "src/core/lib/surface/call.h"
|
38
35
|
#include "src/core/util/ref_counted_ptr.h"
|
39
36
|
|
40
|
-
// --- grpc_call ---
|
41
|
-
|
42
|
-
grpc_call_error grpc_call_set_credentials(grpc_call* call,
|
43
|
-
grpc_call_credentials* creds) {
|
44
|
-
grpc_core::ExecCtx exec_ctx;
|
45
|
-
grpc_client_security_context* ctx = nullptr;
|
46
|
-
GRPC_TRACE_LOG(api, INFO) << "grpc_call_set_credentials(call=" << call
|
47
|
-
<< ", creds=" << creds << ")";
|
48
|
-
if (!grpc_call_is_client(call)) {
|
49
|
-
LOG(ERROR) << "Method is client-side only.";
|
50
|
-
return GRPC_CALL_ERROR_NOT_ON_SERVER;
|
51
|
-
}
|
52
|
-
auto* arena = grpc_call_get_arena(call);
|
53
|
-
ctx = grpc_core::DownCast<grpc_client_security_context*>(
|
54
|
-
arena->GetContext<grpc_core::SecurityContext>());
|
55
|
-
if (ctx == nullptr) {
|
56
|
-
ctx = grpc_client_security_context_create(arena, creds);
|
57
|
-
arena->SetContext<grpc_core::SecurityContext>(ctx);
|
58
|
-
} else {
|
59
|
-
ctx->creds = creds != nullptr ? creds->Ref() : nullptr;
|
60
|
-
}
|
61
|
-
|
62
|
-
return GRPC_CALL_OK;
|
63
|
-
}
|
64
|
-
|
65
|
-
grpc_auth_context* grpc_call_auth_context(grpc_call* call) {
|
66
|
-
auto* sec_ctx =
|
67
|
-
grpc_call_get_arena(call)->GetContext<grpc_core::SecurityContext>();
|
68
|
-
GRPC_TRACE_LOG(api, INFO) << "grpc_call_auth_context(call=" << call << ")";
|
69
|
-
if (sec_ctx == nullptr) return nullptr;
|
70
|
-
if (grpc_call_is_client(call)) {
|
71
|
-
auto* sc = grpc_core::DownCast<grpc_client_security_context*>(sec_ctx);
|
72
|
-
if (sc->auth_context == nullptr) {
|
73
|
-
return nullptr;
|
74
|
-
} else {
|
75
|
-
return sc->auth_context
|
76
|
-
->Ref(DEBUG_LOCATION, "grpc_call_auth_context client")
|
77
|
-
.release();
|
78
|
-
}
|
79
|
-
} else {
|
80
|
-
auto* sc = grpc_core::DownCast<grpc_server_security_context*>(sec_ctx);
|
81
|
-
if (sc->auth_context == nullptr) {
|
82
|
-
return nullptr;
|
83
|
-
} else {
|
84
|
-
return sc->auth_context
|
85
|
-
->Ref(DEBUG_LOCATION, "grpc_call_auth_context server")
|
86
|
-
.release();
|
87
|
-
}
|
88
|
-
}
|
89
|
-
}
|
90
|
-
|
91
37
|
void grpc_auth_context_release(grpc_auth_context* context) {
|
92
38
|
GRPC_TRACE_LOG(api, INFO)
|
93
39
|
<< "grpc_auth_context_release(context=" << context << ")";
|
@@ -95,47 +41,6 @@ void grpc_auth_context_release(grpc_auth_context* context) {
|
|
95
41
|
context->Unref(DEBUG_LOCATION, "grpc_auth_context_unref");
|
96
42
|
}
|
97
43
|
|
98
|
-
// --- grpc_client_security_context ---
|
99
|
-
grpc_client_security_context::~grpc_client_security_context() {
|
100
|
-
auth_context.reset(DEBUG_LOCATION, "client_security_context");
|
101
|
-
if (extension.instance != nullptr && extension.destroy != nullptr) {
|
102
|
-
extension.destroy(extension.instance);
|
103
|
-
}
|
104
|
-
}
|
105
|
-
|
106
|
-
grpc_client_security_context* grpc_client_security_context_create(
|
107
|
-
grpc_core::Arena* arena, grpc_call_credentials* creds) {
|
108
|
-
return arena->New<grpc_client_security_context>(
|
109
|
-
creds != nullptr ? creds->Ref() : nullptr);
|
110
|
-
}
|
111
|
-
|
112
|
-
void grpc_client_security_context_destroy(void* ctx) {
|
113
|
-
grpc_client_security_context* c =
|
114
|
-
static_cast<grpc_client_security_context*>(ctx);
|
115
|
-
c->~grpc_client_security_context();
|
116
|
-
}
|
117
|
-
|
118
|
-
// --- grpc_server_security_context ---
|
119
|
-
grpc_server_security_context::~grpc_server_security_context() {
|
120
|
-
auth_context.reset(DEBUG_LOCATION, "server_security_context");
|
121
|
-
if (extension.instance != nullptr && extension.destroy != nullptr) {
|
122
|
-
extension.destroy(extension.instance);
|
123
|
-
}
|
124
|
-
}
|
125
|
-
|
126
|
-
grpc_server_security_context* grpc_server_security_context_create(
|
127
|
-
grpc_core::Arena* arena) {
|
128
|
-
return arena->New<grpc_server_security_context>();
|
129
|
-
}
|
130
|
-
|
131
|
-
void grpc_server_security_context_destroy(void* ctx) {
|
132
|
-
grpc_server_security_context* c =
|
133
|
-
static_cast<grpc_server_security_context*>(ctx);
|
134
|
-
c->~grpc_server_security_context();
|
135
|
-
}
|
136
|
-
|
137
|
-
// --- grpc_auth_context ---
|
138
|
-
|
139
44
|
static grpc_auth_property_iterator empty_iterator = {nullptr, 0, nullptr};
|
140
45
|
|
141
46
|
const char* grpc_auth_context_peer_identity_property_name(
|
@@ -1,5 +1,4 @@
|
|
1
1
|
//
|
2
|
-
//
|
3
2
|
// Copyright 2015 gRPC authors.
|
4
3
|
//
|
5
4
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -14,10 +13,9 @@
|
|
14
13
|
// See the License for the specific language governing permissions and
|
15
14
|
// limitations under the License.
|
16
15
|
//
|
17
|
-
//
|
18
16
|
|
19
|
-
#ifndef
|
20
|
-
#define
|
17
|
+
#ifndef GRPC_SRC_CORE_TRANSPORT_AUTH_CONTEXT_H
|
18
|
+
#define GRPC_SRC_CORE_TRANSPORT_AUTH_CONTEXT_H
|
21
19
|
|
22
20
|
#include <grpc/credentials.h>
|
23
21
|
#include <grpc/grpc.h>
|
@@ -30,9 +28,9 @@
|
|
30
28
|
#include <utility>
|
31
29
|
|
32
30
|
#include "absl/strings/string_view.h"
|
31
|
+
#include "src/core/credentials/transport/transport_credentials.h" // IWYU pragma: keep
|
33
32
|
#include "src/core/lib/debug/trace.h"
|
34
33
|
#include "src/core/lib/resource_quota/arena.h"
|
35
|
-
#include "src/core/lib/security/credentials/credentials.h" // IWYU pragma: keep
|
36
34
|
#include "src/core/lib/surface/connection_context.h"
|
37
35
|
#include "src/core/util/debug_location.h"
|
38
36
|
#include "src/core/util/orphanable.h"
|
@@ -59,6 +57,8 @@ void grpc_auth_property_reset(grpc_auth_property* property);
|
|
59
57
|
// This type is forward declared as a C struct and we cannot define it as a
|
60
58
|
// class. Otherwise, compiler will complain about type mismatch due to
|
61
59
|
// -Wmismatched-tags.
|
60
|
+
// TODO(roth): Consider renaming to something like ConnectionSecurityContext
|
61
|
+
// to reflect the fact that it stores connection-level security properties.
|
62
62
|
struct grpc_auth_context
|
63
63
|
: public grpc_core::RefCounted<grpc_auth_context,
|
64
64
|
grpc_core::NonPolymorphicRefCount> {
|
@@ -130,60 +130,6 @@ struct grpc_auth_context
|
|
130
130
|
grpc_core::OrphanablePtr<grpc_core::ConnectionContext> connection_context_;
|
131
131
|
};
|
132
132
|
|
133
|
-
// --- grpc_security_context_extension ---
|
134
|
-
|
135
|
-
// Extension to the security context that may be set in a filter and accessed
|
136
|
-
// later by a higher level method on a grpc_call object.
|
137
|
-
|
138
|
-
struct grpc_security_context_extension {
|
139
|
-
void* instance = nullptr;
|
140
|
-
void (*destroy)(void*) = nullptr;
|
141
|
-
};
|
142
|
-
|
143
|
-
namespace grpc_core {
|
144
|
-
|
145
|
-
class SecurityContext {
|
146
|
-
public:
|
147
|
-
virtual ~SecurityContext() = default;
|
148
|
-
};
|
149
|
-
|
150
|
-
} // namespace grpc_core
|
151
|
-
|
152
|
-
// --- grpc_client_security_context ---
|
153
|
-
|
154
|
-
// Internal client-side security context.
|
155
|
-
|
156
|
-
struct grpc_client_security_context final : public grpc_core::SecurityContext {
|
157
|
-
explicit grpc_client_security_context(
|
158
|
-
grpc_core::RefCountedPtr<grpc_call_credentials> creds)
|
159
|
-
: creds(std::move(creds)) {}
|
160
|
-
~grpc_client_security_context() override;
|
161
|
-
|
162
|
-
grpc_core::RefCountedPtr<grpc_call_credentials> creds;
|
163
|
-
grpc_core::RefCountedPtr<grpc_auth_context> auth_context;
|
164
|
-
grpc_security_context_extension extension;
|
165
|
-
};
|
166
|
-
|
167
|
-
grpc_client_security_context* grpc_client_security_context_create(
|
168
|
-
grpc_core::Arena* arena, grpc_call_credentials* creds);
|
169
|
-
void grpc_client_security_context_destroy(void* ctx);
|
170
|
-
|
171
|
-
// --- grpc_server_security_context ---
|
172
|
-
|
173
|
-
// Internal server-side security context.
|
174
|
-
|
175
|
-
struct grpc_server_security_context final : public grpc_core::SecurityContext {
|
176
|
-
grpc_server_security_context() = default;
|
177
|
-
~grpc_server_security_context() override;
|
178
|
-
|
179
|
-
grpc_core::RefCountedPtr<grpc_auth_context> auth_context;
|
180
|
-
grpc_security_context_extension extension;
|
181
|
-
};
|
182
|
-
|
183
|
-
grpc_server_security_context* grpc_server_security_context_create(
|
184
|
-
grpc_core::Arena* arena);
|
185
|
-
void grpc_server_security_context_destroy(void* ctx);
|
186
|
-
|
187
133
|
// --- Channel args for auth context ---
|
188
134
|
|
189
135
|
grpc_arg grpc_auth_context_to_arg(grpc_auth_context* c);
|
@@ -191,20 +137,4 @@ grpc_auth_context* grpc_auth_context_from_arg(const grpc_arg* arg);
|
|
191
137
|
grpc_auth_context* grpc_find_auth_context_in_args(
|
192
138
|
const grpc_channel_args* args);
|
193
139
|
|
194
|
-
|
195
|
-
template <>
|
196
|
-
struct ArenaContextType<SecurityContext> {
|
197
|
-
static void Destroy(SecurityContext* p) { p->~SecurityContext(); }
|
198
|
-
};
|
199
|
-
|
200
|
-
template <>
|
201
|
-
struct ContextSubclass<grpc_client_security_context> {
|
202
|
-
using Base = SecurityContext;
|
203
|
-
};
|
204
|
-
template <>
|
205
|
-
struct ContextSubclass<grpc_server_security_context> {
|
206
|
-
using Base = SecurityContext;
|
207
|
-
};
|
208
|
-
} // namespace grpc_core
|
209
|
-
|
210
|
-
#endif // GRPC_SRC_CORE_LIB_SECURITY_CONTEXT_SECURITY_CONTEXT_H
|
140
|
+
#endif // GRPC_SRC_CORE_TRANSPORT_AUTH_CONTEXT_H
|