grpc 1.63.0 → 1.69.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +179 -146
- data/include/grpc/compression.h +1 -2
- data/include/grpc/credentials.h +1221 -0
- data/include/grpc/event_engine/README.md +1 -1
- data/include/grpc/event_engine/endpoint_config.h +2 -2
- data/include/grpc/event_engine/event_engine.h +39 -15
- data/include/grpc/event_engine/extensible.h +5 -2
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +4 -4
- data/include/grpc/event_engine/internal/slice_cast.h +1 -1
- data/include/grpc/event_engine/memory_allocator.h +3 -4
- data/include/grpc/event_engine/memory_request.h +19 -2
- data/include/grpc/event_engine/slice.h +3 -5
- data/include/grpc/event_engine/slice_buffer.h +6 -8
- data/include/grpc/grpc.h +8 -2
- data/include/grpc/grpc_audit_logging.h +3 -3
- data/include/grpc/grpc_crl_provider.h +5 -4
- data/include/grpc/grpc_posix.h +1 -2
- data/include/grpc/grpc_security.h +1 -1173
- data/include/grpc/impl/call.h +2 -2
- data/include/grpc/impl/channel_arg_names.h +10 -7
- data/include/grpc/impl/grpc_types.h +1 -2
- data/include/grpc/impl/slice_type.h +1 -2
- data/include/grpc/module.modulemap +2 -0
- data/include/grpc/passive_listener.h +62 -0
- data/include/grpc/support/alloc.h +1 -2
- data/include/grpc/support/json.h +1 -2
- data/include/grpc/support/log.h +37 -64
- data/include/grpc/support/metrics.h +21 -6
- data/include/grpc/support/port_platform.h +31 -1
- data/include/grpc/support/sync_generic.h +2 -4
- data/include/grpc/support/sync_posix.h +1 -2
- data/include/grpc/support/time.h +1 -2
- data/src/core/{lib/channel → channelz}/channel_trace.cc +60 -67
- data/src/core/{lib/channel → channelz}/channel_trace.h +23 -23
- data/src/core/{lib/channel → channelz}/channelz.cc +74 -14
- data/src/core/{lib/channel → channelz}/channelz.h +58 -21
- data/src/core/{lib/channel → channelz}/channelz_registry.cc +14 -14
- data/src/core/{lib/channel → channelz}/channelz_registry.h +6 -7
- data/src/core/client_channel/backup_poller.cc +25 -16
- data/src/core/client_channel/client_channel.cc +1426 -0
- data/src/core/client_channel/client_channel.h +245 -0
- data/src/core/client_channel/client_channel_factory.cc +2 -2
- data/src/core/client_channel/client_channel_factory.h +1 -2
- data/src/core/client_channel/client_channel_filter.cc +397 -914
- data/src/core/client_channel/client_channel_filter.h +25 -80
- data/src/core/client_channel/client_channel_internal.h +26 -11
- data/src/core/client_channel/client_channel_plugin.cc +3 -18
- data/src/core/client_channel/client_channel_service_config.cc +2 -3
- data/src/core/client_channel/client_channel_service_config.h +8 -10
- data/src/core/client_channel/config_selector.h +25 -25
- data/src/core/client_channel/connector.h +4 -4
- data/src/core/client_channel/direct_channel.cc +83 -0
- data/src/core/client_channel/direct_channel.h +101 -0
- data/src/core/client_channel/dynamic_filters.cc +19 -16
- data/src/core/client_channel/dynamic_filters.h +9 -10
- data/src/core/client_channel/global_subchannel_pool.cc +2 -2
- data/src/core/client_channel/global_subchannel_pool.h +2 -3
- data/src/core/client_channel/lb_metadata.cc +120 -0
- data/src/core/client_channel/lb_metadata.h +55 -0
- data/src/core/client_channel/load_balanced_call_destination.cc +273 -0
- data/src/core/client_channel/load_balanced_call_destination.h +48 -0
- data/src/core/client_channel/local_subchannel_pool.cc +6 -7
- data/src/core/client_channel/local_subchannel_pool.h +1 -1
- data/src/core/client_channel/retry_filter.cc +8 -17
- data/src/core/client_channel/retry_filter.h +9 -17
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +214 -323
- data/src/core/client_channel/retry_filter_legacy_call_data.h +11 -14
- data/src/core/client_channel/retry_service_config.cc +10 -13
- data/src/core/client_channel/retry_service_config.h +6 -8
- data/src/core/client_channel/retry_throttle.cc +3 -4
- data/src/core/client_channel/retry_throttle.h +4 -7
- data/src/core/client_channel/subchannel.cc +293 -174
- data/src/core/client_channel/subchannel.h +48 -41
- data/src/core/client_channel/subchannel_interface_internal.h +1 -1
- data/src/core/client_channel/subchannel_pool_interface.cc +1 -5
- data/src/core/client_channel/subchannel_pool_interface.h +4 -7
- data/src/core/client_channel/subchannel_stream_client.cc +47 -61
- data/src/core/client_channel/subchannel_stream_client.h +10 -14
- data/src/core/{lib/config → config}/config_vars.cc +16 -19
- data/src/core/{lib/config → config}/config_vars.h +12 -15
- data/src/core/{lib/config → config}/config_vars_non_generated.cc +1 -1
- data/src/core/{lib/config → config}/core_configuration.cc +10 -10
- data/src/core/{lib/config → config}/core_configuration.h +10 -12
- data/src/core/{lib/config → config}/load_config.cc +5 -7
- data/src/core/{lib/config → config}/load_config.h +3 -4
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +27 -31
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +5 -3
- data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
- data/src/core/ext/filters/census/grpc_context.cc +7 -10
- data/src/core/ext/filters/channel_idle/idle_filter_state.cc +1 -2
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +0 -1
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +44 -47
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +22 -19
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +25 -29
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +8 -7
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +2 -3
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +7 -10
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +205 -0
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +97 -0
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +80 -0
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +86 -0
- data/src/core/ext/filters/http/client/http_client_filter.cc +19 -12
- data/src/core/ext/filters/http/client/http_client_filter.h +8 -6
- data/src/core/ext/filters/http/client_authority_filter.cc +13 -11
- data/src/core/ext/filters/http/client_authority_filter.h +8 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +1 -2
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +59 -54
- data/src/core/ext/filters/http/message_compress/compression_filter.h +16 -12
- data/src/core/ext/filters/http/server/http_server_filter.cc +18 -15
- data/src/core/ext/filters/http/server/http_server_filter.h +8 -6
- data/src/core/ext/filters/message_size/message_size_filter.cc +42 -51
- data/src/core/ext/filters/message_size/message_size_filter.h +20 -16
- data/src/core/ext/filters/rbac/rbac_filter.cc +20 -18
- data/src/core/ext/filters/rbac/rbac_filter.h +8 -7
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +16 -10
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +3 -5
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +26 -28
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +8 -6
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +2 -3
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +6 -8
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +4 -5
- data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +85 -117
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +5 -12
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +436 -324
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +34 -1
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +26 -38
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +1 -3
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +10 -12
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -3
- data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +53 -0
- data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +72 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +688 -562
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -16
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -2
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +2 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +11 -16
- data/src/core/ext/transport/chttp2/transport/flow_control.h +4 -9
- data/src/core/ext/transport/chttp2/transport/frame.cc +25 -8
- data/src/core/ext/transport/chttp2/transport/frame.h +11 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +21 -22
- data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -5
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +16 -21
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +19 -20
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_security.cc +82 -0
- data/src/core/ext/transport/chttp2/transport/frame_security.h +44 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +36 -21
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -4
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +31 -10
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +21 -22
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +18 -15
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -4
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +5 -8
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +79 -74
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +5 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +45 -20
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +28 -9
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +12 -4
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -4
- data/src/core/ext/transport/chttp2/transport/huffsyms.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +71 -81
- data/src/core/ext/transport/chttp2/transport/legacy_frame.h +1 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +135 -121
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +1 -1
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +4 -7
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +2 -7
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +33 -19
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +6 -7
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +19 -21
- data/src/core/ext/transport/chttp2/transport/stream_lists.h +65 -0
- data/src/core/ext/transport/chttp2/transport/varint.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/varint.h +2 -3
- data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/write_size_policy.h +2 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +178 -140
- data/src/core/ext/transport/inproc/inproc_transport.cc +155 -73
- data/src/core/ext/transport/inproc/inproc_transport.h +2 -5
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +127 -129
- data/src/core/ext/transport/inproc/legacy_inproc_transport.h +1 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +46 -15
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +40 -18
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +10 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +59 -27
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +36 -18
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +9 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +50 -15
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +44 -22
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +10 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +187 -54
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +162 -84
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +24 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +11 -5
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +14 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +19 -6
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +18 -8
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +11 -10
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +8 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +8 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +129 -82
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +39 -27
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +9 -6
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +9 -8
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +5 -4
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +18 -8
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +13 -6
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +91 -34
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +114 -48
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +21 -4
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +544 -254
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +265 -149
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +29 -4
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +41 -14
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +31 -17
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +499 -141
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +268 -143
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +31 -4
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +12 -7
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +11 -5
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +171 -27
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +54 -27
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +127 -35
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +125 -63
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +20 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +67 -27
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +60 -26
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +13 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +11 -6
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +11 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +755 -72
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +320 -75
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +39 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +67 -25
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +57 -27
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +12 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +8 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +9 -6
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +11 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +14 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +201 -62
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +120 -53
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +19 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +196 -62
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +95 -53
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +14 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +13 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +11 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +10 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +231 -76
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +150 -78
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +21 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +10 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +14 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +15 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +15 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +16 -10
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +14 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +23 -11
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +17 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +11 -6
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +11 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +42 -11
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +35 -17
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +9 -4
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +106 -34
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +69 -37
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +12 -4
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +281 -37
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +81 -27
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +12 -4
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +8 -5
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +142 -47
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +90 -47
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +15 -4
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +91 -29
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +68 -38
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +12 -4
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +93 -13
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +24 -14
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +14 -7
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +16 -6
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +14 -9
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +11 -5
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +51 -22
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +58 -24
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +13 -4
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +68 -21
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +71 -29
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +15 -4
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +159 -38
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +105 -57
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +16 -4
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +61 -13
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +33 -19
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +708 -233
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +499 -262
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +63 -4
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +20 -10
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +22 -8
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +100 -35
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +95 -45
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +17 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +118 -16
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +43 -12
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +9 -6
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +12 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +17 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +10 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb.h +22 -15
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c +12 -6
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +20 -8
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +8 -5
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +17 -10
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +18 -8
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +5 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +3 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.h +5 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +19 -10
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +19 -9
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +14 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +216 -102
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +124 -57
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +21 -4
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +5 -4
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +24 -11
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +33 -11
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +10 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +42 -22
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +27 -13
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +444 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +135 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +38 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +56 -13
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +29 -13
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +29 -12
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +20 -10
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +13 -8
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +17 -7
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +327 -134
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +208 -121
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +26 -4
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +8 -5
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +23 -10
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +15 -9
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +31 -14
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +39 -17
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +10 -4
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +6 -5
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +22 -11
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +14 -8
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +8 -5
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +106 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +52 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +5 -4
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +3 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.h +5 -4
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +170 -31
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +83 -37
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +14 -4
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +25 -12
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +27 -13
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +112 -39
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +73 -43
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +12 -4
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +14 -6
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +17 -7
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +58 -20
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +44 -26
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +9 -4
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +5 -4
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +122 -40
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +105 -47
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +19 -4
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +18 -8
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +18 -8
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +65 -24
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +47 -25
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +10 -4
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +10 -7
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +16 -6
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +26 -8
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +9 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +9 -6
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +10 -9
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +23 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +10 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +16 -8
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +15 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +13 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +11 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +9 -6
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +8 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +16 -9
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +24 -10
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +5 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +11 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +51 -10
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +30 -9
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +14 -6
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +15 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +30 -12
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +32 -14
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +9 -4
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +24 -10
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +40 -10
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +12 -4
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +30 -17
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +33 -11
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +10 -4
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +12 -7
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +19 -5
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +5 -4
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +3 -1
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.h +5 -4
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +6 -5
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +8 -7
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +11 -1
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +11 -10
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +15 -1
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +14 -9
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +15 -5
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +5 -4
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +3 -1
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.h +5 -4
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +8 -7
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +12 -7
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +11 -5
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/google/api/annotations.upb.h +17 -7
- data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +5 -2
- data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +5 -4
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +135 -36
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +121 -56
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +18 -4
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +525 -69
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +202 -68
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +23 -4
- data/src/core/ext/upb-gen/google/api/http.upb.h +30 -16
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +22 -8
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/google/api/httpbody.upb.h +12 -6
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/google/protobuf/any.upb.h +8 -6
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +583 -181
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +376 -215
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +56 -21
- data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +8 -6
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +6 -4
- data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +33 -10
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +32 -14
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +9 -4
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +8 -6
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +15 -13
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +39 -1
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +14 -4
- data/src/core/ext/upb-gen/google/rpc/status.upb.h +12 -6
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb.h +22 -14
- data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c +24 -6
- data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.h +9 -4
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +19 -10
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +15 -5
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +98 -39
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +87 -37
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +17 -4
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +14 -8
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +15 -5
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +8 -6
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +11 -1
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +47 -22
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +58 -20
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +14 -4
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +16 -8
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +18 -4
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +72 -19
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +60 -22
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +14 -4
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +69 -23
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +31 -12
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +19 -9
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +13 -6
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +6 -5
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +5 -4
- data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +19 -9
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +13 -6
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +18 -8
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +13 -6
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/validate/validate.upb.h +264 -172
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +185 -87
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +29 -5
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +69 -23
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +31 -12
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +19 -9
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +13 -6
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +6 -5
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +5 -4
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +46 -18
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +32 -11
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +9 -4
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +18 -8
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +13 -6
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +6 -5
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +9 -6
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +16 -9
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +18 -8
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +11 -4
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +14 -4
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +9 -6
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +12 -7
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +11 -5
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +21 -11
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +18 -8
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +11 -8
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +29 -10
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +24 -6
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +9 -4
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +8 -5
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +9 -6
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +13 -5
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +17 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +5 -4
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +6 -4
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +19 -6
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +18 -8
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +81 -22
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +85 -43
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +15 -4
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +44 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +48 -22
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +11 -4
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +9 -6
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +14 -4
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +18 -10
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +17 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +17 -8
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +19 -9
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +7 -4
- data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +12 -10
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +15 -1
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +8 -4
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +9 -6
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +10 -4
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +6 -4
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c +88 -82
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +63 -61
- data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +223 -211
- data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +10 -4
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +319 -298
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.h +10 -4
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c +116 -106
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +187 -141
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +30 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c +12 -12
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +175 -165
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c +199 -188
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +231 -223
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +41 -37
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c +124 -94
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.h +10 -4
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +43 -40
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +22 -13
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +71 -66
- data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +613 -605
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c +32 -21
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.h +10 -4
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c +20 -18
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c +64 -60
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +23 -21
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c +147 -143
- data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c +87 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h +48 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +38 -34
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +292 -289
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.h +33 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +84 -76
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +10 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c +41 -34
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +110 -108
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +103 -79
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +15 -4
- data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +485 -458
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.h +10 -4
- data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h +5 -4
- data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h +5 -4
- data/src/core/filter/blackboard.cc +33 -0
- data/src/core/filter/blackboard.h +70 -0
- data/src/core/{lib/transport → handshaker/endpoint_info}/endpoint_info_handshaker.cc +16 -15
- data/src/core/{lib/transport → handshaker/endpoint_info}/endpoint_info_handshaker.h +4 -4
- data/src/core/handshaker/handshaker.cc +199 -0
- data/src/core/{lib/transport → handshaker}/handshaker.h +60 -55
- data/src/core/{lib/transport → handshaker}/handshaker_factory.h +19 -3
- data/src/core/{lib/transport → handshaker}/handshaker_registry.cc +2 -3
- data/src/core/{lib/transport → handshaker}/handshaker_registry.h +4 -4
- data/src/core/{lib/transport → handshaker/http_connect}/http_connect_handshaker.cc +123 -164
- data/src/core/{lib/transport → handshaker/http_connect}/http_connect_handshaker.h +4 -4
- data/src/core/{client_channel → handshaker/http_connect}/http_proxy_mapper.cc +35 -42
- data/src/core/{client_channel → handshaker/http_connect}/http_proxy_mapper.h +5 -6
- data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +57 -0
- data/src/core/handshaker/http_connect/xds_http_proxy_mapper.h +46 -0
- data/src/core/{lib/handshaker → handshaker}/proxy_mapper.h +3 -4
- data/src/core/{lib/handshaker → handshaker}/proxy_mapper_registry.cc +2 -2
- data/src/core/{lib/handshaker → handshaker}/proxy_mapper_registry.h +4 -5
- data/src/core/{lib/security/transport → handshaker/security}/secure_endpoint.cc +98 -85
- data/src/core/{lib/security/transport → handshaker/security}/secure_endpoint.h +10 -12
- data/src/core/{lib/security/transport → handshaker/security}/security_handshaker.cc +176 -230
- data/src/core/{lib/security/transport → handshaker/security}/security_handshaker.h +7 -9
- data/src/core/{lib/transport → handshaker/tcp_connect}/tcp_connect_handshaker.cc +53 -67
- data/src/core/{lib/transport → handshaker/tcp_connect}/tcp_connect_handshaker.h +4 -4
- data/src/core/lib/address_utils/parse_address.cc +33 -44
- data/src/core/lib/address_utils/parse_address.h +1 -3
- data/src/core/lib/address_utils/sockaddr_utils.cc +22 -19
- data/src/core/lib/address_utils/sockaddr_utils.h +0 -2
- data/src/core/lib/channel/channel_args.cc +20 -26
- data/src/core/lib/channel/channel_args.h +34 -21
- data/src/core/lib/channel/channel_args_preconditioning.cc +2 -2
- data/src/core/lib/channel/channel_args_preconditioning.h +2 -3
- data/src/core/lib/channel/channel_stack.cc +19 -81
- data/src/core/lib/channel/channel_stack.h +27 -63
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +5 -157
- data/src/core/lib/channel/channel_stack_builder_impl.h +13 -3
- data/src/core/lib/channel/connected_channel.cc +49 -706
- data/src/core/lib/channel/promise_based_filter.cc +249 -324
- data/src/core/lib/channel/promise_based_filter.h +264 -559
- data/src/core/lib/channel/status_util.cc +2 -4
- data/src/core/lib/channel/status_util.h +1 -2
- data/src/core/lib/compression/compression.cc +7 -10
- data/src/core/lib/compression/compression_internal.cc +7 -10
- data/src/core/lib/compression/compression_internal.h +2 -5
- data/src/core/lib/compression/message_compress.cc +16 -18
- data/src/core/lib/compression/message_compress.h +1 -2
- data/src/core/lib/debug/trace.cc +48 -67
- data/src/core/lib/debug/trace.h +2 -97
- data/src/core/lib/debug/trace_flags.cc +242 -0
- data/src/core/lib/debug/trace_flags.h +131 -0
- data/src/core/lib/debug/trace_impl.h +125 -0
- data/src/core/lib/event_engine/ares_resolver.cc +165 -92
- data/src/core/lib/event_engine/ares_resolver.h +11 -18
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +14 -15
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -1
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +47 -34
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +4 -6
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +1 -1
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +28 -31
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +5 -6
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +3 -5
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +1 -3
- data/src/core/lib/event_engine/common_closures.h +1 -2
- data/src/core/lib/event_engine/default_event_engine.cc +13 -16
- data/src/core/lib/event_engine/default_event_engine.h +3 -4
- data/src/core/lib/event_engine/default_event_engine_factory.cc +3 -4
- data/src/core/lib/event_engine/default_event_engine_factory.h +1 -2
- data/src/core/lib/event_engine/event_engine.cc +35 -5
- data/src/core/lib/event_engine/event_engine_context.h +5 -4
- data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +0 -1
- data/src/core/lib/event_engine/extensions/supports_fd.h +25 -2
- data/src/core/lib/event_engine/extensions/tcp_trace.h +42 -0
- data/src/core/lib/event_engine/forkable.cc +12 -13
- data/src/core/lib/event_engine/forkable.h +0 -13
- data/src/core/lib/event_engine/grpc_polled_fd.h +2 -4
- data/src/core/lib/event_engine/handle_containers.h +1 -3
- data/src/core/lib/event_engine/memory_allocator_factory.h +1 -3
- data/src/core/lib/event_engine/nameser.h +1 -1
- data/src/core/lib/event_engine/poller.h +1 -2
- data/src/core/lib/event_engine/posix.h +1 -2
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +28 -30
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +6 -8
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +27 -31
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +2 -4
- data/src/core/lib/event_engine/posix_engine/event_poller.h +1 -3
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +2 -3
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +3 -6
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +5 -6
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +0 -1
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +7 -9
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +0 -1
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +3 -4
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +0 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +96 -103
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +22 -23
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +84 -65
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +16 -13
- data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +1 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +27 -30
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +13 -13
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +27 -33
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +1 -3
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +46 -40
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +10 -10
- data/src/core/lib/event_engine/posix_engine/timer.cc +5 -6
- data/src/core/lib/event_engine/posix_engine/timer.h +4 -7
- data/src/core/lib/event_engine/posix_engine/timer_heap.cc +2 -3
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +16 -25
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +4 -7
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +7 -10
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +2 -5
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +3 -4
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +0 -1
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +2 -3
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +0 -1
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +0 -1
- data/src/core/lib/event_engine/query_extensions.h +3 -2
- data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +2 -5
- data/src/core/lib/event_engine/resolved_address.cc +8 -7
- data/src/core/lib/event_engine/resolved_address_internal.h +1 -2
- data/src/core/lib/event_engine/shim.cc +3 -3
- data/src/core/lib/event_engine/slice.cc +5 -7
- data/src/core/lib/event_engine/slice_buffer.cc +2 -4
- data/src/core/lib/event_engine/tcp_socket_utils.cc +21 -26
- data/src/core/lib/event_engine/tcp_socket_utils.h +1 -2
- data/src/core/lib/event_engine/thread_local.cc +2 -2
- data/src/core/lib/event_engine/thread_local.h +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.cc +5 -8
- data/src/core/lib/event_engine/thread_pool/thread_count.h +4 -6
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +1 -4
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +1 -2
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +46 -53
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +9 -15
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +50 -23
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +7 -7
- data/src/core/lib/event_engine/time_util.cc +3 -4
- data/src/core/lib/event_engine/time_util.h +1 -3
- data/src/core/lib/event_engine/utils.cc +19 -6
- data/src/core/lib/event_engine/utils.h +9 -4
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +158 -132
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -6
- data/src/core/lib/event_engine/windows/iocp.cc +24 -22
- data/src/core/lib/event_engine/windows/iocp.h +2 -3
- data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +4 -6
- data/src/core/lib/event_engine/windows/win_socket.cc +47 -36
- data/src/core/lib/event_engine/windows/win_socket.h +8 -10
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +58 -44
- data/src/core/lib/event_engine/windows/windows_engine.cc +245 -136
- data/src/core/lib/event_engine/windows/windows_engine.h +143 -33
- data/src/core/lib/event_engine/windows/windows_listener.cc +29 -43
- data/src/core/lib/event_engine/windows/windows_listener.h +4 -5
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +3 -3
- data/src/core/lib/event_engine/work_queue/basic_work_queue.h +2 -5
- data/src/core/lib/event_engine/work_queue/work_queue.h +1 -3
- data/src/core/lib/experiments/config.cc +59 -32
- data/src/core/lib/experiments/config.h +55 -2
- data/src/core/lib/experiments/experiments.cc +310 -293
- data/src/core/lib/experiments/experiments.h +145 -122
- data/src/core/lib/iomgr/buffer_list.cc +7 -8
- data/src/core/lib/iomgr/buffer_list.h +2 -4
- data/src/core/lib/iomgr/call_combiner.cc +42 -68
- data/src/core/lib/iomgr/call_combiner.h +12 -17
- data/src/core/lib/iomgr/cfstream_handle.cc +14 -20
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.cc +2 -2
- data/src/core/lib/iomgr/closure.h +17 -21
- data/src/core/lib/iomgr/combiner.cc +38 -52
- data/src/core/lib/iomgr/combiner.h +2 -6
- data/src/core/lib/iomgr/endpoint.cc +1 -7
- data/src/core/lib/iomgr/endpoint.h +4 -6
- data/src/core/lib/iomgr/endpoint_cfstream.cc +45 -76
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +8 -10
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +16 -17
- data/src/core/lib/iomgr/error.cc +24 -34
- data/src/core/lib/iomgr/error.h +8 -11
- data/src/core/lib/iomgr/error_cfstream.cc +1 -3
- data/src/core/lib/iomgr/ev_apple.cc +16 -24
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +81 -126
- data/src/core/lib/iomgr/ev_poll_posix.cc +62 -62
- data/src/core/lib/iomgr/ev_posix.cc +68 -60
- data/src/core/lib/iomgr/ev_posix.h +9 -12
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +11 -15
- data/src/core/lib/iomgr/event_engine_shims/closure.h +1 -3
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +35 -53
- data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -2
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +10 -15
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +1 -2
- data/src/core/lib/iomgr/exec_ctx.cc +14 -18
- data/src/core/lib/iomgr/exec_ctx.h +33 -23
- data/src/core/lib/iomgr/executor.cc +60 -59
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/fork_posix.cc +11 -15
- data/src/core/lib/iomgr/fork_windows.cc +3 -2
- data/src/core/lib/iomgr/internal_errqueue.cc +5 -6
- data/src/core/lib/iomgr/iocp_windows.cc +16 -15
- data/src/core/lib/iomgr/iocp_windows.h +0 -1
- data/src/core/lib/iomgr/iomgr.cc +19 -26
- data/src/core/lib/iomgr/iomgr.h +0 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +1 -2
- data/src/core/lib/iomgr/iomgr_internal.h +0 -1
- data/src/core/lib/iomgr/iomgr_posix.cc +2 -1
- data/src/core/lib/iomgr/iomgr_windows.cc +7 -6
- data/src/core/lib/iomgr/lockfree_event.cc +12 -21
- data/src/core/lib/iomgr/lockfree_event.h +1 -2
- data/src/core/lib/iomgr/nameser.h +1 -1
- data/src/core/lib/iomgr/polling_entity.cc +17 -11
- data/src/core/lib/iomgr/pollset.cc +2 -2
- data/src/core/lib/iomgr/pollset.h +0 -3
- data/src/core/lib/iomgr/pollset_set.cc +2 -2
- data/src/core/lib/iomgr/pollset_set_windows.cc +0 -1
- data/src/core/lib/iomgr/pollset_windows.cc +2 -6
- data/src/core/lib/iomgr/pollset_windows.h +0 -1
- data/src/core/lib/iomgr/port.h +2 -2
- data/src/core/lib/iomgr/python_util.h +1 -2
- data/src/core/lib/iomgr/resolve_address.cc +4 -7
- data/src/core/lib/iomgr/resolve_address.h +3 -6
- data/src/core/lib/iomgr/resolve_address_impl.h +0 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +12 -21
- data/src/core/lib/iomgr/resolve_address_windows.cc +9 -12
- data/src/core/lib/iomgr/resolved_address.h +0 -1
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +5 -6
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.h +1 -2
- data/src/core/lib/iomgr/socket_mutator.cc +3 -5
- data/src/core/lib/iomgr/socket_mutator.h +2 -4
- data/src/core/lib/iomgr/socket_utils.h +0 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +45 -52
- data/src/core/lib/iomgr/socket_utils_linux.cc +1 -3
- data/src/core/lib/iomgr/socket_utils_posix.cc +3 -6
- data/src/core/lib/iomgr/socket_utils_posix.h +1 -2
- data/src/core/lib/iomgr/socket_utils_windows.cc +1 -3
- data/src/core/lib/iomgr/socket_windows.cc +11 -14
- data/src/core/lib/iomgr/socket_windows.h +1 -2
- data/src/core/lib/iomgr/tcp_client.cc +2 -2
- data/src/core/lib/iomgr/tcp_client.h +1 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +12 -20
- data/src/core/lib/iomgr/tcp_client_posix.cc +24 -36
- data/src/core/lib/iomgr/tcp_client_windows.cc +9 -12
- data/src/core/lib/iomgr/tcp_posix.cc +124 -193
- data/src/core/lib/iomgr/tcp_posix.h +1 -3
- data/src/core/lib/iomgr/tcp_server.cc +2 -2
- data/src/core/lib/iomgr/tcp_server.h +3 -4
- data/src/core/lib/iomgr/tcp_server_posix.cc +61 -79
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +13 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +13 -14
- data/src/core/lib/iomgr/tcp_server_windows.cc +34 -41
- data/src/core/lib/iomgr/tcp_windows.cc +38 -66
- data/src/core/lib/iomgr/timer.cc +2 -2
- data/src/core/lib/iomgr/timer.h +2 -3
- data/src/core/lib/iomgr/timer_generic.cc +73 -106
- data/src/core/lib/iomgr/timer_generic.h +0 -1
- data/src/core/lib/iomgr/timer_heap.cc +4 -6
- data/src/core/lib/iomgr/timer_manager.cc +27 -44
- data/src/core/lib/iomgr/timer_manager.h +0 -1
- data/src/core/lib/iomgr/unix_sockets_posix.cc +5 -6
- data/src/core/lib/iomgr/unix_sockets_posix.h +1 -3
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +2 -4
- data/src/core/lib/iomgr/vsock.cc +5 -8
- data/src/core/lib/iomgr/vsock.h +1 -3
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +2 -4
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +6 -7
- data/src/core/lib/promise/activity.cc +4 -5
- data/src/core/lib/promise/activity.h +54 -23
- data/src/core/lib/promise/all_ok.h +52 -9
- data/src/core/lib/promise/arena_promise.h +1 -3
- data/src/core/lib/promise/cancel_callback.h +34 -6
- data/src/core/lib/promise/context.h +18 -9
- data/src/core/lib/promise/detail/basic_seq.h +33 -20
- data/src/core/lib/promise/detail/join_state.h +555 -760
- data/src/core/lib/promise/detail/promise_factory.h +45 -29
- data/src/core/lib/promise/detail/promise_like.h +49 -11
- data/src/core/lib/promise/detail/seq_state.h +1314 -1977
- data/src/core/lib/promise/detail/status.h +36 -14
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +1 -2
- data/src/core/lib/promise/for_each.h +97 -39
- data/src/core/lib/promise/if.h +21 -17
- data/src/core/lib/promise/interceptor_list.h +22 -36
- data/src/core/lib/promise/latch.h +25 -40
- data/src/core/lib/promise/loop.h +23 -10
- data/src/core/lib/promise/map.h +77 -9
- data/src/core/lib/promise/observable.h +181 -0
- data/src/core/lib/promise/party.cc +262 -154
- data/src/core/lib/promise/party.h +186 -388
- data/src/core/lib/promise/pipe.h +34 -57
- data/src/core/lib/promise/poll.h +117 -39
- data/src/core/lib/promise/promise.h +12 -6
- data/src/core/lib/promise/race.h +10 -5
- data/src/core/lib/promise/seq.h +57 -64
- data/src/core/lib/promise/sleep.cc +4 -5
- data/src/core/lib/promise/sleep.h +2 -4
- data/src/core/lib/promise/status_flag.h +160 -54
- data/src/core/lib/promise/try_join.h +37 -20
- data/src/core/lib/promise/try_seq.h +113 -77
- data/src/core/lib/resource_quota/api.cc +4 -7
- data/src/core/lib/resource_quota/api.h +3 -5
- data/src/core/lib/resource_quota/arena.cc +64 -87
- data/src/core/lib/resource_quota/arena.h +142 -215
- data/src/core/lib/resource_quota/connection_quota.cc +8 -10
- data/src/core/lib/resource_quota/connection_quota.h +3 -4
- data/src/core/lib/resource_quota/memory_quota.cc +51 -52
- data/src/core/lib/resource_quota/memory_quota.h +27 -21
- data/src/core/lib/resource_quota/periodic_update.cc +5 -5
- data/src/core/lib/resource_quota/periodic_update.h +1 -3
- data/src/core/lib/resource_quota/resource_quota.cc +2 -2
- data/src/core/lib/resource_quota/resource_quota.h +6 -8
- data/src/core/lib/resource_quota/thread_quota.cc +4 -4
- data/src/core/lib/resource_quota/thread_quota.h +3 -4
- data/src/core/lib/security/authorization/audit_logging.cc +10 -12
- data/src/core/lib/security/authorization/audit_logging.h +3 -5
- data/src/core/lib/security/authorization/authorization_engine.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider.h +5 -7
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +3 -4
- data/src/core/lib/security/authorization/evaluate_args.cc +11 -16
- data/src/core/lib/security/authorization/evaluate_args.h +1 -3
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +4 -5
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -3
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +25 -34
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +11 -10
- data/src/core/lib/security/authorization/matchers.cc +5 -8
- data/src/core/lib/security/authorization/matchers.h +1 -3
- data/src/core/lib/security/authorization/rbac_policy.cc +2 -2
- data/src/core/lib/security/authorization/rbac_policy.h +2 -5
- data/src/core/lib/security/authorization/stdout_logger.cc +7 -7
- data/src/core/lib/security/authorization/stdout_logger.h +2 -3
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +7 -8
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +6 -6
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +0 -1
- data/src/core/lib/security/context/security_context.cc +51 -49
- data/src/core/lib/security/context/security_context.h +46 -17
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +6 -7
- data/src/core/lib/security/credentials/alts/alts_credentials.h +11 -7
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +4 -5
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +1 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +3 -5
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +3 -5
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -7
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +4 -5
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +2 -2
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -2
- data/src/core/lib/security/credentials/call_creds_util.cc +8 -8
- data/src/core/lib/security/credentials/call_creds_util.h +2 -2
- data/src/core/lib/security/credentials/channel_creds_registry.h +5 -6
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +14 -13
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +18 -21
- data/src/core/lib/security/credentials/composite/composite_credentials.h +9 -8
- data/src/core/lib/security/credentials/credentials.cc +20 -20
- data/src/core/lib/security/credentials/credentials.h +13 -14
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +336 -339
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +58 -46
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +4 -5
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +410 -374
- data/src/core/lib/security/credentials/external/external_account_credentials.h +127 -59
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +90 -53
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +30 -9
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +103 -129
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +20 -22
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -4
- data/src/core/lib/security/credentials/fake/fake_credentials.h +10 -9
- data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +195 -0
- data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.h +90 -0
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +4 -6
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +60 -77
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -7
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -14
- data/src/core/lib/security/credentials/iam/iam_credentials.h +6 -5
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +2 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +4 -4
- data/src/core/lib/security/credentials/jwt/json_token.cc +28 -31
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -4
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +24 -30
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +9 -9
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +80 -87
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -5
- data/src/core/lib/security/credentials/local/local_credentials.cc +3 -4
- data/src/core/lib/security/credentials/local/local_credentials.h +5 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +202 -302
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +48 -71
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +22 -35
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +11 -13
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +47 -59
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +8 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +28 -28
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +2 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc +0 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +107 -46
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +15 -14
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +8 -12
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +9 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +27 -29
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +2 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +6 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +6 -9
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +20 -24
- data/src/core/lib/security/credentials/tls/tls_credentials.h +7 -5
- data/src/core/lib/security/credentials/tls/tls_utils.cc +5 -7
- data/src/core/lib/security/credentials/tls/tls_utils.h +1 -2
- data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.cc +305 -0
- data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.h +181 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +21 -19
- data/src/core/lib/security/credentials/xds/xds_credentials.h +7 -9
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +35 -40
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +3 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +28 -28
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +3 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +8 -10
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +5 -6
- data/src/core/lib/security/security_connector/load_system_roots.h +1 -2
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +8 -10
- data/src/core/lib/security/security_connector/load_system_roots_supported.h +1 -2
- data/src/core/lib/security/security_connector/load_system_roots_windows.cc +4 -6
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +35 -35
- data/src/core/lib/security/security_connector/local/local_security_connector.h +3 -3
- data/src/core/lib/security/security_connector/security_connector.cc +11 -15
- data/src/core/lib/security/security_connector/security_connector.h +8 -11
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +28 -32
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -5
- data/src/core/lib/security/security_connector/ssl_utils.cc +42 -42
- data/src/core/lib/security/security_connector/ssl_utils.h +6 -9
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +49 -62
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +6 -7
- data/src/core/lib/security/transport/auth_filters.h +20 -16
- data/src/core/lib/security/transport/client_auth_filter.cc +19 -27
- data/src/core/lib/security/transport/server_auth_filter.cc +23 -32
- data/src/core/lib/security/util/json_util.cc +4 -6
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/percent_encoding.cc +4 -6
- data/src/core/lib/slice/slice.cc +13 -15
- data/src/core/lib/slice/slice.h +8 -11
- data/src/core/lib/slice/slice_buffer.cc +18 -19
- data/src/core/lib/slice/slice_buffer.h +2 -4
- data/src/core/lib/slice/slice_internal.h +4 -7
- data/src/core/lib/slice/slice_refcount.h +7 -15
- data/src/core/lib/slice/slice_string_helpers.cc +3 -3
- data/src/core/lib/slice/slice_string_helpers.h +1 -3
- data/src/core/lib/surface/byte_buffer.cc +2 -4
- data/src/core/lib/surface/byte_buffer_reader.cc +5 -7
- data/src/core/lib/surface/call.cc +205 -3992
- data/src/core/lib/surface/call.h +176 -100
- data/src/core/lib/surface/call_details.cc +5 -5
- data/src/core/lib/surface/call_log_batch.cc +7 -11
- data/src/core/lib/surface/call_test_only.h +2 -4
- data/src/core/lib/surface/call_utils.cc +231 -0
- data/src/core/lib/surface/call_utils.h +486 -0
- data/src/core/lib/surface/channel.cc +47 -45
- data/src/core/lib/surface/channel.h +20 -19
- data/src/core/lib/surface/channel_create.cc +31 -15
- data/src/core/lib/surface/channel_create.h +3 -3
- data/src/core/lib/surface/channel_init.cc +273 -270
- data/src/core/lib/surface/channel_init.h +179 -120
- data/src/core/lib/surface/channel_stack_type.cc +2 -2
- data/src/core/lib/surface/client_call.cc +441 -0
- data/src/core/lib/surface/client_call.h +187 -0
- data/src/core/lib/surface/completion_queue.cc +127 -124
- data/src/core/lib/surface/completion_queue.h +4 -14
- data/src/core/lib/surface/completion_queue_factory.cc +8 -9
- data/src/core/lib/surface/completion_queue_factory.h +1 -2
- data/src/core/lib/surface/connection_context.cc +77 -0
- data/src/core/lib/surface/connection_context.h +156 -0
- data/src/core/lib/surface/event_string.cc +2 -2
- data/src/core/lib/surface/event_string.h +1 -2
- data/src/core/lib/surface/filter_stack_call.cc +1156 -0
- data/src/core/lib/surface/filter_stack_call.h +366 -0
- data/src/core/lib/surface/init.cc +60 -21
- data/src/core/lib/surface/init.h +5 -0
- data/src/core/lib/surface/init_internally.cc +2 -2
- data/src/core/lib/surface/lame_client.cc +20 -26
- data/src/core/lib/surface/lame_client.h +9 -13
- data/src/core/lib/surface/legacy_channel.cc +69 -55
- data/src/core/lib/surface/legacy_channel.h +14 -25
- data/src/core/lib/surface/metadata_array.cc +6 -7
- data/src/core/lib/surface/server_call.cc +227 -0
- data/src/core/lib/surface/server_call.h +167 -0
- data/src/core/lib/surface/validate_metadata.cc +4 -6
- data/src/core/lib/surface/validate_metadata.h +3 -6
- data/src/core/lib/surface/version.cc +3 -4
- data/src/core/lib/transport/bdp_estimator.cc +14 -20
- data/src/core/lib/transport/bdp_estimator.h +12 -18
- data/src/core/{resolver/xds/xds_resolver_trace.cc → lib/transport/call_arena_allocator.cc} +7 -5
- data/src/core/lib/transport/call_arena_allocator.h +91 -0
- data/src/core/lib/transport/call_destination.h +76 -0
- data/src/core/lib/transport/call_filters.cc +64 -393
- data/src/core/lib/transport/call_filters.h +810 -710
- data/src/core/lib/transport/call_final_info.cc +2 -2
- data/src/core/lib/transport/call_final_info.h +3 -4
- data/src/core/lib/transport/call_spine.cc +99 -79
- data/src/core/lib/transport/call_spine.h +252 -251
- data/src/core/lib/transport/call_state.cc +39 -0
- data/src/core/lib/transport/call_state.h +1061 -0
- data/src/core/lib/transport/connectivity_state.cc +38 -47
- data/src/core/lib/transport/connectivity_state.h +3 -7
- data/src/core/lib/transport/error_utils.cc +3 -5
- data/src/core/lib/transport/error_utils.h +2 -4
- data/src/core/lib/transport/interception_chain.cc +147 -0
- data/src/core/lib/transport/interception_chain.h +253 -0
- data/src/core/lib/transport/message.cc +3 -4
- data/src/core/lib/transport/message.h +5 -0
- data/src/core/lib/transport/metadata.cc +29 -5
- data/src/core/lib/transport/metadata.h +37 -2
- data/src/core/lib/transport/metadata_batch.cc +12 -5
- data/src/core/lib/transport/metadata_batch.h +104 -15
- data/src/core/lib/transport/metadata_compression_traits.h +2 -3
- data/src/core/lib/transport/metadata_info.cc +2 -2
- data/src/core/lib/transport/metadata_info.h +1 -1
- data/src/core/lib/transport/parsed_metadata.cc +2 -2
- data/src/core/lib/transport/parsed_metadata.h +2 -5
- data/src/core/lib/transport/simple_slice_based_metadata.h +0 -1
- data/src/core/lib/transport/status_conversion.cc +2 -2
- data/src/core/lib/transport/status_conversion.h +2 -3
- data/src/core/lib/transport/timeout_encoding.cc +11 -12
- data/src/core/lib/transport/timeout_encoding.h +1 -3
- data/src/core/lib/transport/transport.cc +7 -13
- data/src/core/lib/transport/transport.h +94 -88
- data/src/core/lib/transport/transport_framing_endpoint_extension.h +47 -0
- data/src/core/lib/transport/transport_op_string.cc +2 -5
- data/src/core/load_balancing/address_filtering.cc +2 -4
- data/src/core/load_balancing/address_filtering.h +2 -3
- data/src/core/load_balancing/backend_metric_parser.cc +1 -2
- data/src/core/load_balancing/backend_metric_parser.h +0 -2
- data/src/core/load_balancing/child_policy_handler.cc +42 -46
- data/src/core/load_balancing/child_policy_handler.h +2 -3
- data/src/core/load_balancing/delegating_helper.h +6 -8
- data/src/core/load_balancing/endpoint_list.cc +17 -21
- data/src/core/load_balancing/endpoint_list.h +20 -16
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +38 -34
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +21 -7
- data/src/core/load_balancing/grpclb/grpclb.cc +180 -214
- data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +2 -3
- data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.h +1 -2
- data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +3 -5
- data/src/core/load_balancing/grpclb/grpclb_client_stats.h +4 -7
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +7 -11
- data/src/core/load_balancing/grpclb/load_balancer_api.h +3 -6
- data/src/core/load_balancing/health_check_client.cc +62 -83
- data/src/core/load_balancing/health_check_client.h +1 -1
- data/src/core/load_balancing/health_check_client_internal.h +6 -8
- data/src/core/load_balancing/lb_policy.cc +7 -10
- data/src/core/load_balancing/lb_policy.h +72 -39
- data/src/core/load_balancing/lb_policy_factory.h +3 -4
- data/src/core/load_balancing/lb_policy_registry.cc +7 -9
- data/src/core/load_balancing/lb_policy_registry.h +3 -4
- data/src/core/load_balancing/oob_backend_metric.cc +22 -29
- data/src/core/load_balancing/oob_backend_metric.h +1 -1
- data/src/core/load_balancing/oob_backend_metric_internal.h +6 -8
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +143 -188
- data/src/core/load_balancing/outlier_detection/outlier_detection.h +5 -7
- data/src/core/load_balancing/pick_first/pick_first.cc +1190 -286
- data/src/core/load_balancing/priority/priority.cc +107 -146
- data/src/core/load_balancing/ring_hash/ring_hash.cc +86 -93
- data/src/core/load_balancing/ring_hash/ring_hash.h +5 -6
- data/src/core/load_balancing/rls/rls.cc +364 -362
- data/src/core/load_balancing/round_robin/round_robin.cc +81 -97
- data/src/core/load_balancing/subchannel_interface.h +15 -5
- data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +7 -8
- data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h +1 -2
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +162 -169
- data/src/core/load_balancing/weighted_target/weighted_target.cc +79 -115
- data/src/core/load_balancing/weighted_target/weighted_target.h +1 -1
- data/src/core/load_balancing/xds/cds.cc +62 -79
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +188 -163
- data/src/core/load_balancing/xds/xds_cluster_manager.cc +53 -86
- data/src/core/load_balancing/xds/xds_override_host.cc +126 -188
- data/src/core/load_balancing/xds/xds_override_host.h +5 -6
- data/src/core/load_balancing/xds/xds_wrr_locality.cc +37 -48
- data/src/core/plugin_registry/grpc_plugin_registry.cc +12 -17
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +7 -3
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +89 -65
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.h +1 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -5
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +6 -9
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +153 -134
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +176 -161
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +3 -18
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +1 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -2
- data/src/core/resolver/dns/dns_resolver_plugin.cc +11 -13
- data/src/core/resolver/dns/dns_resolver_plugin.h +1 -1
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +56 -63
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h +2 -3
- data/src/core/resolver/dns/event_engine/service_config_helper.cc +8 -10
- data/src/core/resolver/dns/native/dns_resolver.cc +21 -31
- data/src/core/resolver/dns/native/dns_resolver.h +1 -1
- data/src/core/resolver/endpoint_addresses.cc +5 -8
- data/src/core/resolver/endpoint_addresses.h +3 -1
- data/src/core/resolver/fake/fake_resolver.cc +10 -12
- data/src/core/resolver/fake/fake_resolver.h +6 -8
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +29 -31
- data/src/core/resolver/polling_resolver.cc +42 -58
- data/src/core/resolver/polling_resolver.h +6 -8
- data/src/core/resolver/resolver.cc +3 -7
- data/src/core/resolver/resolver.h +2 -8
- data/src/core/resolver/resolver_factory.h +2 -3
- data/src/core/resolver/resolver_registry.cc +12 -14
- data/src/core/resolver/resolver_registry.h +2 -3
- data/src/core/resolver/sockaddr/sockaddr_resolver.cc +6 -8
- data/src/core/resolver/xds/xds_config.cc +95 -0
- data/src/core/resolver/xds/xds_config.h +108 -0
- data/src/core/resolver/xds/xds_dependency_manager.cc +86 -174
- data/src/core/resolver/xds/xds_dependency_manager.h +11 -76
- data/src/core/resolver/xds/xds_resolver.cc +140 -126
- data/src/core/resolver/xds/xds_resolver_attributes.h +6 -3
- data/src/core/{lib/surface → server}/server.cc +420 -519
- data/src/core/{lib/surface → server}/server.h +52 -38
- data/src/core/{lib/channel → server}/server_call_tracer_filter.cc +27 -23
- data/src/core/{lib/channel → server}/server_call_tracer_filter.h +4 -4
- data/src/core/{ext/filters/server_config_selector → server}/server_config_selector.h +7 -8
- data/src/core/{ext/filters/server_config_selector → server}/server_config_selector_filter.cc +51 -47
- data/src/core/{ext/filters/server_config_selector → server}/server_config_selector_filter.h +3 -3
- data/src/core/{lib/surface → server}/server_interface.h +6 -4
- data/src/core/{ext/xds → server}/xds_channel_stack_modifier.cc +5 -5
- data/src/core/{ext/xds → server}/xds_channel_stack_modifier.h +7 -9
- data/src/core/{ext/xds → server}/xds_server_config_fetcher.cc +83 -92
- data/src/core/service_config/service_config.h +3 -6
- data/src/core/service_config/service_config_call_data.h +20 -19
- data/src/core/service_config/service_config_channel_arg_filter.cc +20 -17
- data/src/core/service_config/service_config_impl.cc +9 -11
- data/src/core/service_config/service_config_impl.h +6 -9
- data/src/core/service_config/service_config_parser.cc +4 -9
- data/src/core/service_config/service_config_parser.h +2 -4
- data/src/core/{lib/channel → telemetry}/call_tracer.cc +58 -36
- data/src/core/{lib/channel → telemetry}/call_tracer.h +50 -14
- data/src/core/{lib/debug → telemetry}/histogram_view.cc +5 -5
- data/src/core/{lib/debug → telemetry}/histogram_view.h +3 -4
- data/src/core/telemetry/metrics.cc +180 -0
- data/src/core/telemetry/metrics.h +569 -0
- data/src/core/{lib/debug → telemetry}/stats.cc +2 -3
- data/src/core/{lib/debug → telemetry}/stats.h +6 -8
- data/src/core/{lib/debug → telemetry}/stats_data.cc +182 -3
- data/src/core/{lib/debug → telemetry}/stats_data.h +133 -7
- data/src/core/{lib/channel → telemetry}/tcp_tracer.h +3 -4
- data/src/core/tsi/alts/crypt/aes_gcm.cc +4 -8
- data/src/core/tsi/alts/crypt/gsec.cc +2 -4
- data/src/core/tsi/alts/crypt/gsec.h +3 -5
- data/src/core/tsi/alts/frame_protector/alts_counter.cc +2 -4
- data/src/core/tsi/alts/frame_protector/alts_counter.h +2 -4
- data/src/core/tsi/alts/frame_protector/alts_crypter.cc +2 -4
- data/src/core/tsi/alts/frame_protector/alts_crypter.h +1 -3
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +16 -19
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +0 -1
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +1 -2
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +1 -2
- data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +2 -3
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +2 -3
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +11 -13
- data/src/core/tsi/alts/frame_protector/frame_handler.h +0 -1
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +78 -82
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -2
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +5 -6
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +2 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +76 -76
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +6 -5
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -2
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +17 -24
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +4 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +17 -19
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +0 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +12 -14
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +0 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +1 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +16 -14
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +3 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +0 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +13 -16
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +0 -1
- data/src/core/tsi/fake_transport_security.cc +31 -34
- data/src/core/tsi/local_transport_security.cc +9 -11
- data/src/core/tsi/local_transport_security.h +1 -2
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +13 -15
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +7 -10
- data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +16 -17
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +8 -10
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +4 -7
- data/src/core/tsi/ssl_transport_security.cc +154 -131
- data/src/core/tsi/ssl_transport_security.h +5 -8
- data/src/core/tsi/ssl_transport_security_utils.cc +86 -32
- data/src/core/tsi/ssl_transport_security_utils.h +13 -5
- data/src/core/tsi/ssl_types.h +0 -1
- data/src/core/tsi/transport_security.cc +3 -9
- data/src/core/tsi/transport_security.h +0 -3
- data/src/core/tsi/transport_security_grpc.cc +2 -2
- data/src/core/tsi/transport_security_grpc.h +1 -2
- data/src/core/tsi/transport_security_interface.h +2 -7
- data/src/core/{lib/gpr → util}/alloc.cc +4 -6
- data/src/core/{lib/gpr → util}/alloc.h +3 -3
- data/src/core/{lib/gpr → util}/atm.cc +2 -3
- data/src/core/{lib/gprpp → util}/atomic_utils.h +3 -3
- data/src/core/{lib/avl → util}/avl.h +6 -7
- data/src/core/{lib/backoff → util}/backoff.cc +9 -10
- data/src/core/{lib/backoff → util}/backoff.h +8 -11
- data/src/core/{lib/gprpp → util}/bitset.h +5 -6
- data/src/core/{lib/gprpp → util}/chunked_vector.h +8 -9
- data/src/core/{lib/gprpp → util}/construct_destruct.h +6 -5
- data/src/core/{lib/gprpp → util}/cpp_impl_of.h +3 -3
- data/src/core/{lib/gprpp → util}/crash.cc +4 -7
- data/src/core/{lib/gprpp → util}/crash.h +4 -5
- data/src/core/{lib/gprpp → util}/debug_location.h +10 -3
- data/src/core/{lib/gprpp → util}/directory_reader.h +3 -3
- data/src/core/{lib/gprpp → util}/down_cast.h +7 -8
- data/src/core/{lib/gprpp → util}/dual_ref_counted.h +59 -47
- data/src/core/util/dump_args.cc +54 -0
- data/src/core/util/dump_args.h +122 -0
- data/src/core/{lib/gprpp → util}/env.h +3 -3
- data/src/core/{lib/debug → util}/event_log.cc +4 -5
- data/src/core/{lib/debug → util}/event_log.h +6 -8
- data/src/core/{lib/gprpp → util}/examine_stack.cc +2 -2
- data/src/core/{lib/gprpp → util}/examine_stack.h +3 -3
- data/src/core/{lib/gprpp → util}/fork.cc +6 -7
- data/src/core/{lib/gprpp → util}/fork.h +5 -5
- data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +33 -37
- data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +11 -12
- data/src/core/{lib/iomgr → util}/gethostname.h +3 -3
- data/src/core/{lib/iomgr → util}/gethostname_fallback.cc +1 -1
- data/src/core/{lib/iomgr → util}/gethostname_host_name_max.cc +2 -3
- data/src/core/{lib/iomgr → util}/gethostname_sysconf.cc +2 -3
- data/src/core/util/glob.cc +70 -0
- data/src/core/util/glob.h +29 -0
- data/src/core/{lib/gpr/time.cc → util/gpr_time.cc} +16 -17
- data/src/core/{lib/iomgr → util}/grpc_if_nametoindex.h +3 -4
- data/src/core/{lib/iomgr → util}/grpc_if_nametoindex_posix.cc +4 -6
- data/src/core/{lib/iomgr → util}/grpc_if_nametoindex_unsupported.cc +5 -8
- data/src/core/{lib/gprpp → util}/host_port.cc +7 -7
- data/src/core/{lib/gprpp → util}/host_port.h +3 -3
- data/src/core/{lib/http → util/http_client}/format_request.cc +4 -7
- data/src/core/{lib/http → util/http_client}/format_request.h +5 -6
- data/src/core/{lib/http → util/http_client}/httpcli.cc +62 -74
- data/src/core/{lib/http → util/http_client}/httpcli.h +32 -31
- data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +18 -21
- data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +5 -6
- data/src/core/{lib/http → util/http_client}/parser.cc +11 -15
- data/src/core/{lib/http → util/http_client}/parser.h +4 -8
- data/src/core/{lib/gprpp → util}/if_list.h +3 -3
- data/src/core/{lib/gpr → util}/iphone/cpu.cc +1 -2
- data/src/core/{lib → util}/json/json.h +4 -5
- data/src/core/{lib → util}/json/json_args.h +3 -3
- data/src/core/{lib → util}/json/json_channel_args.h +4 -5
- data/src/core/{lib → util}/json/json_object_loader.cc +3 -4
- data/src/core/{lib → util}/json/json_object_loader.h +13 -14
- data/src/core/{lib → util}/json/json_reader.cc +6 -9
- data/src/core/{lib → util}/json/json_reader.h +4 -5
- data/src/core/{lib → util}/json/json_util.cc +6 -6
- data/src/core/{lib → util}/json/json_util.h +5 -6
- data/src/core/{lib → util}/json/json_writer.cc +2 -4
- data/src/core/{lib → util}/json/json_writer.h +4 -4
- data/src/core/util/latent_see.cc +163 -0
- data/src/core/util/latent_see.h +334 -0
- data/src/core/{lib/gpr → util}/linux/cpu.cc +11 -12
- data/src/core/{lib/gprpp → util}/linux/env.cc +1 -1
- data/src/core/{lib/gprpp → util}/load_file.cc +4 -7
- data/src/core/{lib/gprpp → util}/load_file.h +3 -4
- data/src/core/util/log.cc +127 -0
- data/src/core/util/lru_cache.h +122 -0
- data/src/core/{lib/gprpp → util}/manual_constructor.h +4 -5
- data/src/core/{lib/gprpp → util}/match.h +4 -5
- data/src/core/{lib/matchers → util}/matchers.cc +9 -2
- data/src/core/{lib/matchers → util}/matchers.h +8 -4
- data/src/core/{lib/gprpp → util}/memory.h +4 -5
- data/src/core/{lib/gprpp → util}/mpscq.cc +2 -2
- data/src/core/{lib/gprpp → util}/mpscq.h +7 -8
- data/src/core/{lib/gpr → util}/msys/tmpfile.cc +5 -7
- data/src/core/{lib/gprpp → util}/no_destruct.h +4 -4
- data/src/core/{lib/gprpp → util}/notification.h +4 -5
- data/src/core/{lib/gprpp → util}/orphanable.h +7 -7
- data/src/core/{lib/gprpp → util}/overload.h +3 -3
- data/src/core/{lib/gprpp → util}/packed_table.h +5 -5
- data/src/core/{lib/gprpp → util}/per_cpu.cc +3 -4
- data/src/core/{lib/gprpp → util}/per_cpu.h +4 -6
- data/src/core/{lib/gpr → util}/posix/cpu.cc +6 -7
- data/src/core/{lib/gprpp → util}/posix/directory_reader.cc +2 -2
- data/src/core/{lib/gprpp → util}/posix/env.cc +1 -1
- data/src/core/{lib/gprpp → util}/posix/stat.cc +8 -8
- data/src/core/{lib/gpr → util}/posix/string.cc +2 -3
- data/src/core/{lib/gpr → util}/posix/sync.cc +26 -27
- data/src/core/{lib/gprpp → util}/posix/thd.cc +22 -26
- data/src/core/{lib/gpr → util}/posix/time.cc +12 -11
- data/src/core/{lib/gpr → util}/posix/tmpfile.cc +13 -13
- data/src/core/{lib/backoff → util}/random_early_detection.cc +2 -2
- data/src/core/{lib/backoff → util}/random_early_detection.h +3 -4
- data/src/core/{lib/gprpp → util}/ref_counted.h +40 -32
- data/src/core/{lib/gprpp → util}/ref_counted_ptr.h +5 -7
- data/src/core/{lib/gprpp → util}/ref_counted_string.cc +3 -5
- data/src/core/{lib/gprpp → util}/ref_counted_string.h +5 -7
- data/src/core/util/ring_buffer.h +123 -0
- data/src/core/{lib/gprpp → util}/single_set_ptr.h +10 -8
- data/src/core/{lib/gprpp → util}/sorted_pack.h +4 -4
- data/src/core/{lib/gpr → util}/spinlock.h +5 -7
- data/src/core/{lib/gprpp → util}/stat.h +3 -4
- data/src/core/{lib/gprpp → util}/status_helper.cc +18 -40
- data/src/core/{lib/gprpp → util}/status_helper.h +7 -37
- data/src/core/{lib/gprpp → util}/strerror.cc +2 -3
- data/src/core/{lib/gprpp → util}/strerror.h +3 -3
- data/src/core/{lib/gpr → util}/string.cc +15 -18
- data/src/core/{lib/gpr → util}/string.h +4 -6
- data/src/core/{lib/gpr → util}/sync.cc +6 -7
- data/src/core/{lib/gprpp → util}/sync.h +9 -10
- data/src/core/{lib/gpr → util}/sync_abseil.cc +5 -8
- data/src/core/{lib/gprpp → util}/table.h +56 -22
- data/src/core/{lib/gprpp → util}/tchar.cc +2 -2
- data/src/core/{lib/gprpp → util}/tchar.h +3 -3
- data/src/core/{lib/gprpp → util}/thd.h +10 -12
- data/src/core/{lib/gprpp → util}/time.cc +16 -18
- data/src/core/{lib/gprpp → util}/time.h +29 -29
- data/src/core/{lib/gprpp → util}/time_averaged_stats.cc +2 -2
- data/src/core/{lib/gprpp → util}/time_averaged_stats.h +3 -3
- data/src/core/{lib/gpr → util}/time_precise.cc +7 -7
- data/src/core/{lib/gpr → util}/time_precise.h +3 -4
- data/src/core/{lib/gprpp → util}/time_util.cc +6 -7
- data/src/core/{lib/gprpp → util}/time_util.h +4 -5
- data/src/core/{lib/gpr → util}/tmpfile.h +3 -4
- data/src/core/{lib/gprpp → util}/type_list.h +3 -3
- data/src/core/util/unique_ptr_with_bitset.h +86 -0
- data/src/core/{lib/gprpp → util}/unique_type_name.h +32 -13
- data/src/core/{ext/xds → util}/upb_utils.h +3 -5
- data/src/core/{lib/uri/uri_parser.cc → util/uri.cc} +14 -10
- data/src/core/{lib/uri/uri_parser.h → util/uri.h} +8 -4
- data/src/core/{lib/gpr → util}/useful.h +23 -52
- data/src/core/{lib/gprpp → util}/uuid_v4.cc +2 -2
- data/src/core/{lib/gprpp → util}/uuid_v4.h +3 -4
- data/src/core/{lib/gprpp → util}/validation_errors.cc +11 -3
- data/src/core/{lib/gprpp → util}/validation_errors.h +14 -4
- data/src/core/{lib/gpr → util}/windows/cpu.cc +1 -2
- data/src/core/{lib/gprpp → util}/windows/directory_reader.cc +1 -3
- data/src/core/{lib/gprpp → util}/windows/env.cc +2 -2
- data/src/core/{lib/gprpp → util}/windows/stat.cc +9 -9
- data/src/core/{lib/gpr → util}/windows/string.cc +3 -4
- data/src/core/{lib/gpr → util}/windows/string_util.cc +6 -8
- data/src/core/{lib/gpr → util}/windows/sync.cc +3 -3
- data/src/core/{lib/gprpp → util}/windows/thd.cc +10 -10
- data/src/core/{lib/gpr → util}/windows/time.cc +6 -6
- data/src/core/{lib/gpr → util}/windows/tmpfile.cc +5 -7
- data/src/core/{lib/gprpp → util}/work_serializer.cc +79 -99
- data/src/core/{lib/gprpp → util}/work_serializer.h +6 -8
- data/src/core/{lib/gprpp → util}/xxhash_inline.h +3 -3
- data/src/core/{ext/xds → xds/grpc}/certificate_provider_store.cc +7 -9
- data/src/core/{ext/xds → xds/grpc}/certificate_provider_store.h +14 -16
- data/src/core/{ext/xds → xds/grpc}/file_watcher_certificate_provider_factory.cc +7 -9
- data/src/core/{ext/xds → xds/grpc}/file_watcher_certificate_provider_factory.h +10 -12
- data/src/core/{ext/xds → xds/grpc}/xds_audit_logger_registry.cc +6 -6
- data/src/core/{ext/xds → xds/grpc}/xds_audit_logger_registry.h +6 -7
- data/src/core/{ext/xds → xds/grpc}/xds_bootstrap_grpc.cc +9 -168
- data/src/core/{ext/xds → xds/grpc}/xds_bootstrap_grpc.h +15 -45
- data/src/core/{ext/xds → xds/grpc}/xds_certificate_provider.cc +7 -8
- data/src/core/{ext/xds → xds/grpc}/xds_certificate_provider.h +13 -13
- data/src/core/{ext/xds → xds/grpc}/xds_client_grpc.cc +119 -84
- data/src/core/{ext/xds → xds/grpc}/xds_client_grpc.h +21 -16
- data/src/core/xds/grpc/xds_cluster.cc +79 -0
- data/src/core/{ext/xds → xds/grpc}/xds_cluster.h +43 -53
- data/src/core/{ext/xds/xds_cluster.cc → xds/grpc/xds_cluster_parser.cc} +184 -207
- data/src/core/xds/grpc/xds_cluster_parser.h +61 -0
- data/src/core/{ext/xds → xds/grpc}/xds_cluster_specifier_plugin.cc +9 -12
- data/src/core/{ext/xds → xds/grpc}/xds_cluster_specifier_plugin.h +6 -7
- data/src/core/xds/grpc/xds_common_types.cc +103 -0
- data/src/core/{ext/xds → xds/grpc}/xds_common_types.h +13 -31
- data/src/core/{ext/xds/xds_common_types.cc → xds/grpc/xds_common_types_parser.cc} +79 -85
- data/src/core/xds/grpc/xds_common_types_parser.h +76 -0
- data/src/core/xds/grpc/xds_endpoint.cc +97 -0
- data/src/core/{ext/xds → xds/grpc}/xds_endpoint.h +12 -34
- data/src/core/{ext/xds/xds_endpoint.cc → xds/grpc/xds_endpoint_parser.cc} +88 -161
- data/src/core/xds/grpc/xds_endpoint_parser.h +47 -0
- data/src/core/{ext/xds → xds/grpc}/xds_health_status.cc +1 -3
- data/src/core/{ext/xds → xds/grpc}/xds_health_status.h +3 -6
- data/src/core/{ext/xds → xds/grpc}/xds_http_fault_filter.cc +30 -19
- data/src/core/{ext/xds → xds/grpc}/xds_http_fault_filter.h +14 -10
- data/src/core/{ext/xds/xds_http_filters.h → xds/grpc/xds_http_filter.h} +23 -71
- data/src/core/{ext/xds/xds_http_filters.cc → xds/grpc/xds_http_filter_registry.cc} +16 -11
- data/src/core/xds/grpc/xds_http_filter_registry.h +104 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +141 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +60 -0
- data/src/core/{ext/xds → xds/grpc}/xds_http_rbac_filter.cc +68 -54
- data/src/core/{ext/xds → xds/grpc}/xds_http_rbac_filter.h +14 -10
- data/src/core/{ext/xds → xds/grpc}/xds_http_stateful_session_filter.cc +25 -13
- data/src/core/{ext/xds → xds/grpc}/xds_http_stateful_session_filter.h +14 -10
- data/src/core/{ext/xds → xds/grpc}/xds_lb_policy_registry.cc +25 -31
- data/src/core/{ext/xds → xds/grpc}/xds_lb_policy_registry.h +7 -8
- data/src/core/xds/grpc/xds_listener.cc +175 -0
- data/src/core/{ext/xds → xds/grpc}/xds_listener.h +9 -42
- data/src/core/{ext/xds/xds_listener.cc → xds/grpc/xds_listener_parser.cc} +66 -215
- data/src/core/xds/grpc/xds_listener_parser.h +59 -0
- data/src/core/xds/grpc/xds_metadata.cc +62 -0
- data/src/core/xds/grpc/xds_metadata.h +150 -0
- data/src/core/xds/grpc/xds_metadata_parser.cc +184 -0
- data/src/core/xds/grpc/xds_metadata_parser.h +35 -0
- data/src/core/xds/grpc/xds_route_config.cc +282 -0
- data/src/core/{ext/xds → xds/grpc}/xds_route_config.h +13 -46
- data/src/core/{ext/xds/xds_route_config.cc → xds/grpc/xds_route_config_parser.cc} +77 -313
- data/src/core/xds/grpc/xds_route_config_parser.h +77 -0
- data/src/core/{ext/xds → xds/grpc}/xds_routing.cc +64 -31
- data/src/core/{ext/xds → xds/grpc}/xds_routing.h +16 -10
- data/src/core/xds/grpc/xds_server_grpc.cc +160 -0
- data/src/core/xds/grpc/xds_server_grpc.h +63 -0
- data/src/core/{ext/xds → xds/grpc}/xds_transport_grpc.cc +112 -69
- data/src/core/{ext/xds → xds/grpc}/xds_transport_grpc.h +37 -27
- data/src/core/xds/xds_client/lrs_client.cc +1292 -0
- data/src/core/xds/xds_client/lrs_client.h +394 -0
- data/src/core/{ext/xds → xds/xds_client}/xds_api.cc +39 -258
- data/src/core/{ext/xds → xds/xds_client}/xds_api.h +15 -38
- data/src/core/xds/xds_client/xds_backend_metric_propagation.cc +63 -0
- data/src/core/xds/xds_client/xds_backend_metric_propagation.h +59 -0
- data/src/core/{ext/xds → xds/xds_client}/xds_bootstrap.cc +4 -5
- data/src/core/{ext/xds → xds/xds_client}/xds_bootstrap.h +4 -4
- data/src/core/{ext/xds → xds/xds_client}/xds_channel_args.h +3 -3
- data/src/core/{ext/xds → xds/xds_client}/xds_client.cc +190 -804
- data/src/core/{ext/xds → xds/xds_client}/xds_client.h +39 -96
- data/src/core/xds/xds_client/xds_locality.h +102 -0
- data/src/core/{ext/xds → xds/xds_client}/xds_metrics.h +5 -3
- data/src/core/{ext/xds → xds/xds_client}/xds_resource_type.h +5 -6
- data/src/core/{ext/xds → xds/xds_client}/xds_resource_type_impl.h +6 -7
- data/src/core/{ext/xds → xds/xds_client}/xds_transport.h +33 -18
- data/src/ruby/bin/math_pb.rb +1 -22
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -3
- data/src/ruby/ext/grpc/rb_call.c +15 -8
- data/src/ruby/ext/grpc/rb_call_credentials.c +39 -32
- data/src/ruby/ext/grpc/rb_call_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_channel.c +42 -36
- data/src/ruby/ext/grpc/rb_channel_args.c +4 -4
- data/src/ruby/ext/grpc/rb_channel_credentials.c +5 -5
- data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -2
- data/src/ruby/ext/grpc/rb_completion_queue.c +18 -36
- data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
- data/src/ruby/ext/grpc/rb_compression_options.c +9 -10
- data/src/ruby/ext/grpc/rb_event_thread.c +9 -9
- data/src/ruby/ext/grpc/rb_grpc.c +16 -16
- data/src/ruby/ext/grpc/rb_grpc.h +8 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +136 -144
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +205 -216
- data/src/ruby/ext/grpc/rb_server.c +47 -27
- data/src/ruby/ext/grpc/rb_server_credentials.c +4 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +2 -2
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +5 -5
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +1 -2
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +5 -4
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +2 -2
- data/src/ruby/lib/grpc/generic/active_call.rb +8 -5
- data/src/ruby/lib/grpc/logconfig.rb +13 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
- data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
- data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
- data/src/ruby/spec/call_spec.rb +53 -40
- data/src/ruby/spec/channel_spec.rb +4 -2
- data/src/ruby/spec/client_server_spec.rb +148 -507
- data/src/ruby/spec/generic/active_call_spec.rb +64 -86
- data/src/ruby/spec/generic/client_stub_spec.rb +20 -20
- data/src/ruby/spec/logconfig_spec.rb +30 -0
- data/src/ruby/spec/support/services.rb +3 -0
- data/third_party/abseil-cpp/absl/algorithm/container.h +57 -18
- data/third_party/abseil-cpp/absl/base/attributes.h +84 -0
- data/third_party/abseil-cpp/absl/base/config.h +32 -51
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +0 -16
- data/third_party/abseil-cpp/absl/base/internal/nullability_impl.h +3 -1
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +13 -3
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -12
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +48 -0
- data/third_party/abseil-cpp/absl/base/no_destructor.h +35 -40
- data/third_party/abseil-cpp/absl/base/nullability.h +33 -7
- data/third_party/abseil-cpp/absl/base/optimization.h +11 -0
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/prefetch.h +1 -1
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +68 -12
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +60 -6
- data/third_party/abseil-cpp/absl/container/hash_container_defaults.h +45 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +13 -0
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +20 -11
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +15 -16
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +34 -1
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +68 -1
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +50 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +22 -7
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +26 -8
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +39 -35
- data/third_party/abseil-cpp/absl/container/internal/layout.h +190 -74
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +8 -6
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +334 -71
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1299 -458
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +19 -17
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +4 -3
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +2 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +12 -8
- data/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +1 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +11 -7
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +18 -17
- data/third_party/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence.h +126 -0
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +258 -0
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +55 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1057 -86
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +3 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +925 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +42 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +43 -16
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +8 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +10 -7
- data/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc +70 -0
- data/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.h +47 -0
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +11 -0
- data/third_party/abseil-cpp/absl/flags/flag.h +2 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +117 -30
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +192 -30
- data/third_party/abseil-cpp/absl/flags/reflection.cc +10 -0
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +13 -3
- data/third_party/abseil-cpp/absl/functional/bind_front.h +3 -2
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +7 -7
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +9 -9
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -1
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +13 -3
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +60 -28
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +4 -0
- data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +3 -3
- data/third_party/abseil-cpp/absl/log/check.h +209 -0
- data/third_party/abseil-cpp/absl/log/globals.h +28 -15
- data/third_party/abseil-cpp/absl/log/internal/check_impl.h +150 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +138 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +462 -0
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +2 -2
- data/third_party/abseil-cpp/absl/log/internal/log_impl.h +23 -23
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +104 -47
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +23 -4
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -10
- data/third_party/abseil-cpp/absl/log/internal/strip.h +36 -0
- data/third_party/abseil-cpp/absl/log/log.h +5 -1
- data/third_party/abseil-cpp/absl/log/log_sink.h +11 -4
- data/third_party/abseil-cpp/absl/log/vlog_is_on.h +3 -3
- data/third_party/abseil-cpp/absl/meta/type_traits.h +138 -42
- data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -3
- data/third_party/abseil-cpp/absl/numeric/int128.h +35 -5
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +14 -0
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +18 -0
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +6 -2
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +8 -8
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +9 -7
- data/third_party/abseil-cpp/absl/random/distributions.h +11 -11
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +2 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +61 -2
- data/third_party/abseil-cpp/absl/status/status.cc +0 -4
- data/third_party/abseil-cpp/absl/status/status.h +4 -4
- data/third_party/abseil-cpp/absl/status/statusor.h +108 -142
- data/third_party/abseil-cpp/absl/strings/ascii.cc +32 -71
- data/third_party/abseil-cpp/absl/strings/cord.cc +20 -15
- data/third_party/abseil-cpp/absl/strings/cord.h +68 -7
- data/third_party/abseil-cpp/absl/strings/escaping.cc +96 -21
- data/third_party/abseil-cpp/absl/strings/escaping.h +25 -8
- data/third_party/abseil-cpp/absl/strings/has_absl_stringify.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +10 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +29 -9
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +19 -13
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +23 -13
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +24 -24
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +12 -7
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +9 -4
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +5 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +23 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +5 -1
- data/third_party/abseil-cpp/absl/strings/numbers.cc +107 -333
- data/third_party/abseil-cpp/absl/strings/numbers.h +12 -151
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +49 -142
- data/third_party/abseil-cpp/absl/strings/str_cat.h +70 -85
- data/third_party/abseil-cpp/absl/strings/str_format.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_join.h +19 -5
- data/third_party/abseil-cpp/absl/strings/str_split.h +2 -2
- data/third_party/abseil-cpp/absl/strings/string_view.h +3 -2
- data/third_party/abseil-cpp/absl/strings/substitute.cc +4 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +11 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +5 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +5 -4
- data/third_party/abseil-cpp/absl/time/civil_time.h +2 -2
- data/third_party/abseil-cpp/absl/time/clock.cc +15 -1
- data/third_party/abseil-cpp/absl/time/duration.cc +58 -53
- data/third_party/abseil-cpp/absl/time/format.cc +2 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +0 -29
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +3 -3
- data/third_party/abseil-cpp/absl/time/time.h +73 -29
- data/third_party/abseil-cpp/absl/types/compare.h +505 -0
- data/third_party/abseil-cpp/absl/types/internal/optional.h +2 -2
- data/third_party/abseil-cpp/absl/types/internal/variant.h +55 -67
- data/third_party/abseil-cpp/absl/types/optional.h +15 -18
- data/third_party/abseil-cpp/absl/types/span.h +3 -2
- data/third_party/abseil-cpp/absl/types/variant.h +19 -24
- data/third_party/abseil-cpp/absl/utility/utility.h +3 -41
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand/fork_detect.h → bcm_support.h} +53 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +13 -18
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +25 -10
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +3 -18
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +19 -15
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_des.c +48 -66
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +20 -28
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +43 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c +71 -37
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +8 -62
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1539 -0
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +36 -20
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +160 -14
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +81 -60
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +41 -120
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +13 -13
- data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh.c +137 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.c +120 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +30 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +30 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +30 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +6 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes.c → aes.c.inc} +21 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +33 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +84 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bytes.c → bytes.c.inc} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div.c → div.c.inc} +149 -182
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div_extra.c → div_extra.c.inc} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{exponentiation.c → exponentiation.c.inc} +46 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd_extra.c → gcd_extra.c.inc} +8 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery_inv.c → montgomery_inv.c.inc} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{mul.c → mul.c.inc} +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{prime.c → prime.c.inc} +14 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{random.c → random.c.inc} +8 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{sqrt.c → sqrt.c.inc} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aes.c → e_aes.c.inc} +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_key.c → ec_key.c.inc} +22 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-nistz.c → p256-nistz.c.inc} +104 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h +65 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{scalar.c → scalar.c.inc} +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/{ecdsa.c → ecdsa.c.inc} +52 -107
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +28 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{rand.c → rand.c.inc} +26 -40
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{padding.c → padding.c.inc} +2 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa.c → rsa.c.inc} +11 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa_impl.c → rsa_impl.c.inc} +23 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{fips.c → fips.c.inc} +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{self_check.c → self_check.c.inc} +9 -35
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/{service_indicator.c → service_indicator.c.inc} +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +78 -29
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha1.c → sha1.c.inc} +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha256.c → sha256.c.inc} +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha512.c → sha512.c.inc} +10 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/{kdf.c → kdf.c.inc} +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +295 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +131 -41
- data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +25 -12
- data/third_party/boringssl-with-bazel/src/crypto/mldsa/internal.h +73 -0
- data/third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.c +1687 -0
- data/third_party/boringssl-with-bazel/src/crypto/mlkem/internal.h +90 -0
- data/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc +1097 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +19 -19
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +43 -41
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +13 -12
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand → rand_extra}/fork_detect.c +26 -28
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +19 -3
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +26 -23
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/sysrand_internal.h +37 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand → rand_extra}/urandom.c +19 -19
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +8 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/spx/spx.c +7 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +26 -33
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.c +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +21 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +8 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +1 -6
- data/third_party/boringssl-with-bazel/{err_data.c → src/gen/crypto/err_data.c} +487 -485
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +14 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +85 -42
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +14 -9
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +12 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +10 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +17 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +10 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +13 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +25 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +15 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +129 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/{kyber.h → experimental/kyber.h} +10 -0
- data/third_party/boringssl-with-bazel/src/{crypto/spx/internal.h → include/openssl/experimental/spx.h} +24 -13
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +8 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +136 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +246 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +66 -57
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +19 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +48 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +393 -107
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +10 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/target.h +13 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +2931 -2453
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +9 -12
- data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +6 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +10 -5
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +14 -2
- data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +301 -66
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +3 -9
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +66 -58
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +17 -7
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +138 -54
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +159 -117
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +349 -202
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +45 -17
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +86 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +7 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +59 -385
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +21 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +423 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +99 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +139 -83
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +116 -93
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +6 -14
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +48 -116
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +21 -27
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +54 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +96 -34
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +68 -23
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +4 -24
- data/third_party/upb/upb/base/string_view.h +1 -1
- data/third_party/upb/upb/json/decode.c +60 -13
- data/third_party/upb/upb/json/decode.h +26 -3
- data/third_party/upb/upb/json/encode.c +2 -2
- data/third_party/upb/upb/lex/round_trip.c +10 -0
- data/third_party/upb/upb/mem/arena.c +80 -4
- data/third_party/upb/upb/mem/arena.h +20 -9
- data/third_party/upb/upb/mem/arena.hpp +5 -1
- data/third_party/upb/upb/mem/internal/arena.h +11 -8
- data/third_party/upb/upb/message/accessors.c +6 -7
- data/third_party/upb/upb/message/accessors.h +186 -376
- data/third_party/upb/upb/message/array.c +26 -3
- data/third_party/upb/upb/message/array.h +17 -9
- data/third_party/upb/upb/message/compat.c +5 -5
- data/third_party/upb/upb/message/compat.h +3 -3
- data/third_party/upb/upb/message/copy.c +23 -20
- data/third_party/upb/upb/message/internal/accessors.h +617 -55
- data/third_party/upb/upb/message/internal/array.h +23 -15
- data/third_party/upb/upb/message/internal/compare_unknown.c +289 -0
- data/third_party/upb/upb/message/internal/compare_unknown.h +49 -0
- data/third_party/upb/upb/message/internal/extension.c +12 -12
- data/third_party/upb/upb/message/internal/extension.h +9 -12
- data/third_party/upb/upb/message/internal/map.h +15 -0
- data/third_party/upb/upb/message/internal/map_sorter.h +4 -5
- data/third_party/upb/upb/message/internal/message.c +22 -6
- data/third_party/upb/upb/message/internal/message.h +11 -0
- data/third_party/upb/upb/message/internal/tagged_ptr.h +5 -5
- data/third_party/upb/upb/message/internal/types.h +41 -1
- data/third_party/upb/upb/message/map.c +25 -0
- data/third_party/upb/upb/message/map.h +11 -7
- data/third_party/upb/upb/message/merge.c +38 -0
- data/third_party/upb/upb/message/merge.h +26 -0
- data/third_party/upb/upb/message/message.c +83 -4
- data/third_party/upb/upb/message/message.h +16 -1
- data/third_party/upb/upb/message/tagged_ptr.h +4 -8
- data/third_party/upb/upb/message/value.h +26 -0
- data/third_party/upb/upb/mini_descriptor/build_enum.c +3 -3
- data/third_party/upb/upb/mini_descriptor/build_enum.h +6 -14
- data/third_party/upb/upb/mini_descriptor/decode.c +19 -3
- data/third_party/upb/upb/mini_descriptor/link.c +23 -21
- data/third_party/upb/upb/mini_table/enum.h +2 -4
- data/third_party/upb/upb/mini_table/extension.h +4 -12
- data/third_party/upb/upb/mini_table/extension_registry.c +18 -0
- data/third_party/upb/upb/mini_table/extension_registry.h +17 -0
- data/third_party/upb/upb/mini_table/field.h +12 -38
- data/third_party/upb/upb/mini_table/file.h +6 -19
- data/third_party/upb/upb/mini_table/internal/enum.h +1 -1
- data/third_party/upb/upb/mini_table/internal/extension.h +18 -9
- data/third_party/upb/upb/mini_table/internal/field.h +23 -23
- data/third_party/upb/upb/mini_table/internal/file.h +7 -7
- data/third_party/upb/upb/mini_table/internal/message.c +21 -1
- data/third_party/upb/upb/mini_table/internal/message.h +80 -36
- data/third_party/upb/upb/mini_table/internal/sub.h +9 -4
- data/third_party/upb/upb/mini_table/message.h +23 -22
- data/third_party/upb/upb/mini_table/sub.h +4 -12
- data/third_party/upb/upb/port/def.inc +108 -12
- data/third_party/upb/upb/port/undef.inc +8 -1
- data/third_party/upb/upb/reflection/common.h +1 -11
- data/third_party/upb/upb/reflection/def.hpp +35 -0
- data/third_party/upb/upb/reflection/def_pool.h +2 -2
- data/third_party/upb/upb/reflection/descriptor_bootstrap.h +19 -0
- data/third_party/upb/upb/reflection/enum_def.c +5 -1
- data/third_party/upb/upb/reflection/enum_def.h +1 -0
- data/third_party/upb/upb/reflection/enum_value_def.c +3 -8
- data/third_party/upb/upb/reflection/field_def.c +72 -46
- data/third_party/upb/upb/reflection/field_def.h +4 -0
- data/third_party/upb/upb/reflection/file_def.c +30 -4
- data/third_party/upb/upb/reflection/file_def.h +3 -0
- data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
- data/third_party/upb/upb/reflection/message.c +26 -9
- data/third_party/upb/upb/reflection/message.h +2 -2
- data/third_party/upb/upb/reflection/message_def.c +14 -9
- data/third_party/upb/upb/reflection/method_def.h +8 -7
- data/third_party/upb/upb/reflection/service_def.h +6 -5
- data/third_party/upb/upb/text/encode.c +53 -389
- data/third_party/upb/upb/text/encode.h +1 -11
- data/third_party/upb/upb/text/internal/encode.c +180 -0
- data/third_party/upb/upb/text/internal/encode.h +240 -0
- data/third_party/upb/upb/text/options.h +22 -0
- data/third_party/upb/upb/wire/decode.c +160 -94
- data/third_party/upb/upb/wire/decode.h +15 -2
- data/third_party/upb/upb/wire/encode.c +89 -48
- data/third_party/upb/upb/wire/encode.h +12 -1
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +3 -3
- data/third_party/upb/upb/wire/internal/decode_fast.c +28 -29
- data/third_party/upb/upb/wire/internal/reader.h +3 -3
- data/third_party/upb/upb/wire/reader.c +1 -2
- data/third_party/upb/upb/wire/reader.h +4 -8
- metadata +472 -383
- data/src/core/client_channel/client_channel_channelz.cc +0 -93
- data/src/core/client_channel/client_channel_channelz.h +0 -85
- data/src/core/client_channel/config_selector.cc +0 -60
- data/src/core/ext/filters/deadline/deadline_filter.cc +0 -407
- data/src/core/ext/filters/deadline/deadline_filter.h +0 -85
- data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
- data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
- data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc +0 -44
- data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h +0 -67
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
- data/src/core/ext/xds/xds_client_stats.cc +0 -173
- data/src/core/ext/xds/xds_client_stats.h +0 -258
- data/src/core/lib/channel/channel_stack_trace.cc +0 -19
- data/src/core/lib/channel/channel_stack_trace.h +0 -24
- data/src/core/lib/channel/context.h +0 -77
- data/src/core/lib/channel/metrics.cc +0 -396
- data/src/core/lib/channel/metrics.h +0 -406
- data/src/core/lib/event_engine/trace.cc +0 -25
- data/src/core/lib/event_engine/trace.h +0 -49
- data/src/core/lib/gpr/android/log.cc +0 -79
- data/src/core/lib/gpr/linux/log.cc +0 -114
- data/src/core/lib/gpr/log.cc +0 -166
- data/src/core/lib/gpr/log_internal.h +0 -55
- data/src/core/lib/gpr/posix/log.cc +0 -111
- data/src/core/lib/gpr/windows/log.cc +0 -116
- data/src/core/lib/iomgr/ev_windows.cc +0 -30
- data/src/core/lib/promise/trace.cc +0 -20
- data/src/core/lib/promise/trace.h +0 -24
- data/src/core/lib/resource_quota/trace.cc +0 -19
- data/src/core/lib/resource_quota/trace.h +0 -24
- data/src/core/lib/security/transport/tsi_error.cc +0 -31
- data/src/core/lib/security/transport/tsi_error.h +0 -30
- data/src/core/lib/slice/slice_refcount.cc +0 -20
- data/src/core/lib/surface/api_trace.cc +0 -25
- data/src/core/lib/surface/api_trace.h +0 -53
- data/src/core/lib/surface/call_trace.h +0 -24
- data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
- data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
- data/src/core/lib/transport/batch_builder.cc +0 -170
- data/src/core/lib/transport/batch_builder.h +0 -476
- data/src/core/lib/transport/call_size_estimator.cc +0 -41
- data/src/core/lib/transport/call_size_estimator.h +0 -52
- data/src/core/lib/transport/handshaker.cc +0 -229
- data/src/core/resolver/binder/binder_resolver.cc +0 -154
- data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
- data/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h +0 -44
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
- data/third_party/boringssl-with-bazel/src/include/openssl/pki/certificate.h +0 -83
- data/third_party/boringssl-with-bazel/src/include/openssl/pki/signature_verify_cache.h +0 -41
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes_nohw.c → aes_nohw.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{key_wrap.c → key_wrap.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{mode_wrappers.c → mode_wrappers.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{add.c → add.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/{x86_64-gcc.c → x86_64-gcc.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bn.c → bn.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{cmp.c → cmp.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{ctx.c → ctx.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd.c → gcd.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{generic.c → generic.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{jacobi.c → jacobi.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery.c → montgomery.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{rsaz_exp.c → rsaz_exp.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{shift.c → shift.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{aead.c → aead.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{cipher.c → cipher.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aesccm.c → e_aesccm.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/{cmac.c → cmac.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{check.c → check.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{dh.c → dh.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digest.c → digest.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digests.c → digests.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/{digestsign.c → digestsign.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec.c → ec.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_montgomery.c → ec_montgomery.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{felem.c → felem.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{oct.c → oct.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p224-64.c → p224-64.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256.c → p256.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple.c → simple.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple_mul.c → simple_mul.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{util.c → util.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{wnaf.c → wnaf.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/{ecdh.c → ecdh.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/{hkdf.c → hkdf.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/{hmac.c → hmac.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/{md4.c → md4.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/{md5.c → md5.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cbc.c → cbc.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cfb.c → cfb.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ctr.c → ctr.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm.c → gcm.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm_nohw.c → gcm_nohw.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ofb.c → ofb.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{polyval.c → polyval.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{ctrdrbg.c → ctrdrbg.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{blinding.c → blinding.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand → rand_extra}/getrandom_fillin.h +0 -0
|
@@ -14,10 +14,16 @@
|
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
//
|
|
16
16
|
|
|
17
|
-
#include <grpc/support/port_platform.h>
|
|
18
|
-
|
|
19
17
|
#include "src/core/client_channel/client_channel_filter.h"
|
|
20
18
|
|
|
19
|
+
#include <grpc/event_engine/event_engine.h>
|
|
20
|
+
#include <grpc/impl/channel_arg_names.h>
|
|
21
|
+
#include <grpc/slice.h>
|
|
22
|
+
#include <grpc/status.h>
|
|
23
|
+
#include <grpc/support/json.h>
|
|
24
|
+
#include <grpc/support/port_platform.h>
|
|
25
|
+
#include <grpc/support/string_util.h>
|
|
26
|
+
#include <grpc/support/time.h>
|
|
21
27
|
#include <inttypes.h>
|
|
22
28
|
#include <limits.h>
|
|
23
29
|
|
|
@@ -30,6 +36,8 @@
|
|
|
30
36
|
#include <vector>
|
|
31
37
|
|
|
32
38
|
#include "absl/cleanup/cleanup.h"
|
|
39
|
+
#include "absl/log/check.h"
|
|
40
|
+
#include "absl/log/log.h"
|
|
33
41
|
#include "absl/status/status.h"
|
|
34
42
|
#include "absl/status/statusor.h"
|
|
35
43
|
#include "absl/strings/cord.h"
|
|
@@ -39,49 +47,30 @@
|
|
|
39
47
|
#include "absl/strings/string_view.h"
|
|
40
48
|
#include "absl/types/optional.h"
|
|
41
49
|
#include "absl/types/variant.h"
|
|
42
|
-
|
|
43
|
-
#include <grpc/event_engine/event_engine.h>
|
|
44
|
-
#include <grpc/impl/channel_arg_names.h>
|
|
45
|
-
#include <grpc/slice.h>
|
|
46
|
-
#include <grpc/status.h>
|
|
47
|
-
#include <grpc/support/json.h>
|
|
48
|
-
#include <grpc/support/log.h>
|
|
49
|
-
#include <grpc/support/string_util.h>
|
|
50
|
-
#include <grpc/support/time.h>
|
|
51
|
-
|
|
50
|
+
#include "src/core/channelz/channel_trace.h"
|
|
52
51
|
#include "src/core/client_channel/backup_poller.h"
|
|
53
|
-
#include "src/core/client_channel/client_channel_channelz.h"
|
|
54
52
|
#include "src/core/client_channel/client_channel_internal.h"
|
|
55
53
|
#include "src/core/client_channel/client_channel_service_config.h"
|
|
56
54
|
#include "src/core/client_channel/config_selector.h"
|
|
57
55
|
#include "src/core/client_channel/dynamic_filters.h"
|
|
58
56
|
#include "src/core/client_channel/global_subchannel_pool.h"
|
|
57
|
+
#include "src/core/client_channel/lb_metadata.h"
|
|
59
58
|
#include "src/core/client_channel/local_subchannel_pool.h"
|
|
60
59
|
#include "src/core/client_channel/retry_filter.h"
|
|
61
60
|
#include "src/core/client_channel/subchannel.h"
|
|
62
61
|
#include "src/core/client_channel/subchannel_interface_internal.h"
|
|
63
|
-
#include "src/core/
|
|
62
|
+
#include "src/core/config/core_configuration.h"
|
|
63
|
+
#include "src/core/handshaker/proxy_mapper_registry.h"
|
|
64
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
|
64
65
|
#include "src/core/lib/channel/channel_args.h"
|
|
65
66
|
#include "src/core/lib/channel/channel_stack.h"
|
|
66
|
-
#include "src/core/lib/channel/channel_trace.h"
|
|
67
67
|
#include "src/core/lib/channel/status_util.h"
|
|
68
|
-
#include "src/core/lib/config/core_configuration.h"
|
|
69
68
|
#include "src/core/lib/debug/trace.h"
|
|
70
69
|
#include "src/core/lib/experiments/experiments.h"
|
|
71
|
-
#include "src/core/lib/gpr/useful.h"
|
|
72
|
-
#include "src/core/lib/gprpp/crash.h"
|
|
73
|
-
#include "src/core/lib/gprpp/debug_location.h"
|
|
74
|
-
#include "src/core/lib/gprpp/manual_constructor.h"
|
|
75
|
-
#include "src/core/lib/gprpp/status_helper.h"
|
|
76
|
-
#include "src/core/lib/gprpp/sync.h"
|
|
77
|
-
#include "src/core/lib/gprpp/unique_type_name.h"
|
|
78
|
-
#include "src/core/lib/gprpp/work_serializer.h"
|
|
79
|
-
#include "src/core/lib/handshaker/proxy_mapper_registry.h"
|
|
80
70
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
|
81
71
|
#include "src/core/lib/iomgr/polling_entity.h"
|
|
82
72
|
#include "src/core/lib/iomgr/pollset_set.h"
|
|
83
73
|
#include "src/core/lib/iomgr/resolved_address.h"
|
|
84
|
-
#include "src/core/lib/json/json.h"
|
|
85
74
|
#include "src/core/lib/promise/cancel_callback.h"
|
|
86
75
|
#include "src/core/lib/promise/context.h"
|
|
87
76
|
#include "src/core/lib/promise/latch.h"
|
|
@@ -105,6 +94,15 @@
|
|
|
105
94
|
#include "src/core/resolver/resolver_registry.h"
|
|
106
95
|
#include "src/core/service_config/service_config_call_data.h"
|
|
107
96
|
#include "src/core/service_config/service_config_impl.h"
|
|
97
|
+
#include "src/core/util/crash.h"
|
|
98
|
+
#include "src/core/util/debug_location.h"
|
|
99
|
+
#include "src/core/util/json/json.h"
|
|
100
|
+
#include "src/core/util/manual_constructor.h"
|
|
101
|
+
#include "src/core/util/status_helper.h"
|
|
102
|
+
#include "src/core/util/sync.h"
|
|
103
|
+
#include "src/core/util/unique_type_name.h"
|
|
104
|
+
#include "src/core/util/useful.h"
|
|
105
|
+
#include "src/core/util/work_serializer.h"
|
|
108
106
|
|
|
109
107
|
//
|
|
110
108
|
// Client channel filter
|
|
@@ -114,10 +112,6 @@ namespace grpc_core {
|
|
|
114
112
|
|
|
115
113
|
using internal::ClientChannelMethodParsedConfig;
|
|
116
114
|
|
|
117
|
-
TraceFlag grpc_client_channel_trace(false, "client_channel");
|
|
118
|
-
TraceFlag grpc_client_channel_call_trace(false, "client_channel_call");
|
|
119
|
-
TraceFlag grpc_client_channel_lb_call_trace(false, "client_channel_lb_call");
|
|
120
|
-
|
|
121
115
|
//
|
|
122
116
|
// ClientChannelFilter::CallData definition
|
|
123
117
|
//
|
|
@@ -160,7 +154,6 @@ class ClientChannelFilter::CallData {
|
|
|
160
154
|
virtual Arena* arena() const = 0;
|
|
161
155
|
virtual grpc_polling_entity* pollent() = 0;
|
|
162
156
|
virtual grpc_metadata_batch* send_initial_metadata() = 0;
|
|
163
|
-
virtual grpc_call_context_element* call_context() const = 0;
|
|
164
157
|
|
|
165
158
|
// Helper function for CheckResolution(). Returns true if the call
|
|
166
159
|
// can continue (i.e., there is a valid resolution result, or there is
|
|
@@ -210,22 +203,19 @@ class ClientChannelFilter::FilterBasedCallData final
|
|
|
210
203
|
const grpc_call_element_args& args);
|
|
211
204
|
~FilterBasedCallData() override;
|
|
212
205
|
|
|
213
|
-
grpc_call_element* elem() const { return
|
|
214
|
-
grpc_call_stack* owning_call() const { return
|
|
215
|
-
CallCombiner* call_combiner() const { return
|
|
206
|
+
grpc_call_element* elem() const { return elem_; }
|
|
207
|
+
grpc_call_stack* owning_call() const { return owning_call_; }
|
|
208
|
+
CallCombiner* call_combiner() const { return call_combiner_; }
|
|
216
209
|
|
|
217
210
|
ClientChannelFilter* chand() const override {
|
|
218
211
|
return static_cast<ClientChannelFilter*>(elem()->channel_data);
|
|
219
212
|
}
|
|
220
|
-
Arena* arena() const override { return
|
|
213
|
+
Arena* arena() const override { return arena_; }
|
|
221
214
|
grpc_polling_entity* pollent() override { return pollent_; }
|
|
222
215
|
grpc_metadata_batch* send_initial_metadata() override {
|
|
223
216
|
return pending_batches_[0]
|
|
224
217
|
->payload->send_initial_metadata.send_initial_metadata;
|
|
225
218
|
}
|
|
226
|
-
grpc_call_context_element* call_context() const override {
|
|
227
|
-
return call_context_;
|
|
228
|
-
}
|
|
229
219
|
|
|
230
220
|
// Returns the index into pending_batches_ to be used for batch.
|
|
231
221
|
static size_t GetBatchIndex(grpc_transport_stream_op_batch* batch);
|
|
@@ -270,10 +260,7 @@ class ClientChannelFilter::FilterBasedCallData final
|
|
|
270
260
|
void ResetDeadline(Duration timeout) override {
|
|
271
261
|
const Timestamp per_method_deadline =
|
|
272
262
|
Timestamp::FromCycleCounterRoundUp(call_start_time_) + timeout;
|
|
273
|
-
|
|
274
|
-
deadline_ = per_method_deadline;
|
|
275
|
-
grpc_deadline_state_reset(&deadline_state_, deadline_);
|
|
276
|
-
}
|
|
263
|
+
arena_->GetContext<Call>()->UpdateDeadline(per_method_deadline);
|
|
277
264
|
}
|
|
278
265
|
|
|
279
266
|
void CreateDynamicCall();
|
|
@@ -282,12 +269,13 @@ class ClientChannelFilter::FilterBasedCallData final
|
|
|
282
269
|
void* arg, grpc_error_handle error);
|
|
283
270
|
|
|
284
271
|
grpc_slice path_; // Request path.
|
|
285
|
-
grpc_call_context_element* call_context_;
|
|
286
272
|
gpr_cycle_counter call_start_time_;
|
|
287
273
|
Timestamp deadline_;
|
|
288
274
|
|
|
289
|
-
|
|
290
|
-
|
|
275
|
+
Arena* const arena_;
|
|
276
|
+
grpc_call_element* const elem_;
|
|
277
|
+
grpc_call_stack* const owning_call_;
|
|
278
|
+
CallCombiner* const call_combiner_;
|
|
291
279
|
|
|
292
280
|
grpc_polling_entity* pollent_ = nullptr;
|
|
293
281
|
|
|
@@ -311,104 +299,12 @@ class ClientChannelFilter::FilterBasedCallData final
|
|
|
311
299
|
grpc_error_handle cancel_error_;
|
|
312
300
|
};
|
|
313
301
|
|
|
314
|
-
class ClientChannelFilter::PromiseBasedCallData final
|
|
315
|
-
: public ClientChannelFilter::CallData {
|
|
316
|
-
public:
|
|
317
|
-
explicit PromiseBasedCallData(ClientChannelFilter* chand) : chand_(chand) {}
|
|
318
|
-
|
|
319
|
-
~PromiseBasedCallData() override {
|
|
320
|
-
if (was_queued_ && client_initial_metadata_ != nullptr) {
|
|
321
|
-
MutexLock lock(&chand_->resolution_mu_);
|
|
322
|
-
RemoveCallFromResolverQueuedCallsLocked();
|
|
323
|
-
chand_->resolver_queued_calls_.erase(this);
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
ArenaPromise<absl::StatusOr<CallArgs>> MakeNameResolutionPromise(
|
|
328
|
-
CallArgs call_args) {
|
|
329
|
-
pollent_ = NowOrNever(call_args.polling_entity->WaitAndCopy()).value();
|
|
330
|
-
client_initial_metadata_ = std::move(call_args.client_initial_metadata);
|
|
331
|
-
// If we're still in IDLE, we need to start resolving.
|
|
332
|
-
if (GPR_UNLIKELY(chand_->CheckConnectivityState(false) ==
|
|
333
|
-
GRPC_CHANNEL_IDLE)) {
|
|
334
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
|
335
|
-
gpr_log(GPR_INFO, "chand=%p calld=%p: %striggering exit idle", chand_,
|
|
336
|
-
this, GetContext<Activity>()->DebugTag().c_str());
|
|
337
|
-
}
|
|
338
|
-
// Bounce into the control plane work serializer to start resolving.
|
|
339
|
-
GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ExitIdle");
|
|
340
|
-
chand_->work_serializer_->Run(
|
|
341
|
-
[chand = chand_]()
|
|
342
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
|
343
|
-
chand->CheckConnectivityState(/*try_to_connect=*/true);
|
|
344
|
-
GRPC_CHANNEL_STACK_UNREF(chand->owning_stack_, "ExitIdle");
|
|
345
|
-
},
|
|
346
|
-
DEBUG_LOCATION);
|
|
347
|
-
}
|
|
348
|
-
return [this, call_args = std::move(
|
|
349
|
-
call_args)]() mutable -> Poll<absl::StatusOr<CallArgs>> {
|
|
350
|
-
auto result = CheckResolution(was_queued_);
|
|
351
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
|
352
|
-
gpr_log(GPR_INFO, "chand=%p calld=%p: %sCheckResolution returns %s",
|
|
353
|
-
chand_, this, GetContext<Activity>()->DebugTag().c_str(),
|
|
354
|
-
result.has_value() ? result->ToString().c_str() : "Pending");
|
|
355
|
-
}
|
|
356
|
-
if (!result.has_value()) return Pending{};
|
|
357
|
-
if (!result->ok()) return *result;
|
|
358
|
-
call_args.client_initial_metadata = std::move(client_initial_metadata_);
|
|
359
|
-
return std::move(call_args);
|
|
360
|
-
};
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
private:
|
|
364
|
-
ClientChannelFilter* chand() const override { return chand_; }
|
|
365
|
-
Arena* arena() const override { return GetContext<Arena>(); }
|
|
366
|
-
grpc_polling_entity* pollent() override { return &pollent_; }
|
|
367
|
-
grpc_metadata_batch* send_initial_metadata() override {
|
|
368
|
-
return client_initial_metadata_.get();
|
|
369
|
-
}
|
|
370
|
-
grpc_call_context_element* call_context() const override {
|
|
371
|
-
return GetContext<grpc_call_context_element>();
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
void OnAddToQueueLocked() override
|
|
375
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannelFilter::resolution_mu_) {
|
|
376
|
-
waker_ = GetContext<Activity>()->MakeNonOwningWaker();
|
|
377
|
-
was_queued_ = true;
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
void RetryCheckResolutionLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
|
381
|
-
&ClientChannelFilter::resolution_mu_) override {
|
|
382
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
|
383
|
-
gpr_log(GPR_INFO, "chand=%p calld=%p: RetryCheckResolutionLocked(): %s",
|
|
384
|
-
chand_, this, waker_.ActivityDebugTag().c_str());
|
|
385
|
-
}
|
|
386
|
-
waker_.WakeupAsync();
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
void ResetDeadline(Duration timeout) override {
|
|
390
|
-
CallContext* call_context = GetContext<CallContext>();
|
|
391
|
-
const Timestamp per_method_deadline =
|
|
392
|
-
Timestamp::FromCycleCounterRoundUp(call_context->call_start_time()) +
|
|
393
|
-
timeout;
|
|
394
|
-
call_context->UpdateDeadline(per_method_deadline);
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
ClientChannelFilter* chand_;
|
|
398
|
-
grpc_polling_entity pollent_;
|
|
399
|
-
ClientMetadataHandle client_initial_metadata_;
|
|
400
|
-
bool was_queued_ = false;
|
|
401
|
-
Waker waker_ ABSL_GUARDED_BY(&ClientChannelFilter::resolution_mu_);
|
|
402
|
-
};
|
|
403
|
-
|
|
404
302
|
//
|
|
405
303
|
// Filter vtable
|
|
406
304
|
//
|
|
407
305
|
|
|
408
|
-
const grpc_channel_filter ClientChannelFilter::
|
|
306
|
+
const grpc_channel_filter ClientChannelFilter::kFilter = {
|
|
409
307
|
ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch,
|
|
410
|
-
ClientChannelFilter::MakeCallPromise,
|
|
411
|
-
/* init_call: */ nullptr,
|
|
412
308
|
ClientChannelFilter::StartTransportOp,
|
|
413
309
|
sizeof(ClientChannelFilter::FilterBasedCallData),
|
|
414
310
|
ClientChannelFilter::FilterBasedCallData::Init,
|
|
@@ -419,24 +315,7 @@ const grpc_channel_filter ClientChannelFilter::kFilterVtableWithPromises = {
|
|
|
419
315
|
grpc_channel_stack_no_post_init,
|
|
420
316
|
ClientChannelFilter::Destroy,
|
|
421
317
|
ClientChannelFilter::GetChannelInfo,
|
|
422
|
-
"client-channel",
|
|
423
|
-
};
|
|
424
|
-
|
|
425
|
-
const grpc_channel_filter ClientChannelFilter::kFilterVtableWithoutPromises = {
|
|
426
|
-
ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch,
|
|
427
|
-
nullptr,
|
|
428
|
-
/* init_call: */ nullptr,
|
|
429
|
-
ClientChannelFilter::StartTransportOp,
|
|
430
|
-
sizeof(ClientChannelFilter::FilterBasedCallData),
|
|
431
|
-
ClientChannelFilter::FilterBasedCallData::Init,
|
|
432
|
-
ClientChannelFilter::FilterBasedCallData::SetPollent,
|
|
433
|
-
ClientChannelFilter::FilterBasedCallData::Destroy,
|
|
434
|
-
sizeof(ClientChannelFilter),
|
|
435
|
-
ClientChannelFilter::Init,
|
|
436
|
-
grpc_channel_stack_no_post_init,
|
|
437
|
-
ClientChannelFilter::Destroy,
|
|
438
|
-
ClientChannelFilter::GetChannelInfo,
|
|
439
|
-
"client-channel",
|
|
318
|
+
GRPC_UNIQUE_TYPE_NAME_HERE("client-channel"),
|
|
440
319
|
};
|
|
441
320
|
|
|
442
321
|
//
|
|
@@ -445,10 +324,9 @@ const grpc_channel_filter ClientChannelFilter::kFilterVtableWithoutPromises = {
|
|
|
445
324
|
|
|
446
325
|
namespace {
|
|
447
326
|
|
|
448
|
-
ClientChannelServiceConfigCallData* GetServiceConfigCallData(
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
context[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value);
|
|
327
|
+
ClientChannelServiceConfigCallData* GetServiceConfigCallData(Arena* arena) {
|
|
328
|
+
return DownCast<ClientChannelServiceConfigCallData*>(
|
|
329
|
+
arena->GetContext<ServiceConfigCallData>());
|
|
452
330
|
}
|
|
453
331
|
|
|
454
332
|
class DynamicTerminationFilter final {
|
|
@@ -459,8 +337,8 @@ class DynamicTerminationFilter final {
|
|
|
459
337
|
|
|
460
338
|
static grpc_error_handle Init(grpc_channel_element* elem,
|
|
461
339
|
grpc_channel_element_args* args) {
|
|
462
|
-
|
|
463
|
-
|
|
340
|
+
CHECK(args->is_last);
|
|
341
|
+
CHECK(elem->filter == &kFilterVtable);
|
|
464
342
|
new (elem->channel_data) DynamicTerminationFilter(args->channel_args);
|
|
465
343
|
return absl::OkStatus();
|
|
466
344
|
}
|
|
@@ -476,19 +354,6 @@ class DynamicTerminationFilter final {
|
|
|
476
354
|
static void GetChannelInfo(grpc_channel_element* /*elem*/,
|
|
477
355
|
const grpc_channel_info* /*info*/) {}
|
|
478
356
|
|
|
479
|
-
static ArenaPromise<ServerMetadataHandle> MakeCallPromise(
|
|
480
|
-
grpc_channel_element* elem, CallArgs call_args, NextPromiseFactory) {
|
|
481
|
-
auto* chand = static_cast<DynamicTerminationFilter*>(elem->channel_data);
|
|
482
|
-
return chand->chand_->CreateLoadBalancedCallPromise(
|
|
483
|
-
std::move(call_args),
|
|
484
|
-
[]() {
|
|
485
|
-
auto* service_config_call_data =
|
|
486
|
-
GetServiceConfigCallData(GetContext<grpc_call_context_element>());
|
|
487
|
-
service_config_call_data->Commit();
|
|
488
|
-
},
|
|
489
|
-
/*is_transparent_retry=*/false);
|
|
490
|
-
}
|
|
491
|
-
|
|
492
357
|
private:
|
|
493
358
|
explicit DynamicTerminationFilter(const ChannelArgs& args)
|
|
494
359
|
: chand_(args.GetObject<ClientChannelFilter>()) {}
|
|
@@ -532,21 +397,18 @@ class DynamicTerminationFilter::CallData final {
|
|
|
532
397
|
auto* calld = static_cast<CallData*>(elem->call_data);
|
|
533
398
|
auto* chand = static_cast<DynamicTerminationFilter*>(elem->channel_data);
|
|
534
399
|
ClientChannelFilter* client_channel = chand->chand_;
|
|
535
|
-
grpc_call_element_args args = {calld->owning_call_,
|
|
536
|
-
calld->
|
|
537
|
-
/*start_time=*/0,
|
|
538
|
-
calld->arena_,
|
|
539
|
-
auto* service_config_call_data =
|
|
540
|
-
GetServiceConfigCallData(calld->call_context_);
|
|
400
|
+
grpc_call_element_args args = {calld->owning_call_, nullptr,
|
|
401
|
+
calld->path_,
|
|
402
|
+
/*start_time=*/0, calld->deadline_,
|
|
403
|
+
calld->arena_, calld->call_combiner_};
|
|
404
|
+
auto* service_config_call_data = GetServiceConfigCallData(calld->arena_);
|
|
541
405
|
calld->lb_call_ = client_channel->CreateLoadBalancedCall(
|
|
542
406
|
args, pollent, nullptr,
|
|
543
407
|
[service_config_call_data]() { service_config_call_data->Commit(); },
|
|
544
408
|
/*is_transparent_retry=*/false);
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
client_channel, calld->lb_call_.get());
|
|
549
|
-
}
|
|
409
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
410
|
+
<< "chand=" << chand << " dynamic_termination_calld=" << client_channel
|
|
411
|
+
<< ": create lb_call=" << calld->lb_call_.get();
|
|
550
412
|
}
|
|
551
413
|
|
|
552
414
|
private:
|
|
@@ -555,8 +417,7 @@ class DynamicTerminationFilter::CallData final {
|
|
|
555
417
|
deadline_(args.deadline),
|
|
556
418
|
arena_(args.arena),
|
|
557
419
|
owning_call_(args.call_stack),
|
|
558
|
-
call_combiner_(args.call_combiner)
|
|
559
|
-
call_context_(args.context) {}
|
|
420
|
+
call_combiner_(args.call_combiner) {}
|
|
560
421
|
|
|
561
422
|
~CallData() { CSliceUnref(path_); }
|
|
562
423
|
|
|
@@ -565,15 +426,12 @@ class DynamicTerminationFilter::CallData final {
|
|
|
565
426
|
Arena* arena_;
|
|
566
427
|
grpc_call_stack* owning_call_;
|
|
567
428
|
CallCombiner* call_combiner_;
|
|
568
|
-
grpc_call_context_element* call_context_;
|
|
569
429
|
|
|
570
430
|
OrphanablePtr<ClientChannelFilter::FilterBasedLoadBalancedCall> lb_call_;
|
|
571
431
|
};
|
|
572
432
|
|
|
573
433
|
const grpc_channel_filter DynamicTerminationFilter::kFilterVtable = {
|
|
574
434
|
DynamicTerminationFilter::CallData::StartTransportStreamOpBatch,
|
|
575
|
-
DynamicTerminationFilter::MakeCallPromise,
|
|
576
|
-
/* init_call: */ nullptr,
|
|
577
435
|
DynamicTerminationFilter::StartTransportOp,
|
|
578
436
|
sizeof(DynamicTerminationFilter::CallData),
|
|
579
437
|
DynamicTerminationFilter::CallData::Init,
|
|
@@ -584,7 +442,7 @@ const grpc_channel_filter DynamicTerminationFilter::kFilterVtable = {
|
|
|
584
442
|
grpc_channel_stack_no_post_init,
|
|
585
443
|
DynamicTerminationFilter::Destroy,
|
|
586
444
|
DynamicTerminationFilter::GetChannelInfo,
|
|
587
|
-
"dynamic_filter_termination",
|
|
445
|
+
GRPC_UNIQUE_TYPE_NAME_HERE("dynamic_filter_termination"),
|
|
588
446
|
};
|
|
589
447
|
|
|
590
448
|
} // namespace
|
|
@@ -601,9 +459,8 @@ class ClientChannelFilter::ResolverResultHandler final
|
|
|
601
459
|
}
|
|
602
460
|
|
|
603
461
|
~ResolverResultHandler() override {
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
}
|
|
462
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
463
|
+
<< "chand=" << chand_ << ": resolver shutdown complete";
|
|
607
464
|
GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "ResolverResultHandler");
|
|
608
465
|
}
|
|
609
466
|
|
|
@@ -633,18 +490,18 @@ class ClientChannelFilter::SubchannelWrapper final
|
|
|
633
490
|
public:
|
|
634
491
|
SubchannelWrapper(ClientChannelFilter* chand,
|
|
635
492
|
RefCountedPtr<Subchannel> subchannel)
|
|
636
|
-
: SubchannelInterface(GRPC_TRACE_FLAG_ENABLED(
|
|
493
|
+
: SubchannelInterface(GRPC_TRACE_FLAG_ENABLED(client_channel)
|
|
637
494
|
? "SubchannelWrapper"
|
|
638
495
|
: nullptr),
|
|
639
496
|
chand_(chand),
|
|
640
497
|
subchannel_(std::move(subchannel)) {
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
chand, this, subchannel_.get());
|
|
645
|
-
}
|
|
498
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
499
|
+
<< "chand=" << chand << ": creating subchannel wrapper " << this
|
|
500
|
+
<< " for subchannel " << subchannel_.get();
|
|
646
501
|
GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "SubchannelWrapper");
|
|
647
|
-
|
|
502
|
+
#ifndef NDEBUG
|
|
503
|
+
DCHECK(chand_->work_serializer_->RunningInWorkSerializer());
|
|
504
|
+
#endif
|
|
648
505
|
if (chand_->channelz_node_ != nullptr) {
|
|
649
506
|
auto* subchannel_node = subchannel_->channelz_node();
|
|
650
507
|
if (subchannel_node != nullptr) {
|
|
@@ -661,18 +518,16 @@ class ClientChannelFilter::SubchannelWrapper final
|
|
|
661
518
|
}
|
|
662
519
|
|
|
663
520
|
~SubchannelWrapper() override {
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
chand_, this, subchannel_.get());
|
|
668
|
-
}
|
|
521
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
522
|
+
<< "chand=" << chand_ << ": destroying subchannel wrapper " << this
|
|
523
|
+
<< "for subchannel " << subchannel_.get();
|
|
669
524
|
if (!IsWorkSerializerDispatchEnabled()) {
|
|
670
525
|
chand_->subchannel_wrappers_.erase(this);
|
|
671
526
|
if (chand_->channelz_node_ != nullptr) {
|
|
672
527
|
auto* subchannel_node = subchannel_->channelz_node();
|
|
673
528
|
if (subchannel_node != nullptr) {
|
|
674
529
|
auto it = chand_->subchannel_refcount_map_.find(subchannel_.get());
|
|
675
|
-
|
|
530
|
+
CHECK(it != chand_->subchannel_refcount_map_.end());
|
|
676
531
|
--it->second;
|
|
677
532
|
if (it->second == 0) {
|
|
678
533
|
chand_->channelz_node_->RemoveChildSubchannel(
|
|
@@ -699,7 +554,7 @@ class ClientChannelFilter::SubchannelWrapper final
|
|
|
699
554
|
if (subchannel_node != nullptr) {
|
|
700
555
|
auto it =
|
|
701
556
|
chand_->subchannel_refcount_map_.find(subchannel_.get());
|
|
702
|
-
|
|
557
|
+
CHECK(it != chand_->subchannel_refcount_map_.end());
|
|
703
558
|
--it->second;
|
|
704
559
|
if (it->second == 0) {
|
|
705
560
|
chand_->channelz_node_->RemoveChildSubchannel(
|
|
@@ -717,7 +572,7 @@ class ClientChannelFilter::SubchannelWrapper final
|
|
|
717
572
|
std::unique_ptr<ConnectivityStateWatcherInterface> watcher) override
|
|
718
573
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
|
719
574
|
auto& watcher_wrapper = watcher_map_[watcher.get()];
|
|
720
|
-
|
|
575
|
+
CHECK_EQ(watcher_wrapper, nullptr);
|
|
721
576
|
watcher_wrapper = new WatcherWrapper(
|
|
722
577
|
std::move(watcher),
|
|
723
578
|
RefAsSubclass<SubchannelWrapper>(DEBUG_LOCATION, "WatcherWrapper"));
|
|
@@ -729,7 +584,7 @@ class ClientChannelFilter::SubchannelWrapper final
|
|
|
729
584
|
void CancelConnectivityStateWatch(ConnectivityStateWatcherInterface* watcher)
|
|
730
585
|
override ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
|
731
586
|
auto it = watcher_map_.find(watcher);
|
|
732
|
-
|
|
587
|
+
CHECK(it != watcher_map_.end());
|
|
733
588
|
subchannel_->CancelConnectivityStateWatch(it->second);
|
|
734
589
|
watcher_map_.erase(it);
|
|
735
590
|
}
|
|
@@ -746,7 +601,7 @@ class ClientChannelFilter::SubchannelWrapper final
|
|
|
746
601
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
|
747
602
|
static_cast<InternalSubchannelDataWatcherInterface*>(watcher.get())
|
|
748
603
|
->SetSubchannel(subchannel_.get());
|
|
749
|
-
|
|
604
|
+
CHECK(data_watchers_.insert(std::move(watcher)).second);
|
|
750
605
|
}
|
|
751
606
|
|
|
752
607
|
void CancelDataWatcher(DataWatcherInterface* watcher) override
|
|
@@ -759,6 +614,8 @@ class ClientChannelFilter::SubchannelWrapper final
|
|
|
759
614
|
subchannel_->ThrottleKeepaliveTime(new_keepalive_time);
|
|
760
615
|
}
|
|
761
616
|
|
|
617
|
+
std::string address() const override { return subchannel_->address(); }
|
|
618
|
+
|
|
762
619
|
private:
|
|
763
620
|
// This wrapper provides a bridge between the internal Subchannel API
|
|
764
621
|
// and the SubchannelInterface API that we expose to LB policies.
|
|
@@ -771,7 +628,7 @@ class ClientChannelFilter::SubchannelWrapper final
|
|
|
771
628
|
//
|
|
772
629
|
// This class handles things like hopping into the WorkSerializer
|
|
773
630
|
// before passing notifications to the LB policy and propagating
|
|
774
|
-
// keepalive information
|
|
631
|
+
// keepalive information between subchannels.
|
|
775
632
|
class WatcherWrapper final
|
|
776
633
|
: public Subchannel::ConnectivityStateWatcherInterface {
|
|
777
634
|
public:
|
|
@@ -798,12 +655,11 @@ class ClientChannelFilter::SubchannelWrapper final
|
|
|
798
655
|
void OnConnectivityStateChange(
|
|
799
656
|
RefCountedPtr<ConnectivityStateWatcherInterface> self,
|
|
800
657
|
grpc_connectivity_state state, const absl::Status& status) override {
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
}
|
|
658
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
659
|
+
<< "chand=" << parent_->chand_
|
|
660
|
+
<< ": connectivity change for subchannel wrapper " << parent_.get()
|
|
661
|
+
<< " subchannel " << parent_->subchannel_.get()
|
|
662
|
+
<< "hopping into work_serializer";
|
|
807
663
|
self.release(); // Held by callback.
|
|
808
664
|
parent_->chand_->work_serializer_->Run(
|
|
809
665
|
[this, state, status]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
|
@@ -822,15 +678,13 @@ class ClientChannelFilter::SubchannelWrapper final
|
|
|
822
678
|
void ApplyUpdateInControlPlaneWorkSerializer(grpc_connectivity_state state,
|
|
823
679
|
const absl::Status& status)
|
|
824
680
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*parent_->chand_->work_serializer_) {
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
status.ToString().c_str());
|
|
833
|
-
}
|
|
681
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
682
|
+
<< "chand=" << parent_->chand_
|
|
683
|
+
<< ": processing connectivity change in work serializer for "
|
|
684
|
+
"subchannel wrapper "
|
|
685
|
+
<< parent_.get() << " subchannel " << parent_->subchannel_.get()
|
|
686
|
+
<< " watcher=" << watcher_.get()
|
|
687
|
+
<< " state=" << ConnectivityStateName(state) << " status=" << status;
|
|
834
688
|
absl::optional<absl::Cord> keepalive_throttling =
|
|
835
689
|
status.GetPayload(kKeepaliveThrottlingKey);
|
|
836
690
|
if (keepalive_throttling.has_value()) {
|
|
@@ -839,10 +693,10 @@ class ClientChannelFilter::SubchannelWrapper final
|
|
|
839
693
|
&new_keepalive_time)) {
|
|
840
694
|
if (new_keepalive_time > parent_->chand_->keepalive_time_) {
|
|
841
695
|
parent_->chand_->keepalive_time_ = new_keepalive_time;
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
696
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
697
|
+
<< "chand=" << parent_->chand_
|
|
698
|
+
<< ": throttling keepalive time to "
|
|
699
|
+
<< parent_->chand_->keepalive_time_;
|
|
846
700
|
// Propagate the new keepalive time to all subchannels. This is so
|
|
847
701
|
// that new transports created by any subchannel (and not just the
|
|
848
702
|
// subchannel that received the GOAWAY), use the new keepalive time.
|
|
@@ -852,9 +706,9 @@ class ClientChannelFilter::SubchannelWrapper final
|
|
|
852
706
|
}
|
|
853
707
|
}
|
|
854
708
|
} else {
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
709
|
+
LOG(ERROR) << "chand=" << parent_->chand_
|
|
710
|
+
<< ": Illegal keepalive throttling value "
|
|
711
|
+
<< std::string(keepalive_throttling.value());
|
|
858
712
|
}
|
|
859
713
|
}
|
|
860
714
|
// Propagate status only in state TF.
|
|
@@ -922,7 +776,7 @@ ClientChannelFilter::ExternalConnectivityWatcher::ExternalConnectivityWatcher(
|
|
|
922
776
|
{
|
|
923
777
|
MutexLock lock(&chand_->external_watchers_mu_);
|
|
924
778
|
// Will be deleted when the watch is complete.
|
|
925
|
-
|
|
779
|
+
CHECK(chand->external_watchers_[on_complete] == nullptr);
|
|
926
780
|
// Store a ref to the watcher in the external_watchers_ map.
|
|
927
781
|
chand->external_watchers_[on_complete] =
|
|
928
782
|
RefAsSubclass<ExternalConnectivityWatcher>(
|
|
@@ -1107,7 +961,7 @@ class ClientChannelFilter::ClientChannelControlHelper final
|
|
|
1107
961
|
const ChannelArgs& args) override
|
|
1108
962
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
|
1109
963
|
if (chand_->resolver_ == nullptr) return nullptr; // Shutting down.
|
|
1110
|
-
ChannelArgs subchannel_args =
|
|
964
|
+
ChannelArgs subchannel_args = Subchannel::MakeSubchannelArgs(
|
|
1111
965
|
args, per_address_args, chand_->subchannel_pool_,
|
|
1112
966
|
chand_->default_authority_);
|
|
1113
967
|
// Create subchannel.
|
|
@@ -1125,14 +979,13 @@ class ClientChannelFilter::ClientChannelControlHelper final
|
|
|
1125
979
|
RefCountedPtr<LoadBalancingPolicy::SubchannelPicker> picker)
|
|
1126
980
|
override ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
|
1127
981
|
if (chand_->resolver_ == nullptr) return; // Shutting down.
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
}
|
|
982
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
983
|
+
<< "chand=" << chand_
|
|
984
|
+
<< ": update: state=" << ConnectivityStateName(state) << " status=("
|
|
985
|
+
<< status << ") picker=" << picker.get()
|
|
986
|
+
<< (chand_->disconnect_error_.ok()
|
|
987
|
+
? ""
|
|
988
|
+
: " (ignoring -- channel shutting down)");
|
|
1136
989
|
// Do update only if not shutting down.
|
|
1137
990
|
if (chand_->disconnect_error_.ok()) {
|
|
1138
991
|
chand_->UpdateStateAndPickerLocked(state, status, "helper",
|
|
@@ -1143,9 +996,8 @@ class ClientChannelFilter::ClientChannelControlHelper final
|
|
|
1143
996
|
void RequestReresolution() override
|
|
1144
997
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
|
1145
998
|
if (chand_->resolver_ == nullptr) return; // Shutting down.
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
}
|
|
999
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1000
|
+
<< "chand=" << chand_ << ": started name re-resolving";
|
|
1149
1001
|
chand_->resolver_->RequestReresolutionLocked();
|
|
1150
1002
|
}
|
|
1151
1003
|
|
|
@@ -1200,9 +1052,8 @@ class ClientChannelFilter::ClientChannelControlHelper final
|
|
|
1200
1052
|
|
|
1201
1053
|
grpc_error_handle ClientChannelFilter::Init(grpc_channel_element* elem,
|
|
1202
1054
|
grpc_channel_element_args* args) {
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
elem->filter == &kFilterVtableWithoutPromises);
|
|
1055
|
+
CHECK(args->is_last);
|
|
1056
|
+
CHECK(elem->filter == &kFilter);
|
|
1206
1057
|
grpc_error_handle error;
|
|
1207
1058
|
new (elem->channel_data) ClientChannelFilter(args, &error);
|
|
1208
1059
|
return error;
|
|
@@ -1228,9 +1079,6 @@ RefCountedPtr<SubchannelPoolInterface> GetSubchannelPool(
|
|
|
1228
1079
|
ClientChannelFilter::ClientChannelFilter(grpc_channel_element_args* args,
|
|
1229
1080
|
grpc_error_handle* error)
|
|
1230
1081
|
: channel_args_(args->channel_args),
|
|
1231
|
-
deadline_checking_enabled_(
|
|
1232
|
-
channel_args_.GetBool(GRPC_ARG_ENABLE_DEADLINE_CHECKS)
|
|
1233
|
-
.value_or(!channel_args_.WantMinimalStack())),
|
|
1234
1082
|
owning_stack_(args->channel_stack),
|
|
1235
1083
|
client_channel_factory_(channel_args_.GetObject<ClientChannelFactory>()),
|
|
1236
1084
|
channelz_node_(channel_args_.GetObject<channelz::ChannelNode>()),
|
|
@@ -1241,10 +1089,9 @@ ClientChannelFilter::ClientChannelFilter(grpc_channel_element_args* args,
|
|
|
1241
1089
|
std::make_shared<WorkSerializer>(*args->channel_stack->event_engine)),
|
|
1242
1090
|
state_tracker_("client_channel", GRPC_CHANNEL_IDLE),
|
|
1243
1091
|
subchannel_pool_(GetSubchannelPool(channel_args_)) {
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
}
|
|
1092
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1093
|
+
<< "chand=" << this << ": creating client_channel for channel stack "
|
|
1094
|
+
<< owning_stack_;
|
|
1248
1095
|
// Start backup polling.
|
|
1249
1096
|
grpc_client_channel_start_backup_polling(interested_parties_);
|
|
1250
1097
|
// Check client channel factory.
|
|
@@ -1313,30 +1160,14 @@ ClientChannelFilter::ClientChannelFilter(grpc_channel_element_args* args,
|
|
|
1313
1160
|
}
|
|
1314
1161
|
|
|
1315
1162
|
ClientChannelFilter::~ClientChannelFilter() {
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
}
|
|
1163
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1164
|
+
<< "chand=" << this << ": destroying channel";
|
|
1319
1165
|
DestroyResolverAndLbPolicyLocked();
|
|
1320
1166
|
// Stop backup polling.
|
|
1321
1167
|
grpc_client_channel_stop_backup_polling(interested_parties_);
|
|
1322
1168
|
grpc_pollset_set_destroy(interested_parties_);
|
|
1323
1169
|
}
|
|
1324
1170
|
|
|
1325
|
-
ArenaPromise<ServerMetadataHandle> ClientChannelFilter::MakeCallPromise(
|
|
1326
|
-
grpc_channel_element* elem, CallArgs call_args, NextPromiseFactory) {
|
|
1327
|
-
auto* chand = static_cast<ClientChannelFilter*>(elem->channel_data);
|
|
1328
|
-
// TODO(roth): Is this the right lifetime story for calld?
|
|
1329
|
-
auto* calld = GetContext<Arena>()->ManagedNew<PromiseBasedCallData>(chand);
|
|
1330
|
-
return TrySeq(
|
|
1331
|
-
// Name resolution.
|
|
1332
|
-
calld->MakeNameResolutionPromise(std::move(call_args)),
|
|
1333
|
-
// Dynamic filter stack.
|
|
1334
|
-
[calld](CallArgs call_args) mutable {
|
|
1335
|
-
return calld->dynamic_filters()->channel_stack()->MakeClientCallPromise(
|
|
1336
|
-
std::move(call_args));
|
|
1337
|
-
});
|
|
1338
|
-
}
|
|
1339
|
-
|
|
1340
1171
|
OrphanablePtr<ClientChannelFilter::FilterBasedLoadBalancedCall>
|
|
1341
1172
|
ClientChannelFilter::CreateLoadBalancedCall(
|
|
1342
1173
|
const grpc_call_element_args& args, grpc_polling_entity* pollent,
|
|
@@ -1349,42 +1180,6 @@ ClientChannelFilter::CreateLoadBalancedCall(
|
|
|
1349
1180
|
std::move(on_commit), is_transparent_retry));
|
|
1350
1181
|
}
|
|
1351
1182
|
|
|
1352
|
-
ArenaPromise<ServerMetadataHandle>
|
|
1353
|
-
ClientChannelFilter::CreateLoadBalancedCallPromise(
|
|
1354
|
-
CallArgs call_args, absl::AnyInvocable<void()> on_commit,
|
|
1355
|
-
bool is_transparent_retry) {
|
|
1356
|
-
OrphanablePtr<PromiseBasedLoadBalancedCall> lb_call(
|
|
1357
|
-
GetContext<Arena>()->New<PromiseBasedLoadBalancedCall>(
|
|
1358
|
-
this, std::move(on_commit), is_transparent_retry));
|
|
1359
|
-
auto* call_ptr = lb_call.get();
|
|
1360
|
-
return call_ptr->MakeCallPromise(std::move(call_args), std::move(lb_call));
|
|
1361
|
-
}
|
|
1362
|
-
|
|
1363
|
-
ChannelArgs ClientChannelFilter::MakeSubchannelArgs(
|
|
1364
|
-
const ChannelArgs& channel_args, const ChannelArgs& address_args,
|
|
1365
|
-
const RefCountedPtr<SubchannelPoolInterface>& subchannel_pool,
|
|
1366
|
-
const std::string& channel_default_authority) {
|
|
1367
|
-
// Note that we start with the channel-level args and then apply the
|
|
1368
|
-
// per-address args, so that if a value is present in both, the one
|
|
1369
|
-
// in the channel-level args is used. This is particularly important
|
|
1370
|
-
// for the GRPC_ARG_DEFAULT_AUTHORITY arg, which we want to allow
|
|
1371
|
-
// resolvers to set on a per-address basis only if the application
|
|
1372
|
-
// did not explicitly set it at the channel level.
|
|
1373
|
-
return channel_args.UnionWith(address_args)
|
|
1374
|
-
.SetObject(subchannel_pool)
|
|
1375
|
-
// If we haven't already set the default authority arg (i.e., it
|
|
1376
|
-
// was not explicitly set by the application nor overridden by
|
|
1377
|
-
// the resolver), add it from the channel's default.
|
|
1378
|
-
.SetIfUnset(GRPC_ARG_DEFAULT_AUTHORITY, channel_default_authority)
|
|
1379
|
-
// Remove channel args that should not affect subchannel
|
|
1380
|
-
// uniqueness.
|
|
1381
|
-
.Remove(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME)
|
|
1382
|
-
.Remove(GRPC_ARG_INHIBIT_HEALTH_CHECKING)
|
|
1383
|
-
.Remove(GRPC_ARG_CHANNELZ_CHANNEL_NODE)
|
|
1384
|
-
// Remove all keys with the no-subchannel prefix.
|
|
1385
|
-
.RemoveAllKeysWithPrefix(GRPC_ARG_NO_SUBCHANNEL_PREFIX);
|
|
1386
|
-
}
|
|
1387
|
-
|
|
1388
1183
|
void ClientChannelFilter::ReprocessQueuedResolverCalls() {
|
|
1389
1184
|
for (CallData* calld : resolver_queued_calls_) {
|
|
1390
1185
|
calld->RemoveCallFromResolverQueuedCallsLocked();
|
|
@@ -1416,15 +1211,13 @@ RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
|
|
|
1416
1211
|
.LoadBalancingPolicyExists(*policy_name, &requires_config) ||
|
|
1417
1212
|
requires_config)) {
|
|
1418
1213
|
if (requires_config) {
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
std::string(*policy_name).c_str());
|
|
1214
|
+
LOG(ERROR) << "LB policy: " << *policy_name
|
|
1215
|
+
<< " passed through channel_args must not "
|
|
1216
|
+
"require a config. Using pick_first instead.";
|
|
1423
1217
|
} else {
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
std::string(*policy_name).c_str());
|
|
1218
|
+
LOG(ERROR) << "LB policy: " << *policy_name
|
|
1219
|
+
<< " passed through channel_args does not exist. "
|
|
1220
|
+
"Using pick_first instead.";
|
|
1428
1221
|
}
|
|
1429
1222
|
policy_name = "pick_first";
|
|
1430
1223
|
}
|
|
@@ -1448,7 +1241,7 @@ RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
|
|
|
1448
1241
|
// - A channel arg, in which case we check that the specified policy exists
|
|
1449
1242
|
// and accepts an empty config. If not, we revert to using pick_first
|
|
1450
1243
|
// lb_policy
|
|
1451
|
-
|
|
1244
|
+
CHECK(lb_policy_config.ok());
|
|
1452
1245
|
return std::move(*lb_policy_config);
|
|
1453
1246
|
}
|
|
1454
1247
|
|
|
@@ -1458,9 +1251,8 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
|
|
|
1458
1251
|
Resolver::Result result) {
|
|
1459
1252
|
// Handle race conditions.
|
|
1460
1253
|
if (resolver_ == nullptr) return;
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
}
|
|
1254
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1255
|
+
<< "chand=" << this << ": got resolver result";
|
|
1464
1256
|
// Grab resolver result health callback.
|
|
1465
1257
|
auto resolver_callback = std::move(result.result_health_callback);
|
|
1466
1258
|
absl::Status resolver_result_status;
|
|
@@ -1494,19 +1286,16 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
|
|
|
1494
1286
|
RefCountedPtr<ServiceConfig> service_config;
|
|
1495
1287
|
RefCountedPtr<ConfigSelector> config_selector;
|
|
1496
1288
|
if (!result.service_config.ok()) {
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
}
|
|
1289
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1290
|
+
<< "chand=" << this << ": resolver returned service config error: "
|
|
1291
|
+
<< result.service_config.status();
|
|
1501
1292
|
// If the service config was invalid, then fallback to the
|
|
1502
1293
|
// previously returned service config.
|
|
1503
1294
|
if (saved_service_config_ != nullptr) {
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
this);
|
|
1509
|
-
}
|
|
1295
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1296
|
+
<< "chand=" << this
|
|
1297
|
+
<< ": resolver returned invalid service config. "
|
|
1298
|
+
"Continuing to use previous service config.";
|
|
1510
1299
|
service_config = saved_service_config_;
|
|
1511
1300
|
config_selector = saved_config_selector_;
|
|
1512
1301
|
} else {
|
|
@@ -1520,18 +1309,20 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
|
|
|
1520
1309
|
}
|
|
1521
1310
|
} else if (*result.service_config == nullptr) {
|
|
1522
1311
|
// Resolver did not return any service config.
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
this);
|
|
1528
|
-
}
|
|
1312
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1313
|
+
<< "chand=" << this
|
|
1314
|
+
<< ": resolver returned no service config. Using default service "
|
|
1315
|
+
"config for channel.";
|
|
1529
1316
|
service_config = default_service_config_;
|
|
1530
1317
|
} else {
|
|
1531
1318
|
// Use ServiceConfig and ConfigSelector returned by resolver.
|
|
1532
1319
|
service_config = std::move(*result.service_config);
|
|
1533
1320
|
config_selector = result.args.GetObjectRef<ConfigSelector>();
|
|
1534
1321
|
}
|
|
1322
|
+
// Remove the config selector from channel args so that we're not holding
|
|
1323
|
+
// unnecessary refs that cause it to be destroyed somewhere other than in the
|
|
1324
|
+
// WorkSerializer.
|
|
1325
|
+
result.args = result.args.Remove(GRPC_ARG_CONFIG_SELECTOR);
|
|
1535
1326
|
// Note: The only case in which service_config is null here is if the resolver
|
|
1536
1327
|
// returned a service config error and we don't have a previous service
|
|
1537
1328
|
// config to fall back to.
|
|
@@ -1557,10 +1348,12 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
|
|
|
1557
1348
|
UpdateServiceConfigInControlPlaneLocked(
|
|
1558
1349
|
std::move(service_config), std::move(config_selector),
|
|
1559
1350
|
std::string(lb_policy_config->name()));
|
|
1560
|
-
} else
|
|
1561
|
-
|
|
1351
|
+
} else {
|
|
1352
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1353
|
+
<< "chand=" << this << ": service config not changed";
|
|
1562
1354
|
}
|
|
1563
1355
|
// Create or update LB policy, as needed.
|
|
1356
|
+
ChannelArgs new_args = result.args;
|
|
1564
1357
|
resolver_result_status = CreateOrUpdateLbPolicyLocked(
|
|
1565
1358
|
std::move(lb_policy_config),
|
|
1566
1359
|
parsed_service_config->health_check_service_name(), std::move(result));
|
|
@@ -1569,7 +1362,7 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
|
|
|
1569
1362
|
// This needs to happen after the LB policy has been updated, since
|
|
1570
1363
|
// the ConfigSelector may need the LB policy to know about new
|
|
1571
1364
|
// destinations before it can send RPCs to those destinations.
|
|
1572
|
-
UpdateServiceConfigInDataPlaneLocked();
|
|
1365
|
+
UpdateServiceConfigInDataPlaneLocked(new_args);
|
|
1573
1366
|
// TODO(ncteisen): might be worth somehow including a snippet of the
|
|
1574
1367
|
// config in the trace, at the risk of bloating the trace logs.
|
|
1575
1368
|
trace_strings.push_back("Service config changed");
|
|
@@ -1592,10 +1385,8 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
|
|
|
1592
1385
|
|
|
1593
1386
|
void ClientChannelFilter::OnResolverErrorLocked(absl::Status status) {
|
|
1594
1387
|
if (resolver_ == nullptr) return;
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
status.ToString().c_str());
|
|
1598
|
-
}
|
|
1388
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1389
|
+
<< "chand=" << this << ": resolver transient failure: " << status;
|
|
1599
1390
|
// If we already have an LB policy from a previous resolution
|
|
1600
1391
|
// result, then we continue to let it set the connectivity state.
|
|
1601
1392
|
// Otherwise, we go into TRANSIENT_FAILURE.
|
|
@@ -1627,10 +1418,7 @@ absl::Status ClientChannelFilter::CreateOrUpdateLbPolicyLocked(
|
|
|
1627
1418
|
}
|
|
1628
1419
|
update_args.config = std::move(lb_policy_config);
|
|
1629
1420
|
update_args.resolution_note = std::move(result.resolution_note);
|
|
1630
|
-
|
|
1631
|
-
// unnecessary refs that cause it to be destroyed somewhere other than in the
|
|
1632
|
-
// WorkSerializer.
|
|
1633
|
-
update_args.args = result.args.Remove(GRPC_ARG_CONFIG_SELECTOR);
|
|
1421
|
+
update_args.args = std::move(result.args);
|
|
1634
1422
|
// Add health check service name to channel args.
|
|
1635
1423
|
if (health_check_service_name.has_value()) {
|
|
1636
1424
|
update_args.args = update_args.args.Set(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME,
|
|
@@ -1641,10 +1429,8 @@ absl::Status ClientChannelFilter::CreateOrUpdateLbPolicyLocked(
|
|
|
1641
1429
|
lb_policy_ = CreateLbPolicyLocked(update_args.args);
|
|
1642
1430
|
}
|
|
1643
1431
|
// Update the policy.
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
lb_policy_.get());
|
|
1647
|
-
}
|
|
1432
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1433
|
+
<< "chand=" << this << ": Updating child policy " << lb_policy_.get();
|
|
1648
1434
|
return lb_policy_->UpdateLocked(std::move(update_args));
|
|
1649
1435
|
}
|
|
1650
1436
|
|
|
@@ -1666,11 +1452,9 @@ OrphanablePtr<LoadBalancingPolicy> ClientChannelFilter::CreateLbPolicyLocked(
|
|
|
1666
1452
|
lb_policy_args.args = args;
|
|
1667
1453
|
OrphanablePtr<LoadBalancingPolicy> lb_policy =
|
|
1668
1454
|
MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args),
|
|
1669
|
-
&
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
lb_policy.get());
|
|
1673
|
-
}
|
|
1455
|
+
&client_channel_trace);
|
|
1456
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1457
|
+
<< "chand=" << this << ": created new LB policy " << lb_policy.get();
|
|
1674
1458
|
grpc_pollset_set_add_pollset_set(lb_policy->interested_parties(),
|
|
1675
1459
|
interested_parties_);
|
|
1676
1460
|
return lb_policy;
|
|
@@ -1680,10 +1464,9 @@ void ClientChannelFilter::UpdateServiceConfigInControlPlaneLocked(
|
|
|
1680
1464
|
RefCountedPtr<ServiceConfig> service_config,
|
|
1681
1465
|
RefCountedPtr<ConfigSelector> config_selector, std::string lb_policy_name) {
|
|
1682
1466
|
std::string service_config_json(service_config->json_string());
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
}
|
|
1467
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1468
|
+
<< "chand=" << this << ": using service config: \"" << service_config_json
|
|
1469
|
+
<< "\"";
|
|
1687
1470
|
// Save service config.
|
|
1688
1471
|
saved_service_config_ = std::move(service_config);
|
|
1689
1472
|
// Swap out the data used by GetChannelInfo().
|
|
@@ -1694,27 +1477,26 @@ void ClientChannelFilter::UpdateServiceConfigInControlPlaneLocked(
|
|
|
1694
1477
|
}
|
|
1695
1478
|
// Save config selector.
|
|
1696
1479
|
saved_config_selector_ = std::move(config_selector);
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
}
|
|
1480
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1481
|
+
<< "chand=" << this << ": using ConfigSelector "
|
|
1482
|
+
<< saved_config_selector_.get();
|
|
1701
1483
|
}
|
|
1702
1484
|
|
|
1703
|
-
void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked(
|
|
1485
|
+
void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked(
|
|
1486
|
+
const ChannelArgs& args) {
|
|
1704
1487
|
// Grab ref to service config.
|
|
1705
1488
|
RefCountedPtr<ServiceConfig> service_config = saved_service_config_;
|
|
1706
1489
|
// Grab ref to config selector. Use default if resolver didn't supply one.
|
|
1707
1490
|
RefCountedPtr<ConfigSelector> config_selector = saved_config_selector_;
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
}
|
|
1491
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1492
|
+
<< "chand=" << this << ": switching to ConfigSelector "
|
|
1493
|
+
<< saved_config_selector_.get();
|
|
1712
1494
|
if (config_selector == nullptr) {
|
|
1713
1495
|
config_selector =
|
|
1714
1496
|
MakeRefCounted<DefaultConfigSelector>(saved_service_config_);
|
|
1715
1497
|
}
|
|
1716
|
-
|
|
1717
|
-
|
|
1498
|
+
// Modify channel args.
|
|
1499
|
+
ChannelArgs new_args = args.SetObject(this).SetObject(service_config);
|
|
1718
1500
|
bool enable_retries =
|
|
1719
1501
|
!new_args.WantMinimalStack() &&
|
|
1720
1502
|
new_args.GetBool(GRPC_ARG_ENABLE_RETRIES).value_or(true);
|
|
@@ -1726,9 +1508,11 @@ void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked() {
|
|
|
1726
1508
|
} else {
|
|
1727
1509
|
filters.push_back(&DynamicTerminationFilter::kFilterVtable);
|
|
1728
1510
|
}
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1511
|
+
auto new_blackboard = MakeRefCounted<Blackboard>();
|
|
1512
|
+
RefCountedPtr<DynamicFilters> dynamic_filters = DynamicFilters::Create(
|
|
1513
|
+
new_args, std::move(filters), blackboard_.get(), new_blackboard.get());
|
|
1514
|
+
CHECK(dynamic_filters != nullptr);
|
|
1515
|
+
blackboard_ = std::move(new_blackboard);
|
|
1732
1516
|
// Grab data plane lock to update service config.
|
|
1733
1517
|
//
|
|
1734
1518
|
// We defer unreffing the old values (and deallocating memory) until
|
|
@@ -1750,30 +1534,26 @@ void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked() {
|
|
|
1750
1534
|
}
|
|
1751
1535
|
|
|
1752
1536
|
void ClientChannelFilter::CreateResolverLocked() {
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
}
|
|
1537
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1538
|
+
<< "chand=" << this << ": starting name resolution for "
|
|
1539
|
+
<< uri_to_resolve_;
|
|
1757
1540
|
resolver_ = CoreConfiguration::Get().resolver_registry().CreateResolver(
|
|
1758
1541
|
uri_to_resolve_, channel_args_, interested_parties_, work_serializer_,
|
|
1759
1542
|
std::make_unique<ResolverResultHandler>(this));
|
|
1760
1543
|
// Since the validity of the args was checked when the channel was created,
|
|
1761
1544
|
// CreateResolver() must return a non-null result.
|
|
1762
|
-
|
|
1545
|
+
CHECK(resolver_ != nullptr);
|
|
1763
1546
|
UpdateStateLocked(GRPC_CHANNEL_CONNECTING, absl::Status(),
|
|
1764
1547
|
"started resolving");
|
|
1765
1548
|
resolver_->StartLocked();
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
}
|
|
1549
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1550
|
+
<< "chand=" << this << ": created resolver=" << resolver_.get();
|
|
1769
1551
|
}
|
|
1770
1552
|
|
|
1771
1553
|
void ClientChannelFilter::DestroyResolverAndLbPolicyLocked() {
|
|
1772
1554
|
if (resolver_ != nullptr) {
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
resolver_.get());
|
|
1776
|
-
}
|
|
1555
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1556
|
+
<< "chand=" << this << ": shutting down resolver=" << resolver_.get();
|
|
1777
1557
|
resolver_.reset();
|
|
1778
1558
|
// Clear resolution state.
|
|
1779
1559
|
saved_service_config_.reset();
|
|
@@ -1793,10 +1573,9 @@ void ClientChannelFilter::DestroyResolverAndLbPolicyLocked() {
|
|
|
1793
1573
|
}
|
|
1794
1574
|
// Clear LB policy if set.
|
|
1795
1575
|
if (lb_policy_ != nullptr) {
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
}
|
|
1576
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1577
|
+
<< "chand=" << this
|
|
1578
|
+
<< ": shutting down lb_policy=" << lb_policy_.get();
|
|
1800
1579
|
grpc_pollset_set_del_pollset_set(lb_policy_->interested_parties(),
|
|
1801
1580
|
interested_parties_);
|
|
1802
1581
|
lb_policy_.reset();
|
|
@@ -1842,7 +1621,7 @@ void ClientChannelFilter::UpdateStateAndPickerLocked(
|
|
|
1842
1621
|
|
|
1843
1622
|
namespace {
|
|
1844
1623
|
|
|
1845
|
-
// TODO(roth): Remove this in favor of
|
|
1624
|
+
// TODO(roth): Remove this in favor of src/core/util/match.h once
|
|
1846
1625
|
// we can do that without breaking lock annotations.
|
|
1847
1626
|
template <typename T>
|
|
1848
1627
|
T HandlePickResult(
|
|
@@ -1868,7 +1647,7 @@ T HandlePickResult(
|
|
|
1868
1647
|
}
|
|
1869
1648
|
auto* drop_pick =
|
|
1870
1649
|
absl::get_if<LoadBalancingPolicy::PickResult::Drop>(&result->result);
|
|
1871
|
-
|
|
1650
|
+
CHECK_NE(drop_pick, nullptr);
|
|
1872
1651
|
return drop_func(drop_pick);
|
|
1873
1652
|
}
|
|
1874
1653
|
|
|
@@ -1942,10 +1721,9 @@ void ClientChannelFilter::StartTransportOpLocked(grpc_transport_op* op) {
|
|
|
1942
1721
|
}
|
|
1943
1722
|
// Disconnect or enter IDLE.
|
|
1944
1723
|
if (!op->disconnect_with_error.ok()) {
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
}
|
|
1724
|
+
GRPC_TRACE_LOG(client_channel, INFO)
|
|
1725
|
+
<< "chand=" << this << ": disconnect_with_error: "
|
|
1726
|
+
<< StatusToString(op->disconnect_with_error);
|
|
1949
1727
|
DestroyResolverAndLbPolicyLocked();
|
|
1950
1728
|
intptr_t value;
|
|
1951
1729
|
if (grpc_error_get_int(op->disconnect_with_error,
|
|
@@ -1962,7 +1740,7 @@ void ClientChannelFilter::StartTransportOpLocked(grpc_transport_op* op) {
|
|
|
1962
1740
|
}
|
|
1963
1741
|
} else {
|
|
1964
1742
|
// Disconnect.
|
|
1965
|
-
|
|
1743
|
+
CHECK(disconnect_error_.ok());
|
|
1966
1744
|
disconnect_error_ = op->disconnect_with_error;
|
|
1967
1745
|
UpdateStateAndPickerLocked(
|
|
1968
1746
|
GRPC_CHANNEL_SHUTDOWN, absl::Status(), "shutdown from API",
|
|
@@ -1980,7 +1758,7 @@ void ClientChannelFilter::StartTransportOpLocked(grpc_transport_op* op) {
|
|
|
1980
1758
|
void ClientChannelFilter::StartTransportOp(grpc_channel_element* elem,
|
|
1981
1759
|
grpc_transport_op* op) {
|
|
1982
1760
|
auto* chand = static_cast<ClientChannelFilter*>(elem->channel_data);
|
|
1983
|
-
|
|
1761
|
+
CHECK(op->set_accept_stream == false);
|
|
1984
1762
|
// Handle bind_pollset.
|
|
1985
1763
|
if (op->bind_pollset != nullptr) {
|
|
1986
1764
|
grpc_pollset_set_add_pollset(chand->interested_parties_, op->bind_pollset);
|
|
@@ -2050,11 +1828,9 @@ void ClientChannelFilter::RemoveConnectivityWatcher(
|
|
|
2050
1828
|
//
|
|
2051
1829
|
|
|
2052
1830
|
void ClientChannelFilter::CallData::RemoveCallFromResolverQueuedCallsLocked() {
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
chand(), this);
|
|
2057
|
-
}
|
|
1831
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
1832
|
+
<< "chand=" << chand() << " calld=" << this
|
|
1833
|
+
<< ": removing from resolver queued picks list";
|
|
2058
1834
|
// Remove call's pollent from channel's interested_parties.
|
|
2059
1835
|
grpc_polling_entity_del_from_pollset_set(pollent(),
|
|
2060
1836
|
chand()->interested_parties_);
|
|
@@ -2065,12 +1841,10 @@ void ClientChannelFilter::CallData::RemoveCallFromResolverQueuedCallsLocked() {
|
|
|
2065
1841
|
}
|
|
2066
1842
|
|
|
2067
1843
|
void ClientChannelFilter::CallData::AddCallToResolverQueuedCallsLocked() {
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
chand(), this, grpc_polling_entity_string(pollent()).c_str());
|
|
2073
|
-
}
|
|
1844
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
1845
|
+
<< "chand=" << chand() << " calld=" << this
|
|
1846
|
+
<< ": adding to resolver queued picks list; pollent="
|
|
1847
|
+
<< grpc_polling_entity_string(pollent());
|
|
2074
1848
|
// Add call's pollent to channel's interested_parties, so that I/O
|
|
2075
1849
|
// can be done under the call's CQ.
|
|
2076
1850
|
grpc_polling_entity_add_to_pollset_set(pollent(),
|
|
@@ -2082,10 +1856,9 @@ void ClientChannelFilter::CallData::AddCallToResolverQueuedCallsLocked() {
|
|
|
2082
1856
|
|
|
2083
1857
|
grpc_error_handle ClientChannelFilter::CallData::ApplyServiceConfigToCallLocked(
|
|
2084
1858
|
const absl::StatusOr<RefCountedPtr<ConfigSelector>>& config_selector) {
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
}
|
|
1859
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
1860
|
+
<< "chand=" << chand() << " calld=" << this
|
|
1861
|
+
<< ": applying service config to call";
|
|
2089
1862
|
if (!config_selector.ok()) return config_selector.status();
|
|
2090
1863
|
// Create a ClientChannelServiceConfigCallData for the call. This stores
|
|
2091
1864
|
// a ref to the ServiceConfig and caches the right set of parsed configs
|
|
@@ -2093,7 +1866,7 @@ grpc_error_handle ClientChannelFilter::CallData::ApplyServiceConfigToCallLocked(
|
|
|
2093
1866
|
// itself in the call context, so that it can be accessed by filters
|
|
2094
1867
|
// below us in the stack, and it will be cleaned up when the call ends.
|
|
2095
1868
|
auto* service_config_call_data =
|
|
2096
|
-
arena()->New<ClientChannelServiceConfigCallData>(arena()
|
|
1869
|
+
arena()->New<ClientChannelServiceConfigCallData>(arena());
|
|
2097
1870
|
// Use the ConfigSelector to determine the config for the call.
|
|
2098
1871
|
absl::Status call_config_status =
|
|
2099
1872
|
(*config_selector)
|
|
@@ -2110,8 +1883,7 @@ grpc_error_handle ClientChannelFilter::CallData::ApplyServiceConfigToCallLocked(
|
|
|
2110
1883
|
if (method_params != nullptr) {
|
|
2111
1884
|
// If the deadline from the service config is shorter than the one
|
|
2112
1885
|
// from the client API, reset the deadline timer.
|
|
2113
|
-
if (
|
|
2114
|
-
method_params->timeout() != Duration::Zero()) {
|
|
1886
|
+
if (method_params->timeout() != Duration::Zero()) {
|
|
2115
1887
|
ResetDeadline(method_params->timeout());
|
|
2116
1888
|
}
|
|
2117
1889
|
// If the service config set wait_for_ready and the application
|
|
@@ -2151,17 +1923,14 @@ absl::optional<absl::Status> ClientChannelFilter::CallData::CheckResolution(
|
|
|
2151
1923
|
}
|
|
2152
1924
|
// Handle errors.
|
|
2153
1925
|
if (!error.ok()) {
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
chand(), this, StatusToString(error).c_str());
|
|
2158
|
-
}
|
|
1926
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
1927
|
+
<< "chand=" << chand() << " calld=" << this
|
|
1928
|
+
<< ": error applying config to call: error=" << StatusToString(error);
|
|
2159
1929
|
return error;
|
|
2160
1930
|
}
|
|
2161
1931
|
// If the call was queued, add trace annotation.
|
|
2162
1932
|
if (was_queued) {
|
|
2163
|
-
auto* call_tracer =
|
|
2164
|
-
call_context()[GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE].value);
|
|
1933
|
+
auto* call_tracer = arena()->GetContext<CallTracerAnnotationInterface>();
|
|
2165
1934
|
if (call_tracer != nullptr) {
|
|
2166
1935
|
call_tracer->RecordAnnotation("Delayed name resolution complete.");
|
|
2167
1936
|
}
|
|
@@ -2179,20 +1948,18 @@ bool ClientChannelFilter::CallData::CheckResolutionLocked(
|
|
|
2179
1948
|
absl::Status resolver_error = chand()->resolver_transient_failure_error_;
|
|
2180
1949
|
if (!resolver_error.ok() &&
|
|
2181
1950
|
!send_initial_metadata()->GetOrCreatePointer(WaitForReady())->value) {
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
}
|
|
1951
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
1952
|
+
<< "chand=" << chand() << " calld=" << this
|
|
1953
|
+
<< ": resolution failed, failing call";
|
|
2186
1954
|
*config_selector = absl_status_to_grpc_error(resolver_error);
|
|
2187
1955
|
return true;
|
|
2188
1956
|
}
|
|
2189
1957
|
// Either the resolver has not yet returned a result, or it has
|
|
2190
1958
|
// returned transient failure but the call is wait_for_ready. In
|
|
2191
1959
|
// either case, queue the call.
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
}
|
|
1960
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
1961
|
+
<< "chand=" << chand() << " calld=" << this
|
|
1962
|
+
<< ": no resolver result yet";
|
|
2196
1963
|
return false;
|
|
2197
1964
|
}
|
|
2198
1965
|
// Result found.
|
|
@@ -2208,25 +1975,21 @@ bool ClientChannelFilter::CallData::CheckResolutionLocked(
|
|
|
2208
1975
|
ClientChannelFilter::FilterBasedCallData::FilterBasedCallData(
|
|
2209
1976
|
grpc_call_element* elem, const grpc_call_element_args& args)
|
|
2210
1977
|
: path_(CSliceRef(args.path)),
|
|
2211
|
-
call_context_(args.context),
|
|
2212
1978
|
call_start_time_(args.start_time),
|
|
2213
1979
|
deadline_(args.deadline),
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
|
2221
|
-
gpr_log(GPR_INFO, "chand=%p calld=%p: created call", chand(), this);
|
|
2222
|
-
}
|
|
1980
|
+
arena_(args.arena),
|
|
1981
|
+
elem_(elem),
|
|
1982
|
+
owning_call_(args.call_stack),
|
|
1983
|
+
call_combiner_(args.call_combiner) {
|
|
1984
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
1985
|
+
<< "chand=" << chand() << " calld=" << this << ": created call";
|
|
2223
1986
|
}
|
|
2224
1987
|
|
|
2225
1988
|
ClientChannelFilter::FilterBasedCallData::~FilterBasedCallData() {
|
|
2226
1989
|
CSliceUnref(path_);
|
|
2227
1990
|
// Make sure there are no remaining pending batches.
|
|
2228
1991
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
|
2229
|
-
|
|
1992
|
+
CHECK_EQ(pending_batches_[i], nullptr);
|
|
2230
1993
|
}
|
|
2231
1994
|
}
|
|
2232
1995
|
|
|
@@ -2255,14 +2018,11 @@ void ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch(
|
|
|
2255
2018
|
grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
|
|
2256
2019
|
auto* calld = static_cast<FilterBasedCallData*>(elem->call_data);
|
|
2257
2020
|
auto* chand = static_cast<ClientChannelFilter*>(elem->channel_data);
|
|
2258
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
|
2259
|
-
!GRPC_TRACE_FLAG_ENABLED(
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
if (GPR_LIKELY(chand->deadline_checking_enabled_)) {
|
|
2264
|
-
grpc_deadline_state_client_start_transport_stream_op_batch(
|
|
2265
|
-
&calld->deadline_state_, batch);
|
|
2021
|
+
if (GRPC_TRACE_FLAG_ENABLED(client_channel_call) &&
|
|
2022
|
+
!GRPC_TRACE_FLAG_ENABLED(channel)) {
|
|
2023
|
+
LOG(INFO) << "chand=" << chand << " calld=" << calld
|
|
2024
|
+
<< ": batch started from above: "
|
|
2025
|
+
<< grpc_transport_stream_op_batch_string(batch, false);
|
|
2266
2026
|
}
|
|
2267
2027
|
// Intercept recv_trailing_metadata to commit the call, in case we wind up
|
|
2268
2028
|
// failing the call before we get down to the retry or LB call layer.
|
|
@@ -2279,10 +2039,9 @@ void ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch(
|
|
|
2279
2039
|
// Note that once we have done so, we do not need to acquire the channel's
|
|
2280
2040
|
// resolution mutex, which is more efficient (especially for streaming calls).
|
|
2281
2041
|
if (calld->dynamic_call_ != nullptr) {
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
}
|
|
2042
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
2043
|
+
<< "chand=" << chand << " calld=" << calld
|
|
2044
|
+
<< ": starting batch on dynamic_call=" << calld->dynamic_call_.get();
|
|
2286
2045
|
calld->dynamic_call_->StartTransportStreamOpBatch(batch);
|
|
2287
2046
|
return;
|
|
2288
2047
|
}
|
|
@@ -2290,10 +2049,10 @@ void ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch(
|
|
|
2290
2049
|
//
|
|
2291
2050
|
// If we've previously been cancelled, immediately fail any new batches.
|
|
2292
2051
|
if (GPR_UNLIKELY(!calld->cancel_error_.ok())) {
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2052
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
2053
|
+
<< "chand=" << chand << " calld=" << calld
|
|
2054
|
+
<< ": failing batch with error: "
|
|
2055
|
+
<< StatusToString(calld->cancel_error_);
|
|
2297
2056
|
// Note: This will release the call combiner.
|
|
2298
2057
|
grpc_transport_stream_op_batch_finish_with_failure(
|
|
2299
2058
|
batch, calld->cancel_error_, calld->call_combiner());
|
|
@@ -2307,10 +2066,9 @@ void ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch(
|
|
|
2307
2066
|
// is in the past when the call starts), we can return the right
|
|
2308
2067
|
// error to the caller when the first batch does get passed down.
|
|
2309
2068
|
calld->cancel_error_ = batch->payload->cancel_stream.cancel_error;
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
}
|
|
2069
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
2070
|
+
<< "chand=" << chand << " calld=" << calld
|
|
2071
|
+
<< ": recording cancel_error=" << StatusToString(calld->cancel_error_);
|
|
2314
2072
|
// Fail all pending batches.
|
|
2315
2073
|
calld->PendingBatchesFail(calld->cancel_error_, NoYieldCallCombiner);
|
|
2316
2074
|
// Note: This will release the call combiner.
|
|
@@ -2324,19 +2082,15 @@ void ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch(
|
|
|
2324
2082
|
// channel's resolution mutex to apply the service config to the call,
|
|
2325
2083
|
// after which we will create a dynamic call.
|
|
2326
2084
|
if (GPR_LIKELY(batch->send_initial_metadata)) {
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
"config",
|
|
2331
|
-
chand, calld);
|
|
2332
|
-
}
|
|
2085
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
2086
|
+
<< "chand=" << chand << " calld=" << calld
|
|
2087
|
+
<< ": grabbing resolution mutex to apply service ";
|
|
2333
2088
|
// If we're still in IDLE, we need to start resolving.
|
|
2334
2089
|
if (GPR_UNLIKELY(chand->CheckConnectivityState(false) ==
|
|
2335
2090
|
GRPC_CHANNEL_IDLE)) {
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
}
|
|
2091
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
2092
|
+
<< "chand=" << chand << " calld=" << calld
|
|
2093
|
+
<< ": triggering exit idle";
|
|
2340
2094
|
// Bounce into the control plane work serializer to start resolving.
|
|
2341
2095
|
GRPC_CHANNEL_STACK_REF(chand->owning_stack_, "ExitIdle");
|
|
2342
2096
|
chand->work_serializer_->Run(
|
|
@@ -2349,11 +2103,9 @@ void ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch(
|
|
|
2349
2103
|
calld->TryCheckResolution(/*was_queued=*/false);
|
|
2350
2104
|
} else {
|
|
2351
2105
|
// For all other batches, release the call combiner.
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
calld);
|
|
2356
|
-
}
|
|
2106
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
2107
|
+
<< "chand=" << chand << " calld=" << calld
|
|
2108
|
+
<< ": saved batch, yielding call combiner";
|
|
2357
2109
|
GRPC_CALL_COMBINER_STOP(calld->call_combiner(),
|
|
2358
2110
|
"batch does not include send_initial_metadata");
|
|
2359
2111
|
}
|
|
@@ -2382,13 +2134,11 @@ size_t ClientChannelFilter::FilterBasedCallData::GetBatchIndex(
|
|
|
2382
2134
|
void ClientChannelFilter::FilterBasedCallData::PendingBatchesAdd(
|
|
2383
2135
|
grpc_transport_stream_op_batch* batch) {
|
|
2384
2136
|
const size_t idx = GetBatchIndex(batch);
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
chand(), this, idx);
|
|
2389
|
-
}
|
|
2137
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
2138
|
+
<< "chand=" << chand() << " calld=" << this
|
|
2139
|
+
<< ": adding pending batch at index " << idx;
|
|
2390
2140
|
grpc_transport_stream_op_batch*& pending = pending_batches_[idx];
|
|
2391
|
-
|
|
2141
|
+
CHECK_EQ(pending, nullptr);
|
|
2392
2142
|
pending = batch;
|
|
2393
2143
|
}
|
|
2394
2144
|
|
|
@@ -2408,15 +2158,14 @@ void ClientChannelFilter::FilterBasedCallData::FailPendingBatchInCallCombiner(
|
|
|
2408
2158
|
void ClientChannelFilter::FilterBasedCallData::PendingBatchesFail(
|
|
2409
2159
|
grpc_error_handle error,
|
|
2410
2160
|
YieldCallCombinerPredicate yield_call_combiner_predicate) {
|
|
2411
|
-
|
|
2412
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
|
2161
|
+
CHECK(!error.ok());
|
|
2162
|
+
if (GRPC_TRACE_FLAG_ENABLED(client_channel_call)) {
|
|
2413
2163
|
size_t num_batches = 0;
|
|
2414
2164
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
|
2415
2165
|
if (pending_batches_[i] != nullptr) ++num_batches;
|
|
2416
2166
|
}
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
chand(), this, num_batches, StatusToString(error).c_str());
|
|
2167
|
+
LOG(INFO) << "chand=" << chand() << " calld=" << this << ": failing "
|
|
2168
|
+
<< num_batches << " pending batches: " << StatusToString(error);
|
|
2420
2169
|
}
|
|
2421
2170
|
CallCombinerClosureList closures;
|
|
2422
2171
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
|
@@ -2452,15 +2201,14 @@ void ClientChannelFilter::FilterBasedCallData::ResumePendingBatchInCallCombiner(
|
|
|
2452
2201
|
// This is called via the call combiner, so access to calld is synchronized.
|
|
2453
2202
|
void ClientChannelFilter::FilterBasedCallData::PendingBatchesResume() {
|
|
2454
2203
|
// Retries not enabled; send down batches as-is.
|
|
2455
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
|
2204
|
+
if (GRPC_TRACE_FLAG_ENABLED(client_channel_call)) {
|
|
2456
2205
|
size_t num_batches = 0;
|
|
2457
2206
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
|
2458
2207
|
if (pending_batches_[i] != nullptr) ++num_batches;
|
|
2459
2208
|
}
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
chand(), this, num_batches, dynamic_call_.get());
|
|
2209
|
+
LOG(INFO) << "chand=" << chand() << " calld=" << this << ": starting "
|
|
2210
|
+
<< num_batches
|
|
2211
|
+
<< " pending batches on dynamic_call=" << dynamic_call_.get();
|
|
2464
2212
|
}
|
|
2465
2213
|
CallCombinerClosureList closures;
|
|
2466
2214
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
|
@@ -2498,13 +2246,13 @@ class ClientChannelFilter::FilterBasedCallData::ResolverQueuedCallCanceller
|
|
|
2498
2246
|
auto* chand = calld->chand();
|
|
2499
2247
|
{
|
|
2500
2248
|
MutexLock lock(&chand->resolution_mu_);
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2249
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
2250
|
+
<< "chand=" << chand << " calld=" << calld
|
|
2251
|
+
<< ": cancelling resolver queued pick: "
|
|
2252
|
+
"error="
|
|
2253
|
+
<< StatusToString(error) << " self=" << self
|
|
2254
|
+
<< " calld->resolver_pick_canceller="
|
|
2255
|
+
<< calld->resolver_call_canceller_;
|
|
2508
2256
|
if (calld->resolver_call_canceller_ == self && !error.ok()) {
|
|
2509
2257
|
// Remove pick from list of queued picks.
|
|
2510
2258
|
calld->RemoveCallFromResolverQueuedCallsLocked();
|
|
@@ -2552,24 +2300,19 @@ void ClientChannelFilter::FilterBasedCallData::RetryCheckResolutionLocked() {
|
|
|
2552
2300
|
}
|
|
2553
2301
|
|
|
2554
2302
|
void ClientChannelFilter::FilterBasedCallData::CreateDynamicCall() {
|
|
2555
|
-
DynamicFilters::Call::Args args = {dynamic_filters(), pollent_,
|
|
2556
|
-
call_start_time_, deadline_,
|
|
2557
|
-
|
|
2303
|
+
DynamicFilters::Call::Args args = {dynamic_filters(), pollent_, path_,
|
|
2304
|
+
call_start_time_, deadline_, arena(),
|
|
2305
|
+
call_combiner()};
|
|
2558
2306
|
grpc_error_handle error;
|
|
2559
2307
|
DynamicFilters* channel_stack = args.channel_stack.get();
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
"chand=%p calld=%p: creating dynamic call stack on channel_stack=%p",
|
|
2564
|
-
chand(), this, channel_stack);
|
|
2565
|
-
}
|
|
2308
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
2309
|
+
<< "chand=" << chand() << " calld=" << this
|
|
2310
|
+
<< ": creating dynamic call stack on channel_stack=" << channel_stack;
|
|
2566
2311
|
dynamic_call_ = channel_stack->CreateCall(std::move(args), &error);
|
|
2567
2312
|
if (!error.ok()) {
|
|
2568
|
-
|
|
2569
|
-
|
|
2570
|
-
|
|
2571
|
-
chand(), this, StatusToString(error).c_str());
|
|
2572
|
-
}
|
|
2313
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
2314
|
+
<< "chand=" << chand() << " calld=" << this
|
|
2315
|
+
<< ": failed to create dynamic call: error=" << StatusToString(error);
|
|
2573
2316
|
PendingBatchesFail(error, YieldCallCombiner);
|
|
2574
2317
|
return;
|
|
2575
2318
|
}
|
|
@@ -2581,15 +2324,11 @@ void ClientChannelFilter::FilterBasedCallData::
|
|
|
2581
2324
|
void* arg, grpc_error_handle error) {
|
|
2582
2325
|
auto* calld = static_cast<FilterBasedCallData*>(arg);
|
|
2583
2326
|
auto* chand = calld->chand();
|
|
2584
|
-
auto* service_config_call_data =
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
"service_config_call_data=%p",
|
|
2590
|
-
chand, calld, StatusToString(error).c_str(),
|
|
2591
|
-
service_config_call_data);
|
|
2592
|
-
}
|
|
2327
|
+
auto* service_config_call_data = GetServiceConfigCallData(calld->arena());
|
|
2328
|
+
GRPC_TRACE_LOG(client_channel_call, INFO)
|
|
2329
|
+
<< "chand=" << chand << " calld=" << calld
|
|
2330
|
+
<< ": got recv_trailing_metadata_ready: error=" << StatusToString(error)
|
|
2331
|
+
<< " service_config_call_data=" << service_config_call_data;
|
|
2593
2332
|
if (service_config_call_data != nullptr) {
|
|
2594
2333
|
service_config_call_data->Commit();
|
|
2595
2334
|
}
|
|
@@ -2607,7 +2346,7 @@ class ClientChannelFilter::LoadBalancedCall::LbCallState final
|
|
|
2607
2346
|
public:
|
|
2608
2347
|
explicit LbCallState(LoadBalancedCall* lb_call) : lb_call_(lb_call) {}
|
|
2609
2348
|
|
|
2610
|
-
void* Alloc(size_t size) override { return lb_call_->
|
|
2349
|
+
void* Alloc(size_t size) override { return lb_call_->arena_->Alloc(size); }
|
|
2611
2350
|
|
|
2612
2351
|
// Internal API to allow first-party LB policies to access per-call
|
|
2613
2352
|
// attributes set by the ConfigSelector.
|
|
@@ -2620,81 +2359,6 @@ class ClientChannelFilter::LoadBalancedCall::LbCallState final
|
|
|
2620
2359
|
LoadBalancedCall* lb_call_;
|
|
2621
2360
|
};
|
|
2622
2361
|
|
|
2623
|
-
//
|
|
2624
|
-
// ClientChannelFilter::LoadBalancedCall::Metadata
|
|
2625
|
-
//
|
|
2626
|
-
|
|
2627
|
-
class ClientChannelFilter::LoadBalancedCall::Metadata final
|
|
2628
|
-
: public LoadBalancingPolicy::MetadataInterface {
|
|
2629
|
-
public:
|
|
2630
|
-
explicit Metadata(grpc_metadata_batch* batch) : batch_(batch) {}
|
|
2631
|
-
|
|
2632
|
-
void Add(absl::string_view key, absl::string_view value) override {
|
|
2633
|
-
if (batch_ == nullptr) return;
|
|
2634
|
-
// Gross, egregious hack to support legacy grpclb behavior.
|
|
2635
|
-
// TODO(ctiller): Use a promise context for this once that plumbing is done.
|
|
2636
|
-
if (key == GrpcLbClientStatsMetadata::key()) {
|
|
2637
|
-
batch_->Set(
|
|
2638
|
-
GrpcLbClientStatsMetadata(),
|
|
2639
|
-
const_cast<GrpcLbClientStats*>(
|
|
2640
|
-
reinterpret_cast<const GrpcLbClientStats*>(value.data())));
|
|
2641
|
-
return;
|
|
2642
|
-
}
|
|
2643
|
-
batch_->Append(key, Slice::FromStaticString(value),
|
|
2644
|
-
[key](absl::string_view error, const Slice& value) {
|
|
2645
|
-
gpr_log(GPR_ERROR, "%s",
|
|
2646
|
-
absl::StrCat(error, " key:", key,
|
|
2647
|
-
" value:", value.as_string_view())
|
|
2648
|
-
.c_str());
|
|
2649
|
-
});
|
|
2650
|
-
}
|
|
2651
|
-
|
|
2652
|
-
std::vector<std::pair<std::string, std::string>> TestOnlyCopyToVector()
|
|
2653
|
-
override {
|
|
2654
|
-
if (batch_ == nullptr) return {};
|
|
2655
|
-
Encoder encoder;
|
|
2656
|
-
batch_->Encode(&encoder);
|
|
2657
|
-
return encoder.Take();
|
|
2658
|
-
}
|
|
2659
|
-
|
|
2660
|
-
absl::optional<absl::string_view> Lookup(absl::string_view key,
|
|
2661
|
-
std::string* buffer) const override {
|
|
2662
|
-
if (batch_ == nullptr) return absl::nullopt;
|
|
2663
|
-
return batch_->GetStringValue(key, buffer);
|
|
2664
|
-
}
|
|
2665
|
-
|
|
2666
|
-
private:
|
|
2667
|
-
class Encoder final {
|
|
2668
|
-
public:
|
|
2669
|
-
void Encode(const Slice& key, const Slice& value) {
|
|
2670
|
-
out_.emplace_back(std::string(key.as_string_view()),
|
|
2671
|
-
std::string(value.as_string_view()));
|
|
2672
|
-
}
|
|
2673
|
-
|
|
2674
|
-
template <class Which>
|
|
2675
|
-
void Encode(Which, const typename Which::ValueType& value) {
|
|
2676
|
-
auto value_slice = Which::Encode(value);
|
|
2677
|
-
out_.emplace_back(std::string(Which::key()),
|
|
2678
|
-
std::string(value_slice.as_string_view()));
|
|
2679
|
-
}
|
|
2680
|
-
|
|
2681
|
-
void Encode(GrpcTimeoutMetadata,
|
|
2682
|
-
const typename GrpcTimeoutMetadata::ValueType&) {}
|
|
2683
|
-
void Encode(HttpPathMetadata, const Slice&) {}
|
|
2684
|
-
void Encode(HttpMethodMetadata,
|
|
2685
|
-
const typename HttpMethodMetadata::ValueType&) {}
|
|
2686
|
-
|
|
2687
|
-
std::vector<std::pair<std::string, std::string>> Take() {
|
|
2688
|
-
return std::move(out_);
|
|
2689
|
-
}
|
|
2690
|
-
|
|
2691
|
-
private:
|
|
2692
|
-
std::vector<std::pair<std::string, std::string>> out_;
|
|
2693
|
-
};
|
|
2694
|
-
|
|
2695
|
-
grpc_metadata_batch* batch_;
|
|
2696
|
-
};
|
|
2697
|
-
|
|
2698
2362
|
//
|
|
2699
2363
|
// ClientChannelFilter::LoadBalancedCall::LbCallState
|
|
2700
2364
|
//
|
|
@@ -2702,8 +2366,7 @@ class ClientChannelFilter::LoadBalancedCall::Metadata final
|
|
|
2702
2366
|
ServiceConfigCallData::CallAttributeInterface*
|
|
2703
2367
|
ClientChannelFilter::LoadBalancedCall::LbCallState::GetCallAttribute(
|
|
2704
2368
|
UniqueTypeName type) const {
|
|
2705
|
-
auto* service_config_call_data =
|
|
2706
|
-
GetServiceConfigCallData(lb_call_->call_context_);
|
|
2369
|
+
auto* service_config_call_data = GetServiceConfigCallData(lb_call_->arena_);
|
|
2707
2370
|
return service_config_call_data->GetCallAttribute(type);
|
|
2708
2371
|
}
|
|
2709
2372
|
|
|
@@ -2729,7 +2392,7 @@ class ClientChannelFilter::LoadBalancedCall::BackendMetricAccessor final
|
|
|
2729
2392
|
recv_trailing_metadata_ != nullptr) {
|
|
2730
2393
|
if (const auto* md = recv_trailing_metadata_->get_pointer(
|
|
2731
2394
|
EndpointLoadMetricsBinMetadata())) {
|
|
2732
|
-
BackendMetricAllocator allocator(lb_call_->
|
|
2395
|
+
BackendMetricAllocator allocator(lb_call_->arena_);
|
|
2733
2396
|
lb_call_->backend_metric_data_ =
|
|
2734
2397
|
ParseBackendMetricData(md->as_string_view(), &allocator);
|
|
2735
2398
|
}
|
|
@@ -2764,31 +2427,28 @@ class ClientChannelFilter::LoadBalancedCall::BackendMetricAccessor final
|
|
|
2764
2427
|
|
|
2765
2428
|
namespace {
|
|
2766
2429
|
|
|
2767
|
-
void CreateCallAttemptTracer(
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
context[GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE].value);
|
|
2430
|
+
void CreateCallAttemptTracer(Arena* arena, bool is_transparent_retry) {
|
|
2431
|
+
auto* call_tracer = DownCast<ClientCallTracer*>(
|
|
2432
|
+
arena->GetContext<CallTracerAnnotationInterface>());
|
|
2771
2433
|
if (call_tracer == nullptr) return;
|
|
2772
2434
|
auto* tracer = call_tracer->StartNewAttempt(is_transparent_retry);
|
|
2773
|
-
|
|
2435
|
+
arena->SetContext<CallTracerInterface>(tracer);
|
|
2774
2436
|
}
|
|
2775
2437
|
|
|
2776
2438
|
} // namespace
|
|
2777
2439
|
|
|
2778
2440
|
ClientChannelFilter::LoadBalancedCall::LoadBalancedCall(
|
|
2779
|
-
ClientChannelFilter* chand,
|
|
2441
|
+
ClientChannelFilter* chand, Arena* arena,
|
|
2780
2442
|
absl::AnyInvocable<void()> on_commit, bool is_transparent_retry)
|
|
2781
|
-
: InternallyRefCounted(
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
: nullptr),
|
|
2443
|
+
: InternallyRefCounted(GRPC_TRACE_FLAG_ENABLED(client_channel_lb_call)
|
|
2444
|
+
? "LoadBalancedCall"
|
|
2445
|
+
: nullptr),
|
|
2785
2446
|
chand_(chand),
|
|
2786
2447
|
on_commit_(std::move(on_commit)),
|
|
2787
|
-
|
|
2788
|
-
CreateCallAttemptTracer(
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
}
|
|
2448
|
+
arena_(arena) {
|
|
2449
|
+
CreateCallAttemptTracer(arena, is_transparent_retry);
|
|
2450
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2451
|
+
<< "chand=" << chand_ << " lb_call=" << this << ": created";
|
|
2792
2452
|
}
|
|
2793
2453
|
|
|
2794
2454
|
ClientChannelFilter::LoadBalancedCall::~LoadBalancedCall() {
|
|
@@ -2809,7 +2469,7 @@ void ClientChannelFilter::LoadBalancedCall::RecordCallCompletion(
|
|
|
2809
2469
|
// If the LB policy requested a callback for trailing metadata, invoke
|
|
2810
2470
|
// the callback.
|
|
2811
2471
|
if (lb_subchannel_call_tracker_ != nullptr) {
|
|
2812
|
-
|
|
2472
|
+
LbMetadata trailing_metadata(recv_trailing_metadata);
|
|
2813
2473
|
BackendMetricAccessor backend_metric_accessor(this, recv_trailing_metadata);
|
|
2814
2474
|
LoadBalancingPolicy::SubchannelCallTrackerInterface::FinishArgs args = {
|
|
2815
2475
|
peer_address, status, &trailing_metadata, &backend_metric_accessor};
|
|
@@ -2829,24 +2489,22 @@ void ClientChannelFilter::LoadBalancedCall::RecordLatency() {
|
|
|
2829
2489
|
|
|
2830
2490
|
void ClientChannelFilter::LoadBalancedCall::
|
|
2831
2491
|
RemoveCallFromLbQueuedCallsLocked() {
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
}
|
|
2492
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2493
|
+
<< "chand=" << chand_ << " lb_call=" << this
|
|
2494
|
+
<< ": removing from queued picks list";
|
|
2836
2495
|
// Remove pollset_set linkage.
|
|
2837
2496
|
grpc_polling_entity_del_from_pollset_set(pollent(),
|
|
2838
2497
|
chand_->interested_parties_);
|
|
2839
2498
|
// Note: There's no need to actually remove the call from the queue
|
|
2840
|
-
// here,
|
|
2499
|
+
// here, because that will be done in either
|
|
2841
2500
|
// LbQueuedCallCanceller::CancelLocked() or
|
|
2842
2501
|
// in ClientChannelFilter::UpdateStateAndPickerLocked().
|
|
2843
2502
|
}
|
|
2844
2503
|
|
|
2845
2504
|
void ClientChannelFilter::LoadBalancedCall::AddCallToLbQueuedCallsLocked() {
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
}
|
|
2505
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2506
|
+
<< "chand=" << chand_ << " lb_call=" << this
|
|
2507
|
+
<< ": adding to queued picks list";
|
|
2850
2508
|
// Add call's pollent to channel's interested_parties, so that I/O
|
|
2851
2509
|
// can be done under the call's CQ.
|
|
2852
2510
|
grpc_polling_entity_add_to_pollset_set(pollent(),
|
|
@@ -2863,16 +2521,17 @@ ClientChannelFilter::LoadBalancedCall::PickSubchannel(bool was_queued) {
|
|
|
2863
2521
|
// updated before we queue it.
|
|
2864
2522
|
// We need to unref pickers in the WorkSerializer.
|
|
2865
2523
|
std::vector<RefCountedPtr<LoadBalancingPolicy::SubchannelPicker>> pickers;
|
|
2866
|
-
auto cleanup = absl::MakeCleanup(
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2524
|
+
auto cleanup = absl::MakeCleanup(
|
|
2525
|
+
[work_serializer = chand_->work_serializer_, &pickers]() {
|
|
2526
|
+
if (IsWorkSerializerDispatchEnabled()) return;
|
|
2527
|
+
work_serializer->Run(
|
|
2528
|
+
[pickers = std::move(pickers)]() mutable {
|
|
2529
|
+
for (auto& picker : pickers) {
|
|
2530
|
+
picker.reset(DEBUG_LOCATION, "PickSubchannel");
|
|
2531
|
+
}
|
|
2532
|
+
},
|
|
2533
|
+
DEBUG_LOCATION);
|
|
2534
|
+
});
|
|
2876
2535
|
absl::AnyInvocable<void(RefCountedPtr<LoadBalancingPolicy::SubchannelPicker>)>
|
|
2877
2536
|
set_picker;
|
|
2878
2537
|
if (!IsWorkSerializerDispatchEnabled()) {
|
|
@@ -2888,10 +2547,9 @@ ClientChannelFilter::LoadBalancedCall::PickSubchannel(bool was_queued) {
|
|
|
2888
2547
|
};
|
|
2889
2548
|
}
|
|
2890
2549
|
// Grab mutex and take a ref to the picker.
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
}
|
|
2550
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2551
|
+
<< "chand=" << chand_ << " lb_call=" << this
|
|
2552
|
+
<< ": grabbing LB mutex to get picker";
|
|
2895
2553
|
RefCountedPtr<LoadBalancingPolicy::SubchannelPicker> picker;
|
|
2896
2554
|
{
|
|
2897
2555
|
MutexLock lock(&chand_->lb_mu_);
|
|
@@ -2901,17 +2559,15 @@ ClientChannelFilter::LoadBalancedCall::PickSubchannel(bool was_queued) {
|
|
|
2901
2559
|
// TODO(roth): Fix race condition in channel_idle filter and any
|
|
2902
2560
|
// other possible causes of this.
|
|
2903
2561
|
if (pickers.back() == nullptr) {
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
}
|
|
2562
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2563
|
+
<< "chand=" << chand_ << " lb_call=" << this
|
|
2564
|
+
<< ": picker is null, failing call";
|
|
2908
2565
|
return absl::InternalError("picker is null -- shouldn't happen");
|
|
2909
2566
|
}
|
|
2910
2567
|
// Do pick.
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
}
|
|
2568
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2569
|
+
<< "chand=" << chand_ << " lb_call=" << this
|
|
2570
|
+
<< ": performing pick with picker=" << pickers.back().get();
|
|
2915
2571
|
grpc_error_handle error;
|
|
2916
2572
|
bool pick_complete = PickSubchannelImpl(pickers.back().get(), &error);
|
|
2917
2573
|
if (!pick_complete) {
|
|
@@ -2919,11 +2575,9 @@ ClientChannelFilter::LoadBalancedCall::PickSubchannel(bool was_queued) {
|
|
|
2919
2575
|
MutexLock lock(&chand_->lb_mu_);
|
|
2920
2576
|
// If picker has been swapped out since we grabbed it, try again.
|
|
2921
2577
|
if (pickers.back() != chand_->picker_) {
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
chand_, this);
|
|
2926
|
-
}
|
|
2578
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2579
|
+
<< "chand=" << chand_ << " lb_call=" << this
|
|
2580
|
+
<< ": pick not complete, but picker changed";
|
|
2927
2581
|
if (IsWorkSerializerDispatchEnabled()) {
|
|
2928
2582
|
// Don't unref until after we release the mutex.
|
|
2929
2583
|
old_picker = std::move(pickers.back());
|
|
@@ -2942,11 +2596,9 @@ ClientChannelFilter::LoadBalancedCall::PickSubchannel(bool was_queued) {
|
|
|
2942
2596
|
}
|
|
2943
2597
|
// If the pick failed, fail the call.
|
|
2944
2598
|
if (!error.ok()) {
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
chand_, this, StatusToString(error).c_str());
|
|
2949
|
-
}
|
|
2599
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2600
|
+
<< "chand=" << chand_ << " lb_call=" << this
|
|
2601
|
+
<< ": failed to pick subchannel: error=" << StatusToString(error);
|
|
2950
2602
|
return error;
|
|
2951
2603
|
}
|
|
2952
2604
|
// Pick succeeded.
|
|
@@ -2957,27 +2609,26 @@ ClientChannelFilter::LoadBalancedCall::PickSubchannel(bool was_queued) {
|
|
|
2957
2609
|
|
|
2958
2610
|
bool ClientChannelFilter::LoadBalancedCall::PickSubchannelImpl(
|
|
2959
2611
|
LoadBalancingPolicy::SubchannelPicker* picker, grpc_error_handle* error) {
|
|
2960
|
-
|
|
2612
|
+
CHECK(connected_subchannel_ == nullptr);
|
|
2961
2613
|
// Perform LB pick.
|
|
2962
2614
|
LoadBalancingPolicy::PickArgs pick_args;
|
|
2963
2615
|
Slice* path = send_initial_metadata()->get_pointer(HttpPathMetadata());
|
|
2964
|
-
|
|
2616
|
+
CHECK_NE(path, nullptr);
|
|
2965
2617
|
pick_args.path = path->as_string_view();
|
|
2966
2618
|
LbCallState lb_call_state(this);
|
|
2967
2619
|
pick_args.call_state = &lb_call_state;
|
|
2968
|
-
|
|
2620
|
+
LbMetadata initial_metadata(send_initial_metadata());
|
|
2969
2621
|
pick_args.initial_metadata = &initial_metadata;
|
|
2970
2622
|
auto result = picker->Pick(pick_args);
|
|
2971
2623
|
return HandlePickResult<bool>(
|
|
2972
2624
|
&result,
|
|
2973
2625
|
// CompletePick
|
|
2974
2626
|
[this](LoadBalancingPolicy::PickResult::Complete* complete_pick) {
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
|
|
2980
|
-
GPR_ASSERT(complete_pick->subchannel != nullptr);
|
|
2627
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2628
|
+
<< "chand=" << chand_ << " lb_call=" << this
|
|
2629
|
+
<< ": LB pick succeeded: subchannel="
|
|
2630
|
+
<< complete_pick->subchannel.get();
|
|
2631
|
+
CHECK(complete_pick->subchannel != nullptr);
|
|
2981
2632
|
// Grab a ref to the connected subchannel while we're still
|
|
2982
2633
|
// holding the data plane mutex.
|
|
2983
2634
|
SubchannelWrapper* subchannel =
|
|
@@ -2988,12 +2639,10 @@ bool ClientChannelFilter::LoadBalancedCall::PickSubchannelImpl(
|
|
|
2988
2639
|
// yet seen that change and given us a new picker), then just
|
|
2989
2640
|
// queue the pick. We'll try again as soon as we get a new picker.
|
|
2990
2641
|
if (connected_subchannel_ == nullptr) {
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
chand_, this);
|
|
2996
|
-
}
|
|
2642
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2643
|
+
<< "chand=" << chand_ << " lb_call=" << this
|
|
2644
|
+
<< ": subchannel returned by LB picker "
|
|
2645
|
+
"has no connected subchannel; queueing pick";
|
|
2997
2646
|
return false;
|
|
2998
2647
|
}
|
|
2999
2648
|
lb_subchannel_call_tracker_ =
|
|
@@ -3001,22 +2650,24 @@ bool ClientChannelFilter::LoadBalancedCall::PickSubchannelImpl(
|
|
|
3001
2650
|
if (lb_subchannel_call_tracker_ != nullptr) {
|
|
3002
2651
|
lb_subchannel_call_tracker_->Start();
|
|
3003
2652
|
}
|
|
2653
|
+
// Handle metadata mutations.
|
|
2654
|
+
MetadataMutationHandler::Apply(complete_pick->metadata_mutations,
|
|
2655
|
+
send_initial_metadata());
|
|
2656
|
+
MaybeOverrideAuthority(std::move(complete_pick->authority_override),
|
|
2657
|
+
send_initial_metadata());
|
|
3004
2658
|
return true;
|
|
3005
2659
|
},
|
|
3006
2660
|
// QueuePick
|
|
3007
2661
|
[this](LoadBalancingPolicy::PickResult::Queue* /*queue_pick*/) {
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
this);
|
|
3011
|
-
}
|
|
2662
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2663
|
+
<< "chand=" << chand_ << " lb_call=" << this << ": LB pick queued";
|
|
3012
2664
|
return false;
|
|
3013
2665
|
},
|
|
3014
2666
|
// FailPick
|
|
3015
2667
|
[this, &error](LoadBalancingPolicy::PickResult::Fail* fail_pick) {
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
}
|
|
2668
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2669
|
+
<< "chand=" << chand_ << " lb_call=" << this
|
|
2670
|
+
<< ": LB pick failed: " << fail_pick->status;
|
|
3020
2671
|
// If wait_for_ready is false, then the error indicates the RPC
|
|
3021
2672
|
// attempt's final status.
|
|
3022
2673
|
if (!send_initial_metadata()
|
|
@@ -3032,10 +2683,9 @@ bool ClientChannelFilter::LoadBalancedCall::PickSubchannelImpl(
|
|
|
3032
2683
|
},
|
|
3033
2684
|
// DropPick
|
|
3034
2685
|
[this, &error](LoadBalancingPolicy::PickResult::Drop* drop_pick) {
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
}
|
|
2686
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2687
|
+
<< "chand=" << chand_ << " lb_call=" << this
|
|
2688
|
+
<< ": LB pick dropped: " << drop_pick->status;
|
|
3039
2689
|
*error = grpc_error_set_int(
|
|
3040
2690
|
absl_status_to_grpc_error(MaybeRewriteIllegalStatusCode(
|
|
3041
2691
|
std::move(drop_pick->status), "LB drop")),
|
|
@@ -3052,10 +2702,8 @@ ClientChannelFilter::FilterBasedLoadBalancedCall::FilterBasedLoadBalancedCall(
|
|
|
3052
2702
|
ClientChannelFilter* chand, const grpc_call_element_args& args,
|
|
3053
2703
|
grpc_polling_entity* pollent, grpc_closure* on_call_destruction_complete,
|
|
3054
2704
|
absl::AnyInvocable<void()> on_commit, bool is_transparent_retry)
|
|
3055
|
-
: LoadBalancedCall(chand, args.
|
|
2705
|
+
: LoadBalancedCall(chand, args.arena, std::move(on_commit),
|
|
3056
2706
|
is_transparent_retry),
|
|
3057
|
-
deadline_(args.deadline),
|
|
3058
|
-
arena_(args.arena),
|
|
3059
2707
|
owning_call_(args.call_stack),
|
|
3060
2708
|
call_combiner_(args.call_combiner),
|
|
3061
2709
|
pollent_(pollent),
|
|
@@ -3065,7 +2713,7 @@ ClientChannelFilter::FilterBasedLoadBalancedCall::
|
|
|
3065
2713
|
~FilterBasedLoadBalancedCall() {
|
|
3066
2714
|
// Make sure there are no remaining pending batches.
|
|
3067
2715
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
|
3068
|
-
|
|
2716
|
+
CHECK_EQ(pending_batches_[i], nullptr);
|
|
3069
2717
|
}
|
|
3070
2718
|
if (on_call_destruction_complete_ != nullptr) {
|
|
3071
2719
|
ExecCtx::Run(DEBUG_LOCATION, on_call_destruction_complete_,
|
|
@@ -3103,12 +2751,10 @@ size_t ClientChannelFilter::FilterBasedLoadBalancedCall::GetBatchIndex(
|
|
|
3103
2751
|
void ClientChannelFilter::FilterBasedLoadBalancedCall::PendingBatchesAdd(
|
|
3104
2752
|
grpc_transport_stream_op_batch* batch) {
|
|
3105
2753
|
const size_t idx = GetBatchIndex(batch);
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
}
|
|
3111
|
-
GPR_ASSERT(pending_batches_[idx] == nullptr);
|
|
2754
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2755
|
+
<< "chand=" << chand() << " lb_call=" << this
|
|
2756
|
+
<< ": adding pending batch at index " << idx;
|
|
2757
|
+
CHECK_EQ(pending_batches_[idx], nullptr);
|
|
3112
2758
|
pending_batches_[idx] = batch;
|
|
3113
2759
|
}
|
|
3114
2760
|
|
|
@@ -3128,16 +2774,15 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
|
|
|
3128
2774
|
void ClientChannelFilter::FilterBasedLoadBalancedCall::PendingBatchesFail(
|
|
3129
2775
|
grpc_error_handle error,
|
|
3130
2776
|
YieldCallCombinerPredicate yield_call_combiner_predicate) {
|
|
3131
|
-
|
|
2777
|
+
CHECK(!error.ok());
|
|
3132
2778
|
failure_error_ = error;
|
|
3133
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
|
2779
|
+
if (GRPC_TRACE_FLAG_ENABLED(client_channel_lb_call)) {
|
|
3134
2780
|
size_t num_batches = 0;
|
|
3135
2781
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
|
3136
2782
|
if (pending_batches_[i] != nullptr) ++num_batches;
|
|
3137
2783
|
}
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
chand(), this, num_batches, StatusToString(error).c_str());
|
|
2784
|
+
LOG(INFO) << "chand=" << chand() << " lb_call=" << this << ": failing "
|
|
2785
|
+
<< num_batches << " pending batches: " << StatusToString(error);
|
|
3141
2786
|
}
|
|
3142
2787
|
CallCombinerClosureList closures;
|
|
3143
2788
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
|
@@ -3172,15 +2817,14 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
|
|
|
3172
2817
|
|
|
3173
2818
|
// This is called via the call combiner, so access to calld is synchronized.
|
|
3174
2819
|
void ClientChannelFilter::FilterBasedLoadBalancedCall::PendingBatchesResume() {
|
|
3175
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
|
2820
|
+
if (GRPC_TRACE_FLAG_ENABLED(client_channel_lb_call)) {
|
|
3176
2821
|
size_t num_batches = 0;
|
|
3177
2822
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
|
3178
2823
|
if (pending_batches_[i] != nullptr) ++num_batches;
|
|
3179
2824
|
}
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
chand(), this, num_batches, subchannel_call_.get());
|
|
2825
|
+
LOG(INFO) << "chand=" << chand() << " lb_call=" << this << ": starting "
|
|
2826
|
+
<< num_batches << " pending batches on subchannel_call="
|
|
2827
|
+
<< subchannel_call_.get();
|
|
3184
2828
|
}
|
|
3185
2829
|
CallCombinerClosureList closures;
|
|
3186
2830
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
|
@@ -3201,14 +2845,12 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::PendingBatchesResume() {
|
|
|
3201
2845
|
|
|
3202
2846
|
void ClientChannelFilter::FilterBasedLoadBalancedCall::
|
|
3203
2847
|
StartTransportStreamOpBatch(grpc_transport_stream_op_batch* batch) {
|
|
3204
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
|
3205
|
-
GRPC_TRACE_FLAG_ENABLED(
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
grpc_transport_stream_op_batch_string(batch, false).c_str(),
|
|
3211
|
-
call_attempt_tracer());
|
|
2848
|
+
if (GRPC_TRACE_FLAG_ENABLED(client_channel_lb_call) ||
|
|
2849
|
+
GRPC_TRACE_FLAG_ENABLED(channel)) {
|
|
2850
|
+
LOG(INFO) << "chand=" << chand() << " lb_call=" << this
|
|
2851
|
+
<< ": batch started from above: "
|
|
2852
|
+
<< grpc_transport_stream_op_batch_string(batch, false)
|
|
2853
|
+
<< ", call_attempt_tracer()=" << call_attempt_tracer();
|
|
3212
2854
|
}
|
|
3213
2855
|
// Handle call tracing.
|
|
3214
2856
|
if (call_attempt_tracer() != nullptr) {
|
|
@@ -3256,11 +2898,9 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
|
|
|
3256
2898
|
// the channel's data plane mutex, which is more efficient (especially for
|
|
3257
2899
|
// streaming calls).
|
|
3258
2900
|
if (subchannel_call_ != nullptr) {
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
|
|
3262
|
-
chand(), this, subchannel_call_.get());
|
|
3263
|
-
}
|
|
2901
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2902
|
+
<< "chand=" << chand() << " lb_call=" << this
|
|
2903
|
+
<< ": starting batch on subchannel_call=" << subchannel_call_.get();
|
|
3264
2904
|
subchannel_call_->StartTransportStreamOpBatch(batch);
|
|
3265
2905
|
return;
|
|
3266
2906
|
}
|
|
@@ -3268,10 +2908,9 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
|
|
|
3268
2908
|
//
|
|
3269
2909
|
// If we've previously been cancelled, immediately fail any new batches.
|
|
3270
2910
|
if (GPR_UNLIKELY(!cancel_error_.ok())) {
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
}
|
|
2911
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2912
|
+
<< "chand=" << chand() << " lb_call=" << this
|
|
2913
|
+
<< ": failing batch with error: " << StatusToString(cancel_error_);
|
|
3275
2914
|
// Note: This will release the call combiner.
|
|
3276
2915
|
grpc_transport_stream_op_batch_finish_with_failure(batch, cancel_error_,
|
|
3277
2916
|
call_combiner_);
|
|
@@ -3285,10 +2924,9 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
|
|
|
3285
2924
|
// is in the past when the call starts), we can return the right
|
|
3286
2925
|
// error to the caller when the first batch does get passed down.
|
|
3287
2926
|
cancel_error_ = batch->payload->cancel_stream.cancel_error;
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
}
|
|
2927
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2928
|
+
<< "chand=" << chand() << " lb_call=" << this
|
|
2929
|
+
<< ": recording cancel_error=" << StatusToString(cancel_error_).c_str();
|
|
3292
2930
|
// Fail all pending batches.
|
|
3293
2931
|
PendingBatchesFail(cancel_error_, NoYieldCallCombiner);
|
|
3294
2932
|
// Note: This will release the call combiner.
|
|
@@ -3304,11 +2942,9 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
|
|
|
3304
2942
|
TryPick(/*was_queued=*/false);
|
|
3305
2943
|
} else {
|
|
3306
2944
|
// For all other batches, release the call combiner.
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
chand(), this);
|
|
3311
|
-
}
|
|
2945
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2946
|
+
<< "chand=" << chand() << " lb_call=" << this
|
|
2947
|
+
<< ": saved batch, yielding call combiner";
|
|
3312
2948
|
GRPC_CALL_COMBINER_STOP(call_combiner_,
|
|
3313
2949
|
"batch does not include send_initial_metadata");
|
|
3314
2950
|
}
|
|
@@ -3317,11 +2953,9 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
|
|
|
3317
2953
|
void ClientChannelFilter::FilterBasedLoadBalancedCall::RecvInitialMetadataReady(
|
|
3318
2954
|
void* arg, grpc_error_handle error) {
|
|
3319
2955
|
auto* self = static_cast<FilterBasedLoadBalancedCall*>(arg);
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
self->chand(), self, StatusToString(error).c_str());
|
|
3324
|
-
}
|
|
2956
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2957
|
+
<< "chand=" << self->chand() << " lb_call=" << self
|
|
2958
|
+
<< ": got recv_initial_metadata_ready: error=" << StatusToString(error);
|
|
3325
2959
|
if (error.ok()) {
|
|
3326
2960
|
// recv_initial_metadata_flags is not populated for clients
|
|
3327
2961
|
self->call_attempt_tracer()->RecordReceivedInitialMetadata(
|
|
@@ -3336,15 +2970,12 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::RecvInitialMetadataReady(
|
|
|
3336
2970
|
void ClientChannelFilter::FilterBasedLoadBalancedCall::
|
|
3337
2971
|
RecvTrailingMetadataReady(void* arg, grpc_error_handle error) {
|
|
3338
2972
|
auto* self = static_cast<FilterBasedLoadBalancedCall*>(arg);
|
|
3339
|
-
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
self->call_attempt_tracer(), self->lb_subchannel_call_tracker(),
|
|
3346
|
-
StatusToString(self->failure_error_).c_str());
|
|
3347
|
-
}
|
|
2973
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
2974
|
+
<< "chand=" << self->chand() << " lb_call=" << self
|
|
2975
|
+
<< ": got recv_trailing_metadata_ready: error=" << StatusToString(error)
|
|
2976
|
+
<< " call_attempt_tracer()=" << self->call_attempt_tracer()
|
|
2977
|
+
<< " lb_subchannel_call_tracker_=" << self->lb_subchannel_call_tracker()
|
|
2978
|
+
<< " failure_error_=" << StatusToString(self->failure_error_);
|
|
3348
2979
|
// Check if we have a tracer or an LB callback to invoke.
|
|
3349
2980
|
if (self->call_attempt_tracer() != nullptr ||
|
|
3350
2981
|
self->lb_subchannel_call_tracker() != nullptr) {
|
|
@@ -3354,8 +2985,9 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
|
|
|
3354
2985
|
// Get status from error.
|
|
3355
2986
|
grpc_status_code code;
|
|
3356
2987
|
std::string message;
|
|
3357
|
-
grpc_error_get_status(
|
|
3358
|
-
|
|
2988
|
+
grpc_error_get_status(
|
|
2989
|
+
error, self->arena()->GetContext<Call>()->deadline(), &code, &message,
|
|
2990
|
+
/*http_error=*/nullptr, /*error_string=*/nullptr);
|
|
3359
2991
|
status = absl::Status(static_cast<absl::StatusCode>(code), message);
|
|
3360
2992
|
} else {
|
|
3361
2993
|
// Get status from headers.
|
|
@@ -3411,13 +3043,11 @@ class ClientChannelFilter::FilterBasedLoadBalancedCall::LbQueuedCallCanceller
|
|
|
3411
3043
|
auto* chand = lb_call->chand();
|
|
3412
3044
|
{
|
|
3413
3045
|
MutexLock lock(&chand->lb_mu_);
|
|
3414
|
-
|
|
3415
|
-
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
lb_call->lb_call_canceller_);
|
|
3420
|
-
}
|
|
3046
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
3047
|
+
<< "chand=" << chand << " lb_call=" << lb_call
|
|
3048
|
+
<< ": cancelling queued pick: error=" << StatusToString(error)
|
|
3049
|
+
<< " self=" << self
|
|
3050
|
+
<< " calld->pick_canceller=" << lb_call->lb_call_canceller_;
|
|
3421
3051
|
if (lb_call->lb_call_canceller_ == self && !error.ok()) {
|
|
3422
3052
|
lb_call->Commit();
|
|
3423
3053
|
// Remove pick from list of queued picks.
|
|
@@ -3490,20 +3120,19 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::RetryPickLocked() {
|
|
|
3490
3120
|
|
|
3491
3121
|
void ClientChannelFilter::FilterBasedLoadBalancedCall::CreateSubchannelCall() {
|
|
3492
3122
|
Slice* path = send_initial_metadata()->get_pointer(HttpPathMetadata());
|
|
3493
|
-
|
|
3123
|
+
CHECK_NE(path, nullptr);
|
|
3494
3124
|
SubchannelCall::Args call_args = {
|
|
3495
3125
|
connected_subchannel()->Ref(), pollent_, path->Ref(), /*start_time=*/0,
|
|
3496
|
-
|
|
3126
|
+
arena()->GetContext<Call>()->deadline(),
|
|
3497
3127
|
// TODO(roth): When we implement hedging support, we will probably
|
|
3498
|
-
// need to use a separate call
|
|
3499
|
-
|
|
3128
|
+
// need to use a separate call arena for each subchannel call.
|
|
3129
|
+
arena(), call_combiner_};
|
|
3500
3130
|
grpc_error_handle error;
|
|
3501
3131
|
subchannel_call_ = SubchannelCall::Create(std::move(call_args), &error);
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3505
|
-
|
|
3506
|
-
}
|
|
3132
|
+
GRPC_TRACE_LOG(client_channel_lb_call, INFO)
|
|
3133
|
+
<< "chand=" << chand() << " lb_call=" << this
|
|
3134
|
+
<< ": create subchannel_call=" << subchannel_call_.get()
|
|
3135
|
+
<< ": error=" << StatusToString(error);
|
|
3507
3136
|
if (on_call_destruction_complete_ != nullptr) {
|
|
3508
3137
|
subchannel_call_->SetAfterCallStackDestroy(on_call_destruction_complete_);
|
|
3509
3138
|
on_call_destruction_complete_ = nullptr;
|
|
@@ -3515,150 +3144,4 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::CreateSubchannelCall() {
|
|
|
3515
3144
|
}
|
|
3516
3145
|
}
|
|
3517
3146
|
|
|
3518
|
-
//
|
|
3519
|
-
// ClientChannelFilter::PromiseBasedLoadBalancedCall
|
|
3520
|
-
//
|
|
3521
|
-
|
|
3522
|
-
ClientChannelFilter::PromiseBasedLoadBalancedCall::PromiseBasedLoadBalancedCall(
|
|
3523
|
-
ClientChannelFilter* chand, absl::AnyInvocable<void()> on_commit,
|
|
3524
|
-
bool is_transparent_retry)
|
|
3525
|
-
: LoadBalancedCall(chand, GetContext<grpc_call_context_element>(),
|
|
3526
|
-
std::move(on_commit), is_transparent_retry) {}
|
|
3527
|
-
|
|
3528
|
-
ArenaPromise<ServerMetadataHandle>
|
|
3529
|
-
ClientChannelFilter::PromiseBasedLoadBalancedCall::MakeCallPromise(
|
|
3530
|
-
CallArgs call_args, OrphanablePtr<PromiseBasedLoadBalancedCall> lb_call) {
|
|
3531
|
-
pollent_ = NowOrNever(call_args.polling_entity->WaitAndCopy()).value();
|
|
3532
|
-
// Record ops in tracer.
|
|
3533
|
-
if (call_attempt_tracer() != nullptr) {
|
|
3534
|
-
call_attempt_tracer()->RecordSendInitialMetadata(
|
|
3535
|
-
call_args.client_initial_metadata.get());
|
|
3536
|
-
// TODO(ctiller): Find a way to do this without registering a no-op mapper.
|
|
3537
|
-
call_args.client_to_server_messages->InterceptAndMapWithHalfClose(
|
|
3538
|
-
[](MessageHandle message) { return message; }, // No-op.
|
|
3539
|
-
[this]() {
|
|
3540
|
-
// TODO(roth): Change CallTracer API to not pass metadata
|
|
3541
|
-
// batch to this method, since the batch is always empty.
|
|
3542
|
-
grpc_metadata_batch metadata;
|
|
3543
|
-
call_attempt_tracer()->RecordSendTrailingMetadata(&metadata);
|
|
3544
|
-
});
|
|
3545
|
-
}
|
|
3546
|
-
// Extract peer name from server initial metadata.
|
|
3547
|
-
call_args.server_initial_metadata->InterceptAndMap(
|
|
3548
|
-
[self = lb_call->RefAsSubclass<PromiseBasedLoadBalancedCall>()](
|
|
3549
|
-
ServerMetadataHandle metadata) {
|
|
3550
|
-
if (self->call_attempt_tracer() != nullptr) {
|
|
3551
|
-
self->call_attempt_tracer()->RecordReceivedInitialMetadata(
|
|
3552
|
-
metadata.get());
|
|
3553
|
-
}
|
|
3554
|
-
Slice* peer_string = metadata->get_pointer(PeerString());
|
|
3555
|
-
if (peer_string != nullptr) self->peer_string_ = peer_string->Ref();
|
|
3556
|
-
return metadata;
|
|
3557
|
-
});
|
|
3558
|
-
client_initial_metadata_ = std::move(call_args.client_initial_metadata);
|
|
3559
|
-
return OnCancel(
|
|
3560
|
-
Map(TrySeq(
|
|
3561
|
-
// LB pick.
|
|
3562
|
-
[this]() -> Poll<absl::Status> {
|
|
3563
|
-
auto result = PickSubchannel(was_queued_);
|
|
3564
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
|
3565
|
-
grpc_client_channel_lb_call_trace)) {
|
|
3566
|
-
gpr_log(GPR_INFO,
|
|
3567
|
-
"chand=%p lb_call=%p: %sPickSubchannel() returns %s",
|
|
3568
|
-
chand(), this,
|
|
3569
|
-
GetContext<Activity>()->DebugTag().c_str(),
|
|
3570
|
-
result.has_value() ? result->ToString().c_str()
|
|
3571
|
-
: "Pending");
|
|
3572
|
-
}
|
|
3573
|
-
if (result == absl::nullopt) return Pending{};
|
|
3574
|
-
return std::move(*result);
|
|
3575
|
-
},
|
|
3576
|
-
[this, call_args = std::move(call_args)]() mutable
|
|
3577
|
-
-> ArenaPromise<ServerMetadataHandle> {
|
|
3578
|
-
call_args.client_initial_metadata =
|
|
3579
|
-
std::move(client_initial_metadata_);
|
|
3580
|
-
return connected_subchannel()->MakeCallPromise(
|
|
3581
|
-
std::move(call_args));
|
|
3582
|
-
}),
|
|
3583
|
-
// Record call completion.
|
|
3584
|
-
[this](ServerMetadataHandle metadata) {
|
|
3585
|
-
if (call_attempt_tracer() != nullptr ||
|
|
3586
|
-
lb_subchannel_call_tracker() != nullptr) {
|
|
3587
|
-
absl::Status status;
|
|
3588
|
-
grpc_status_code code = metadata->get(GrpcStatusMetadata())
|
|
3589
|
-
.value_or(GRPC_STATUS_UNKNOWN);
|
|
3590
|
-
if (code != GRPC_STATUS_OK) {
|
|
3591
|
-
absl::string_view message;
|
|
3592
|
-
if (const auto* grpc_message =
|
|
3593
|
-
metadata->get_pointer(GrpcMessageMetadata())) {
|
|
3594
|
-
message = grpc_message->as_string_view();
|
|
3595
|
-
}
|
|
3596
|
-
status =
|
|
3597
|
-
absl::Status(static_cast<absl::StatusCode>(code), message);
|
|
3598
|
-
}
|
|
3599
|
-
RecordCallCompletion(status, metadata.get(),
|
|
3600
|
-
&GetContext<CallContext>()
|
|
3601
|
-
->call_stats()
|
|
3602
|
-
->transport_stream_stats,
|
|
3603
|
-
peer_string_.as_string_view());
|
|
3604
|
-
}
|
|
3605
|
-
RecordLatency();
|
|
3606
|
-
return metadata;
|
|
3607
|
-
}),
|
|
3608
|
-
[lb_call = std::move(lb_call)]() {
|
|
3609
|
-
// If the waker is pending, then we need to remove ourself from
|
|
3610
|
-
// the list of queued LB calls.
|
|
3611
|
-
if (!lb_call->waker_.is_unwakeable()) {
|
|
3612
|
-
MutexLock lock(&lb_call->chand()->lb_mu_);
|
|
3613
|
-
lb_call->Commit();
|
|
3614
|
-
// Remove pick from list of queued picks.
|
|
3615
|
-
lb_call->RemoveCallFromLbQueuedCallsLocked();
|
|
3616
|
-
// Remove from queued picks list.
|
|
3617
|
-
lb_call->chand()->lb_queued_calls_.erase(lb_call.get());
|
|
3618
|
-
}
|
|
3619
|
-
// TODO(ctiller): We don't have access to the call's actual status
|
|
3620
|
-
// here, so we just assume CANCELLED. We could change this to use
|
|
3621
|
-
// CallFinalization instead of OnCancel() so that we can get the
|
|
3622
|
-
// actual status. But we should also have access to the trailing
|
|
3623
|
-
// metadata, which we don't have in either case. Ultimately, we
|
|
3624
|
-
// need a better story for code that needs to run at the end of a
|
|
3625
|
-
// call in both cancellation and non-cancellation cases that needs
|
|
3626
|
-
// access to server trailing metadata and the call's real status.
|
|
3627
|
-
if (lb_call->call_attempt_tracer() != nullptr) {
|
|
3628
|
-
lb_call->call_attempt_tracer()->RecordCancel(
|
|
3629
|
-
absl::CancelledError("call cancelled"));
|
|
3630
|
-
}
|
|
3631
|
-
if (lb_call->call_attempt_tracer() != nullptr ||
|
|
3632
|
-
lb_call->lb_subchannel_call_tracker() != nullptr) {
|
|
3633
|
-
// If we were cancelled without recording call completion, then
|
|
3634
|
-
// record call completion here, as best we can. We assume status
|
|
3635
|
-
// CANCELLED in this case.
|
|
3636
|
-
lb_call->RecordCallCompletion(absl::CancelledError("call cancelled"),
|
|
3637
|
-
nullptr, nullptr, "");
|
|
3638
|
-
}
|
|
3639
|
-
});
|
|
3640
|
-
}
|
|
3641
|
-
|
|
3642
|
-
Arena* ClientChannelFilter::PromiseBasedLoadBalancedCall::arena() const {
|
|
3643
|
-
return GetContext<Arena>();
|
|
3644
|
-
}
|
|
3645
|
-
|
|
3646
|
-
grpc_metadata_batch*
|
|
3647
|
-
ClientChannelFilter::PromiseBasedLoadBalancedCall::send_initial_metadata()
|
|
3648
|
-
const {
|
|
3649
|
-
return client_initial_metadata_.get();
|
|
3650
|
-
}
|
|
3651
|
-
|
|
3652
|
-
void ClientChannelFilter::PromiseBasedLoadBalancedCall::OnAddToQueueLocked() {
|
|
3653
|
-
waker_ = GetContext<Activity>()->MakeNonOwningWaker();
|
|
3654
|
-
was_queued_ = true;
|
|
3655
|
-
}
|
|
3656
|
-
|
|
3657
|
-
void ClientChannelFilter::PromiseBasedLoadBalancedCall::RetryPickLocked() {
|
|
3658
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
|
3659
|
-
gpr_log(GPR_INFO, "chand=%p lb_call=%p: RetryPickLocked()", chand(), this);
|
|
3660
|
-
}
|
|
3661
|
-
waker_.WakeupAsync();
|
|
3662
|
-
}
|
|
3663
|
-
|
|
3664
3147
|
} // namespace grpc_core
|