grpc 1.56.2 → 1.57.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Makefile +29 -22
- data/include/grpc/event_engine/event_engine.h +22 -32
- data/include/grpc/impl/grpc_types.h +3 -0
- data/include/grpc/support/port_platform.h +29 -23
- data/src/core/ext/filters/client_channel/client_channel.cc +44 -8
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/http_proxy.cc +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +21 -52
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +19 -7
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +25 -35
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +78 -132
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +3 -1
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +38 -15
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +3 -5
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +22 -6
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +97 -71
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +2 -16
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +56 -11
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.h +25 -0
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +6 -32
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +4 -6
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +20 -79
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +31 -19
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +7 -41
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +3 -67
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +8 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +31 -74
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +7 -51
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +16 -87
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +16 -50
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +12 -74
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +1 -4
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +69 -59
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +7 -2
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +25 -13
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +366 -311
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +17 -1
- data/src/core/ext/filters/client_channel/retry_filter.cc +39 -2498
- data/src/core/ext/filters/client_channel/retry_filter.h +91 -1
- data/src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc +2052 -0
- data/src/core/ext/filters/client_channel/retry_filter_legacy_call_data.h +442 -0
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +38 -58
- data/src/core/ext/filters/client_channel/subchannel.h +3 -3
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +3 -0
- data/src/core/ext/filters/rbac/rbac_filter.cc +40 -111
- data/src/core/ext/filters/rbac/rbac_filter.h +12 -30
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +162 -86
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +0 -6
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +7 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +131 -186
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +6569 -174
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +2278 -441
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +9 -8
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +3 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +8 -4
- data/src/core/ext/transport/chttp2/transport/parsing.cc +15 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +2 -3
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +27 -6
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +143 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +2 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +0 -39
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +13 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +35 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +17 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +85 -20
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +26 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +45 -3
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +4 -3
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +21 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +30 -6
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +180 -0
- data/src/core/ext/upb-generated/envoy/data/accesslog/v3/accesslog.upb.c +558 -0
- data/src/core/ext/upb-generated/envoy/data/accesslog/v3/accesslog.upb.h +2710 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +30 -11
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +53 -24
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +30 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +110 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +41 -15
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +150 -27
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +93 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +88 -76
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +11 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +162 -160
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +129 -118
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +141 -135
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +19 -12
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +38 -30
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/data/accesslog/v3/accesslog.upbdefs.c +402 -0
- data/src/core/ext/upbdefs-generated/envoy/data/accesslog/v3/accesslog.upbdefs.h +111 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +80 -74
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +63 -47
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +315 -293
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -29
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +33 -30
- data/src/core/ext/xds/xds_bootstrap_grpc.h +5 -13
- data/src/core/ext/xds/xds_client_grpc.cc +11 -6
- data/src/core/ext/xds/xds_client_grpc.h +16 -2
- data/src/core/ext/xds/xds_client_stats.h +10 -0
- data/src/core/ext/xds/xds_cluster.cc +26 -16
- data/src/core/ext/xds/xds_endpoint.cc +4 -7
- data/src/core/ext/xds/xds_health_status.cc +0 -17
- data/src/core/ext/xds/xds_health_status.h +5 -25
- data/src/core/ext/xds/xds_lb_policy_registry.cc +39 -0
- data/src/core/ext/xds/xds_route_config.cc +4 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +1 -3
- data/src/core/lib/address_utils/parse_address.cc +63 -1
- data/src/core/lib/address_utils/parse_address.h +8 -0
- data/src/core/lib/address_utils/sockaddr_utils.cc +46 -1
- data/src/core/lib/address_utils/sockaddr_utils.h +2 -2
- data/src/core/lib/channel/channel_args.cc +21 -10
- data/src/core/lib/channel/channel_args.h +3 -0
- data/src/core/lib/channel/connected_channel.cc +4 -1
- data/src/core/lib/channel/promise_based_filter.h +1 -0
- data/src/core/lib/debug/trace.cc +1 -4
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +2 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -1
- data/src/core/lib/event_engine/event_engine.cc +0 -12
- data/src/core/lib/event_engine/forkable.cc +47 -42
- data/src/core/lib/event_engine/handle_containers.h +0 -4
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +4 -6
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +4 -6
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +25 -11
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +2 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +8 -12
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +37 -27
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +2 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +4 -2
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +42 -2
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +6 -0
- data/src/core/lib/event_engine/posix_engine/timer.h +10 -37
- data/src/core/lib/event_engine/tcp_socket_utils.cc +67 -7
- data/src/core/lib/event_engine/tcp_socket_utils.h +3 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +90 -37
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +32 -12
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +12 -21
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +8 -12
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +55 -54
- data/src/core/lib/event_engine/windows/windows_endpoint.h +15 -12
- data/src/core/lib/event_engine/windows/windows_engine.cc +2 -1
- data/src/core/lib/event_engine/windows/windows_engine.h +8 -12
- data/src/core/lib/experiments/config.cc +60 -22
- data/src/core/lib/experiments/config.h +20 -8
- data/src/core/lib/experiments/experiments.cc +278 -0
- data/src/core/lib/experiments/experiments.h +59 -1
- data/src/core/lib/gprpp/dual_ref_counted.h +9 -9
- data/src/core/lib/gprpp/fork.cc +8 -9
- data/src/core/lib/gprpp/fork.h +6 -5
- data/src/core/lib/gprpp/if_list.h +4530 -0
- data/src/core/lib/gprpp/orphanable.h +3 -3
- data/src/core/lib/gprpp/ref_counted.h +6 -6
- data/src/core/lib/gprpp/sorted_pack.h +3 -12
- data/src/core/lib/gprpp/status_helper.h +16 -15
- data/src/core/lib/gprpp/time.h +12 -0
- data/src/core/lib/gprpp/type_list.h +32 -0
- data/src/core/lib/http/httpcli.h +6 -9
- data/src/core/lib/iomgr/error.cc +32 -2
- data/src/core/lib/iomgr/error.h +9 -10
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +5 -7
- data/src/core/lib/iomgr/ev_poll_posix.cc +6 -5
- data/src/core/lib/iomgr/exec_ctx.h +11 -0
- data/src/core/lib/iomgr/pollset.h +4 -5
- data/src/core/lib/iomgr/port.h +10 -0
- data/src/core/lib/iomgr/resolve_address.cc +13 -1
- data/src/core/lib/iomgr/resolve_address.h +17 -3
- data/src/core/lib/iomgr/sockaddr_posix.h +7 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +29 -0
- data/src/core/lib/iomgr/socket_utils_posix.cc +2 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +6 -0
- data/src/core/lib/iomgr/tcp_client_posix.cc +4 -1
- data/src/core/lib/iomgr/tcp_posix.cc +21 -4
- data/src/core/lib/iomgr/tcp_server_posix.cc +3 -2
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -2
- data/src/core/lib/iomgr/tcp_windows.cc +1 -3
- data/src/core/lib/iomgr/vsock.cc +59 -0
- data/src/core/lib/iomgr/vsock.h +38 -0
- data/src/core/lib/iomgr/wakeup_fd_posix.h +3 -6
- data/src/core/lib/load_balancing/delegating_helper.h +115 -0
- data/src/core/lib/load_balancing/lb_policy.h +20 -0
- data/src/core/lib/load_balancing/subchannel_interface.h +6 -0
- data/src/core/lib/promise/party.h +1 -1
- data/src/core/lib/resolver/resolver_factory.h +3 -2
- data/src/core/lib/resolver/server_address.cc +9 -94
- data/src/core/lib/resolver/server_address.h +10 -64
- data/src/core/lib/resource_quota/memory_quota.h +1 -1
- data/src/core/lib/security/credentials/channel_creds_registry.h +51 -27
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +169 -9
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +1 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.h +3 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +40 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.h +6 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +30 -38
- data/src/core/lib/security/credentials/fake/fake_credentials.h +28 -0
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +1 -1
- data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -1
- data/src/core/lib/service_config/service_config_call_data.h +5 -0
- data/src/core/lib/slice/slice.h +16 -0
- data/src/core/lib/surface/call.cc +31 -29
- data/src/core/lib/surface/server.h +2 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/metadata_batch.cc +7 -7
- data/src/core/lib/transport/metadata_batch.h +86 -48
- data/src/core/lib/transport/parsed_metadata.h +34 -20
- data/src/core/lib/transport/simple_slice_based_metadata.h +9 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +4 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +1 -2
- data/src/core/tsi/ssl_transport_security.cc +28 -7
- data/src/ruby/bin/math_pb.rb +24 -18
- data/src/ruby/ext/grpc/extconf.rb +19 -18
- data/src/ruby/ext/grpc/rb_call.c +62 -39
- data/src/ruby/ext/grpc/rb_call_credentials.c +0 -1
- data/src/ruby/ext/grpc/rb_channel.c +126 -49
- data/src/ruby/ext/grpc/rb_channel.h +1 -0
- data/src/ruby/ext/grpc/rb_channel_args.c +16 -2
- data/src/ruby/ext/grpc/rb_channel_args.h +4 -0
- data/src/ruby/ext/grpc/rb_channel_credentials.c +0 -1
- data/src/ruby/ext/grpc/rb_compression_options.c +0 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +22 -6
- data/src/ruby/ext/grpc/rb_event_thread.h +1 -0
- data/src/ruby/ext/grpc/rb_grpc.c +192 -30
- data/src/ruby/ext/grpc/rb_grpc.h +8 -2
- data/src/ruby/ext/grpc/rb_server.c +62 -45
- data/src/ruby/ext/grpc/rb_server_credentials.c +0 -1
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +0 -1
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +0 -1
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +24 -13
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +24 -3
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +25 -111
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +25 -2
- data/third_party/boringssl-with-bazel/err_data.c +552 -552
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +34 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +7 -8
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +19 -1
- data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +8 -1
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +28 -185
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +3 -7
- data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +49 -46
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.c +18 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +2809 -7417
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +27 -5
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +20 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +110 -72
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +4 -3
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +15 -14
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +13 -10
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +35 -12
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +3 -7
- data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +7 -6
- data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +34 -72
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +12 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +5 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +12 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +17 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +51 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +5 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +277 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +180 -404
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +24 -57
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +33 -71
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +18 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +5 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +15 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +9 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +24 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +11 -27
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +9 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +40 -26
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +21 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +38 -19
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +2 -29
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +55 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +33 -52
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +3 -8
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +198 -79
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +5 -4
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +7 -8
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -23
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +8 -5
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +7 -6
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c +6 -12
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +48 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{fuchsia.c → ios.c} +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/{refcount_no_threads.c → rand_extra/trusty.c} +15 -19
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +41 -19
- data/third_party/boringssl-with-bazel/src/crypto/{refcount_c11.c → refcount.c} +11 -17
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +147 -72
- data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +0 -8
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +6 -35
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +5 -26
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +14 -18
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +54 -143
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +7 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +8 -12
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +19 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +11 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +4 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +4 -119
- data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +207 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +2 -116
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +0 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +5 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +0 -21
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +21 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +19 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +11 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +13 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +0 -61
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +127 -81
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +224 -209
- data/third_party/boringssl-with-bazel/src/include/openssl/target.h +154 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +1 -29
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +4 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +3 -2
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +9 -65
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +20 -20
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -11
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +24 -18
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +37 -30
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +125 -26
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +2 -3
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +691 -0
- data/third_party/upb/upb/collections/map.c +3 -3
- metadata +27 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +0 -42
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h +0 -64
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +0 -177
- data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -68
- data/third_party/boringssl-with-bazel/src/crypto/refcount_win.c +0 -89
@@ -57,6 +57,11 @@ UPB_INLINE const upb_MessageDef *envoy_extensions_filters_network_http_connectio
|
|
57
57
|
return upb_DefPool_FindMessageByName(s, "envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ProxyStatusConfig");
|
58
58
|
}
|
59
59
|
|
60
|
+
UPB_INLINE const upb_MessageDef *envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_HcmAccessLogOptions_getmsgdef(upb_DefPool *s) {
|
61
|
+
_upb_DefPool_LoadDefInit(s, &envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_upbdefinit);
|
62
|
+
return upb_DefPool_FindMessageByName(s, "envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.HcmAccessLogOptions");
|
63
|
+
}
|
64
|
+
|
60
65
|
UPB_INLINE const upb_MessageDef *envoy_extensions_filters_network_http_connection_manager_v3_LocalReplyConfig_getmsgdef(upb_DefPool *s) {
|
61
66
|
_upb_DefPool_LoadDefInit(s, &envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_upbdefinit);
|
62
67
|
return upb_DefPool_FindMessageByName(s, "envoy.extensions.filters.network.http_connection_manager.v3.LocalReplyConfig");
|
@@ -15,7 +15,7 @@ extern _upb_DefPool_Init envoy_annotations_deprecation_proto_upbdefinit;
|
|
15
15
|
extern _upb_DefPool_Init udpa_annotations_status_proto_upbdefinit;
|
16
16
|
extern _upb_DefPool_Init udpa_annotations_versioning_proto_upbdefinit;
|
17
17
|
extern _upb_DefPool_Init validate_validate_proto_upbdefinit;
|
18
|
-
static const char descriptor[
|
18
|
+
static const char descriptor[906] = {'\n', '!', 'e', 'n', 'v', 'o', 'y', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', '/', 'r',
|
19
19
|
'e', 'g', 'e', 'x', '.', 'p', 'r', 'o', 't', 'o', '\022', '\025', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a',
|
20
20
|
't', 'c', 'h', 'e', 'r', '.', 'v', '3', '\032', '\036', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f',
|
21
21
|
'/', 'w', 'r', 'a', 'p', 'p', 'e', 'r', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', '#', 'e', 'n', 'v', 'o', 'y', '/', 'a', 'n',
|
@@ -23,35 +23,35 @@ static const char descriptor[914] = {'\n', '!', 'e', 'n', 'v', 'o', 'y', '/', 't
|
|
23
23
|
't', 'o', '\032', '\035', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 't', 'a', 't',
|
24
24
|
'u', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', '!', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n',
|
25
25
|
's', '/', 'v', 'e', 'r', 's', 'i', 'o', 'n', 'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\032', '\027', 'v', 'a', 'l', 'i', 'd',
|
26
|
-
'a', 't', 'e', '/', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', '\"', '\
|
27
|
-
'g', 'e', 'x', 'M', 'a', 't', 'c', 'h', 'e', 'r', '\022', '
|
26
|
+
'a', 't', 'e', '/', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', '\"', '\326', '\002', '\n', '\014', 'R', 'e',
|
27
|
+
'g', 'e', 'x', 'M', 'a', 't', 'c', 'h', 'e', 'r', '\022', '[', '\n', '\n', 'g', 'o', 'o', 'g', 'l', 'e', '_', 'r', 'e', '2', '\030',
|
28
28
|
'\001', ' ', '\001', '(', '\013', '2', '-', '.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e',
|
29
29
|
'r', '.', 'v', '3', '.', 'R', 'e', 'g', 'e', 'x', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'G', 'o', 'o', 'g', 'l', 'e', 'R',
|
30
|
-
'E', '2', 'B', '\
|
31
|
-
'R', '
|
32
|
-
'\
|
33
|
-
'
|
34
|
-
'
|
35
|
-
'
|
36
|
-
'
|
37
|
-
'
|
38
|
-
'
|
39
|
-
'
|
40
|
-
'
|
41
|
-
'
|
42
|
-
'
|
43
|
-
'
|
44
|
-
'
|
45
|
-
'
|
46
|
-
'\
|
47
|
-
'
|
48
|
-
'
|
49
|
-
'
|
50
|
-
'
|
51
|
-
'
|
52
|
-
'
|
53
|
-
'
|
54
|
-
'
|
30
|
+
'E', '2', 'B', '\013', '\030', '\001', '\222', '\307', '\206', '\330', '\004', '\003', '3', '.', '0', 'H', '\000', 'R', '\t', 'g', 'o', 'o', 'g', 'l', 'e',
|
31
|
+
'R', 'e', '2', '\022', '\035', '\n', '\005', 'r', 'e', 'g', 'e', 'x', '\030', '\002', ' ', '\001', '(', '\t', 'B', '\007', '\372', 'B', '\004', 'r', '\002',
|
32
|
+
'\020', '\001', 'R', '\005', 'r', 'e', 'g', 'e', 'x', '\032', '\222', '\001', '\n', '\t', 'G', 'o', 'o', 'g', 'l', 'e', 'R', 'E', '2', '\022', 'S',
|
33
|
+
'\n', '\020', 'm', 'a', 'x', '_', 'p', 'r', 'o', 'g', 'r', 'a', 'm', '_', 's', 'i', 'z', 'e', '\030', '\001', ' ', '\001', '(', '\013', '2',
|
34
|
+
'\034', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'U', 'I', 'n', 't', '3', '2', 'V',
|
35
|
+
'a', 'l', 'u', 'e', 'B', '\013', '\030', '\001', '\222', '\307', '\206', '\330', '\004', '\003', '3', '.', '0', 'R', '\016', 'm', 'a', 'x', 'P', 'r', 'o',
|
36
|
+
'g', 'r', 'a', 'm', 'S', 'i', 'z', 'e', ':', '0', '\232', '\305', '\210', '\036', '+', '\n', ')', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y',
|
37
|
+
'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'R', 'e', 'g', 'e', 'x', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'G',
|
38
|
+
'o', 'o', 'g', 'l', 'e', 'R', 'E', '2', ':', '&', '\232', '\305', '\210', '\036', '!', '\n', '\037', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y',
|
39
|
+
'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'R', 'e', 'g', 'e', 'x', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'B', '\r',
|
40
|
+
'\n', '\013', 'e', 'n', 'g', 'i', 'n', 'e', '_', 't', 'y', 'p', 'e', '\"', '\306', '\001', '\n', '\027', 'R', 'e', 'g', 'e', 'x', 'M', 'a',
|
41
|
+
't', 'c', 'h', 'A', 'n', 'd', 'S', 'u', 'b', 's', 't', 'i', 't', 'u', 't', 'e', '\022', 'G', '\n', '\007', 'p', 'a', 't', 't', 'e',
|
42
|
+
'r', 'n', '\030', '\001', ' ', '\001', '(', '\013', '2', '#', '.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't',
|
43
|
+
'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'R', 'e', 'g', 'e', 'x', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'B', '\010', '\372', 'B', '\005',
|
44
|
+
'\212', '\001', '\002', '\020', '\001', 'R', '\007', 'p', 'a', 't', 't', 'e', 'r', 'n', '\022', '/', '\n', '\014', 's', 'u', 'b', 's', 't', 'i', 't',
|
45
|
+
'u', 't', 'i', 'o', 'n', '\030', '\002', ' ', '\001', '(', '\t', 'B', '\013', '\372', 'B', '\010', 'r', '\006', '\300', '\001', '\002', '\310', '\001', '\000', 'R',
|
46
|
+
'\014', 's', 'u', 'b', 's', 't', 'i', 't', 'u', 't', 'i', 'o', 'n', ':', '1', '\232', '\305', '\210', '\036', ',', '\n', '*', 'e', 'n', 'v',
|
47
|
+
'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'R', 'e', 'g', 'e', 'x', 'M', 'a', 't', 'c',
|
48
|
+
'h', 'A', 'n', 'd', 'S', 'u', 'b', 's', 't', 'i', 't', 'u', 't', 'e', 'B', '\203', '\001', '\n', '#', 'i', 'o', '.', 'e', 'n', 'v',
|
49
|
+
'o', 'y', 'p', 'r', 'o', 'x', 'y', '.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e',
|
50
|
+
'r', '.', 'v', '3', 'B', '\n', 'R', 'e', 'g', 'e', 'x', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', 'F', 'g', 'i', 't', 'h', 'u',
|
51
|
+
'b', '.', 'c', 'o', 'm', '/', 'e', 'n', 'v', 'o', 'y', 'p', 'r', 'o', 'x', 'y', '/', 'g', 'o', '-', 'c', 'o', 'n', 't', 'r',
|
52
|
+
'o', 'l', '-', 'p', 'l', 'a', 'n', 'e', '/', 'e', 'n', 'v', 'o', 'y', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h',
|
53
|
+
'e', 'r', '/', 'v', '3', ';', 'm', 'a', 't', 'c', 'h', 'e', 'r', 'v', '3', '\272', '\200', '\310', '\321', '\006', '\002', '\020', '\002', 'b', '\006',
|
54
|
+
'p', 'r', 'o', 't', 'o', '3',
|
55
55
|
};
|
56
56
|
|
57
57
|
static _upb_DefPool_Init *deps[6] = {
|
@@ -67,5 +67,5 @@ _upb_DefPool_Init envoy_type_matcher_v3_regex_proto_upbdefinit = {
|
|
67
67
|
deps,
|
68
68
|
&envoy_type_matcher_v3_regex_proto_upb_file_layout,
|
69
69
|
"envoy/type/matcher/v3/regex.proto",
|
70
|
-
UPB_STRINGVIEW_INIT(descriptor,
|
70
|
+
UPB_STRINGVIEW_INIT(descriptor, 906)
|
71
71
|
};
|
@@ -78,20 +78,6 @@ const JsonLoaderInterface* GrpcXdsBootstrap::GrpcNode::JsonLoader(
|
|
78
78
|
return loader;
|
79
79
|
}
|
80
80
|
|
81
|
-
//
|
82
|
-
// GrpcXdsBootstrap::GrpcXdsServer::ChannelCreds
|
83
|
-
//
|
84
|
-
|
85
|
-
const JsonLoaderInterface*
|
86
|
-
GrpcXdsBootstrap::GrpcXdsServer::ChannelCreds::JsonLoader(const JsonArgs&) {
|
87
|
-
static const auto* loader =
|
88
|
-
JsonObjectLoader<ChannelCreds>()
|
89
|
-
.Field("type", &ChannelCreds::type)
|
90
|
-
.OptionalField("config", &ChannelCreds::config)
|
91
|
-
.Finish();
|
92
|
-
return loader;
|
93
|
-
}
|
94
|
-
|
95
81
|
//
|
96
82
|
// GrpcXdsBootstrap::GrpcXdsServer
|
97
83
|
//
|
@@ -111,8 +97,8 @@ bool GrpcXdsBootstrap::GrpcXdsServer::IgnoreResourceDeletion() const {
|
|
111
97
|
bool GrpcXdsBootstrap::GrpcXdsServer::Equals(const XdsServer& other) const {
|
112
98
|
const auto& o = static_cast<const GrpcXdsServer&>(other);
|
113
99
|
return (server_uri_ == o.server_uri_ &&
|
114
|
-
|
115
|
-
|
100
|
+
channel_creds_config_->type() == o.channel_creds_config_->type() &&
|
101
|
+
channel_creds_config_->Equals(*o.channel_creds_config_) &&
|
116
102
|
server_features_ == o.server_features_);
|
117
103
|
}
|
118
104
|
|
@@ -125,6 +111,24 @@ const JsonLoaderInterface* GrpcXdsBootstrap::GrpcXdsServer::JsonLoader(
|
|
125
111
|
return loader;
|
126
112
|
}
|
127
113
|
|
114
|
+
namespace {
|
115
|
+
|
116
|
+
struct ChannelCreds {
|
117
|
+
std::string type;
|
118
|
+
Json::Object config;
|
119
|
+
|
120
|
+
static const JsonLoaderInterface* JsonLoader(const JsonArgs&) {
|
121
|
+
static const auto* loader =
|
122
|
+
JsonObjectLoader<ChannelCreds>()
|
123
|
+
.Field("type", &ChannelCreds::type)
|
124
|
+
.OptionalField("config", &ChannelCreds::config)
|
125
|
+
.Finish();
|
126
|
+
return loader;
|
127
|
+
}
|
128
|
+
};
|
129
|
+
|
130
|
+
} // namespace
|
131
|
+
|
128
132
|
void GrpcXdsBootstrap::GrpcXdsServer::JsonPostLoad(const Json& json,
|
129
133
|
const JsonArgs& args,
|
130
134
|
ValidationErrors* errors) {
|
@@ -136,21 +140,20 @@ void GrpcXdsBootstrap::GrpcXdsServer::JsonPostLoad(const Json& json,
|
|
136
140
|
for (size_t i = 0; i < channel_creds_list->size(); ++i) {
|
137
141
|
ValidationErrors::ScopedField field(errors, absl::StrCat("[", i, "]"));
|
138
142
|
auto& creds = (*channel_creds_list)[i];
|
139
|
-
// Select the first channel creds type that we support
|
140
|
-
|
141
|
-
|
143
|
+
// Select the first channel creds type that we support, but
|
144
|
+
// validate all entries.
|
145
|
+
if (CoreConfiguration::Get().channel_creds_registry().IsSupported(
|
142
146
|
creds.type)) {
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
147
|
+
ValidationErrors::ScopedField field(errors, ".config");
|
148
|
+
auto config =
|
149
|
+
CoreConfiguration::Get().channel_creds_registry().ParseConfig(
|
150
|
+
creds.type, Json::FromObject(creds.config), args, errors);
|
151
|
+
if (channel_creds_config_ == nullptr) {
|
152
|
+
channel_creds_config_ = std::move(config);
|
148
153
|
}
|
149
|
-
channel_creds_.type = std::move(creds.type);
|
150
|
-
channel_creds_.config = std::move(creds.config);
|
151
154
|
}
|
152
155
|
}
|
153
|
-
if (
|
156
|
+
if (channel_creds_config_ == nullptr) {
|
154
157
|
errors->AddError("no known creds type found");
|
155
158
|
}
|
156
159
|
}
|
@@ -176,10 +179,10 @@ void GrpcXdsBootstrap::GrpcXdsServer::JsonPostLoad(const Json& json,
|
|
176
179
|
|
177
180
|
Json GrpcXdsBootstrap::GrpcXdsServer::ToJson() const {
|
178
181
|
Json::Object channel_creds_json{
|
179
|
-
{"type", Json::FromString(
|
182
|
+
{"type", Json::FromString(std::string(channel_creds_config_->type()))},
|
180
183
|
};
|
181
|
-
if (
|
182
|
-
channel_creds_json["config"] =
|
184
|
+
if (channel_creds_config_ != nullptr) {
|
185
|
+
channel_creds_json["config"] = channel_creds_config_->ToJson();
|
183
186
|
}
|
184
187
|
Json::Object json{
|
185
188
|
{"server_uri", Json::FromString(server_uri_)},
|
@@ -35,10 +35,12 @@
|
|
35
35
|
#include "src/core/ext/xds/xds_cluster_specifier_plugin.h"
|
36
36
|
#include "src/core/ext/xds/xds_http_filters.h"
|
37
37
|
#include "src/core/ext/xds/xds_lb_policy_registry.h"
|
38
|
+
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
38
39
|
#include "src/core/lib/gprpp/validation_errors.h"
|
39
40
|
#include "src/core/lib/json/json.h"
|
40
41
|
#include "src/core/lib/json/json_args.h"
|
41
42
|
#include "src/core/lib/json/json_object_loader.h"
|
43
|
+
#include "src/core/lib/security/credentials/channel_creds_registry.h"
|
42
44
|
|
43
45
|
namespace grpc_core {
|
44
46
|
|
@@ -82,11 +84,8 @@ class GrpcXdsBootstrap : public XdsBootstrap {
|
|
82
84
|
|
83
85
|
bool Equals(const XdsServer& other) const override;
|
84
86
|
|
85
|
-
|
86
|
-
return
|
87
|
-
}
|
88
|
-
const Json::Object& channel_creds_config() const {
|
89
|
-
return channel_creds_.config;
|
87
|
+
RefCountedPtr<ChannelCredsConfig> channel_creds_config() const {
|
88
|
+
return channel_creds_config_;
|
90
89
|
}
|
91
90
|
|
92
91
|
static const JsonLoaderInterface* JsonLoader(const JsonArgs&);
|
@@ -96,15 +95,8 @@ class GrpcXdsBootstrap : public XdsBootstrap {
|
|
96
95
|
Json ToJson() const;
|
97
96
|
|
98
97
|
private:
|
99
|
-
struct ChannelCreds {
|
100
|
-
std::string type;
|
101
|
-
Json::Object config;
|
102
|
-
|
103
|
-
static const JsonLoaderInterface* JsonLoader(const JsonArgs&);
|
104
|
-
};
|
105
|
-
|
106
98
|
std::string server_uri_;
|
107
|
-
|
99
|
+
RefCountedPtr<ChannelCredsConfig> channel_creds_config_;
|
108
100
|
std::set<std::string> server_features_;
|
109
101
|
};
|
110
102
|
|
@@ -145,8 +145,10 @@ absl::StatusOr<RefCountedPtr<GrpcXdsClient>> GrpcXdsClient::GetOrCreate(
|
|
145
145
|
if (!bootstrap.ok()) return bootstrap.status();
|
146
146
|
grpc_channel_args* xds_channel_args = args.GetPointer<grpc_channel_args>(
|
147
147
|
GRPC_ARG_TEST_ONLY_DO_NOT_USE_IN_PROD_XDS_CLIENT_CHANNEL_ARGS);
|
148
|
-
|
149
|
-
|
148
|
+
auto channel_args = ChannelArgs::FromC(xds_channel_args);
|
149
|
+
return MakeRefCounted<GrpcXdsClient>(
|
150
|
+
std::move(*bootstrap), channel_args,
|
151
|
+
MakeOrphanable<GrpcXdsTransportFactory>(channel_args));
|
150
152
|
}
|
151
153
|
// Otherwise, use the global instance.
|
152
154
|
MutexLock lock(g_mu);
|
@@ -165,16 +167,19 @@ absl::StatusOr<RefCountedPtr<GrpcXdsClient>> GrpcXdsClient::GetOrCreate(
|
|
165
167
|
auto bootstrap = GrpcXdsBootstrap::Create(*bootstrap_contents);
|
166
168
|
if (!bootstrap.ok()) return bootstrap.status();
|
167
169
|
// Instantiate XdsClient.
|
170
|
+
auto channel_args = ChannelArgs::FromC(g_channel_args);
|
168
171
|
auto xds_client = MakeRefCounted<GrpcXdsClient>(
|
169
|
-
std::move(*bootstrap),
|
172
|
+
std::move(*bootstrap), channel_args,
|
173
|
+
MakeOrphanable<GrpcXdsTransportFactory>(channel_args));
|
170
174
|
g_xds_client = xds_client.get();
|
171
175
|
return xds_client;
|
172
176
|
}
|
173
177
|
|
174
|
-
GrpcXdsClient::GrpcXdsClient(
|
175
|
-
|
178
|
+
GrpcXdsClient::GrpcXdsClient(
|
179
|
+
std::unique_ptr<GrpcXdsBootstrap> bootstrap, const ChannelArgs& args,
|
180
|
+
OrphanablePtr<XdsTransportFactory> transport_factory)
|
176
181
|
: XdsClient(
|
177
|
-
std::move(bootstrap),
|
182
|
+
std::move(bootstrap), std::move(transport_factory),
|
178
183
|
grpc_event_engine::experimental::GetDefaultEventEngine(),
|
179
184
|
absl::StrCat("gRPC C-core ", GPR_PLATFORM_STRING,
|
180
185
|
GRPC_XDS_USER_AGENT_NAME_SUFFIX_STRING),
|
@@ -29,11 +29,13 @@
|
|
29
29
|
#include "src/core/ext/xds/certificate_provider_store.h"
|
30
30
|
#include "src/core/ext/xds/xds_bootstrap_grpc.h"
|
31
31
|
#include "src/core/ext/xds/xds_client.h"
|
32
|
+
#include "src/core/ext/xds/xds_transport.h"
|
32
33
|
#include "src/core/lib/channel/channel_args.h"
|
33
34
|
#include "src/core/lib/gpr/useful.h"
|
34
35
|
#include "src/core/lib/gprpp/orphanable.h"
|
35
36
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
36
37
|
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
38
|
+
#include "src/core/lib/resolver/server_address.h"
|
37
39
|
|
38
40
|
namespace grpc_core {
|
39
41
|
|
@@ -44,13 +46,25 @@ class GrpcXdsClient : public XdsClient {
|
|
44
46
|
const ChannelArgs& args, const char* reason);
|
45
47
|
|
46
48
|
// Do not instantiate directly -- use GetOrCreate() instead.
|
49
|
+
// TODO(roth): The transport factory is injectable here to support
|
50
|
+
// tests that want to use a fake transport factory with code that
|
51
|
+
// expects a GrpcXdsClient instead of an XdsClient, typically because
|
52
|
+
// it needs to call the interested_parties() method. Once we
|
53
|
+
// finish the EventEngine migration and remove the interested_parties()
|
54
|
+
// method, consider instead changing callers to an approach where the
|
55
|
+
// production code uses XdsClient instead of GrpcXdsClient, and then
|
56
|
+
// passing in a fake XdsClient impl in the tests. Note that this will
|
57
|
+
// work for callers that use interested_parties() but not for callers
|
58
|
+
// that also use certificate_provider_store(), but we should consider
|
59
|
+
// alternatives for that case as well.
|
47
60
|
GrpcXdsClient(std::unique_ptr<GrpcXdsBootstrap> bootstrap,
|
48
|
-
const ChannelArgs& args
|
61
|
+
const ChannelArgs& args,
|
62
|
+
OrphanablePtr<XdsTransportFactory> transport_factory);
|
49
63
|
~GrpcXdsClient() override;
|
50
64
|
|
51
65
|
// Helpers for encoding the XdsClient object in channel args.
|
52
66
|
static absl::string_view ChannelArgName() {
|
53
|
-
return "
|
67
|
+
return GRPC_ARG_NO_SUBCHANNEL_PREFIX "xds_client";
|
54
68
|
}
|
55
69
|
static int ChannelArgsCompare(const XdsClient* a, const XdsClient* b) {
|
56
70
|
return QsortCompare(a, b);
|
@@ -38,6 +38,7 @@
|
|
38
38
|
#include "src/core/lib/gprpp/ref_counted.h"
|
39
39
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
40
40
|
#include "src/core/lib/gprpp/sync.h"
|
41
|
+
#include "src/core/lib/resolver/server_address.h"
|
41
42
|
|
42
43
|
namespace grpc_core {
|
43
44
|
|
@@ -95,6 +96,15 @@ class XdsLocalityName : public RefCounted<XdsLocalityName> {
|
|
95
96
|
return human_readable_string_;
|
96
97
|
}
|
97
98
|
|
99
|
+
// Channel args traits.
|
100
|
+
static absl::string_view ChannelArgName() {
|
101
|
+
return GRPC_ARG_NO_SUBCHANNEL_PREFIX "xds_locality_name";
|
102
|
+
}
|
103
|
+
static int ChannelArgsCompare(const XdsLocalityName* a,
|
104
|
+
const XdsLocalityName* b) {
|
105
|
+
return a->Compare(*b);
|
106
|
+
}
|
107
|
+
|
98
108
|
private:
|
99
109
|
std::string region_;
|
100
110
|
std::string zone_;
|
@@ -24,6 +24,7 @@
|
|
24
24
|
|
25
25
|
#include "absl/status/status.h"
|
26
26
|
#include "absl/status/statusor.h"
|
27
|
+
#include "absl/strings/match.h"
|
27
28
|
#include "absl/strings/str_cat.h"
|
28
29
|
#include "absl/strings/str_join.h"
|
29
30
|
#include "absl/strings/strip.h"
|
@@ -187,23 +188,32 @@ XdsClusterResource::Eds EdsConfigParse(
|
|
187
188
|
if (eds_cluster_config == nullptr) {
|
188
189
|
errors->AddError("field not present");
|
189
190
|
} else {
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
errors->AddError("field not present");
|
196
|
-
} else {
|
197
|
-
if (!envoy_config_core_v3_ConfigSource_has_ads(eds_config) &&
|
198
|
-
!envoy_config_core_v3_ConfigSource_has_self(eds_config)) {
|
199
|
-
errors->AddError("ConfigSource is not ads or self");
|
200
|
-
}
|
201
|
-
// Record EDS service_name (if any).
|
202
|
-
upb_StringView service_name =
|
203
|
-
envoy_config_cluster_v3_Cluster_EdsClusterConfig_service_name(
|
191
|
+
// Validate ConfigSource.
|
192
|
+
{
|
193
|
+
ValidationErrors::ScopedField field(errors, ".eds_config");
|
194
|
+
const envoy_config_core_v3_ConfigSource* eds_config =
|
195
|
+
envoy_config_cluster_v3_Cluster_EdsClusterConfig_eds_config(
|
204
196
|
eds_cluster_config);
|
205
|
-
if (
|
206
|
-
|
197
|
+
if (eds_config == nullptr) {
|
198
|
+
errors->AddError("field not present");
|
199
|
+
} else {
|
200
|
+
if (!envoy_config_core_v3_ConfigSource_has_ads(eds_config) &&
|
201
|
+
!envoy_config_core_v3_ConfigSource_has_self(eds_config)) {
|
202
|
+
errors->AddError("ConfigSource is not ads or self");
|
203
|
+
}
|
204
|
+
}
|
205
|
+
}
|
206
|
+
// Record EDS service_name (if any).
|
207
|
+
// This field is required if the CDS resource has an xdstp name.
|
208
|
+
eds.eds_service_name = UpbStringToStdString(
|
209
|
+
envoy_config_cluster_v3_Cluster_EdsClusterConfig_service_name(
|
210
|
+
eds_cluster_config));
|
211
|
+
if (eds.eds_service_name.empty()) {
|
212
|
+
absl::string_view cluster_name =
|
213
|
+
UpbStringToAbsl(envoy_config_cluster_v3_Cluster_name(cluster));
|
214
|
+
if (absl::StartsWith(cluster_name, "xdstp:")) {
|
215
|
+
ValidationErrors::ScopedField field(errors, ".service_name");
|
216
|
+
errors->AddError("must be set if Cluster resource has an xdstp name");
|
207
217
|
}
|
208
218
|
}
|
209
219
|
}
|
@@ -220,13 +220,10 @@ absl::optional<ServerAddress> ServerAddressParse(
|
|
220
220
|
}
|
221
221
|
}
|
222
222
|
// Convert to ServerAddress.
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
attributes[XdsEndpointHealthStatusAttribute::kKey] =
|
228
|
-
std::make_unique<XdsEndpointHealthStatusAttribute>(*status);
|
229
|
-
return ServerAddress(grpc_address, ChannelArgs(), std::move(attributes));
|
223
|
+
return ServerAddress(grpc_address,
|
224
|
+
ChannelArgs()
|
225
|
+
.Set(GRPC_ARG_ADDRESS_WEIGHT, weight)
|
226
|
+
.Set(GRPC_ARG_XDS_HEALTH_STATUS, status->status()));
|
230
227
|
}
|
231
228
|
|
232
229
|
struct ParsedLocality {
|
@@ -18,11 +18,8 @@
|
|
18
18
|
|
19
19
|
#include "src/core/ext/xds/xds_health_status.h"
|
20
20
|
|
21
|
-
#include "absl/strings/str_cat.h"
|
22
21
|
#include "envoy/config/core/v3/health_check.upb.h"
|
23
22
|
|
24
|
-
#include "src/core/lib/gpr/useful.h"
|
25
|
-
|
26
23
|
namespace grpc_core {
|
27
24
|
|
28
25
|
absl::optional<XdsHealthStatus> XdsHealthStatus::FromUpb(uint32_t status) {
|
@@ -63,18 +60,4 @@ bool operator<(const XdsHealthStatus& hs1, const XdsHealthStatus& hs2) {
|
|
63
60
|
return hs1.status() < hs2.status();
|
64
61
|
}
|
65
62
|
|
66
|
-
const char* XdsEndpointHealthStatusAttribute::kKey =
|
67
|
-
"xds_endpoint_health_status";
|
68
|
-
|
69
|
-
int XdsEndpointHealthStatusAttribute::Cmp(
|
70
|
-
const AttributeInterface* other) const {
|
71
|
-
const auto* other_attr =
|
72
|
-
static_cast<const XdsEndpointHealthStatusAttribute*>(other);
|
73
|
-
return QsortCompare(status_, other_attr->status_);
|
74
|
-
}
|
75
|
-
|
76
|
-
std::string XdsEndpointHealthStatusAttribute::ToString() const {
|
77
|
-
return absl::StrCat("{status_=", status_.ToString(), "}");
|
78
|
-
}
|
79
|
-
|
80
63
|
} // namespace grpc_core
|
@@ -21,15 +21,17 @@
|
|
21
21
|
|
22
22
|
#include <stdint.h>
|
23
23
|
|
24
|
-
#include <memory>
|
25
|
-
#include <string>
|
26
|
-
|
27
24
|
#include "absl/strings/string_view.h"
|
28
25
|
#include "absl/types/optional.h"
|
29
26
|
#include "absl/types/span.h"
|
30
27
|
|
31
28
|
#include "src/core/lib/resolver/server_address.h"
|
32
29
|
|
30
|
+
// Channel arg key for xDS health status.
|
31
|
+
// Value is an XdsHealthStatus::HealthStatus enum.
|
32
|
+
#define GRPC_ARG_XDS_HEALTH_STATUS \
|
33
|
+
GRPC_ARG_NO_SUBCHANNEL_PREFIX "xds_health_status"
|
34
|
+
|
33
35
|
namespace grpc_core {
|
34
36
|
|
35
37
|
class XdsHealthStatus {
|
@@ -82,28 +84,6 @@ class XdsHealthStatusSet {
|
|
82
84
|
|
83
85
|
bool operator<(const XdsHealthStatus& hs1, const XdsHealthStatus& hs2);
|
84
86
|
|
85
|
-
class XdsEndpointHealthStatusAttribute
|
86
|
-
: public ServerAddress::AttributeInterface {
|
87
|
-
public:
|
88
|
-
static const char* kKey;
|
89
|
-
|
90
|
-
explicit XdsEndpointHealthStatusAttribute(XdsHealthStatus status)
|
91
|
-
: status_(status) {}
|
92
|
-
|
93
|
-
XdsHealthStatus status() const { return status_; }
|
94
|
-
|
95
|
-
std::unique_ptr<AttributeInterface> Copy() const override {
|
96
|
-
return std::make_unique<XdsEndpointHealthStatusAttribute>(status_);
|
97
|
-
}
|
98
|
-
|
99
|
-
int Cmp(const AttributeInterface* other) const override;
|
100
|
-
|
101
|
-
std::string ToString() const override;
|
102
|
-
|
103
|
-
private:
|
104
|
-
XdsHealthStatus status_;
|
105
|
-
};
|
106
|
-
|
107
87
|
} // namespace grpc_core
|
108
88
|
|
109
89
|
#endif // GRPC_SRC_CORE_EXT_XDS_XDS_HEALTH_STATUS_H
|
@@ -29,12 +29,14 @@
|
|
29
29
|
#include "absl/types/variant.h"
|
30
30
|
#include "envoy/config/core/v3/extension.upb.h"
|
31
31
|
#include "envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h"
|
32
|
+
#include "envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h"
|
32
33
|
#include "envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h"
|
33
34
|
#include "envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h"
|
34
35
|
#include "google/protobuf/wrappers.upb.h"
|
35
36
|
|
36
37
|
#include <grpc/support/json.h>
|
37
38
|
|
39
|
+
#include "src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.h"
|
38
40
|
#include "src/core/ext/xds/xds_common_types.h"
|
39
41
|
#include "src/core/lib/config/core_configuration.h"
|
40
42
|
#include "src/core/lib/gprpp/time.h"
|
@@ -254,6 +256,38 @@ class WrrLocalityLbPolicyConfigFactory
|
|
254
256
|
}
|
255
257
|
};
|
256
258
|
|
259
|
+
class PickFirstLbPolicyConfigFactory
|
260
|
+
: public XdsLbPolicyRegistry::ConfigFactory {
|
261
|
+
public:
|
262
|
+
Json::Object ConvertXdsLbPolicyConfig(
|
263
|
+
const XdsLbPolicyRegistry* /*registry*/,
|
264
|
+
const XdsResourceType::DecodeContext& context,
|
265
|
+
absl::string_view configuration, ValidationErrors* errors,
|
266
|
+
int /*recursion_depth*/) override {
|
267
|
+
const auto* resource =
|
268
|
+
envoy_extensions_load_balancing_policies_pick_first_v3_PickFirst_parse(
|
269
|
+
configuration.data(), configuration.size(), context.arena);
|
270
|
+
if (resource == nullptr) {
|
271
|
+
errors->AddError("can't decode PickFirst LB policy config");
|
272
|
+
return {};
|
273
|
+
}
|
274
|
+
bool shuffle_address_list =
|
275
|
+
envoy_extensions_load_balancing_policies_pick_first_v3_PickFirst_shuffle_address_list(
|
276
|
+
resource);
|
277
|
+
return Json::Object{
|
278
|
+
{"pick_first",
|
279
|
+
Json::FromObject({
|
280
|
+
{"shuffleAddressList", Json::FromBool(shuffle_address_list)},
|
281
|
+
})}};
|
282
|
+
}
|
283
|
+
|
284
|
+
absl::string_view type() override { return Type(); }
|
285
|
+
|
286
|
+
static absl::string_view Type() {
|
287
|
+
return "envoy.extensions.load_balancing_policies.pick_first.v3.PickFirst";
|
288
|
+
}
|
289
|
+
};
|
290
|
+
|
257
291
|
} // namespace
|
258
292
|
|
259
293
|
//
|
@@ -273,6 +307,11 @@ XdsLbPolicyRegistry::XdsLbPolicyRegistry() {
|
|
273
307
|
policy_config_factories_.emplace(
|
274
308
|
WrrLocalityLbPolicyConfigFactory::Type(),
|
275
309
|
std::make_unique<WrrLocalityLbPolicyConfigFactory>());
|
310
|
+
if (ShufflePickFirstEnabled()) {
|
311
|
+
policy_config_factories_.emplace(
|
312
|
+
PickFirstLbPolicyConfigFactory::Type(),
|
313
|
+
std::make_unique<PickFirstLbPolicyConfigFactory>());
|
314
|
+
}
|
276
315
|
}
|
277
316
|
|
278
317
|
Json::Array XdsLbPolicyRegistry::ConvertXdsLbPolicyConfig(
|