grpc 1.55.0 → 1.56.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +100 -68
- data/include/grpc/event_engine/event_engine.h +4 -3
- data/include/grpc/grpc_audit_logging.h +96 -0
- data/include/grpc/module.modulemap +2 -0
- data/include/grpc/support/json.h +218 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +5 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +4 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +86 -104
- data/src/core/ext/filters/client_channel/client_channel.h +6 -0
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +19 -18
- data/src/core/ext/filters/client_channel/client_channel_internal.h +16 -21
- data/src/core/ext/filters/client_channel/config_selector.h +9 -24
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +3 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +5 -4
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +455 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +186 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +2 -7
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +52 -20
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +23 -2
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +19 -6
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +1 -9
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +16 -7
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +18 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +12 -9
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +36 -13
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +76 -6
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +32 -39
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +4 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +52 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +1 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +14 -16
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +40 -43
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +7 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +12 -19
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +35 -33
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +29 -4
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +28 -27
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +163 -46
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +16 -1
- data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -0
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +10 -40
- data/src/core/ext/filters/client_channel/subchannel.cc +10 -196
- data/src/core/ext/filters/client_channel/subchannel.h +3 -43
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +5 -5
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +100 -6
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +6 -8
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +3 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +16 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +46 -95
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -15
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +11 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +15 -0
- data/src/core/ext/xds/certificate_provider_store.cc +4 -9
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +30 -42
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +14 -9
- data/src/core/ext/xds/xds_api.cc +9 -6
- data/src/core/ext/xds/xds_api.h +3 -2
- data/src/core/ext/xds/xds_audit_logger_registry.cc +122 -0
- data/src/core/ext/xds/xds_audit_logger_registry.h +68 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +21 -9
- data/src/core/ext/xds/xds_bootstrap_grpc.h +5 -0
- data/src/core/ext/xds/xds_client.cc +5 -4
- data/src/core/ext/xds/xds_client_stats.h +1 -1
- data/src/core/ext/xds/xds_cluster.cc +20 -19
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +11 -8
- data/src/core/ext/xds/xds_common_types.cc +3 -1
- data/src/core/ext/xds/xds_http_fault_filter.cc +16 -13
- data/src/core/ext/xds/xds_http_fault_filter.h +2 -1
- data/src/core/ext/xds/xds_http_filters.h +4 -2
- data/src/core/ext/xds/xds_http_rbac_filter.cc +154 -67
- data/src/core/ext/xds/xds_http_rbac_filter.h +2 -1
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +15 -11
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +2 -1
- data/src/core/ext/xds/xds_lb_policy_registry.cc +22 -16
- data/src/core/ext/xds/xds_listener.cc +1 -0
- data/src/core/ext/xds/xds_route_config.cc +40 -3
- data/src/core/ext/xds/xds_routing.cc +2 -2
- data/src/core/ext/xds/xds_transport_grpc.cc +3 -1
- data/src/core/lib/avl/avl.h +5 -0
- data/src/core/lib/channel/channel_args.cc +80 -22
- data/src/core/lib/channel/channel_args.h +34 -1
- data/src/core/lib/channel/channel_trace.cc +16 -12
- data/src/core/lib/channel/channelz.cc +159 -132
- data/src/core/lib/channel/channelz.h +42 -35
- data/src/core/lib/channel/channelz_registry.cc +23 -20
- data/src/core/lib/channel/connected_channel.cc +17 -6
- data/src/core/lib/channel/promise_based_filter.cc +0 -4
- data/src/core/lib/channel/promise_based_filter.h +2 -0
- data/src/core/lib/compression/compression_internal.cc +2 -5
- data/src/core/lib/config/config_vars.cc +20 -18
- data/src/core/lib/config/config_vars.h +4 -4
- data/src/core/lib/config/load_config.cc +13 -0
- data/src/core/lib/config/load_config.h +6 -0
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/stats_data.h +1 -1
- data/src/core/lib/debug/trace.cc +24 -55
- data/src/core/lib/debug/trace.h +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +211 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +86 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +354 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +146 -0
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +79 -0
- data/src/core/lib/event_engine/default_event_engine.cc +13 -1
- data/src/core/lib/event_engine/default_event_engine_factory.cc +14 -2
- data/src/core/lib/event_engine/poller.h +2 -2
- data/src/core/lib/event_engine/posix.h +4 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +7 -18
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +33 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +1 -1
- 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.h +7 -8
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -1
- data/src/core/lib/event_engine/shim.cc +7 -1
- data/src/core/lib/event_engine/{thread_pool.cc → thread_pool/original_thread_pool.cc} +28 -25
- data/src/core/lib/event_engine/{thread_pool.h → thread_pool/original_thread_pool.h} +11 -15
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +50 -0
- data/src/core/lib/event_engine/{executor/executor.h → thread_pool/thread_pool_factory.cc} +17 -15
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +489 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +249 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +166 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +108 -0
- data/src/core/lib/event_engine/windows/iocp.cc +4 -3
- data/src/core/lib/event_engine/windows/iocp.h +3 -3
- data/src/core/lib/event_engine/windows/win_socket.cc +6 -6
- data/src/core/lib/event_engine/windows/win_socket.h +4 -4
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +11 -10
- data/src/core/lib/event_engine/windows/windows_endpoint.h +3 -2
- data/src/core/lib/event_engine/windows/windows_engine.cc +19 -17
- data/src/core/lib/event_engine/windows/windows_engine.h +6 -6
- data/src/core/lib/event_engine/windows/windows_listener.cc +3 -3
- data/src/core/lib/event_engine/windows/windows_listener.h +3 -2
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +63 -0
- data/src/core/lib/event_engine/work_queue/basic_work_queue.h +71 -0
- data/src/core/lib/event_engine/work_queue/work_queue.h +62 -0
- data/src/core/lib/experiments/config.cc +38 -7
- data/src/core/lib/experiments/config.h +16 -0
- data/src/core/lib/experiments/experiments.cc +67 -20
- data/src/core/lib/experiments/experiments.h +27 -21
- data/src/core/lib/gpr/log_internal.h +55 -0
- data/src/core/lib/gprpp/crash.cc +10 -0
- data/src/core/lib/gprpp/crash.h +3 -0
- data/src/core/lib/gprpp/per_cpu.cc +33 -0
- data/src/core/lib/gprpp/per_cpu.h +29 -6
- data/src/core/lib/gprpp/time.cc +1 -0
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +10 -8
- data/src/core/lib/iomgr/ev_apple.cc +12 -12
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +10 -3
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +15 -1
- data/src/core/lib/iomgr/iocp_windows.cc +24 -3
- data/src/core/lib/iomgr/iocp_windows.h +11 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +4 -2
- data/src/core/lib/iomgr/socket_windows.cc +61 -7
- data/src/core/lib/iomgr/socket_windows.h +9 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +14 -3
- data/src/core/lib/iomgr/tcp_server_posix.cc +148 -107
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_server_windows.cc +1 -1
- data/src/core/lib/json/json.h +2 -166
- data/src/core/lib/json/json_object_loader.cc +8 -9
- data/src/core/lib/json/json_object_loader.h +25 -18
- data/src/core/lib/json/json_reader.cc +13 -6
- data/src/core/lib/json/json_util.cc +6 -11
- data/src/core/lib/json/json_writer.cc +7 -8
- data/src/core/lib/load_balancing/lb_policy.h +13 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +2 -1
- data/src/core/lib/matchers/matchers.cc +3 -4
- data/src/core/lib/matchers/matchers.h +2 -1
- data/src/core/lib/promise/activity.cc +5 -0
- data/src/core/lib/promise/activity.h +10 -0
- data/src/core/lib/promise/detail/promise_factory.h +1 -1
- data/src/core/lib/promise/party.cc +31 -13
- data/src/core/lib/promise/party.h +11 -2
- data/src/core/lib/promise/pipe.h +9 -2
- data/src/core/lib/promise/prioritized_race.h +95 -0
- data/src/core/lib/promise/sleep.cc +2 -1
- data/src/core/lib/resolver/server_address.cc +0 -8
- data/src/core/lib/resolver/server_address.h +0 -6
- data/src/core/lib/resource_quota/memory_quota.cc +7 -7
- data/src/core/lib/resource_quota/memory_quota.h +1 -2
- data/src/core/lib/security/authorization/audit_logging.cc +98 -0
- data/src/core/lib/security/authorization/audit_logging.h +73 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +47 -2
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +18 -1
- data/src/core/lib/security/authorization/rbac_policy.cc +36 -4
- data/src/core/lib/security/authorization/rbac_policy.h +19 -2
- data/src/core/lib/security/authorization/stdout_logger.cc +75 -0
- data/src/core/lib/security/authorization/stdout_logger.h +61 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +8 -4
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +8 -18
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +14 -8
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +19 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +4 -2
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +1 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +15 -14
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +1 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +1 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -5
- data/src/core/lib/security/util/json_util.cc +1 -0
- data/src/core/lib/service_config/service_config_call_data.h +49 -20
- data/src/core/lib/service_config/service_config_impl.cc +2 -1
- data/src/core/lib/surface/call.cc +38 -23
- data/src/core/lib/surface/completion_queue.cc +6 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/batch_builder.cc +15 -12
- data/src/core/lib/transport/batch_builder.h +39 -35
- data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/ruby/ext/grpc/extconf.rb +8 -9
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +10 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +7 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +31 -22
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +29 -26
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +189 -13
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_openbsd.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +795 -795
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +18 -6
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +15 -7
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +24 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +74 -74
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +11 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +10 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +23 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +13 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/{hkdf → fipsmodule/hkdf}/hkdf.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +2 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +115 -133
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +12 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +57 -47
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +27 -28
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +21 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +5 -288
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +143 -83
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +95 -183
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +71 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +33 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +162 -6
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +18 -0
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +18 -11
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +6 -13
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +18 -14
- data/third_party/boringssl-with-bazel/src/crypto/{refcount_lock.c → refcount_no_threads.c} +3 -13
- data/third_party/boringssl-with-bazel/src/crypto/refcount_win.c +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +77 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +568 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +218 -44
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +35 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +588 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +27 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +17 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +39 -48
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +0 -140
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +72 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +11 -14
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +33 -46
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +3 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +14 -46
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +17 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +5 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +6 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +32 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +0 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +28 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +2 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +91 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +149 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +774 -615
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +42 -10
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +11 -6
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +2 -4
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +24 -16
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +65 -18
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +37 -18
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +187 -193
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +13 -129
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +85 -10
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +17 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +27 -19
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +5 -21
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +5 -2
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_msvc.h +1281 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64_msvc.h +2002 -0
- data/third_party/cares/cares/include/ares.h +23 -1
- data/third_party/cares/cares/{src/lib → include}/ares_nameser.h +9 -7
- data/third_party/cares/cares/include/ares_rules.h +2 -2
- data/third_party/cares/cares/include/ares_version.h +3 -3
- data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +266 -0
- data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +240 -0
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +49 -80
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +37 -43
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +12 -4
- data/third_party/cares/cares/src/lib/ares_data.c +16 -0
- data/third_party/cares/cares/src/lib/ares_data.h +7 -0
- data/third_party/cares/cares/src/lib/ares_destroy.c +8 -0
- data/third_party/cares/cares/src/lib/ares_expand_name.c +17 -6
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +1 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +156 -78
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +130 -326
- data/third_party/cares/cares/src/lib/ares_init.c +97 -485
- data/third_party/cares/cares/src/lib/ares_library_init.c +2 -89
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +23 -142
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +22 -142
- data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +184 -0
- data/third_party/cares/cares/src/lib/ares_private.h +30 -16
- data/third_party/cares/cares/src/lib/ares_process.c +55 -16
- data/third_party/cares/cares/src/lib/ares_query.c +1 -35
- data/third_party/cares/cares/src/lib/ares_rand.c +279 -0
- data/third_party/cares/cares/src/lib/ares_send.c +5 -7
- data/third_party/cares/cares/src/lib/ares_strdup.c +12 -19
- data/third_party/cares/cares/src/lib/ares_strsplit.c +44 -128
- data/third_party/cares/cares/src/lib/ares_strsplit.h +9 -10
- data/third_party/cares/cares/src/lib/inet_net_pton.c +78 -116
- data/third_party/cares/cares/src/tools/ares_getopt.h +53 -0
- metadata +48 -12
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -175
- data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
- data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
@@ -21,7 +21,6 @@
|
|
21
21
|
#include "src/core/ext/transport/chttp2/transport/flow_control.h"
|
22
22
|
|
23
23
|
#include <inttypes.h>
|
24
|
-
#include <limits.h>
|
25
24
|
|
26
25
|
#include <algorithm>
|
27
26
|
#include <cmath>
|
@@ -245,7 +244,7 @@ TransportFlowControl::TargetInitialWindowSizeBasedOnMemoryPressureAndBdp()
|
|
245
244
|
//
|
246
245
|
// ▲
|
247
246
|
// │
|
248
|
-
//
|
247
|
+
// 4mb ────┤---------x----
|
249
248
|
// │ -----
|
250
249
|
// BDP ────┤ ----x---
|
251
250
|
// │ ----
|
@@ -260,7 +259,8 @@ TransportFlowControl::TargetInitialWindowSizeBasedOnMemoryPressureAndBdp()
|
|
260
259
|
// pressure
|
261
260
|
const double kAnythingGoesPressure = 0.2;
|
262
261
|
const double kAdjustedToBdpPressure = 0.5;
|
263
|
-
const double
|
262
|
+
const double kOneMegabyte = 1024.0 * 1024.0;
|
263
|
+
const double kAnythingGoesWindow = std::max(4.0 * kOneMegabyte, bdp);
|
264
264
|
if (memory_pressure < kAnythingGoesPressure) {
|
265
265
|
return kAnythingGoesWindow;
|
266
266
|
} else if (memory_pressure < kAdjustedToBdpPressure) {
|
@@ -278,45 +278,33 @@ void TransportFlowControl::UpdateSetting(
|
|
278
278
|
uint32_t new_desired_value, FlowControlAction* action,
|
279
279
|
FlowControlAction& (FlowControlAction::*set)(FlowControlAction::Urgency,
|
280
280
|
uint32_t)) {
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
if (
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
new_desired_value);
|
290
|
-
}
|
291
|
-
// Reaching zero can only happen for initial window size, and if it occurs
|
292
|
-
// we really want to wake up writes and ensure all the queued stream
|
293
|
-
// window updates are flushed, since stream flow control operates
|
294
|
-
// differently at zero window size.
|
295
|
-
FlowControlAction::Urgency urgency =
|
296
|
-
FlowControlAction::Urgency::QUEUE_UPDATE;
|
297
|
-
if (*desired_value == 0 || new_desired_value == 0) {
|
298
|
-
urgency = FlowControlAction::Urgency::UPDATE_IMMEDIATELY;
|
299
|
-
}
|
300
|
-
*desired_value = new_desired_value;
|
301
|
-
(action->*set)(urgency, *desired_value);
|
281
|
+
new_desired_value =
|
282
|
+
Clamp(new_desired_value, grpc_chttp2_settings_parameters[id].min_value,
|
283
|
+
grpc_chttp2_settings_parameters[id].max_value);
|
284
|
+
if (new_desired_value != *desired_value) {
|
285
|
+
if (grpc_flowctl_trace.enabled()) {
|
286
|
+
gpr_log(GPR_INFO, "[flowctl] UPDATE SETTING %s from %" PRId64 " to %d",
|
287
|
+
grpc_chttp2_settings_parameters[id].name, *desired_value,
|
288
|
+
new_desired_value);
|
302
289
|
}
|
303
|
-
|
304
|
-
|
305
|
-
//
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
290
|
+
// Reaching zero can only happen for initial window size, and if it occurs
|
291
|
+
// we really want to wake up writes and ensure all the queued stream
|
292
|
+
// window updates are flushed, since stream flow control operates
|
293
|
+
// differently at zero window size.
|
294
|
+
FlowControlAction::Urgency urgency =
|
295
|
+
FlowControlAction::Urgency::QUEUE_UPDATE;
|
296
|
+
if (*desired_value == 0 || new_desired_value == 0) {
|
297
|
+
urgency = FlowControlAction::Urgency::UPDATE_IMMEDIATELY;
|
311
298
|
}
|
299
|
+
*desired_value = new_desired_value;
|
300
|
+
(action->*set)(urgency, *desired_value);
|
312
301
|
}
|
313
302
|
}
|
314
303
|
|
315
304
|
FlowControlAction TransportFlowControl::SetAckedInitialWindow(uint32_t value) {
|
316
305
|
acked_init_window_ = value;
|
317
306
|
FlowControlAction action;
|
318
|
-
if (
|
319
|
-
acked_init_window_ != target_initial_window_size_) {
|
307
|
+
if (acked_init_window_ != target_initial_window_size_) {
|
320
308
|
FlowControlAction::Urgency urgency =
|
321
309
|
FlowControlAction::Urgency::QUEUE_UPDATE;
|
322
310
|
if (acked_init_window_ == 0 || target_initial_window_size_ == 0) {
|
@@ -330,68 +318,31 @@ FlowControlAction TransportFlowControl::SetAckedInitialWindow(uint32_t value) {
|
|
330
318
|
FlowControlAction TransportFlowControl::PeriodicUpdate() {
|
331
319
|
FlowControlAction action;
|
332
320
|
if (enable_bdp_probe_) {
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
target_initial_window_size_ /* current target */);
|
349
|
-
}
|
350
|
-
// Though initial window 'could' drop to 0, we keep the floor at
|
351
|
-
// kMinInitialWindowSize
|
352
|
-
UpdateSetting(GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE,
|
353
|
-
&target_initial_window_size_, target, &action,
|
354
|
-
&FlowControlAction::set_send_initial_window_update);
|
355
|
-
// we target the max of BDP or bandwidth in microseconds.
|
356
|
-
UpdateSetting(GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE, &target_frame_size_,
|
357
|
-
target, &action,
|
358
|
-
&FlowControlAction::set_send_max_frame_size_update);
|
359
|
-
} else {
|
360
|
-
// get bdp estimate and update initial_window accordingly.
|
361
|
-
// target might change based on how much memory pressure we are under
|
362
|
-
// TODO(ncteisen): experiment with setting target to be huge under low
|
363
|
-
// memory pressure.
|
364
|
-
double target = IsMemoryPressureControllerEnabled()
|
365
|
-
? TargetInitialWindowSizeBasedOnMemoryPressureAndBdp()
|
366
|
-
: pow(2, SmoothLogBdp(TargetLogBdp()));
|
367
|
-
if (g_test_only_transport_target_window_estimates_mocker != nullptr) {
|
368
|
-
// Hook for simulating unusual flow control situations in tests.
|
369
|
-
target = g_test_only_transport_target_window_estimates_mocker
|
370
|
-
->ComputeNextTargetInitialWindowSizeFromPeriodicUpdate(
|
371
|
-
target_initial_window_size_ /* current target */);
|
372
|
-
}
|
373
|
-
// Though initial window 'could' drop to 0, we keep the floor at
|
374
|
-
// kMinInitialWindowSize
|
375
|
-
UpdateSetting(GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE,
|
376
|
-
&target_initial_window_size_,
|
377
|
-
static_cast<int32_t>(Clamp(
|
378
|
-
target, static_cast<double>(kMinInitialWindowSize),
|
379
|
-
static_cast<double>(kMaxInitialWindowSize))),
|
380
|
-
&action,
|
381
|
-
&FlowControlAction::set_send_initial_window_update);
|
382
|
-
// get bandwidth estimate and update max_frame accordingly.
|
383
|
-
double bw_dbl = bdp_estimator_.EstimateBandwidth();
|
384
|
-
// we target the max of BDP or bandwidth in microseconds.
|
385
|
-
UpdateSetting(
|
386
|
-
GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE, &target_frame_size_,
|
387
|
-
static_cast<int32_t>(
|
388
|
-
Clamp(std::max(static_cast<int32_t>(Clamp(
|
389
|
-
bw_dbl, 0.0, static_cast<double>(INT_MAX))) /
|
390
|
-
1000,
|
391
|
-
static_cast<int32_t>(target_initial_window_size_)),
|
392
|
-
16384, 16777215)),
|
393
|
-
&action, &FlowControlAction::set_send_max_frame_size_update);
|
321
|
+
// get bdp estimate and update initial_window accordingly.
|
322
|
+
// target might change based on how much memory pressure we are under
|
323
|
+
// TODO(ncteisen): experiment with setting target to be huge under low
|
324
|
+
// memory pressure.
|
325
|
+
uint32_t target = static_cast<uint32_t>(RoundUpToPowerOf2(
|
326
|
+
Clamp(IsMemoryPressureControllerEnabled()
|
327
|
+
? TargetInitialWindowSizeBasedOnMemoryPressureAndBdp()
|
328
|
+
: pow(2, SmoothLogBdp(TargetLogBdp())),
|
329
|
+
0.0, static_cast<double>(kMaxInitialWindowSize))));
|
330
|
+
if (target < kMinPositiveInitialWindowSize) target = 0;
|
331
|
+
if (g_test_only_transport_target_window_estimates_mocker != nullptr) {
|
332
|
+
// Hook for simulating unusual flow control situations in tests.
|
333
|
+
target = g_test_only_transport_target_window_estimates_mocker
|
334
|
+
->ComputeNextTargetInitialWindowSizeFromPeriodicUpdate(
|
335
|
+
target_initial_window_size_ /* current target */);
|
394
336
|
}
|
337
|
+
// Though initial window 'could' drop to 0, we keep the floor at
|
338
|
+
// kMinInitialWindowSize
|
339
|
+
UpdateSetting(GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE,
|
340
|
+
&target_initial_window_size_, target, &action,
|
341
|
+
&FlowControlAction::set_send_initial_window_update);
|
342
|
+
// we target the max of BDP or bandwidth in microseconds.
|
343
|
+
UpdateSetting(GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE, &target_frame_size_,
|
344
|
+
target, &action,
|
345
|
+
&FlowControlAction::set_send_max_frame_size_update);
|
395
346
|
|
396
347
|
if (IsTcpFrameSizeTuningEnabled()) {
|
397
348
|
// Advertise PREFERRED_RECEIVE_CRYPTO_FRAME_SIZE to peer. By advertising
|
@@ -244,21 +244,7 @@ typedef enum {
|
|
244
244
|
GRPC_CHTTP2_KEEPALIVE_STATE_DISABLED,
|
245
245
|
} grpc_chttp2_keepalive_state;
|
246
246
|
|
247
|
-
struct grpc_chttp2_transport
|
248
|
-
// TODO(ctiller): #31319 fixed a crash on Linux & Mac whereby iomgr was
|
249
|
-
// accessed after shutdown by chttp2. We've not seen similar behavior on
|
250
|
-
// Windows afaik, but this fix has exposed another refcounting bug whereby
|
251
|
-
// transports leak on Windows and prevent test shutdown.
|
252
|
-
// This hack attempts to compromise between two things that are blocking our CI
|
253
|
-
// from giving us a good quality signal, but are unlikely to be problems for
|
254
|
-
// most customers. We should continue tracking down what's causing the failure,
|
255
|
-
// but this gives us some runway to do so - and given that we're actively
|
256
|
-
// working on removing the problematic code paths, it may be that effort brings
|
257
|
-
// the result we need.
|
258
|
-
#ifndef GPR_WINDOWS
|
259
|
-
: public grpc_core::KeepsGrpcInitialized
|
260
|
-
#endif
|
261
|
-
{
|
247
|
+
struct grpc_chttp2_transport : public grpc_core::KeepsGrpcInitialized {
|
262
248
|
grpc_chttp2_transport(const grpc_core::ChannelArgs& channel_args,
|
263
249
|
grpc_endpoint* ep, bool is_client);
|
264
250
|
~grpc_chttp2_transport();
|
@@ -22,7 +22,7 @@ static const upb_MiniTableSub xds_data_orca_v3_OrcaLoadReport_submsgs[3] = {
|
|
22
22
|
{.submsg = &xds_data_orca_v3_OrcaLoadReport_NamedMetricsEntry_msg_init},
|
23
23
|
};
|
24
24
|
|
25
|
-
static const upb_MiniTableField xds_data_orca_v3_OrcaLoadReport__fields[
|
25
|
+
static const upb_MiniTableField xds_data_orca_v3_OrcaLoadReport__fields[9] = {
|
26
26
|
{1, UPB_SIZE(16, 0), 0, kUpb_NoSub, 1, kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
|
27
27
|
{2, UPB_SIZE(24, 8), 0, kUpb_NoSub, 1, kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
|
28
28
|
{3, UPB_SIZE(32, 16), 0, kUpb_NoSub, 4, kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
|
@@ -31,12 +31,13 @@ static const upb_MiniTableField xds_data_orca_v3_OrcaLoadReport__fields[8] = {
|
|
31
31
|
{6, 40, 0, kUpb_NoSub, 1, kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
|
32
32
|
{7, 48, 0, kUpb_NoSub, 1, kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
|
33
33
|
{8, UPB_SIZE(8, 56), 0, 2, 11, kUpb_FieldMode_Map | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
34
|
+
{9, UPB_SIZE(56, 64), 0, kUpb_NoSub, 1, kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
|
34
35
|
};
|
35
36
|
|
36
37
|
const upb_MiniTable xds_data_orca_v3_OrcaLoadReport_msg_init = {
|
37
38
|
&xds_data_orca_v3_OrcaLoadReport_submsgs[0],
|
38
39
|
&xds_data_orca_v3_OrcaLoadReport__fields[0],
|
39
|
-
UPB_SIZE(
|
40
|
+
UPB_SIZE(64, 72), 9, kUpb_ExtMode_NonExtendable, 9, UPB_FASTTABLE_MASK(120), 0,
|
40
41
|
UPB_FASTTABLE_INIT({
|
41
42
|
{0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
|
42
43
|
{0x000000003f000009, &upb_psf8_1bt},
|
@@ -46,6 +47,14 @@ const upb_MiniTable xds_data_orca_v3_OrcaLoadReport_msg_init = {
|
|
46
47
|
{0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
|
47
48
|
{0x002800003f000031, &upb_psf8_1bt},
|
48
49
|
{0x003000003f000039, &upb_psf8_1bt},
|
50
|
+
{0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
|
51
|
+
{0x004000003f000049, &upb_psf8_1bt},
|
52
|
+
{0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
|
53
|
+
{0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
|
54
|
+
{0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
|
55
|
+
{0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
|
56
|
+
{0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
|
57
|
+
{0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
|
49
58
|
})
|
50
59
|
};
|
51
60
|
|
@@ -189,6 +189,17 @@ UPB_INLINE const xds_data_orca_v3_OrcaLoadReport_NamedMetricsEntry* xds_data_orc
|
|
189
189
|
if (!map) return NULL;
|
190
190
|
return (const xds_data_orca_v3_OrcaLoadReport_NamedMetricsEntry*)_upb_map_next(map, iter);
|
191
191
|
}
|
192
|
+
UPB_INLINE void xds_data_orca_v3_OrcaLoadReport_clear_application_utilization(xds_data_orca_v3_OrcaLoadReport* msg) {
|
193
|
+
const upb_MiniTableField field = {9, UPB_SIZE(56, 64), 0, kUpb_NoSub, 1, kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
|
194
|
+
_upb_Message_ClearNonExtensionField(msg, &field);
|
195
|
+
}
|
196
|
+
UPB_INLINE double xds_data_orca_v3_OrcaLoadReport_application_utilization(const xds_data_orca_v3_OrcaLoadReport* msg) {
|
197
|
+
double default_val = 0;
|
198
|
+
double ret;
|
199
|
+
const upb_MiniTableField field = {9, UPB_SIZE(56, 64), 0, kUpb_NoSub, 1, kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
|
200
|
+
_upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
|
201
|
+
return ret;
|
202
|
+
}
|
192
203
|
|
193
204
|
UPB_INLINE void xds_data_orca_v3_OrcaLoadReport_set_cpu_utilization(xds_data_orca_v3_OrcaLoadReport *msg, double value) {
|
194
205
|
const upb_MiniTableField field = {1, UPB_SIZE(16, 0), 0, kUpb_NoSub, 1, kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
|
@@ -282,6 +293,10 @@ UPB_INLINE xds_data_orca_v3_OrcaLoadReport_NamedMetricsEntry* xds_data_orca_v3_O
|
|
282
293
|
if (!map) return NULL;
|
283
294
|
return (xds_data_orca_v3_OrcaLoadReport_NamedMetricsEntry*)_upb_map_next(map, iter);
|
284
295
|
}
|
296
|
+
UPB_INLINE void xds_data_orca_v3_OrcaLoadReport_set_application_utilization(xds_data_orca_v3_OrcaLoadReport *msg, double value) {
|
297
|
+
const upb_MiniTableField field = {9, UPB_SIZE(56, 64), 0, kUpb_NoSub, 1, kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
|
298
|
+
_upb_Message_SetNonExtensionField(msg, &field, &value);
|
299
|
+
}
|
285
300
|
|
286
301
|
/* xds.data.orca.v3.OrcaLoadReport.RequestCostEntry */
|
287
302
|
|
@@ -22,11 +22,10 @@
|
|
22
22
|
|
23
23
|
#include "absl/strings/str_cat.h"
|
24
24
|
|
25
|
+
#include <grpc/support/json.h>
|
25
26
|
#include <grpc/support/log.h>
|
26
27
|
|
27
28
|
#include "src/core/lib/config/core_configuration.h"
|
28
|
-
#include "src/core/lib/gprpp/status_helper.h"
|
29
|
-
#include "src/core/lib/iomgr/error.h"
|
30
29
|
#include "src/core/lib/security/certificate_provider/certificate_provider_registry.h"
|
31
30
|
|
32
31
|
namespace grpc_core {
|
@@ -45,7 +44,7 @@ CertificateProviderStore::PluginDefinition::JsonLoader(const JsonArgs&) {
|
|
45
44
|
}
|
46
45
|
|
47
46
|
void CertificateProviderStore::PluginDefinition::JsonPostLoad(
|
48
|
-
const Json& json, const JsonArgs
|
47
|
+
const Json& json, const JsonArgs& args, ValidationErrors* errors) {
|
49
48
|
// Check that plugin is supported.
|
50
49
|
CertificateProviderFactory* factory = nullptr;
|
51
50
|
if (!plugin_name.empty()) {
|
@@ -75,12 +74,8 @@ void CertificateProviderStore::PluginDefinition::JsonPostLoad(
|
|
75
74
|
}
|
76
75
|
if (factory == nullptr) return;
|
77
76
|
// Use plugin to validate and parse config.
|
78
|
-
|
79
|
-
|
80
|
-
factory->CreateCertificateProviderConfig(config_json, &parse_error);
|
81
|
-
if (!parse_error.ok()) {
|
82
|
-
errors->AddError(StatusToString(parse_error));
|
83
|
-
}
|
77
|
+
config = factory->CreateCertificateProviderConfig(
|
78
|
+
Json::FromObject(std::move(config_json)), args, errors);
|
84
79
|
}
|
85
80
|
}
|
86
81
|
|
@@ -55,7 +55,7 @@ class CertificateProviderStore
|
|
55
55
|
RefCountedPtr<CertificateProviderFactory::Config> config;
|
56
56
|
|
57
57
|
static const JsonLoaderInterface* JsonLoader(const JsonArgs&);
|
58
|
-
void JsonPostLoad(const Json& json, const JsonArgs
|
58
|
+
void JsonPostLoad(const Json& json, const JsonArgs& args,
|
59
59
|
ValidationErrors* errors);
|
60
60
|
};
|
61
61
|
|
@@ -22,6 +22,7 @@
|
|
22
22
|
|
23
23
|
#include <algorithm>
|
24
24
|
#include <initializer_list>
|
25
|
+
#include <map>
|
25
26
|
#include <memory>
|
26
27
|
#include <vector>
|
27
28
|
|
@@ -32,14 +33,13 @@
|
|
32
33
|
#include <grpc/support/time.h>
|
33
34
|
|
34
35
|
#include "src/core/lib/config/core_configuration.h"
|
35
|
-
#include "src/core/lib/json/json_util.h"
|
36
36
|
#include "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h"
|
37
37
|
|
38
38
|
namespace grpc_core {
|
39
39
|
|
40
40
|
namespace {
|
41
41
|
|
42
|
-
|
42
|
+
constexpr absl::string_view kFileWatcherPlugin = "file_watcher";
|
43
43
|
|
44
44
|
} // namespace
|
45
45
|
|
@@ -47,7 +47,7 @@ const char* kFileWatcherPlugin = "file_watcher";
|
|
47
47
|
// FileWatcherCertificateProviderFactory::Config
|
48
48
|
//
|
49
49
|
|
50
|
-
|
50
|
+
absl::string_view FileWatcherCertificateProviderFactory::Config::name() const {
|
51
51
|
return kFileWatcherPlugin;
|
52
52
|
}
|
53
53
|
|
@@ -71,58 +71,46 @@ std::string FileWatcherCertificateProviderFactory::Config::ToString() const {
|
|
71
71
|
return absl::StrJoin(parts, "");
|
72
72
|
}
|
73
73
|
|
74
|
-
|
75
|
-
FileWatcherCertificateProviderFactory::Config::
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
74
|
+
const JsonLoaderInterface*
|
75
|
+
FileWatcherCertificateProviderFactory::Config::JsonLoader(const JsonArgs&) {
|
76
|
+
static const auto* loader =
|
77
|
+
JsonObjectLoader<Config>()
|
78
|
+
.OptionalField("certificate_file", &Config::identity_cert_file_)
|
79
|
+
.OptionalField("private_key_file", &Config::private_key_file_)
|
80
|
+
.OptionalField("ca_certificate_file", &Config::root_cert_file_)
|
81
|
+
.OptionalField("refresh_interval", &Config::refresh_interval_)
|
82
|
+
.Finish();
|
83
|
+
return loader;
|
84
|
+
}
|
85
|
+
|
86
|
+
void FileWatcherCertificateProviderFactory::Config::JsonPostLoad(
|
87
|
+
const Json& json, const JsonArgs& /*args*/, ValidationErrors* errors) {
|
88
|
+
if ((json.object().find("certificate_file") == json.object().end()) !=
|
89
|
+
(json.object().find("private_key_file") == json.object().end())) {
|
90
|
+
errors->AddError(
|
90
91
|
"fields \"certificate_file\" and \"private_key_file\" must be both set "
|
91
|
-
"or both unset
|
92
|
+
"or both unset");
|
92
93
|
}
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
"
|
98
|
-
"be specified."));
|
99
|
-
}
|
100
|
-
if (!ParseJsonObjectFieldAsDuration(config_json.object(), "refresh_interval",
|
101
|
-
&config->refresh_interval_, &error_list,
|
102
|
-
false)) {
|
103
|
-
config->refresh_interval_ = Duration::Minutes(10); // 10 minutes default
|
104
|
-
}
|
105
|
-
if (!error_list.empty()) {
|
106
|
-
*error = GRPC_ERROR_CREATE_FROM_VECTOR(
|
107
|
-
"Error parsing file watcher certificate provider config", &error_list);
|
108
|
-
return nullptr;
|
94
|
+
if ((json.object().find("certificate_file") == json.object().end()) &&
|
95
|
+
(json.object().find("ca_certificate_file") == json.object().end())) {
|
96
|
+
errors->AddError(
|
97
|
+
"at least one of \"certificate_file\" and \"ca_certificate_file\" must "
|
98
|
+
"be specified");
|
109
99
|
}
|
110
|
-
return config;
|
111
100
|
}
|
112
101
|
|
113
102
|
//
|
114
103
|
// FileWatcherCertificateProviderFactory
|
115
104
|
//
|
116
105
|
|
117
|
-
|
106
|
+
absl::string_view FileWatcherCertificateProviderFactory::name() const {
|
118
107
|
return kFileWatcherPlugin;
|
119
108
|
}
|
120
109
|
|
121
110
|
RefCountedPtr<CertificateProviderFactory::Config>
|
122
111
|
FileWatcherCertificateProviderFactory::CreateCertificateProviderConfig(
|
123
|
-
const Json& config_json,
|
124
|
-
return
|
125
|
-
error);
|
112
|
+
const Json& config_json, const JsonArgs& args, ValidationErrors* errors) {
|
113
|
+
return LoadFromJson<RefCountedPtr<Config>>(config_json, args, errors);
|
126
114
|
}
|
127
115
|
|
128
116
|
RefCountedPtr<grpc_tls_certificate_provider>
|
@@ -130,7 +118,7 @@ FileWatcherCertificateProviderFactory::CreateCertificateProvider(
|
|
130
118
|
RefCountedPtr<CertificateProviderFactory::Config> config) {
|
131
119
|
if (config->name() != name()) {
|
132
120
|
gpr_log(GPR_ERROR, "Wrong config type Actual:%s vs Expected:%s",
|
133
|
-
config->name(), name());
|
121
|
+
std::string(config->name()).c_str(), std::string(name()).c_str());
|
134
122
|
return nullptr;
|
135
123
|
}
|
136
124
|
auto* file_watcher_config =
|
@@ -23,12 +23,16 @@
|
|
23
23
|
|
24
24
|
#include <string>
|
25
25
|
|
26
|
+
#include "absl/strings/string_view.h"
|
27
|
+
|
26
28
|
#include <grpc/grpc_security.h>
|
27
29
|
|
28
30
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
29
31
|
#include "src/core/lib/gprpp/time.h"
|
30
|
-
#include "src/core/lib/
|
32
|
+
#include "src/core/lib/gprpp/validation_errors.h"
|
31
33
|
#include "src/core/lib/json/json.h"
|
34
|
+
#include "src/core/lib/json/json_args.h"
|
35
|
+
#include "src/core/lib/json/json_object_loader.h"
|
32
36
|
#include "src/core/lib/security/certificate_provider/certificate_provider_factory.h"
|
33
37
|
|
34
38
|
namespace grpc_core {
|
@@ -38,10 +42,7 @@ class FileWatcherCertificateProviderFactory
|
|
38
42
|
public:
|
39
43
|
class Config : public CertificateProviderFactory::Config {
|
40
44
|
public:
|
41
|
-
|
42
|
-
grpc_error_handle* error);
|
43
|
-
|
44
|
-
const char* name() const override;
|
45
|
+
absl::string_view name() const override;
|
45
46
|
|
46
47
|
std::string ToString() const override;
|
47
48
|
|
@@ -55,18 +56,22 @@ class FileWatcherCertificateProviderFactory
|
|
55
56
|
|
56
57
|
Duration refresh_interval() const { return refresh_interval_; }
|
57
58
|
|
59
|
+
static const JsonLoaderInterface* JsonLoader(const JsonArgs& args);
|
60
|
+
void JsonPostLoad(const Json& json, const JsonArgs& args,
|
61
|
+
ValidationErrors* errors);
|
62
|
+
|
58
63
|
private:
|
59
64
|
std::string identity_cert_file_;
|
60
65
|
std::string private_key_file_;
|
61
66
|
std::string root_cert_file_;
|
62
|
-
Duration refresh_interval_;
|
67
|
+
Duration refresh_interval_ = Duration::Minutes(10);
|
63
68
|
};
|
64
69
|
|
65
|
-
|
70
|
+
absl::string_view name() const override;
|
66
71
|
|
67
72
|
RefCountedPtr<CertificateProviderFactory::Config>
|
68
|
-
CreateCertificateProviderConfig(const Json& config_json,
|
69
|
-
|
73
|
+
CreateCertificateProviderConfig(const Json& config_json, const JsonArgs& args,
|
74
|
+
ValidationErrors* errors) override;
|
70
75
|
|
71
76
|
RefCountedPtr<grpc_tls_certificate_provider> CreateCertificateProvider(
|
72
77
|
RefCountedPtr<CertificateProviderFactory::Config> config) override;
|
data/src/core/ext/xds/xds_api.cc
CHANGED
@@ -114,11 +114,8 @@ void PopulateMetadataValue(const XdsApiContext& context,
|
|
114
114
|
google_protobuf_Value_set_string_value(
|
115
115
|
value_pb, StdStringToUpbString(value.string()));
|
116
116
|
break;
|
117
|
-
case Json::Type::
|
118
|
-
google_protobuf_Value_set_bool_value(value_pb,
|
119
|
-
break;
|
120
|
-
case Json::Type::kFalse:
|
121
|
-
google_protobuf_Value_set_bool_value(value_pb, false);
|
117
|
+
case Json::Type::kBoolean:
|
118
|
+
google_protobuf_Value_set_bool_value(value_pb, value.boolean());
|
122
119
|
break;
|
123
120
|
case Json::Type::kObject: {
|
124
121
|
google_protobuf_Struct* struct_value =
|
@@ -327,11 +324,17 @@ absl::Status XdsApi::ParseAdsResponse(absl::string_view encoded_response,
|
|
327
324
|
const auto* resource_wrapper = envoy_service_discovery_v3_Resource_parse(
|
328
325
|
serialized_resource.data(), serialized_resource.size(), arena.ptr());
|
329
326
|
if (resource_wrapper == nullptr) {
|
330
|
-
parser->ResourceWrapperParsingFailed(
|
327
|
+
parser->ResourceWrapperParsingFailed(
|
328
|
+
i, "Can't decode Resource proto wrapper");
|
331
329
|
continue;
|
332
330
|
}
|
333
331
|
const auto* resource =
|
334
332
|
envoy_service_discovery_v3_Resource_resource(resource_wrapper);
|
333
|
+
if (resource == nullptr) {
|
334
|
+
parser->ResourceWrapperParsingFailed(
|
335
|
+
i, "No resource present in Resource proto wrapper");
|
336
|
+
continue;
|
337
|
+
}
|
335
338
|
type_url = absl::StripPrefix(
|
336
339
|
UpbStringToAbsl(google_protobuf_Any_type_url(resource)),
|
337
340
|
"type.googleapis.com/");
|
data/src/core/ext/xds/xds_api.h
CHANGED
@@ -75,8 +75,9 @@ class XdsApi {
|
|
75
75
|
absl::string_view serialized_resource) = 0;
|
76
76
|
|
77
77
|
// Called when a resource is wrapped in a Resource wrapper proto but
|
78
|
-
// we fail to
|
79
|
-
virtual void ResourceWrapperParsingFailed(size_t idx
|
78
|
+
// we fail to parse the Resource wrapper.
|
79
|
+
virtual void ResourceWrapperParsingFailed(size_t idx,
|
80
|
+
absl::string_view message) = 0;
|
80
81
|
};
|
81
82
|
|
82
83
|
struct ClusterLoadReport {
|