grpc 1.44.0.pre2 → 1.45.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 +291 -178
- data/include/grpc/event_engine/event_engine.h +2 -2
- data/include/grpc/grpc.h +40 -14
- data/include/grpc/grpc_posix.h +20 -19
- data/include/grpc/grpc_security.h +26 -50
- data/include/grpc/impl/codegen/grpc_types.h +11 -8
- data/include/grpc/impl/codegen/port_platform.h +2 -2
- data/include/grpc/impl/codegen/slice.h +4 -1
- data/include/grpc/slice.h +0 -11
- data/src/core/ext/filters/client_channel/backend_metric.cc +3 -3
- data/src/core/ext/filters/client_channel/backup_poller.cc +12 -8
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +5 -5
- data/src/core/ext/filters/client_channel/client_channel.cc +79 -57
- data/src/core/ext/filters/client_channel/client_channel.h +30 -29
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +5 -11
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +1 -2
- data/src/core/ext/filters/client_channel/dynamic_filters.h +1 -1
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -22
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -15
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +16 -17
- data/src/core/ext/filters/client_channel/health/health_check_client.h +1 -1
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +9 -12
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +68 -47
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +7 -3
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +22 -17
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +119 -82
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +9 -4
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +51 -24
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +19 -12
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +7 -13
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +62 -49
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +18 -19
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +41 -43
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +8 -7
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +82 -57
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +35 -34
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +35 -36
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -10
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +11 -5
- data/src/core/ext/filters/client_channel/retry_filter.cc +219 -125
- data/src/core/ext/filters/client_channel/retry_service_config.cc +15 -17
- data/src/core/ext/filters/client_channel/retry_service_config.h +17 -11
- data/src/core/ext/filters/client_channel/retry_throttle.cc +9 -23
- data/src/core/ext/filters/client_channel/retry_throttle.h +11 -5
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +7 -6
- data/src/core/ext/filters/client_channel/subchannel.cc +35 -38
- data/src/core/ext/filters/client_channel/subchannel.h +5 -4
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +96 -159
- data/src/core/ext/filters/client_idle/idle_filter_state.h +2 -2
- data/src/core/ext/filters/deadline/deadline_filter.cc +15 -14
- data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +17 -11
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +9 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +7 -3
- data/src/core/ext/filters/http/client_authority_filter.cc +28 -71
- data/src/core/ext/filters/http/client_authority_filter.h +23 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +11 -12
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +1 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +10 -2
- data/src/core/ext/filters/http/server/http_server_filter.cc +1 -0
- data/src/core/ext/filters/max_age/max_age_filter.cc +46 -40
- data/src/core/ext/filters/message_size/message_size_filter.cc +26 -34
- data/src/core/ext/filters/message_size/message_size_filter.h +9 -2
- data/src/core/ext/filters/rbac/rbac_filter.cc +13 -8
- data/src/core/ext/filters/rbac/rbac_filter.h +2 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +6 -5
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +6 -1
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +1 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +234 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +149 -7
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +110 -47
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +5 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +15 -51
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +6 -6
- data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +15 -12
- data/src/core/ext/transport/inproc/inproc_transport.cc +16 -12
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +114 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +402 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +119 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +453 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +165 -163
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +798 -575
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +138 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +146 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +106 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +93 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +103 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +466 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +95 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +22 -20
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +17 -16
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +31 -23
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +90 -88
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +421 -317
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +156 -152
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +787 -571
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +27 -25
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +115 -79
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +206 -204
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +954 -662
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +33 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +29 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +127 -79
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +290 -0
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1122 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +49 -47
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +221 -159
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +33 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +154 -151
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +691 -499
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +39 -37
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +178 -130
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +25 -19
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +18 -16
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +74 -53
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +138 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +100 -98
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +449 -329
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +77 -75
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +365 -264
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +11 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +36 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +140 -105
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +675 -345
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +25 -17
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +59 -42
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +39 -25
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +14 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +45 -35
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +34 -24
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +31 -29
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +113 -85
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +47 -45
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +210 -151
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +48 -46
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +210 -142
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +28 -20
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +58 -54
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +282 -193
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +64 -62
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +286 -218
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +62 -42
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +12 -10
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +54 -39
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +120 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +55 -53
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +244 -185
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +57 -55
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +260 -192
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +70 -68
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +235 -191
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +30 -28
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +142 -112
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +435 -428
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2037 -1507
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +25 -19
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +107 -64
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +216 -0
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +870 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +82 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +95 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +55 -40
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +119 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +203 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +89 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +184 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +32 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +42 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +192 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +126 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +29 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +26 -24
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +125 -93
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +33 -31
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +149 -105
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +16 -14
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +63 -44
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +53 -37
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +175 -173
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +803 -559
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +3 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +75 -52
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +368 -194
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +24 -22
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +95 -71
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +60 -58
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +266 -193
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +146 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +6 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +22 -16
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +64 -62
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +297 -218
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +18 -16
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +73 -54
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +46 -44
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +197 -145
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +101 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +19 -17
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +91 -70
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +202 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +16 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +64 -47
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +34 -26
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +25 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +25 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +21 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +85 -61
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +19 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +65 -52
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +14 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +56 -43
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +21 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +74 -58
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +30 -28
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +163 -125
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +34 -32
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +157 -113
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +183 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +3 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +136 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +51 -34
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +19 -17
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +80 -52
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +31 -19
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +114 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +10 -8
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +6 -5
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +100 -98
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +371 -281
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +110 -108
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +409 -298
- data/src/core/ext/upb-generated/google/api/http.upb.c +29 -27
- data/src/core/ext/upb-generated/google/api/http.upb.h +117 -89
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +99 -0
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +9 -7
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +32 -22
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +287 -234
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1088 -764
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +9 -7
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +28 -18
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +6 -4
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +22 -16
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +30 -28
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +80 -64
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +9 -7
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +28 -18
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +40 -38
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +213 -149
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +11 -9
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +36 -26
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +276 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +20 -18
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +60 -42
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +95 -93
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +396 -285
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +15 -13
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +58 -39
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +12 -10
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +50 -35
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +55 -53
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +255 -183
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +22 -20
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +76 -57
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +46 -44
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +102 -78
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +16 -14
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +32 -22
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +9 -7
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +6 -5
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +16 -14
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +32 -22
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +15 -13
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +31 -23
- data/src/core/ext/upb-generated/validate/validate.upb.c +320 -304
- data/src/core/ext/upb-generated/validate/validate.upb.h +1114 -741
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +191 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +87 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +38 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +40 -38
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +109 -78
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +81 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +8 -6
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +27 -19
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +17 -15
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +63 -46
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +14 -12
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +31 -25
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +95 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +11 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +39 -27
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +20 -18
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +73 -54
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +12 -10
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +43 -29
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +23 -21
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +43 -31
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +203 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +726 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +132 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +173 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +10 -8
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +33 -23
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +14 -12
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +67 -67
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +8 -6
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +8 -6
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +20 -17
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +46 -46
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +248 -240
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +55 -55
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +16 -13
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +375 -371
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +76 -76
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +16 -13
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +15 -13
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +85 -80
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +73 -73
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +18 -16
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +14 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +21 -18
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +43 -43
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +23 -20
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +25 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +14 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +250 -221
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +53 -43
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +12 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +18 -15
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +13 -11
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +18 -15
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +19 -16
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +19 -19
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +18 -15
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +52 -45
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +19 -19
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +23 -20
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +19 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +25 -25
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +28 -28
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +23 -21
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +25 -25
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +19 -16
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +816 -801
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +160 -160
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +52 -37
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +188 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +15 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +18 -15
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +17 -13
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +135 -130
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +58 -58
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +15 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +169 -140
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +24 -19
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +19 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +21 -17
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +19 -19
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +16 -13
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +20 -17
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +14 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +16 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +10 -8
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +12 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +11 -8
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +11 -9
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +40 -40
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +43 -43
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +82 -82
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +28 -28
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +70 -70
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +4 -4
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +4 -4
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/upb_utils.h +8 -6
- data/src/core/ext/xds/xds_api.cc +52 -35
- data/src/core/ext/xds/xds_api.h +4 -4
- data/src/core/ext/xds/xds_bootstrap.cc +35 -3
- data/src/core/ext/xds/xds_bootstrap.h +11 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +14 -17
- data/src/core/ext/xds/xds_channel_stack_modifier.h +4 -3
- data/src/core/ext/xds/xds_client.cc +141 -106
- data/src/core/ext/xds/xds_client.h +23 -15
- data/src/core/ext/xds/xds_client_stats.cc +15 -15
- data/src/core/ext/xds/xds_client_stats.h +5 -4
- data/src/core/ext/xds/xds_cluster.cc +18 -16
- data/src/core/ext/xds/xds_cluster.h +3 -6
- data/src/core/ext/xds/xds_common_types.cc +1 -1
- data/src/core/ext/xds/xds_common_types.h +5 -20
- data/src/core/ext/xds/xds_endpoint.cc +2 -2
- data/src/core/ext/xds/xds_endpoint.h +1 -1
- data/src/core/ext/xds/xds_http_fault_filter.cc +6 -6
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
- data/src/core/ext/xds/xds_http_filters.cc +6 -5
- data/src/core/ext/xds/xds_http_filters.h +4 -4
- data/src/core/ext/xds/xds_http_rbac_filter.cc +5 -5
- data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
- data/src/core/ext/xds/xds_listener.cc +14 -11
- data/src/core/ext/xds/xds_listener.h +1 -1
- data/src/core/ext/xds/xds_resource_type.h +1 -1
- data/src/core/ext/xds/xds_route_config.cc +13 -21
- data/src/core/ext/xds/xds_route_config.h +1 -1
- data/src/core/ext/xds/xds_routing.cc +1 -1
- data/src/core/ext/xds/xds_server_config_fetcher.cc +3 -2
- data/src/core/lib/backoff/backoff.cc +7 -10
- data/src/core/lib/backoff/backoff.h +8 -8
- data/src/core/lib/channel/call_finalization.h +86 -0
- data/src/core/lib/channel/channel_args.cc +60 -0
- data/src/core/lib/channel/channel_args.h +2 -0
- data/src/core/lib/channel/channel_args_preconditioning.cc +1 -0
- data/src/core/lib/channel/channel_stack.cc +2 -3
- data/src/core/lib/channel/channel_stack.h +41 -5
- data/src/core/lib/channel/channel_stack_builder.cc +66 -244
- data/src/core/lib/channel/channel_stack_builder.h +95 -144
- data/src/core/lib/channel/channel_trace.cc +3 -6
- data/src/core/lib/channel/connected_channel.cc +9 -4
- data/src/core/lib/channel/connected_channel.h +1 -1
- data/src/core/lib/channel/context.h +11 -0
- data/src/core/lib/channel/handshaker.cc +1 -1
- data/src/core/lib/channel/handshaker.h +1 -1
- data/src/core/lib/channel/promise_based_filter.cc +669 -0
- data/src/core/lib/channel/promise_based_filter.h +423 -0
- data/src/core/lib/compression/compression.cc +1 -1
- data/src/core/lib/compression/compression_internal.cc +1 -1
- data/src/core/lib/config/core_configuration.cc +8 -2
- data/src/core/lib/config/core_configuration.h +39 -0
- data/src/core/lib/event_engine/default_event_engine_factory.cc +27 -0
- data/src/core/lib/event_engine/event_engine.cc +23 -8
- data/src/core/lib/event_engine/event_engine_factory.h +3 -0
- data/src/core/lib/event_engine/memory_allocator.cc +9 -13
- data/src/core/lib/event_engine/{event_engine_factory.cc → resolved_address.cc} +10 -20
- data/src/core/lib/gpr/sync_posix.cc +1 -0
- data/src/core/lib/gpr/time.cc +2 -1
- data/src/core/lib/gpr/useful.h +14 -0
- data/src/core/lib/gprpp/capture.h +76 -0
- data/src/core/lib/gprpp/debug_location.h +2 -0
- data/src/core/lib/gprpp/status_helper.cc +12 -12
- data/src/core/lib/gprpp/status_helper.h +4 -4
- data/src/core/lib/gprpp/time.cc +186 -0
- data/src/core/lib/gprpp/time.h +292 -0
- data/src/core/lib/http/format_request.cc +27 -23
- data/src/core/lib/http/format_request.h +7 -6
- data/src/core/lib/http/httpcli.cc +306 -229
- data/src/core/lib/http/httpcli.h +182 -77
- data/src/core/lib/http/httpcli_security_connector.cc +62 -73
- data/src/core/lib/http/httpcli_ssl_credentials.h +37 -0
- data/src/core/lib/http/parser.h +1 -1
- data/src/core/lib/iomgr/buffer_list.h +5 -5
- data/src/core/lib/iomgr/error.cc +13 -12
- data/src/core/lib/iomgr/error.h +0 -5
- data/src/core/lib/iomgr/ev_apple.cc +6 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +8 -7
- data/src/core/lib/iomgr/ev_epollex_linux.cc +12 -9
- data/src/core/lib/iomgr/ev_poll_posix.cc +7 -7
- data/src/core/lib/iomgr/ev_posix.cc +3 -3
- data/src/core/lib/iomgr/ev_posix.h +1 -1
- data/src/core/lib/iomgr/event_engine/pollset.cc +2 -3
- data/src/core/lib/iomgr/event_engine/resolver.cc +1 -1
- data/src/core/lib/iomgr/event_engine/tcp.cc +4 -3
- data/src/core/lib/iomgr/event_engine/timer.cc +3 -4
- data/src/core/lib/iomgr/exec_ctx.cc +3 -88
- data/src/core/lib/iomgr/exec_ctx.h +7 -23
- data/src/core/lib/iomgr/iocp_windows.cc +9 -9
- data/src/core/lib/iomgr/iocp_windows.h +1 -1
- data/src/core/lib/iomgr/polling_entity.h +6 -0
- data/src/core/lib/iomgr/pollset.cc +1 -1
- data/src/core/lib/iomgr/pollset.h +4 -4
- data/src/core/lib/iomgr/pollset_windows.cc +2 -2
- data/src/core/lib/iomgr/port.h +4 -7
- data/src/core/lib/iomgr/resolve_address_posix.cc +1 -1
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +62 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +0 -17
- data/src/core/lib/iomgr/tcp_client.cc +1 -1
- data/src/core/lib/iomgr/tcp_client.h +3 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +1 -1
- data/src/core/lib/iomgr/tcp_client_posix.cc +2 -2
- data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_windows.cc +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +2 -1
- data/src/core/lib/iomgr/tcp_windows.cc +17 -10
- data/src/core/lib/iomgr/timer.cc +2 -2
- data/src/core/lib/iomgr/timer.h +11 -6
- data/src/core/lib/iomgr/timer_generic.cc +96 -77
- data/src/core/lib/iomgr/timer_manager.cc +15 -14
- data/src/core/lib/iomgr/work_serializer.cc +15 -10
- data/src/core/lib/json/json_util.cc +4 -4
- data/src/core/lib/json/json_util.h +2 -2
- data/src/core/lib/promise/activity.cc +14 -8
- data/src/core/lib/promise/activity.h +143 -131
- data/src/core/lib/promise/arena_promise.h +188 -0
- data/src/core/lib/promise/detail/basic_seq.h +92 -3
- data/src/core/lib/promise/detail/promise_factory.h +1 -1
- data/src/core/lib/promise/loop.h +34 -8
- data/src/core/lib/promise/poll.h +6 -0
- data/src/core/lib/promise/promise.h +95 -0
- data/src/core/lib/promise/seq.h +19 -1
- data/src/core/lib/promise/sleep.cc +74 -0
- data/src/core/lib/promise/sleep.h +66 -0
- data/src/core/lib/promise/try_seq.h +157 -0
- data/src/core/lib/resolver/resolver_factory.h +22 -26
- data/src/core/lib/resolver/resolver_registry.cc +98 -137
- data/src/core/lib/resolver/resolver_registry.h +59 -33
- data/src/core/lib/resource_quota/memory_quota.cc +118 -94
- data/src/core/lib/resource_quota/memory_quota.h +100 -64
- data/src/core/lib/security/authorization/evaluate_args.cc +1 -11
- data/src/core/lib/security/authorization/evaluate_args.h +0 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +109 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +51 -0
- data/src/core/lib/security/authorization/matchers.cc +5 -5
- data/src/core/lib/security/authorization/matchers.h +2 -2
- data/src/core/lib/security/authorization/rbac_policy.cc +3 -3
- data/src/core/lib/security/authorization/rbac_policy.h +3 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.h +6 -0
- data/src/core/lib/security/credentials/call_creds_util.cc +87 -0
- data/src/core/lib/security/credentials/call_creds_util.h +42 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +97 -0
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +70 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -81
- data/src/core/lib/security/credentials/composite/composite_credentials.h +21 -10
- data/src/core/lib/security/credentials/credentials.cc +2 -3
- data/src/core/lib/security/credentials/credentials.h +64 -43
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +46 -27
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +49 -29
- data/src/core/lib/security/credentials/external/external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +0 -1
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +33 -12
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +18 -19
- data/src/core/lib/security/credentials/fake/fake_credentials.h +11 -14
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +15 -9
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +6 -0
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +12 -17
- data/src/core/lib/security/credentials/iam/iam_credentials.h +10 -9
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +13 -7
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +18 -22
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +9 -9
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -30
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +6 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +117 -125
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +49 -28
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +95 -152
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +54 -28
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +6 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +19 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +10 -1
- data/src/core/lib/security/credentials/tls/tls_credentials.h +6 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.h +5 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +8 -14
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +1 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +4 -12
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +6 -16
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +4 -9
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -16
- data/src/core/lib/security/security_connector/security_connector.cc +3 -11
- data/src/core/lib/security/security_connector/security_connector.h +11 -20
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +6 -11
- data/src/core/lib/security/security_connector/ssl_utils.cc +15 -7
- data/src/core/lib/security/security_connector/ssl_utils.h +8 -3
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +23 -14
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +6 -6
- data/src/core/lib/security/transport/auth_filters.h +30 -4
- data/src/core/lib/security/transport/client_auth_filter.cc +73 -364
- data/src/core/lib/security/transport/security_handshaker.cc +14 -6
- data/src/core/lib/security/transport/server_auth_filter.cc +1 -0
- data/src/core/lib/service_config/service_config.h +6 -51
- data/src/core/lib/service_config/{service_config.cc → service_config_impl.cc} +19 -16
- data/src/core/lib/service_config/service_config_impl.h +125 -0
- data/src/core/lib/service_config/service_config_parser.cc +30 -26
- data/src/core/lib/service_config/service_config_parser.h +36 -27
- data/src/core/lib/slice/slice.cc +76 -181
- data/src/core/lib/slice/slice.h +28 -15
- data/src/core/lib/slice/slice_internal.h +12 -30
- data/src/core/lib/slice/slice_refcount.cc +18 -0
- data/src/core/lib/slice/slice_refcount.h +2 -72
- data/src/core/lib/slice/slice_refcount_base.h +16 -120
- data/src/core/lib/surface/builtins.cc +6 -6
- data/src/core/lib/surface/call.cc +14 -7
- data/src/core/lib/surface/call.h +1 -1
- data/src/core/lib/surface/channel.cc +26 -31
- data/src/core/lib/surface/channel.h +6 -7
- data/src/core/lib/surface/channel_init.cc +1 -1
- data/src/core/lib/surface/channel_init.h +4 -4
- data/src/core/lib/surface/completion_queue.cc +10 -9
- data/src/core/lib/surface/init.cc +78 -7
- data/src/core/lib/surface/init.h +0 -2
- data/src/core/lib/surface/lame_client.cc +2 -1
- data/src/core/lib/surface/server.cc +11 -22
- data/src/core/lib/surface/server.h +3 -3
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +9 -10
- data/src/core/lib/transport/bdp_estimator.h +2 -2
- data/src/core/lib/transport/error_utils.cc +5 -3
- data/src/core/lib/transport/error_utils.h +2 -15
- data/src/core/lib/transport/metadata_batch.h +275 -97
- data/src/core/lib/transport/parsed_metadata.h +33 -17
- data/src/core/lib/transport/status_conversion.cc +2 -2
- data/src/core/lib/transport/status_conversion.h +1 -1
- data/src/core/lib/transport/timeout_encoding.cc +32 -29
- data/src/core/lib/transport/timeout_encoding.h +3 -3
- data/src/core/lib/transport/transport.cc +3 -1
- data/src/core/lib/transport/transport.h +87 -2
- data/src/core/lib/transport/transport_impl.h +13 -0
- data/src/core/lib/transport/transport_op_string.cc +5 -14
- data/src/core/lib/uri/uri_parser.cc +4 -0
- data/src/core/lib/uri/uri_parser.h +1 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +19 -88
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +85 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +26 -21
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +9 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +19 -11
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -2
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +2 -2
- data/src/core/tsi/local_transport_security.cc +3 -11
- data/src/core/tsi/local_transport_security.h +1 -4
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +141 -0
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
- data/src/core/tsi/ssl_transport_security.cc +52 -1
- data/src/core/tsi/ssl_transport_security.h +20 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_channel.c +5 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +18 -24
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +27 -36
- data/src/ruby/ext/grpc/rb_server.c +7 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/cares/cares/{ares.h → include/ares.h} +73 -1
- data/third_party/cares/cares/{ares_dns.h → include/ares_dns.h} +9 -0
- data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
- data/third_party/cares/cares/{ares_version.h → include/ares_version.h} +3 -3
- data/third_party/cares/cares/{ares__close_sockets.c → src/lib/ares__close_sockets.c} +2 -2
- data/third_party/cares/cares/{ares__get_hostent.c → src/lib/ares__get_hostent.c} +1 -2
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
- data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
- data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_android.c +444 -0
- data/third_party/cares/cares/src/lib/ares_android.h +27 -0
- data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
- data/third_party/cares/cares/{ares_create_query.c → src/lib/ares_create_query.c} +8 -17
- data/third_party/cares/cares/{ares_data.c → src/lib/ares_data.c} +18 -0
- data/third_party/cares/cares/{ares_data.h → src/lib/ares_data.h} +2 -0
- data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
- data/third_party/cares/cares/{ares_expand_name.c → src/lib/ares_expand_name.c} +114 -23
- data/third_party/cares/cares/{ares_expand_string.c → src/lib/ares_expand_string.c} +2 -5
- data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
- data/third_party/cares/cares/{ares_free_hostent.c → src/lib/ares_free_hostent.c} +6 -4
- data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
- data/third_party/cares/cares/{ares_getenv.c → src/lib/ares_getenv.c} +0 -2
- data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
- data/third_party/cares/cares/{ares_gethostbyaddr.c → src/lib/ares_gethostbyaddr.c} +2 -9
- data/third_party/cares/cares/{ares_gethostbyname.c → src/lib/ares_gethostbyname.c} +25 -20
- data/third_party/cares/cares/{ares_getnameinfo.c → src/lib/ares_getnameinfo.c} +4 -10
- data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
- data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
- data/third_party/cares/cares/{ares_init.c → src/lib/ares_init.c} +79 -40
- data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
- data/third_party/cares/cares/{ares_ipv6.h → src/lib/ares_ipv6.h} +7 -0
- data/third_party/cares/cares/{ares_library_init.c → src/lib/ares_library_init.c} +7 -2
- data/third_party/cares/cares/{ares_library_init.h → src/lib/ares_library_init.h} +1 -1
- data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
- data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
- data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
- data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
- data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
- data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
- data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
- data/third_party/cares/cares/{ares_parse_mx_reply.c → src/lib/ares_parse_mx_reply.c} +2 -8
- data/third_party/cares/cares/{ares_parse_naptr_reply.c → src/lib/ares_parse_naptr_reply.c} +2 -13
- data/third_party/cares/cares/{ares_parse_ns_reply.c → src/lib/ares_parse_ns_reply.c} +5 -11
- data/third_party/cares/cares/{ares_parse_ptr_reply.c → src/lib/ares_parse_ptr_reply.c} +53 -46
- data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
- data/third_party/cares/cares/{ares_parse_srv_reply.c → src/lib/ares_parse_srv_reply.c} +2 -13
- data/third_party/cares/cares/{ares_parse_txt_reply.c → src/lib/ares_parse_txt_reply.c} +3 -9
- data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
- data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
- data/third_party/cares/cares/{ares_private.h → src/lib/ares_private.h} +52 -11
- data/third_party/cares/cares/{ares_process.c → src/lib/ares_process.c} +127 -52
- data/third_party/cares/cares/{ares_query.c → src/lib/ares_query.c} +3 -9
- data/third_party/cares/cares/{ares_search.c → src/lib/ares_search.c} +5 -7
- data/third_party/cares/cares/{ares_send.c → src/lib/ares_send.c} +2 -8
- data/third_party/cares/cares/{ares_setup.h → src/lib/ares_setup.h} +4 -1
- data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
- data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
- data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
- data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
- data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
- data/third_party/cares/cares/{ares_strsplit.c → src/lib/ares_strsplit.c} +4 -0
- data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
- data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
- data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
- data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
- data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
- data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
- data/third_party/cares/cares/src/lib/config-dos.h +115 -0
- data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
- data/third_party/cares/cares/{inet_net_pton.c → src/lib/inet_net_pton.c} +2 -8
- data/third_party/cares/cares/{inet_ntop.c → src/lib/inet_ntop.c} +2 -8
- data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
- data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
- data/third_party/upb/third_party/utf8_range/naive.c +92 -0
- data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
- data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
- data/third_party/upb/upb/decode.c +526 -319
- data/third_party/upb/upb/decode.h +43 -17
- data/third_party/upb/upb/decode_fast.c +303 -301
- data/third_party/upb/upb/decode_fast.h +18 -18
- data/third_party/upb/upb/decode_internal.h +73 -56
- data/third_party/upb/upb/def.c +1863 -1078
- data/third_party/upb/upb/def.h +318 -286
- data/third_party/upb/upb/def.hpp +129 -172
- data/third_party/upb/upb/encode.c +202 -175
- data/third_party/upb/upb/encode.h +15 -17
- data/third_party/upb/upb/msg.c +144 -124
- data/third_party/upb/upb/msg.h +40 -33
- data/third_party/upb/upb/msg_internal.h +321 -272
- data/third_party/upb/upb/reflection.c +239 -199
- data/third_party/upb/upb/reflection.h +87 -67
- data/third_party/upb/upb/reflection.hpp +6 -6
- data/third_party/upb/upb/table.c +222 -142
- data/third_party/upb/upb/table_internal.h +128 -96
- data/third_party/upb/upb/text_encode.c +113 -90
- data/third_party/upb/upb/text_encode.h +10 -10
- data/third_party/upb/upb/upb.c +111 -72
- data/third_party/upb/upb/upb.h +120 -144
- data/third_party/upb/upb/upb.hpp +31 -28
- data/third_party/upb/upb/upb_internal.h +21 -11
- metadata +301 -170
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -44
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -83
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -122
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -92
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -192
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -52
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -79
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -125
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -36
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -64
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +0 -102
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +0 -306
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +0 -56
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +0 -135
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +0 -115
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +0 -371
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -67
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +0 -68
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +0 -67
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +0 -75
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +0 -69
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.c +0 -58
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.h +0 -55
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.c +0 -44
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.c +0 -75
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.h +0 -55
- data/src/core/ext/xds/xds_channel_creds.cc +0 -108
- data/src/core/ext/xds/xds_channel_creds.h +0 -50
- data/src/core/lib/iomgr/iomgr_custom.cc +0 -82
- data/src/core/lib/iomgr/iomgr_custom.h +0 -49
- data/src/core/lib/iomgr/pollset_custom.cc +0 -105
- data/src/core/lib/iomgr/pollset_custom.h +0 -37
- data/src/core/lib/iomgr/pollset_set_custom.cc +0 -47
- data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
- data/src/core/lib/iomgr/resolve_address_custom.cc +0 -191
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -126
- data/src/core/lib/iomgr/tcp_client_custom.cc +0 -146
- data/src/core/lib/iomgr/tcp_custom.cc +0 -350
- data/src/core/lib/iomgr/tcp_custom.h +0 -85
- data/src/core/lib/iomgr/tcp_server_custom.cc +0 -457
- data/src/core/lib/iomgr/timer_custom.cc +0 -96
- data/src/core/lib/iomgr/timer_custom.h +0 -43
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +0 -173
- data/src/core/lib/security/authorization/sdk_server_authz_filter.h +0 -67
- data/src/core/lib/slice/slice_intern.cc +0 -269
- data/src/core/lib/slice/slice_utils.h +0 -200
- data/src/core/lib/surface/init_secure.cc +0 -103
- data/third_party/cares/cares/ares_getopt.c +0 -122
- data/third_party/cares/cares/ares_getopt.h +0 -53
- data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
@@ -28,14 +28,16 @@ namespace grpc_core {
|
|
28
28
|
GPR_THREAD_LOCAL(Activity*) Activity::g_current_activity_{nullptr};
|
29
29
|
Waker::Unwakeable Waker::unwakeable_;
|
30
30
|
|
31
|
+
namespace promise_detail {
|
32
|
+
|
31
33
|
///////////////////////////////////////////////////////////////////////////////
|
32
34
|
// HELPER TYPES
|
33
35
|
|
34
36
|
// Weak handle to an Activity.
|
35
37
|
// Handle can persist while Activity goes away.
|
36
|
-
class
|
38
|
+
class FreestandingActivity::Handle final : public Wakeable {
|
37
39
|
public:
|
38
|
-
explicit Handle(
|
40
|
+
explicit Handle(FreestandingActivity* activity) : activity_(activity) {}
|
39
41
|
|
40
42
|
// Ref the Handle (not the activity).
|
41
43
|
void Ref() { refs_.fetch_add(1, std::memory_order_relaxed); }
|
@@ -57,7 +59,7 @@ class Activity::Handle final : public Wakeable {
|
|
57
59
|
// against DropActivity, so we need to only increase activities refcount if
|
58
60
|
// it is non-zero.
|
59
61
|
if (activity_ && activity_->RefIfNonzero()) {
|
60
|
-
|
62
|
+
FreestandingActivity* activity = activity_;
|
61
63
|
mu_.Unlock();
|
62
64
|
// Activity still exists and we have a reference: wake it up, which will
|
63
65
|
// drop the ref.
|
@@ -85,15 +87,15 @@ class Activity::Handle final : public Wakeable {
|
|
85
87
|
// activity.
|
86
88
|
std::atomic<size_t> refs_{2};
|
87
89
|
Mutex mu_ ABSL_ACQUIRED_AFTER(activity_->mu_);
|
88
|
-
|
90
|
+
FreestandingActivity* activity_ ABSL_GUARDED_BY(mu_);
|
89
91
|
};
|
90
92
|
|
91
93
|
///////////////////////////////////////////////////////////////////////////////
|
92
94
|
// ACTIVITY IMPLEMENTATION
|
93
95
|
|
94
|
-
bool
|
96
|
+
bool FreestandingActivity::RefIfNonzero() { return IncrementIfNonzero(&refs_); }
|
95
97
|
|
96
|
-
|
98
|
+
FreestandingActivity::Handle* FreestandingActivity::RefHandle() {
|
97
99
|
if (handle_ == nullptr) {
|
98
100
|
// No handle created yet - construct it and return it.
|
99
101
|
handle_ = new Handle(this);
|
@@ -105,11 +107,15 @@ Activity::Handle* Activity::RefHandle() {
|
|
105
107
|
}
|
106
108
|
}
|
107
109
|
|
108
|
-
void
|
110
|
+
void FreestandingActivity::DropHandle() {
|
109
111
|
handle_->DropActivity();
|
110
112
|
handle_ = nullptr;
|
111
113
|
}
|
112
114
|
|
113
|
-
Waker
|
115
|
+
Waker FreestandingActivity::MakeNonOwningWaker() {
|
116
|
+
mu_.AssertHeld();
|
117
|
+
return Waker(RefHandle());
|
118
|
+
}
|
114
119
|
|
120
|
+
} // namespace promise_detail
|
115
121
|
} // namespace grpc_core
|
@@ -37,6 +37,7 @@
|
|
37
37
|
|
38
38
|
#include "src/core/lib/gpr/tls.h"
|
39
39
|
#include "src/core/lib/gprpp/construct_destruct.h"
|
40
|
+
#include "src/core/lib/gprpp/orphanable.h"
|
40
41
|
#include "src/core/lib/gprpp/sync.h"
|
41
42
|
#include "src/core/lib/promise/context.h"
|
42
43
|
#include "src/core/lib/promise/detail/promise_factory.h"
|
@@ -110,22 +111,8 @@ class Waker {
|
|
110
111
|
// Activity execution may be cancelled by simply deleting the activity. In such
|
111
112
|
// a case, if execution had not already finished, the done callback would be
|
112
113
|
// called with absl::CancelledError().
|
113
|
-
class Activity :
|
114
|
+
class Activity : public Orphanable {
|
114
115
|
public:
|
115
|
-
// Cancel execution of the underlying promise.
|
116
|
-
virtual void Cancel() ABSL_LOCKS_EXCLUDED(mu_) = 0;
|
117
|
-
|
118
|
-
// Destroy the Activity - used for the type alias ActivityPtr.
|
119
|
-
struct Deleter {
|
120
|
-
void operator()(Activity* activity) {
|
121
|
-
activity->Cancel();
|
122
|
-
activity->Unref();
|
123
|
-
}
|
124
|
-
};
|
125
|
-
|
126
|
-
// Fetch the size of the implementation of this activity.
|
127
|
-
virtual size_t Size() = 0;
|
128
|
-
|
129
116
|
// Force wakeup from the outside.
|
130
117
|
// This should be rarely needed, and usages should be accompanied with a note
|
131
118
|
// on why it's not possible to wakeup with a Waker object.
|
@@ -133,11 +120,8 @@ class Activity : private Wakeable {
|
|
133
120
|
// an Activity to repoll.
|
134
121
|
void ForceWakeup() { MakeOwningWaker().Wakeup(); }
|
135
122
|
|
136
|
-
//
|
137
|
-
|
138
|
-
static void WakeupCurrent() {
|
139
|
-
current()->SetActionDuringRun(ActionDuringRun::kWakeup);
|
140
|
-
}
|
123
|
+
// Force the current activity to immediately repoll if it doesn't complete.
|
124
|
+
virtual void ForceImmediateRepoll() = 0;
|
141
125
|
|
142
126
|
// Return the current activity.
|
143
127
|
// Additionally:
|
@@ -146,58 +130,23 @@ class Activity : private Wakeable {
|
|
146
130
|
// locked
|
147
131
|
// - back up that assertation with a runtime check in debug builds (it's
|
148
132
|
// prohibitively expensive in non-debug builds)
|
149
|
-
static Activity* current()
|
150
|
-
#ifndef NDEBUG
|
151
|
-
GPR_ASSERT(g_current_activity_);
|
152
|
-
if (g_current_activity_ != nullptr) {
|
153
|
-
g_current_activity_->mu_.AssertHeld();
|
154
|
-
}
|
155
|
-
#endif
|
156
|
-
return g_current_activity_;
|
157
|
-
}
|
133
|
+
static Activity* current() { return g_current_activity_; }
|
158
134
|
|
159
135
|
// Produce an activity-owning Waker. The produced waker will keep the activity
|
160
136
|
// alive until it's awoken or dropped.
|
161
|
-
Waker MakeOwningWaker()
|
162
|
-
Ref();
|
163
|
-
return Waker(this);
|
164
|
-
}
|
137
|
+
virtual Waker MakeOwningWaker() = 0;
|
165
138
|
|
166
139
|
// Produce a non-owning Waker. The waker will own a small heap allocated weak
|
167
140
|
// pointer to this activity. This is more suitable for wakeups that may not be
|
168
141
|
// delivered until long after the activity should be destroyed.
|
169
|
-
Waker MakeNonOwningWaker()
|
142
|
+
virtual Waker MakeNonOwningWaker() = 0;
|
170
143
|
|
171
144
|
protected:
|
172
|
-
// Action received during a run, in priority order.
|
173
|
-
// If more than one action is received during a run, we use max() to resolve
|
174
|
-
// which one to report (so Cancel overrides Wakeup).
|
175
|
-
enum class ActionDuringRun : uint8_t {
|
176
|
-
kNone, // No action occured during run.
|
177
|
-
kWakeup, // A wakeup occured during run.
|
178
|
-
kCancel, // Cancel was called during run.
|
179
|
-
};
|
180
|
-
|
181
|
-
inline virtual ~Activity() {
|
182
|
-
if (handle_) {
|
183
|
-
DropHandle();
|
184
|
-
}
|
185
|
-
}
|
186
|
-
|
187
|
-
// All promise execution occurs under this mutex.
|
188
|
-
Mutex mu_;
|
189
|
-
|
190
145
|
// Check if this activity is the current activity executing on the current
|
191
146
|
// thread.
|
192
147
|
bool is_current() const { return this == g_current_activity_; }
|
193
148
|
// Check if there is an activity executing on the current thread.
|
194
149
|
static bool have_current() { return g_current_activity_ != nullptr; }
|
195
|
-
// Check if we got an internal wakeup since the last time this function was
|
196
|
-
// called.
|
197
|
-
ActionDuringRun GotActionDuringRun() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
|
198
|
-
return absl::exchange(action_during_run_, ActionDuringRun::kNone);
|
199
|
-
}
|
200
|
-
|
201
150
|
// Set the current activity at construction, clean it up at destruction.
|
202
151
|
class ScopedActivity {
|
203
152
|
public:
|
@@ -210,58 +159,14 @@ class Activity : private Wakeable {
|
|
210
159
|
ScopedActivity& operator=(const ScopedActivity&) = delete;
|
211
160
|
};
|
212
161
|
|
213
|
-
// Implementors of Wakeable::Wakeup should call this after the wakeup has
|
214
|
-
// completed.
|
215
|
-
void WakeupComplete() { Unref(); }
|
216
|
-
|
217
|
-
// Mark the current activity as being cancelled (so we can actually cancel it
|
218
|
-
// after polling).
|
219
|
-
void CancelCurrent() {
|
220
|
-
current()->SetActionDuringRun(ActionDuringRun::kCancel);
|
221
|
-
}
|
222
|
-
|
223
162
|
private:
|
224
|
-
class Handle;
|
225
|
-
|
226
|
-
void Ref() { refs_.fetch_add(1, std::memory_order_relaxed); }
|
227
|
-
void Unref() {
|
228
|
-
if (1 == refs_.fetch_sub(1, std::memory_order_acq_rel)) {
|
229
|
-
delete this;
|
230
|
-
}
|
231
|
-
}
|
232
|
-
|
233
|
-
// Return a Handle instance with a ref so that it can be stored waiting for
|
234
|
-
// some wakeup.
|
235
|
-
Handle* RefHandle() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
236
|
-
// If our refcount is non-zero, ref and return true.
|
237
|
-
// Otherwise, return false.
|
238
|
-
bool RefIfNonzero();
|
239
|
-
// Drop the (proved existing) wait handle.
|
240
|
-
void DropHandle() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
241
|
-
// Set the action that occured during this run.
|
242
|
-
// We use max to combine actions so that cancellation overrides wakeups.
|
243
|
-
void SetActionDuringRun(ActionDuringRun action)
|
244
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
|
245
|
-
action_during_run_ = std::max(action_during_run_, action);
|
246
|
-
}
|
247
|
-
|
248
|
-
// Current refcount.
|
249
|
-
std::atomic<uint32_t> refs_{1};
|
250
|
-
// If wakeup is called during Promise polling, we set this to Wakeup and
|
251
|
-
// repoll. If cancel is called during Promise polling, we set this to Cancel
|
252
|
-
// and cancel at the end of polling.
|
253
|
-
ActionDuringRun action_during_run_ ABSL_GUARDED_BY(mu_) =
|
254
|
-
ActionDuringRun::kNone;
|
255
|
-
// Handle for long waits. Allows a very small weak pointer type object to
|
256
|
-
// queue for wakeups while Activity may be deleted earlier.
|
257
|
-
Handle* handle_ ABSL_GUARDED_BY(mu_) = nullptr;
|
258
163
|
// Set during RunLoop to the Activity that's executing.
|
259
164
|
// Being set implies that mu_ is held.
|
260
165
|
static GPR_THREAD_LOCAL(Activity*) g_current_activity_;
|
261
166
|
};
|
262
167
|
|
263
168
|
// Owned pointer to one Activity.
|
264
|
-
using ActivityPtr =
|
169
|
+
using ActivityPtr = OrphanablePtr<Activity>;
|
265
170
|
|
266
171
|
namespace promise_detail {
|
267
172
|
|
@@ -320,6 +225,107 @@ class ActivityContexts : public ContextHolder<Contexts>... {
|
|
320
225
|
};
|
321
226
|
};
|
322
227
|
|
228
|
+
// A free standing activity: an activity that owns its own synchronization and
|
229
|
+
// memory.
|
230
|
+
// The alternative is an activity that's somehow tied into another system, for
|
231
|
+
// instance the type seen in promise_based_filter.h as we're transitioning from
|
232
|
+
// the old filter stack to the new system.
|
233
|
+
// FreestandingActivity is-a Wakeable, but needs to increment a refcount before
|
234
|
+
// returning that Wakeable interface. Additionally, we want to keep
|
235
|
+
// FreestandingActivity as small as is possible, since it will be used
|
236
|
+
// everywhere. So we use inheritance to provide the Wakeable interface: this
|
237
|
+
// makes it zero sized, and we make the inheritance private to prevent
|
238
|
+
// accidental casting.
|
239
|
+
class FreestandingActivity : public Activity, private Wakeable {
|
240
|
+
public:
|
241
|
+
Waker MakeOwningWaker() final {
|
242
|
+
Ref();
|
243
|
+
return Waker(this);
|
244
|
+
}
|
245
|
+
Waker MakeNonOwningWaker() final;
|
246
|
+
|
247
|
+
void Orphan() final {
|
248
|
+
Cancel();
|
249
|
+
Unref();
|
250
|
+
}
|
251
|
+
|
252
|
+
void ForceImmediateRepoll() final {
|
253
|
+
mu_.AssertHeld();
|
254
|
+
SetActionDuringRun(ActionDuringRun::kWakeup);
|
255
|
+
}
|
256
|
+
|
257
|
+
protected:
|
258
|
+
// Action received during a run, in priority order.
|
259
|
+
// If more than one action is received during a run, we use max() to resolve
|
260
|
+
// which one to report (so Cancel overrides Wakeup).
|
261
|
+
enum class ActionDuringRun : uint8_t {
|
262
|
+
kNone, // No action occured during run.
|
263
|
+
kWakeup, // A wakeup occured during run.
|
264
|
+
kCancel, // Cancel was called during run.
|
265
|
+
};
|
266
|
+
|
267
|
+
inline ~FreestandingActivity() override {
|
268
|
+
if (handle_) {
|
269
|
+
DropHandle();
|
270
|
+
}
|
271
|
+
}
|
272
|
+
|
273
|
+
// Check if we got an internal wakeup since the last time this function was
|
274
|
+
// called.
|
275
|
+
ActionDuringRun GotActionDuringRun() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
|
276
|
+
return absl::exchange(action_during_run_, ActionDuringRun::kNone);
|
277
|
+
}
|
278
|
+
|
279
|
+
// Implementors of Wakeable::Wakeup should call this after the wakeup has
|
280
|
+
// completed.
|
281
|
+
void WakeupComplete() { Unref(); }
|
282
|
+
|
283
|
+
// Set the action that occured during this run.
|
284
|
+
// We use max to combine actions so that cancellation overrides wakeups.
|
285
|
+
void SetActionDuringRun(ActionDuringRun action)
|
286
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
|
287
|
+
action_during_run_ = std::max(action_during_run_, action);
|
288
|
+
}
|
289
|
+
|
290
|
+
Mutex* mu() ABSL_LOCK_RETURNED(mu_) { return &mu_; }
|
291
|
+
|
292
|
+
private:
|
293
|
+
class Handle;
|
294
|
+
|
295
|
+
// Cancel execution of the underlying promise.
|
296
|
+
virtual void Cancel() = 0;
|
297
|
+
|
298
|
+
void Ref() { refs_.fetch_add(1, std::memory_order_relaxed); }
|
299
|
+
void Unref() {
|
300
|
+
if (1 == refs_.fetch_sub(1, std::memory_order_acq_rel)) {
|
301
|
+
delete this;
|
302
|
+
}
|
303
|
+
}
|
304
|
+
|
305
|
+
// Return a Handle instance with a ref so that it can be stored waiting for
|
306
|
+
// some wakeup.
|
307
|
+
Handle* RefHandle() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
308
|
+
// If our refcount is non-zero, ref and return true.
|
309
|
+
// Otherwise, return false.
|
310
|
+
bool RefIfNonzero();
|
311
|
+
// Drop the (proved existing) wait handle.
|
312
|
+
void DropHandle() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
313
|
+
|
314
|
+
// All promise execution occurs under this mutex.
|
315
|
+
Mutex mu_;
|
316
|
+
|
317
|
+
// Current refcount.
|
318
|
+
std::atomic<uint32_t> refs_{1};
|
319
|
+
// If wakeup is called during Promise polling, we set this to Wakeup and
|
320
|
+
// repoll. If cancel is called during Promise polling, we set this to Cancel
|
321
|
+
// and cancel at the end of polling.
|
322
|
+
ActionDuringRun action_during_run_ ABSL_GUARDED_BY(mu_) =
|
323
|
+
ActionDuringRun::kNone;
|
324
|
+
// Handle for long waits. Allows a very small weak pointer type object to
|
325
|
+
// queue for wakeups while Activity may be deleted earlier.
|
326
|
+
Handle* handle_ ABSL_GUARDED_BY(mu_) = nullptr;
|
327
|
+
};
|
328
|
+
|
323
329
|
// Implementation details for an Activity of an arbitrary type of promise.
|
324
330
|
// There should exist a static function:
|
325
331
|
// struct WakeupScheduler {
|
@@ -331,14 +337,20 @@ class ActivityContexts : public ContextHolder<Contexts>... {
|
|
331
337
|
// It can assume that activity will remain live until RunScheduledWakeup() is
|
332
338
|
// invoked, and that a given activity will not be concurrently scheduled again
|
333
339
|
// until its RunScheduledWakeup() has been invoked.
|
340
|
+
// We use private inheritance here as a way of getting private members for
|
341
|
+
// each of the contexts.
|
342
|
+
// TODO(ctiller): We can probably reconsider the private inheritance here
|
343
|
+
// when we move away from C++11 and have more powerful template features.
|
334
344
|
template <class F, class WakeupScheduler, class OnDone, typename... Contexts>
|
335
|
-
class PromiseActivity final : public
|
345
|
+
class PromiseActivity final : public FreestandingActivity,
|
336
346
|
private ActivityContexts<Contexts...> {
|
337
347
|
public:
|
338
348
|
using Factory = PromiseFactory<void, F>;
|
349
|
+
using ResultType = typename Factory::Promise::Result;
|
350
|
+
|
339
351
|
PromiseActivity(F promise_factory, WakeupScheduler wakeup_scheduler,
|
340
352
|
OnDone on_done, Contexts&&... contexts)
|
341
|
-
:
|
353
|
+
: FreestandingActivity(),
|
342
354
|
ActivityContexts<Contexts...>(std::forward<Contexts>(contexts)...),
|
343
355
|
wakeup_scheduler_(std::move(wakeup_scheduler)),
|
344
356
|
on_done_(std::move(on_done)) {
|
@@ -346,9 +358,9 @@ class PromiseActivity final : public Activity,
|
|
346
358
|
// This may hit a waiter, which could expose our this pointer to other
|
347
359
|
// threads, meaning we do need to hold this mutex even though we're still
|
348
360
|
// constructing.
|
349
|
-
|
361
|
+
mu()->Lock();
|
350
362
|
auto status = Start(Factory(std::move(promise_factory)));
|
351
|
-
|
363
|
+
mu()->Unlock();
|
352
364
|
// We may complete immediately.
|
353
365
|
if (status.has_value()) {
|
354
366
|
on_done_(std::move(*status));
|
@@ -362,16 +374,24 @@ class PromiseActivity final : public Activity,
|
|
362
374
|
GPR_ASSERT(done_);
|
363
375
|
}
|
364
376
|
|
365
|
-
|
377
|
+
void RunScheduledWakeup() {
|
378
|
+
GPR_ASSERT(wakeup_scheduled_.exchange(false, std::memory_order_acq_rel));
|
379
|
+
Step();
|
380
|
+
WakeupComplete();
|
381
|
+
}
|
382
|
+
|
383
|
+
private:
|
384
|
+
using typename ActivityContexts<Contexts...>::ScopedContext;
|
366
385
|
|
367
386
|
void Cancel() final {
|
368
387
|
if (Activity::is_current()) {
|
369
|
-
|
388
|
+
mu()->AssertHeld();
|
389
|
+
SetActionDuringRun(ActionDuringRun::kCancel);
|
370
390
|
return;
|
371
391
|
}
|
372
392
|
bool was_done;
|
373
393
|
{
|
374
|
-
MutexLock lock(
|
394
|
+
MutexLock lock(mu());
|
375
395
|
// Check if we were done, and flag done.
|
376
396
|
was_done = done_;
|
377
397
|
if (!done_) MarkDone();
|
@@ -382,15 +402,6 @@ class PromiseActivity final : public Activity,
|
|
382
402
|
}
|
383
403
|
}
|
384
404
|
|
385
|
-
void RunScheduledWakeup() {
|
386
|
-
GPR_ASSERT(wakeup_scheduled_.exchange(false, std::memory_order_acq_rel));
|
387
|
-
Step();
|
388
|
-
WakeupComplete();
|
389
|
-
}
|
390
|
-
|
391
|
-
private:
|
392
|
-
using typename ActivityContexts<Contexts...>::ScopedContext;
|
393
|
-
|
394
405
|
// Wakeup this activity. Arrange to poll the activity again at a convenient
|
395
406
|
// time: this could be inline if it's deemed safe, or it could be by passing
|
396
407
|
// the activity to an external threadpool to run. If the activity is already
|
@@ -400,7 +411,8 @@ class PromiseActivity final : public Activity,
|
|
400
411
|
// If there is an active activity, but hey it's us, flag that and we'll loop
|
401
412
|
// in RunLoop (that's calling from above here!).
|
402
413
|
if (Activity::is_current()) {
|
403
|
-
|
414
|
+
mu()->AssertHeld();
|
415
|
+
SetActionDuringRun(ActionDuringRun::kWakeup);
|
404
416
|
WakeupComplete();
|
405
417
|
return;
|
406
418
|
}
|
@@ -418,7 +430,7 @@ class PromiseActivity final : public Activity,
|
|
418
430
|
|
419
431
|
// Notification that we're no longer executing - it's ok to destruct the
|
420
432
|
// promise.
|
421
|
-
void MarkDone() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
433
|
+
void MarkDone() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu()) {
|
422
434
|
GPR_ASSERT(!done_);
|
423
435
|
done_ = true;
|
424
436
|
Destruct(&promise_holder_.promise);
|
@@ -426,16 +438,16 @@ class PromiseActivity final : public Activity,
|
|
426
438
|
|
427
439
|
// In response to Wakeup, run the Promise state machine again until it
|
428
440
|
// settles. Then check for completion, and if we have completed, call on_done.
|
429
|
-
void Step() ABSL_LOCKS_EXCLUDED(
|
441
|
+
void Step() ABSL_LOCKS_EXCLUDED(mu()) {
|
430
442
|
// Poll the promise until things settle out under a lock.
|
431
|
-
|
443
|
+
mu()->Lock();
|
432
444
|
if (done_) {
|
433
445
|
// We might get some spurious wakeups after finishing.
|
434
|
-
|
446
|
+
mu()->Unlock();
|
435
447
|
return;
|
436
448
|
}
|
437
449
|
auto status = RunStep();
|
438
|
-
|
450
|
+
mu()->Unlock();
|
439
451
|
if (status.has_value()) {
|
440
452
|
on_done_(std::move(*status));
|
441
453
|
}
|
@@ -444,7 +456,7 @@ class PromiseActivity final : public Activity,
|
|
444
456
|
// The main body of a step: set the current activity, and any contexts, and
|
445
457
|
// then run the main polling loop. Contained in a function by itself in
|
446
458
|
// order to keep the scoping rules a little easier in Step().
|
447
|
-
absl::optional<
|
459
|
+
absl::optional<ResultType> RunStep() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu()) {
|
448
460
|
ScopedActivity scoped_activity(this);
|
449
461
|
ScopedContext contexts(this);
|
450
462
|
return StepLoop();
|
@@ -453,8 +465,8 @@ class PromiseActivity final : public Activity,
|
|
453
465
|
// Similarly to RunStep, but additionally construct the promise from a
|
454
466
|
// promise factory before entering the main loop. Called once from the
|
455
467
|
// constructor.
|
456
|
-
absl::optional<
|
457
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
468
|
+
absl::optional<ResultType> Start(Factory promise_factory)
|
469
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu()) {
|
458
470
|
ScopedActivity scoped_activity(this);
|
459
471
|
ScopedContext contexts(this);
|
460
472
|
Construct(&promise_holder_.promise, promise_factory.Once());
|
@@ -463,7 +475,7 @@ class PromiseActivity final : public Activity,
|
|
463
475
|
|
464
476
|
// Until there are no wakeups from within and the promise is incomplete:
|
465
477
|
// poll the promise.
|
466
|
-
absl::optional<
|
478
|
+
absl::optional<ResultType> StepLoop() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu()) {
|
467
479
|
GPR_ASSERT(is_current());
|
468
480
|
while (true) {
|
469
481
|
// Run the promise.
|
@@ -493,7 +505,7 @@ class PromiseActivity final : public Activity,
|
|
493
505
|
// Callback on completion of the promise.
|
494
506
|
GPR_NO_UNIQUE_ADDRESS OnDone on_done_;
|
495
507
|
// Has execution completed?
|
496
|
-
GPR_NO_UNIQUE_ADDRESS bool done_ ABSL_GUARDED_BY(
|
508
|
+
GPR_NO_UNIQUE_ADDRESS bool done_ ABSL_GUARDED_BY(mu()) = false;
|
497
509
|
// Is there a wakeup scheduled?
|
498
510
|
GPR_NO_UNIQUE_ADDRESS std::atomic<bool> wakeup_scheduled_{false};
|
499
511
|
// We wrap the promise in a union to allow control over the construction
|
@@ -504,7 +516,7 @@ class PromiseActivity final : public Activity,
|
|
504
516
|
~PromiseHolder() {}
|
505
517
|
GPR_NO_UNIQUE_ADDRESS Promise promise;
|
506
518
|
};
|
507
|
-
GPR_NO_UNIQUE_ADDRESS PromiseHolder promise_holder_ ABSL_GUARDED_BY(
|
519
|
+
GPR_NO_UNIQUE_ADDRESS PromiseHolder promise_holder_ ABSL_GUARDED_BY(mu());
|
508
520
|
};
|
509
521
|
|
510
522
|
} // namespace promise_detail
|
@@ -0,0 +1,188 @@
|
|
1
|
+
// Copyright 2021 gRPC authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#ifndef GRPC_CORE_LIB_PROMISE_ARENA_PROMISE_H
|
16
|
+
#define GRPC_CORE_LIB_PROMISE_ARENA_PROMISE_H
|
17
|
+
|
18
|
+
#include <grpc/support/port_platform.h>
|
19
|
+
|
20
|
+
#include <grpc/support/log.h>
|
21
|
+
|
22
|
+
#include "src/core/lib/promise/poll.h"
|
23
|
+
#include "src/core/lib/resource_quota/arena.h"
|
24
|
+
|
25
|
+
namespace grpc_core {
|
26
|
+
|
27
|
+
namespace arena_promise_detail {
|
28
|
+
|
29
|
+
// Type erased promise stored in the arena.
|
30
|
+
template <typename T>
|
31
|
+
class ImplInterface {
|
32
|
+
public:
|
33
|
+
// Poll the promise, once.
|
34
|
+
virtual Poll<T> PollOnce() = 0;
|
35
|
+
// Destroy the underlying callable object if there is one.
|
36
|
+
// Since we don't delete (the arena owns the memory) but we may need to call a
|
37
|
+
// destructor, we expose this for when the ArenaPromise object is destroyed.
|
38
|
+
virtual void Destroy() = 0;
|
39
|
+
|
40
|
+
protected:
|
41
|
+
~ImplInterface() = default;
|
42
|
+
};
|
43
|
+
|
44
|
+
// Implementation of ImplInterface for an empty object.
|
45
|
+
// Used when an empty ArenaPromise is created, or when the ArenaPromise is moved
|
46
|
+
// from. Since in either case these objects should not be polled, we simply
|
47
|
+
// crash if it is.
|
48
|
+
template <typename T>
|
49
|
+
class NullImpl final : public ImplInterface<T> {
|
50
|
+
public:
|
51
|
+
Poll<T> PollOnce() override {
|
52
|
+
abort();
|
53
|
+
GPR_UNREACHABLE_CODE(return Pending{});
|
54
|
+
}
|
55
|
+
void Destroy() override {}
|
56
|
+
|
57
|
+
static ImplInterface<T>* Get() {
|
58
|
+
static NullImpl<T> instance;
|
59
|
+
return &instance;
|
60
|
+
}
|
61
|
+
|
62
|
+
private:
|
63
|
+
~NullImpl() = default;
|
64
|
+
};
|
65
|
+
|
66
|
+
// Implementation of ImplInterface for a callable object.
|
67
|
+
template <typename T, typename Callable>
|
68
|
+
class CallableImpl final : public ImplInterface<T> {
|
69
|
+
public:
|
70
|
+
explicit CallableImpl(Callable&& callable) : callable_(std::move(callable)) {}
|
71
|
+
// Forward polls to the callable object.
|
72
|
+
Poll<T> PollOnce() override { return poll_cast<T>(callable_()); }
|
73
|
+
// Destroy destructs the callable object.
|
74
|
+
void Destroy() override { this->~CallableImpl(); }
|
75
|
+
|
76
|
+
private:
|
77
|
+
// Should only be called by Destroy().
|
78
|
+
~CallableImpl() = default;
|
79
|
+
|
80
|
+
Callable callable_;
|
81
|
+
};
|
82
|
+
|
83
|
+
// If a callable object is empty we can substitute any instance of that callable
|
84
|
+
// for the one we call (for how could we tell the difference)?
|
85
|
+
// Since this corresponds to a lambda with no fields, and we expect these to be
|
86
|
+
// reasonably common, we can elide the arena allocation entirely and simply poll
|
87
|
+
// a global shared instance.
|
88
|
+
// (this comes up often when the promise only accesses context data from the
|
89
|
+
// containing activity).
|
90
|
+
template <typename T, typename Callable>
|
91
|
+
class SharedImpl final : public ImplInterface<T>, private Callable {
|
92
|
+
public:
|
93
|
+
// Call the callable, or at least an exact duplicate of it - if you have no
|
94
|
+
// members, all your instances look the same.
|
95
|
+
Poll<T> PollOnce() override { return Callable::operator()(); }
|
96
|
+
// Nothing to destroy.
|
97
|
+
void Destroy() override {}
|
98
|
+
// Return a pointer to the shared instance - these are singletons, and are
|
99
|
+
// needed just to get the vtable in place.
|
100
|
+
static SharedImpl* Get(Callable&& callable) {
|
101
|
+
static_assert(sizeof(SharedImpl) == sizeof(void*),
|
102
|
+
"SharedImpl should be pointer sized");
|
103
|
+
static SharedImpl impl(std::forward<Callable>(callable));
|
104
|
+
return &impl;
|
105
|
+
}
|
106
|
+
|
107
|
+
private:
|
108
|
+
explicit SharedImpl(Callable&& callable)
|
109
|
+
: Callable(std::forward<Callable>(callable)) {}
|
110
|
+
~SharedImpl() = default;
|
111
|
+
};
|
112
|
+
|
113
|
+
// Redirector type: given a callable type, expose a Make() function that creates
|
114
|
+
// the appropriate underlying implementation.
|
115
|
+
template <typename T, typename Callable, typename Ignored = void>
|
116
|
+
struct ChooseImplForCallable;
|
117
|
+
|
118
|
+
template <typename T, typename Callable>
|
119
|
+
struct ChooseImplForCallable<
|
120
|
+
T, Callable, absl::enable_if_t<!std::is_empty<Callable>::value>> {
|
121
|
+
static ImplInterface<T>* Make(Callable&& callable) {
|
122
|
+
return GetContext<Arena>()->template New<CallableImpl<T, Callable>>(
|
123
|
+
std::forward<Callable>(callable));
|
124
|
+
}
|
125
|
+
};
|
126
|
+
|
127
|
+
template <typename T, typename Callable>
|
128
|
+
struct ChooseImplForCallable<
|
129
|
+
T, Callable, absl::enable_if_t<std::is_empty<Callable>::value>> {
|
130
|
+
static ImplInterface<T>* Make(Callable&& callable) {
|
131
|
+
return SharedImpl<T, Callable>::Get(std::forward<Callable>(callable));
|
132
|
+
}
|
133
|
+
};
|
134
|
+
|
135
|
+
// Wrap ChooseImplForCallable with a friend approachable syntax.
|
136
|
+
template <typename T, typename Callable>
|
137
|
+
ImplInterface<T>* MakeImplForCallable(Callable&& callable) {
|
138
|
+
return ChooseImplForCallable<T, Callable>::Make(
|
139
|
+
std::forward<Callable>(callable));
|
140
|
+
}
|
141
|
+
|
142
|
+
} // namespace arena_promise_detail
|
143
|
+
|
144
|
+
// A promise for which the state memory is allocated from an arena.
|
145
|
+
template <typename T>
|
146
|
+
class ArenaPromise {
|
147
|
+
public:
|
148
|
+
// Construct an empty, uncallable, invalid ArenaPromise.
|
149
|
+
ArenaPromise() = default;
|
150
|
+
|
151
|
+
// Construct an ArenaPromise that will call the given callable when polled.
|
152
|
+
template <typename Callable,
|
153
|
+
typename Ignored =
|
154
|
+
absl::enable_if_t<!std::is_same<Callable, ArenaPromise>::value>>
|
155
|
+
// NOLINTNEXTLINE(google-explicit-constructor)
|
156
|
+
ArenaPromise(Callable&& callable)
|
157
|
+
: impl_(arena_promise_detail::MakeImplForCallable<T>(
|
158
|
+
std::forward<Callable>(callable))) {}
|
159
|
+
|
160
|
+
// ArenaPromise is not copyable.
|
161
|
+
ArenaPromise(const ArenaPromise&) = delete;
|
162
|
+
ArenaPromise& operator=(const ArenaPromise&) = delete;
|
163
|
+
// ArenaPromise is movable.
|
164
|
+
ArenaPromise(ArenaPromise&& other) noexcept : impl_(other.impl_) {
|
165
|
+
other.impl_ = arena_promise_detail::NullImpl<T>::Get();
|
166
|
+
}
|
167
|
+
ArenaPromise& operator=(ArenaPromise&& other) noexcept {
|
168
|
+
impl_->Destroy();
|
169
|
+
impl_ = other.impl_;
|
170
|
+
other.impl_ = arena_promise_detail::NullImpl<T>::Get();
|
171
|
+
return *this;
|
172
|
+
}
|
173
|
+
|
174
|
+
// Destruction => call Destroy on the underlying impl object.
|
175
|
+
~ArenaPromise() { impl_->Destroy(); }
|
176
|
+
|
177
|
+
// Expose the promise interface: a call operator that returns Poll<T>.
|
178
|
+
Poll<T> operator()() { return impl_->PollOnce(); }
|
179
|
+
|
180
|
+
private:
|
181
|
+
// Underlying impl object.
|
182
|
+
arena_promise_detail::ImplInterface<T>* impl_ =
|
183
|
+
arena_promise_detail::NullImpl<T>::Get();
|
184
|
+
};
|
185
|
+
|
186
|
+
} // namespace grpc_core
|
187
|
+
|
188
|
+
#endif /* GRPC_CORE_LIB_PROMISE_ARENA_PROMISE_H */
|