grpc 1.46.3 → 1.53.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +419 -241
- data/include/grpc/byte_buffer.h +76 -1
- data/include/grpc/byte_buffer_reader.h +19 -1
- data/include/grpc/compression.h +2 -2
- data/include/grpc/event_engine/endpoint_config.h +11 -5
- data/include/grpc/event_engine/event_engine.h +129 -39
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +1 -1
- data/include/grpc/event_engine/internal/slice_cast.h +67 -0
- data/include/grpc/event_engine/memory_allocator.h +1 -16
- data/include/grpc/event_engine/port.h +1 -1
- data/include/grpc/event_engine/slice.h +306 -0
- data/include/grpc/event_engine/slice_buffer.h +159 -0
- data/include/grpc/fork.h +25 -1
- data/include/grpc/grpc.h +4 -14
- data/include/grpc/grpc_posix.h +1 -1
- data/include/grpc/grpc_security.h +11 -0
- data/include/grpc/impl/codegen/atm.h +3 -71
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +3 -67
- data/include/grpc/impl/codegen/atm_gcc_sync.h +3 -61
- data/include/grpc/impl/codegen/atm_windows.h +3 -108
- data/include/grpc/impl/codegen/byte_buffer.h +4 -78
- data/include/grpc/impl/codegen/byte_buffer_reader.h +4 -19
- data/include/grpc/impl/codegen/compression_types.h +5 -83
- data/include/grpc/impl/codegen/connectivity_state.h +5 -21
- data/include/grpc/impl/codegen/fork.h +4 -25
- data/include/grpc/impl/codegen/gpr_types.h +4 -35
- data/include/grpc/impl/codegen/grpc_types.h +5 -791
- data/include/grpc/impl/codegen/log.h +3 -86
- data/include/grpc/impl/codegen/port_platform.h +3 -699
- data/include/grpc/impl/codegen/propagation_bits.h +3 -28
- data/include/grpc/impl/codegen/slice.h +4 -107
- data/include/grpc/impl/codegen/status.h +4 -131
- data/include/grpc/impl/codegen/sync.h +3 -42
- data/include/grpc/impl/codegen/sync_abseil.h +3 -12
- data/include/grpc/impl/codegen/sync_custom.h +3 -14
- data/include/grpc/impl/codegen/sync_generic.h +3 -25
- data/include/grpc/impl/codegen/sync_posix.h +3 -28
- data/include/grpc/impl/codegen/sync_windows.h +3 -16
- data/include/grpc/impl/compression_types.h +109 -0
- data/include/grpc/impl/connectivity_state.h +47 -0
- data/include/grpc/impl/grpc_types.h +836 -0
- data/include/grpc/impl/propagation_bits.h +54 -0
- data/include/grpc/impl/slice_type.h +112 -0
- data/include/grpc/load_reporting.h +1 -1
- data/include/grpc/module.modulemap +5 -1
- data/include/grpc/slice.h +1 -1
- data/include/grpc/status.h +131 -1
- data/include/grpc/support/atm.h +70 -1
- data/include/grpc/support/atm_gcc_atomic.h +59 -1
- data/include/grpc/support/atm_gcc_sync.h +58 -1
- data/include/grpc/support/atm_windows.h +105 -1
- data/include/grpc/support/log.h +87 -1
- data/include/grpc/support/log_windows.h +1 -1
- data/include/grpc/support/port_platform.h +767 -1
- data/include/grpc/support/string_util.h +1 -1
- data/include/grpc/support/sync.h +35 -2
- data/include/grpc/support/sync_abseil.h +11 -1
- data/include/grpc/support/sync_custom.h +13 -1
- data/include/grpc/support/sync_generic.h +24 -1
- data/include/grpc/support/sync_posix.h +27 -1
- data/include/grpc/support/sync_windows.h +15 -1
- data/include/grpc/support/time.h +31 -6
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +148 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +52 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +29 -0
- data/src/core/ext/filters/census/grpc_context.cc +19 -17
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +67 -61
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +26 -6
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +6 -4
- data/src/core/ext/filters/client_channel/backend_metric.cc +19 -12
- data/src/core/ext/filters/client_channel/backend_metric.h +21 -11
- data/src/core/ext/filters/client_channel/backup_poller.cc +34 -34
- data/src/core/ext/filters/client_channel/backup_poller.h +26 -28
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +89 -44
- data/src/core/ext/filters/client_channel/client_channel.cc +401 -451
- data/src/core/ext/filters/client_channel/client_channel.h +68 -26
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +19 -23
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +33 -23
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +19 -43
- data/src/core/ext/filters/client_channel/client_channel_factory.h +11 -11
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +22 -47
- data/src/core/ext/filters/client_channel/client_channel_service_config.cc +153 -0
- data/src/core/ext/filters/client_channel/{resolver_result_parsing.h → client_channel_service_config.h} +33 -27
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
- data/src/core/ext/filters/client_channel/config_selector.h +29 -23
- data/src/core/ext/filters/client_channel/connector.h +19 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +40 -54
- data/src/core/ext/filters/client_channel/dynamic_filters.h +20 -11
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +24 -21
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +16 -4
- data/src/core/ext/filters/client_channel/health/health_check_client.h +5 -3
- data/src/core/ext/filters/client_channel/http_proxy.cc +100 -112
- data/src/core/ext/filters/client_channel/http_proxy.h +38 -31
- data/src/core/ext/filters/client_channel/lb_call_state_internal.h +39 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +8 -5
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +49 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +37 -16
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +18 -13
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +71 -131
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +41 -24
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +410 -375
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +26 -27
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +15 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +9 -7
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +18 -20
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +27 -22
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +28 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +26 -25
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +338 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +57 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h +117 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +1129 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +94 -0
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +174 -180
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +366 -407
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +491 -405
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +19 -9
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +619 -634
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +261 -234
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +165 -143
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +128 -0
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.h +71 -0
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +972 -0
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +223 -220
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +214 -153
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +42 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/{xds.h → xds_attributes.h} +19 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +178 -256
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +199 -210
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +382 -368
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +819 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +67 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +369 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +4 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +22 -21
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +34 -19
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +531 -163
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +50 -44
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +31 -30
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +89 -84
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +300 -209
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +82 -61
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +18 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +20 -19
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +2 -0
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +22 -22
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +54 -22
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +21 -34
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +19 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +135 -63
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +136 -68
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +29 -14
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +21 -27
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +368 -305
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +6 -4
- data/src/core/ext/filters/client_channel/retry_filter.cc +166 -163
- data/src/core/ext/filters/client_channel/retry_filter.h +4 -3
- data/src/core/ext/filters/client_channel/retry_service_config.cc +197 -229
- data/src/core/ext/filters/client_channel/retry_service_config.h +29 -26
- data/src/core/ext/filters/client_channel/retry_throttle.cc +28 -37
- data/src/core/ext/filters/client_channel/retry_throttle.h +36 -29
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +34 -17
- data/src/core/ext/filters/client_channel/subchannel.cc +332 -384
- data/src/core/ext/filters/client_channel/subchannel.h +112 -82
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +17 -77
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +41 -47
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +34 -108
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +20 -12
- data/src/core/ext/filters/deadline/deadline_filter.cc +94 -76
- data/src/core/ext/filters/deadline/deadline_filter.h +14 -12
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +44 -22
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +20 -11
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +118 -0
- data/src/core/ext/filters/fault_injection/{service_config_parser.h → fault_injection_service_config_parser.h} +34 -13
- data/src/core/ext/filters/http/client/http_client_filter.cc +76 -54
- data/src/core/ext/filters/http/client/http_client_filter.h +36 -23
- data/src/core/ext/filters/http/client_authority_filter.cc +33 -38
- data/src/core/ext/filters/http/client_authority_filter.h +27 -24
- data/src/core/ext/filters/http/http_filters_plugin.cc +46 -55
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +307 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.h +139 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +111 -271
- data/src/core/ext/filters/http/server/http_server_filter.h +58 -24
- data/src/core/ext/filters/message_size/message_size_filter.cc +117 -137
- data/src/core/ext/filters/message_size/message_size_filter.h +34 -17
- data/src/core/ext/filters/rbac/rbac_filter.cc +29 -16
- data/src/core/ext/filters/rbac/rbac_filter.h +11 -3
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +736 -523
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +18 -7
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +20 -8
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +28 -12
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +4 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +219 -0
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +66 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +82 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +93 -0
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +18 -18
- data/src/core/ext/transport/chttp2/alpn/alpn.h +24 -24
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +185 -241
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +38 -30
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +204 -211
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +26 -26
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +24 -24
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +35 -34
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +43 -38
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +35 -31
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +801 -1067
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +28 -23
- data/src/core/ext/transport/chttp2/transport/context_list.cc +23 -19
- data/src/core/ext/transport/chttp2/transport/context_list.h +32 -29
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +251 -0
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +971 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +350 -300
- data/src/core/ext/transport/chttp2/transport/flow_control.h +248 -325
- data/src/core/ext/transport/chttp2/transport/frame.h +22 -26
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +85 -234
- data/src/core/ext/transport/chttp2/transport/frame_data.h +38 -61
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +41 -36
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +24 -22
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +31 -25
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +25 -22
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +35 -26
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +24 -21
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +44 -77
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +27 -23
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +34 -33
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +24 -21
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +10 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +221 -372
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +338 -158
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +6 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +16 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +516 -751
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +38 -27
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +86 -76
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +79 -49
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -19
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +39 -38
- data/src/core/ext/transport/chttp2/transport/http_trace.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/http_trace.h +24 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.cc +20 -20
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +21 -21
- data/src/core/ext/transport/chttp2/transport/internal.h +248 -296
- data/src/core/ext/transport/chttp2/transport/parsing.cc +363 -132
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +30 -30
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +24 -24
- data/src/core/ext/transport/chttp2/transport/stream_map.h +34 -33
- data/src/core/ext/transport/chttp2/transport/varint.cc +19 -20
- data/src/core/ext/transport/chttp2/transport/varint.h +39 -34
- data/src/core/ext/transport/chttp2/transport/writing.cc +121 -94
- data/src/core/ext/transport/inproc/inproc_plugin.cc +17 -18
- data/src/core/ext/transport/inproc/inproc_transport.cc +227 -274
- data/src/core/ext/transport/inproc/inproc_transport.h +23 -21
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +33 -8
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +8 -327
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +83 -1723
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +388 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1953 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +6 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +33 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -3
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +14 -14
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +25 -19
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +168 -34
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +35 -43
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +195 -116
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +84 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +35 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +179 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +156 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +78 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +23 -20
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +137 -69
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +23 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +132 -44
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +17 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +67 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +15 -9
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +73 -18
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +39 -13
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +194 -15
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +28 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +36 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +48 -16
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +54 -18
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +26 -11
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +124 -14
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +19 -15
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +78 -69
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +168 -82
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +887 -166
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +34 -15
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +161 -22
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +107 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +7 -6
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +27 -14
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +11 -4
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +58 -4
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -3
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +29 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +179 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +38 -27
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +207 -52
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +188 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +111 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +444 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +192 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +66 -14
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +73 -23
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +133 -16
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +656 -12
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +113 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +114 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +3 -1
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +6 -2
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +11 -11
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +66 -22
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +9 -9
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +72 -24
- data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/http.upb.h +18 -6
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +1 -1
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +44 -43
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +177 -55
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +2 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +18 -6
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +6 -6
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +54 -18
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +6 -2
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +2 -2
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +24 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +6 -2
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +60 -20
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +1 -1
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +6 -6
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +54 -18
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +42 -14
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +23 -11
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -3
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -3
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -3
- data/src/core/ext/upb-generated/validate/validate.upb.c +22 -22
- data/src/core/ext/upb-generated/validate/validate.upb.h +139 -47
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +23 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +7 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +27 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +7 -3
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +47 -0
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +107 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +3 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +15 -2
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +113 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +98 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +62 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +174 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +74 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +65 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +191 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +54 -18
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +127 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +474 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +67 -0
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +214 -0
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +64 -0
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +208 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +1 -2
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +6 -2
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +54 -53
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +67 -274
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -85
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +277 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +125 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +107 -107
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +199 -187
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +232 -222
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +95 -75
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +187 -183
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +81 -75
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +190 -186
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +7 -3
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +71 -66
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +164 -137
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +16 -12
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +39 -31
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +140 -129
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +82 -74
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +2 -2
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +740 -667
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +20 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +150 -139
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +16 -14
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +48 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +16 -12
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +20 -18
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +46 -25
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +53 -42
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +485 -467
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +21 -18
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +149 -145
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +156 -84
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -113
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +48 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -28
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +10 -9
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +92 -90
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +9 -9
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +4 -7
- data/src/core/ext/xds/certificate_provider_store.cc +69 -5
- data/src/core/ext/xds/certificate_provider_store.h +22 -5
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +17 -10
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +12 -4
- data/src/core/ext/xds/upb_utils.h +3 -25
- data/src/core/ext/xds/xds_api.cc +90 -196
- data/src/core/ext/xds/xds_api.h +41 -39
- data/src/core/ext/xds/xds_bootstrap.cc +5 -537
- data/src/core/ext/xds/xds_bootstrap.h +41 -96
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +362 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.h +184 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +35 -26
- data/src/core/ext/xds/xds_certificate_provider.h +29 -5
- data/src/core/ext/xds/xds_channel_args.h +3 -3
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +17 -7
- data/src/core/ext/xds/xds_channel_stack_modifier.h +16 -4
- data/src/core/ext/xds/xds_client.cc +849 -1316
- data/src/core/ext/xds/xds_client.h +57 -61
- data/src/core/ext/xds/xds_client_grpc.cc +235 -0
- data/src/core/ext/xds/xds_client_grpc.h +79 -0
- data/src/core/ext/xds/xds_client_stats.cc +24 -25
- data/src/core/ext/xds/xds_client_stats.h +26 -24
- data/src/core/ext/xds/xds_cluster.cc +505 -247
- data/src/core/ext/xds/xds_cluster.h +69 -40
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +67 -77
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +47 -29
- data/src/core/ext/xds/xds_common_types.cc +238 -123
- data/src/core/ext/xds/xds_common_types.h +29 -16
- data/src/core/ext/xds/xds_endpoint.cc +265 -162
- data/src/core/ext/xds/xds_endpoint.h +19 -15
- data/src/core/ext/xds/xds_health_status.cc +80 -0
- data/src/core/ext/xds/xds_health_status.h +109 -0
- data/src/core/ext/xds/xds_http_fault_filter.cc +67 -58
- data/src/core/ext/xds/xds_http_fault_filter.h +19 -25
- data/src/core/ext/xds/xds_http_filters.cc +70 -71
- data/src/core/ext/xds/xds_http_filters.h +73 -25
- data/src/core/ext/xds/xds_http_rbac_filter.cc +168 -225
- data/src/core/ext/xds/xds_http_rbac_filter.h +22 -18
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +218 -0
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +58 -0
- data/src/core/ext/xds/xds_lb_policy_registry.cc +334 -0
- data/src/core/ext/xds/xds_lb_policy_registry.h +71 -0
- data/src/core/ext/xds/xds_listener.cc +573 -481
- data/src/core/ext/xds/xds_listener.h +57 -51
- data/src/core/ext/xds/xds_resource_type.h +28 -22
- data/src/core/ext/xds/xds_resource_type_impl.h +18 -17
- data/src/core/ext/xds/xds_route_config.cc +592 -570
- data/src/core/ext/xds/xds_route_config.h +74 -40
- data/src/core/ext/xds/xds_routing.cc +21 -7
- data/src/core/ext/xds/xds_routing.h +17 -12
- data/src/core/ext/xds/xds_server_config_fetcher.cc +227 -178
- data/src/core/ext/xds/xds_transport.h +86 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +356 -0
- data/src/core/ext/xds/xds_transport_grpc.h +135 -0
- data/src/core/lib/address_utils/parse_address.cc +52 -52
- data/src/core/lib/address_utils/parse_address.h +46 -42
- data/src/core/lib/address_utils/sockaddr_utils.cc +90 -54
- data/src/core/lib/address_utils/sockaddr_utils.h +45 -40
- data/src/core/lib/avl/avl.h +57 -33
- data/src/core/lib/backoff/backoff.cc +19 -21
- data/src/core/lib/backoff/backoff.h +21 -21
- data/src/core/lib/backoff/random_early_detection.cc +31 -0
- data/src/core/lib/backoff/random_early_detection.h +59 -0
- data/src/core/lib/channel/call_finalization.h +6 -4
- data/src/core/lib/channel/call_tracer.h +23 -8
- data/src/core/lib/channel/channel_args.cc +149 -61
- data/src/core/lib/channel/channel_args.h +308 -104
- data/src/core/lib/channel/channel_args_preconditioning.cc +4 -3
- data/src/core/lib/channel/channel_args_preconditioning.h +6 -5
- data/src/core/lib/channel/channel_fwd.h +26 -0
- data/src/core/lib/channel/channel_stack.cc +92 -52
- data/src/core/lib/channel/channel_stack.h +184 -135
- data/src/core/lib/channel/channel_stack_builder.cc +26 -39
- data/src/core/lib/channel/channel_stack_builder.h +33 -40
- data/src/core/lib/channel/channel_stack_builder_impl.cc +84 -60
- data/src/core/lib/channel/channel_stack_builder_impl.h +9 -9
- data/src/core/lib/channel/channel_trace.cc +29 -36
- data/src/core/lib/channel/channel_trace.h +27 -24
- data/src/core/lib/channel/channelz.cc +50 -65
- data/src/core/lib/channel/channelz.h +50 -33
- data/src/core/lib/channel/channelz_registry.cc +28 -36
- data/src/core/lib/channel/channelz_registry.h +31 -30
- data/src/core/lib/channel/connected_channel.cc +1267 -78
- data/src/core/lib/channel/connected_channel.h +21 -23
- data/src/core/lib/channel/context.h +25 -21
- data/src/core/lib/channel/promise_based_filter.cc +1896 -377
- data/src/core/lib/channel/promise_based_filter.h +592 -92
- data/src/core/lib/channel/status_util.cc +64 -17
- data/src/core/lib/channel/status_util.h +38 -24
- data/src/core/lib/compression/compression.cc +24 -19
- data/src/core/lib/compression/compression_internal.cc +88 -63
- data/src/core/lib/compression/compression_internal.h +28 -27
- data/src/core/lib/compression/message_compress.cc +28 -26
- data/src/core/lib/compression/message_compress.h +28 -29
- data/src/core/lib/config/core_configuration.cc +8 -1
- data/src/core/lib/config/core_configuration.h +86 -39
- data/src/core/lib/debug/event_log.cc +88 -0
- data/src/core/lib/debug/event_log.h +81 -0
- data/src/core/lib/debug/histogram_view.cc +69 -0
- data/src/core/lib/debug/histogram_view.h +37 -0
- data/src/core/lib/debug/stats.cc +48 -152
- data/src/core/lib/debug/stats.h +50 -57
- data/src/core/lib/debug/stats_data.cc +302 -645
- data/src/core/lib/debug/stats_data.h +293 -545
- data/src/core/lib/debug/trace.cc +18 -20
- data/src/core/lib/debug/trace.h +27 -48
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +16 -17
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +16 -9
- data/src/core/lib/event_engine/common_closures.h +71 -0
- data/src/core/lib/event_engine/default_event_engine.cc +99 -0
- data/src/core/lib/event_engine/default_event_engine.h +73 -0
- data/src/core/lib/event_engine/default_event_engine_factory.cc +24 -3
- data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine_factory.h} +6 -9
- data/src/core/lib/event_engine/event_engine.cc +3 -30
- data/src/core/lib/event_engine/executor/executor.h +38 -0
- data/src/core/lib/event_engine/forkable.cc +106 -0
- data/src/core/lib/event_engine/forkable.h +61 -0
- data/src/core/lib/event_engine/handle_containers.h +74 -0
- data/src/core/lib/event_engine/memory_allocator.cc +11 -3
- data/src/core/lib/event_engine/poller.h +62 -0
- data/src/core/lib/event_engine/posix.h +158 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +642 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +139 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +899 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +97 -0
- data/src/core/lib/event_engine/posix_engine/event_poller.h +111 -0
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +74 -0
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +33 -0
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +77 -0
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +179 -0
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +265 -0
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +73 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1305 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +717 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +640 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +259 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +80 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +289 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +279 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +379 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +91 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +853 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +316 -0
- data/src/core/lib/event_engine/posix_engine/timer.cc +311 -0
- data/src/core/lib/event_engine/posix_engine/timer.h +194 -0
- data/src/core/lib/event_engine/posix_engine/timer_heap.cc +107 -0
- data/src/core/lib/event_engine/posix_engine/timer_heap.h +56 -0
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +173 -0
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +114 -0
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +332 -0
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +185 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +127 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +45 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +150 -0
- data/src/core/lib/{iomgr/event_engine/promise.h → event_engine/posix_engine/wakeup_fd_pipe.h} +19 -25
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +76 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +67 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +37 -0
- data/src/core/lib/event_engine/resolved_address.cc +23 -2
- data/src/core/lib/{iomgr/event_engine → event_engine}/resolved_address_internal.h +5 -8
- data/src/core/lib/event_engine/shim.cc +56 -0
- data/src/core/lib/event_engine/shim.h +33 -0
- data/src/core/lib/event_engine/slice.cc +103 -0
- data/src/core/lib/event_engine/slice_buffer.cc +50 -0
- data/src/core/lib/event_engine/tcp_socket_utils.cc +389 -0
- data/src/core/lib/event_engine/tcp_socket_utils.h +90 -0
- data/src/core/lib/event_engine/thread_local.cc +29 -0
- data/src/core/lib/event_engine/thread_local.h +32 -0
- data/src/core/lib/event_engine/thread_pool.cc +253 -0
- data/src/core/lib/event_engine/thread_pool.h +141 -0
- data/src/core/lib/event_engine/time_util.cc +30 -0
- data/src/core/lib/event_engine/time_util.h +32 -0
- data/src/core/lib/{iomgr/endpoint_pair_event_engine.cc → event_engine/trace.cc} +9 -17
- data/src/core/lib/event_engine/trace.h +43 -0
- data/src/core/lib/event_engine/utils.cc +44 -0
- data/src/core/lib/event_engine/utils.h +44 -0
- data/src/core/lib/event_engine/windows/iocp.cc +140 -0
- data/src/core/lib/event_engine/windows/iocp.h +69 -0
- data/src/core/lib/event_engine/windows/win_socket.cc +219 -0
- data/src/core/lib/event_engine/windows/win_socket.h +129 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +331 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.h +103 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +388 -0
- data/src/core/lib/event_engine/windows/windows_engine.h +163 -0
- data/src/core/lib/experiments/config.cc +161 -0
- data/src/core/lib/experiments/config.h +53 -0
- data/src/core/lib/experiments/experiments.cc +81 -0
- data/src/core/lib/experiments/experiments.h +117 -0
- data/src/core/lib/gpr/alloc.cc +19 -25
- data/src/core/lib/gpr/alloc.h +20 -20
- data/src/core/lib/gpr/atm.cc +17 -17
- data/src/core/lib/gpr/cpu_iphone.cc +24 -24
- data/src/core/lib/gpr/cpu_linux.cc +28 -23
- data/src/core/lib/gpr/cpu_posix.cc +23 -22
- data/src/core/lib/gpr/cpu_windows.cc +20 -18
- data/src/core/lib/gpr/log.cc +30 -17
- data/src/core/lib/gpr/log_android.cc +22 -20
- data/src/core/lib/gpr/log_linux.cc +24 -24
- data/src/core/lib/gpr/log_posix.cc +20 -19
- data/src/core/lib/gpr/log_windows.cc +25 -25
- data/src/core/lib/gpr/spinlock.h +20 -20
- data/src/core/lib/gpr/string.cc +25 -24
- data/src/core/lib/gpr/string.h +61 -61
- data/src/core/lib/gpr/string_posix.cc +24 -24
- data/src/core/lib/gpr/string_util_windows.cc +25 -52
- data/src/core/lib/gpr/string_windows.cc +24 -24
- data/src/core/lib/gpr/sync.cc +25 -25
- data/src/core/lib/gpr/sync_abseil.cc +36 -40
- data/src/core/lib/gpr/sync_posix.cc +22 -34
- data/src/core/lib/gpr/sync_windows.cc +29 -27
- data/src/core/lib/gpr/time.cc +34 -30
- data/src/core/lib/gpr/time_posix.cc +41 -45
- data/src/core/lib/gpr/time_precise.cc +22 -22
- data/src/core/lib/gpr/time_precise.h +21 -22
- data/src/core/lib/gpr/time_windows.cc +35 -29
- data/src/core/lib/gpr/tmpfile.h +24 -24
- data/src/core/lib/gpr/tmpfile_msys.cc +21 -20
- data/src/core/lib/gpr/tmpfile_posix.cc +22 -20
- data/src/core/lib/gpr/tmpfile_windows.cc +28 -29
- data/src/core/lib/gpr/useful.h +83 -30
- data/src/core/lib/gpr/wrap_memcpy.cc +23 -23
- data/src/core/lib/gprpp/atomic_utils.h +20 -20
- data/src/core/lib/gprpp/bitset.h +35 -17
- data/src/core/lib/gprpp/chunked_vector.h +7 -3
- data/src/core/lib/gprpp/construct_destruct.h +4 -3
- data/src/core/lib/gprpp/cpp_impl_of.h +3 -3
- data/src/core/{ext/xds/xds_resource_type.cc → lib/gprpp/crash.cc} +12 -12
- data/src/core/lib/gprpp/crash.h +34 -0
- data/src/core/lib/gprpp/debug_location.h +60 -31
- data/src/core/lib/gprpp/dual_ref_counted.h +4 -7
- data/src/core/lib/gprpp/env.h +53 -0
- data/src/core/lib/gprpp/env_linux.cc +80 -0
- data/src/core/{ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc → lib/gprpp/env_posix.cc} +25 -9
- data/src/core/lib/gprpp/env_windows.cc +56 -0
- data/src/core/lib/gprpp/examine_stack.cc +17 -17
- data/src/core/lib/gprpp/examine_stack.h +21 -22
- data/src/core/lib/gprpp/fork.cc +58 -53
- data/src/core/lib/gprpp/fork.h +29 -35
- data/src/core/lib/gprpp/global_config.h +22 -24
- data/src/core/lib/gprpp/global_config_custom.h +20 -20
- data/src/core/lib/gprpp/global_config_env.cc +28 -25
- data/src/core/lib/gprpp/global_config_env.h +29 -27
- data/src/core/lib/gprpp/global_config_generic.h +21 -25
- data/src/core/lib/gprpp/host_port.cc +30 -26
- data/src/core/lib/gprpp/host_port.h +32 -31
- data/src/core/lib/gprpp/load_file.cc +75 -0
- data/src/core/lib/gprpp/load_file.h +33 -0
- data/src/core/lib/gprpp/manual_constructor.h +21 -89
- data/src/core/lib/gprpp/match.h +5 -3
- data/src/core/lib/gprpp/memory.h +22 -26
- data/src/core/lib/gprpp/mpscq.cc +17 -17
- data/src/core/lib/gprpp/mpscq.h +21 -21
- data/src/core/lib/gprpp/no_destruct.h +95 -0
- data/src/core/lib/gprpp/notification.h +67 -0
- data/src/core/lib/gprpp/orphanable.h +22 -25
- data/src/core/lib/gprpp/overload.h +3 -3
- data/src/core/lib/gprpp/packed_table.h +40 -0
- data/src/core/lib/gprpp/per_cpu.h +46 -0
- data/src/core/lib/gprpp/ref_counted.h +22 -24
- data/src/core/lib/gprpp/ref_counted_ptr.h +42 -55
- data/src/core/lib/gprpp/single_set_ptr.h +3 -3
- data/src/core/lib/gprpp/sorted_pack.h +98 -0
- data/src/core/lib/gprpp/stat.h +3 -5
- data/src/core/lib/gprpp/stat_posix.cc +10 -4
- data/src/core/lib/gprpp/stat_windows.cc +4 -2
- data/src/core/lib/gprpp/status_helper.cc +55 -35
- data/src/core/lib/gprpp/status_helper.h +13 -5
- data/src/core/lib/gprpp/strerror.cc +43 -0
- data/src/core/lib/gprpp/strerror.h +29 -0
- data/src/core/lib/gprpp/sync.h +26 -24
- data/src/core/lib/gprpp/table.h +22 -4
- data/src/core/lib/gprpp/tchar.cc +49 -0
- data/src/core/lib/gprpp/tchar.h +33 -0
- data/src/core/lib/gprpp/thd.h +25 -28
- data/src/core/lib/gprpp/thd_posix.cc +33 -32
- data/src/core/lib/gprpp/thd_windows.cc +28 -26
- data/src/core/lib/gprpp/time.cc +52 -9
- data/src/core/lib/gprpp/time.h +78 -4
- data/src/core/lib/gprpp/time_averaged_stats.cc +60 -0
- data/src/core/lib/gprpp/time_averaged_stats.h +79 -0
- data/src/core/lib/gprpp/time_util.cc +4 -0
- data/src/core/lib/gprpp/time_util.h +3 -3
- data/src/core/lib/gprpp/unique_type_name.h +104 -0
- data/src/core/lib/gprpp/validation_errors.cc +61 -0
- data/src/core/lib/gprpp/validation_errors.h +127 -0
- data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
- data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -28
- data/src/core/lib/handshaker/proxy_mapper.h +53 -0
- data/src/core/lib/handshaker/proxy_mapper_registry.cc +71 -0
- data/src/core/lib/handshaker/proxy_mapper_registry.h +75 -0
- data/src/core/lib/http/format_request.cc +53 -22
- data/src/core/lib/http/format_request.h +23 -21
- data/src/core/lib/http/httpcli.cc +139 -141
- data/src/core/lib/http/httpcli.h +86 -38
- data/src/core/lib/http/httpcli_security_connector.cc +50 -42
- data/src/core/lib/http/httpcli_ssl_credentials.h +6 -4
- data/src/core/lib/http/parser.cc +78 -90
- data/src/core/lib/http/parser.h +38 -35
- data/src/core/lib/iomgr/block_annotate.h +23 -23
- data/src/core/lib/iomgr/buffer_list.cc +156 -136
- data/src/core/lib/iomgr/buffer_list.h +123 -101
- data/src/core/lib/iomgr/call_combiner.cc +32 -64
- data/src/core/lib/iomgr/call_combiner.h +24 -25
- data/src/core/lib/iomgr/cfstream_handle.cc +33 -36
- data/src/core/lib/iomgr/cfstream_handle.h +25 -25
- data/src/core/lib/iomgr/{event_engine/pollset.h → closure.cc} +9 -7
- data/src/core/lib/iomgr/closure.h +95 -58
- data/src/core/lib/iomgr/combiner.cc +20 -39
- data/src/core/lib/iomgr/combiner.h +20 -20
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +21 -21
- data/src/core/lib/iomgr/dynamic_annotations.h +22 -22
- data/src/core/lib/iomgr/endpoint.cc +21 -21
- data/src/core/lib/iomgr/endpoint.h +53 -51
- data/src/core/lib/iomgr/endpoint_cfstream.cc +51 -47
- data/src/core/lib/iomgr/endpoint_cfstream.h +32 -32
- data/src/core/lib/iomgr/endpoint_pair.h +22 -22
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +36 -29
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +31 -22
- data/src/core/lib/iomgr/error.cc +51 -834
- data/src/core/lib/iomgr/error.h +45 -317
- data/src/core/lib/iomgr/error_cfstream.cc +18 -23
- data/src/core/lib/iomgr/error_cfstream.h +21 -21
- data/src/core/lib/iomgr/ev_apple.cc +21 -21
- data/src/core/lib/iomgr/ev_apple.h +21 -21
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +263 -248
- data/src/core/lib/iomgr/ev_epoll1_linux.h +21 -21
- data/src/core/lib/iomgr/ev_poll_posix.cc +296 -271
- data/src/core/lib/iomgr/ev_poll_posix.h +22 -22
- data/src/core/lib/iomgr/ev_posix.cc +88 -121
- data/src/core/lib/iomgr/ev_posix.h +93 -87
- data/src/core/lib/iomgr/ev_windows.cc +18 -18
- data/src/core/lib/iomgr/{event_engine → event_engine_shims}/closure.cc +15 -30
- data/src/core/lib/iomgr/{event_engine → event_engine_shims}/closure.h +10 -13
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +430 -0
- data/src/core/lib/iomgr/event_engine_shims/endpoint.h +43 -0
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +91 -0
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +44 -0
- data/src/core/lib/iomgr/exec_ctx.cc +34 -56
- data/src/core/lib/iomgr/exec_ctx.h +152 -177
- data/src/core/lib/iomgr/executor.cc +21 -31
- data/src/core/lib/iomgr/executor.h +27 -30
- data/src/core/lib/iomgr/fork_posix.cc +30 -27
- data/src/core/lib/iomgr/fork_windows.cc +21 -21
- data/src/core/lib/iomgr/gethostname.h +20 -20
- data/src/core/lib/iomgr/gethostname_fallback.cc +17 -17
- data/src/core/lib/iomgr/gethostname_host_name_max.cc +17 -17
- data/src/core/lib/iomgr/gethostname_sysconf.cc +17 -17
- data/src/core/lib/iomgr/grpc_if_nametoindex.h +22 -22
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +20 -19
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +20 -19
- data/src/core/lib/iomgr/internal_errqueue.cc +41 -48
- data/src/core/lib/iomgr/internal_errqueue.h +84 -89
- data/src/core/lib/iomgr/iocp_windows.cc +23 -23
- data/src/core/lib/iomgr/iocp_windows.h +21 -21
- data/src/core/lib/iomgr/iomgr.cc +25 -20
- data/src/core/lib/iomgr/iomgr.h +35 -35
- data/src/core/lib/iomgr/iomgr_fwd.h +26 -0
- data/src/core/lib/iomgr/iomgr_internal.cc +17 -17
- data/src/core/lib/iomgr/iomgr_internal.h +28 -28
- data/src/core/lib/iomgr/iomgr_posix.cc +21 -20
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +21 -19
- data/src/core/lib/iomgr/iomgr_windows.cc +24 -22
- data/src/core/lib/iomgr/load_file.cc +24 -27
- data/src/core/lib/iomgr/load_file.h +22 -22
- data/src/core/lib/iomgr/lockfree_event.cc +114 -131
- data/src/core/lib/iomgr/lockfree_event.h +23 -23
- data/src/core/lib/iomgr/nameser.h +86 -86
- data/src/core/lib/iomgr/polling_entity.cc +25 -21
- data/src/core/lib/iomgr/polling_entity.h +29 -29
- data/src/core/lib/iomgr/pollset.cc +17 -17
- data/src/core/lib/iomgr/pollset.h +55 -55
- data/src/core/lib/iomgr/pollset_set.cc +17 -17
- data/src/core/lib/iomgr/pollset_set.h +26 -28
- data/src/core/lib/iomgr/pollset_set_windows.cc +18 -18
- data/src/core/lib/iomgr/pollset_set_windows.h +20 -20
- data/src/core/lib/iomgr/pollset_windows.cc +32 -31
- data/src/core/lib/iomgr/pollset_windows.h +24 -24
- data/src/core/lib/iomgr/port.h +59 -37
- data/src/core/lib/iomgr/python_util.h +24 -24
- data/src/core/lib/iomgr/resolve_address.cc +34 -20
- data/src/core/lib/iomgr/resolve_address.h +73 -43
- data/src/core/lib/iomgr/resolve_address_impl.h +7 -7
- data/src/core/lib/iomgr/resolve_address_posix.cc +81 -62
- data/src/core/lib/iomgr/resolve_address_posix.h +26 -10
- data/src/core/lib/iomgr/resolve_address_windows.cc +64 -38
- data/src/core/lib/iomgr/resolve_address_windows.h +26 -10
- data/src/core/lib/iomgr/resolved_address.h +3 -3
- data/src/core/lib/iomgr/sockaddr.h +25 -26
- data/src/core/lib/iomgr/sockaddr_posix.h +23 -21
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +20 -18
- data/src/core/lib/iomgr/sockaddr_windows.h +23 -21
- data/src/core/lib/iomgr/socket_factory_posix.cc +18 -18
- data/src/core/lib/iomgr/socket_factory_posix.h +32 -32
- data/src/core/lib/iomgr/socket_mutator.cc +19 -18
- data/src/core/lib/iomgr/socket_mutator.h +39 -39
- data/src/core/lib/iomgr/socket_utils.h +27 -27
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +82 -101
- data/src/core/lib/iomgr/socket_utils_linux.cc +18 -17
- data/src/core/lib/iomgr/socket_utils_posix.cc +103 -19
- data/src/core/lib/iomgr/socket_utils_posix.h +176 -84
- data/src/core/lib/iomgr/socket_utils_windows.cc +20 -19
- data/src/core/lib/iomgr/socket_windows.cc +37 -36
- data/src/core/lib/iomgr/socket_windows.h +59 -61
- data/src/core/lib/iomgr/systemd_utils.cc +116 -0
- data/src/core/lib/iomgr/systemd_utils.h +33 -0
- data/src/core/lib/iomgr/tcp_client.cc +28 -24
- data/src/core/lib/iomgr/tcp_client.h +49 -38
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +46 -35
- data/src/core/lib/iomgr/tcp_client_posix.cc +243 -105
- data/src/core/lib/iomgr/tcp_client_posix.h +55 -52
- data/src/core/lib/iomgr/tcp_client_windows.cc +73 -53
- data/src/core/lib/iomgr/tcp_posix.cc +505 -362
- data/src/core/lib/iomgr/tcp_posix.h +32 -30
- data/src/core/lib/iomgr/tcp_server.cc +33 -24
- data/src/core/lib/iomgr/tcp_server.h +78 -69
- data/src/core/lib/iomgr/tcp_server_posix.cc +381 -133
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +68 -55
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +120 -82
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +46 -43
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +19 -19
- data/src/core/lib/iomgr/tcp_server_windows.cc +116 -118
- data/src/core/lib/iomgr/tcp_windows.cc +116 -98
- data/src/core/lib/iomgr/tcp_windows.h +34 -35
- data/src/core/lib/iomgr/timer.cc +17 -17
- data/src/core/lib/iomgr/timer.h +68 -68
- data/src/core/lib/iomgr/timer_generic.cc +125 -134
- data/src/core/lib/iomgr/timer_generic.h +21 -21
- data/src/core/lib/iomgr/timer_heap.cc +25 -25
- data/src/core/lib/iomgr/timer_heap.h +22 -22
- data/src/core/lib/iomgr/timer_manager.cc +31 -31
- data/src/core/lib/iomgr/timer_manager.h +27 -27
- data/src/core/lib/iomgr/unix_sockets_posix.cc +20 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +21 -21
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +19 -17
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +23 -23
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +23 -23
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +29 -26
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +20 -20
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +33 -30
- data/src/core/lib/iomgr/wakeup_fd_posix.h +52 -54
- data/src/core/lib/json/json.h +23 -27
- data/src/core/{ext/filters/http/message_compress/message_decompress_filter.h → lib/json/json_args.h} +13 -10
- data/src/core/lib/json/json_channel_args.h +42 -0
- data/src/core/lib/json/json_object_loader.cc +217 -0
- data/src/core/lib/json/json_object_loader.h +634 -0
- data/src/core/lib/json/json_reader.cc +123 -90
- data/src/core/lib/json/json_util.cc +14 -34
- data/src/core/lib/json/json_util.h +17 -8
- data/src/core/lib/json/json_writer.cc +62 -57
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.cc +30 -60
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +47 -62
- data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +142 -0
- data/src/core/lib/load_balancing/lb_policy_registry.h +82 -0
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +57 -52
- data/src/core/lib/matchers/matchers.cc +12 -7
- data/src/core/lib/matchers/matchers.h +5 -3
- data/src/core/lib/promise/activity.cc +23 -8
- data/src/core/lib/promise/activity.h +116 -58
- data/src/core/lib/promise/arena_promise.h +115 -72
- data/src/core/lib/promise/context.h +18 -11
- data/src/core/lib/promise/detail/basic_join.h +197 -0
- data/src/core/lib/promise/detail/basic_seq.h +28 -33
- data/src/core/lib/promise/detail/promise_factory.h +61 -14
- data/src/core/lib/promise/detail/promise_like.h +3 -3
- data/src/core/lib/promise/detail/status.h +31 -3
- data/src/core/lib/promise/detail/switch.h +21 -21
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +23 -15
- data/src/core/lib/promise/if.h +195 -0
- data/src/core/lib/promise/interceptor_list.h +308 -0
- data/src/core/lib/promise/intra_activity_waiter.h +9 -3
- data/src/core/lib/promise/latch.h +109 -22
- data/src/core/lib/promise/loop.h +13 -9
- data/src/core/lib/promise/map.h +4 -6
- data/src/core/lib/promise/pipe.h +608 -0
- data/src/core/lib/promise/poll.h +129 -11
- data/src/core/lib/promise/promise.h +5 -5
- data/src/core/lib/promise/race.h +6 -10
- data/src/core/lib/promise/seq.h +32 -14
- data/src/core/lib/promise/sleep.cc +58 -42
- data/src/core/lib/promise/sleep.h +44 -26
- data/src/core/lib/promise/trace.cc +20 -0
- data/src/core/lib/promise/trace.h +24 -0
- data/src/core/lib/promise/try_join.h +82 -0
- data/src/core/lib/promise/try_seq.h +41 -23
- data/src/core/lib/resolver/resolver.cc +17 -59
- data/src/core/lib/resolver/resolver.h +21 -18
- data/src/core/lib/resolver/resolver_factory.h +11 -10
- data/src/core/lib/resolver/resolver_registry.cc +17 -9
- data/src/core/lib/resolver/resolver_registry.h +15 -5
- data/src/core/lib/resolver/server_address.cc +46 -34
- data/src/core/lib/resolver/server_address.h +36 -35
- data/src/core/lib/resource_quota/api.cc +23 -2
- data/src/core/lib/resource_quota/api.h +13 -4
- data/src/core/lib/resource_quota/arena.cc +85 -27
- data/src/core/lib/resource_quota/arena.h +197 -25
- data/src/core/lib/resource_quota/memory_quota.cc +322 -101
- data/src/core/lib/resource_quota/memory_quota.h +191 -56
- data/src/core/lib/resource_quota/periodic_update.cc +78 -0
- data/src/core/lib/resource_quota/periodic_update.h +71 -0
- data/src/core/lib/resource_quota/resource_quota.h +12 -4
- data/src/core/lib/resource_quota/thread_quota.cc +2 -0
- data/src/core/lib/resource_quota/thread_quota.h +7 -3
- data/src/core/lib/resource_quota/trace.h +3 -3
- data/src/core/lib/security/authorization/authorization_engine.h +3 -3
- data/src/core/lib/security/authorization/authorization_policy_provider.h +10 -3
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +3 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +17 -8
- data/src/core/lib/security/authorization/evaluate_args.h +9 -6
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +5 -1
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +10 -3
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +19 -3
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +16 -5
- data/src/core/lib/security/authorization/matchers.cc +44 -30
- data/src/core/lib/security/authorization/matchers.h +10 -3
- data/src/core/lib/security/authorization/rbac_policy.cc +6 -2
- data/src/core/lib/security/authorization/rbac_policy.h +10 -3
- data/src/core/{ext/xds → lib/security/certificate_provider}/certificate_provider_factory.h +9 -4
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +60 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +70 -0
- data/src/core/lib/security/context/security_context.cc +27 -25
- data/src/core/lib/security/context/security_context.h +56 -34
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +31 -24
- data/src/core/lib/security/credentials/alts/alts_credentials.h +63 -59
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +19 -19
- data/src/core/lib/security/credentials/alts/check_gcp_environment.h +43 -43
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +17 -17
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +18 -17
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +18 -17
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +20 -22
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +18 -18
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +38 -39
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +19 -22
- data/src/core/lib/security/credentials/call_creds_util.cc +10 -0
- data/src/core/lib/security/credentials/call_creds_util.h +4 -3
- data/src/core/lib/security/credentials/channel_creds_registry.h +10 -4
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +13 -3
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +34 -34
- data/src/core/lib/security/credentials/composite/composite_credentials.h +45 -33
- data/src/core/lib/security/credentials/credentials.cc +23 -26
- data/src/core/lib/security/credentials/credentials.h +79 -65
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +202 -74
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +21 -3
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +14 -3
- data/src/core/lib/security/credentials/external/aws_request_signer.h +3 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +86 -68
- data/src/core/lib/security/credentials/external/external_account_credentials.h +14 -3
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +29 -26
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +9 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +44 -31
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +13 -3
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +43 -39
- data/src/core/lib/security/credentials/fake/fake_credentials.h +51 -44
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +23 -25
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +146 -114
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +33 -27
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +31 -21
- data/src/core/lib/security/credentials/iam/iam_credentials.h +33 -23
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +15 -5
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +14 -10
- data/src/core/lib/security/credentials/jwt/json_token.cc +40 -29
- data/src/core/lib/security/credentials/jwt/json_token.h +36 -36
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +32 -29
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +37 -23
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +113 -89
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +49 -47
- data/src/core/lib/security/credentials/local/local_credentials.cc +32 -26
- data/src/core/lib/security/credentials/local/local_credentials.h +34 -28
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +95 -87
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +46 -25
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +35 -31
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +48 -24
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +44 -42
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +39 -27
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +22 -30
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +16 -17
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +65 -48
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +27 -16
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +36 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +37 -14
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +22 -23
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +3 -3
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +46 -44
- data/src/core/lib/security/credentials/tls/tls_credentials.h +30 -27
- data/src/core/lib/security/credentials/tls/tls_utils.cc +5 -1
- data/src/core/lib/security/credentials/tls/tls_utils.h +4 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +33 -35
- data/src/core/lib/security/credentials/xds/xds_credentials.h +24 -10
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +60 -54
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +49 -47
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +75 -79
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +25 -26
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +15 -6
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +26 -15
- data/src/core/lib/security/security_connector/load_system_roots.h +20 -20
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +22 -20
- data/src/core/lib/security/security_connector/{load_system_roots_linux.cc → load_system_roots_supported.cc} +43 -38
- data/src/core/lib/security/security_connector/load_system_roots_supported.h +45 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +64 -47
- data/src/core/lib/security/security_connector/local/local_security_connector.h +49 -46
- data/src/core/lib/security/security_connector/security_connector.cc +37 -35
- data/src/core/lib/security/security_connector/security_connector.h +58 -45
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +55 -46
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +44 -43
- data/src/core/lib/security/security_connector/ssl_utils.cc +47 -39
- data/src/core/lib/security/security_connector/ssl_utils.h +45 -42
- data/src/core/lib/security/security_connector/ssl_utils_config.cc +22 -22
- data/src/core/lib/security/security_connector/ssl_utils_config.h +21 -22
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +58 -56
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +48 -28
- data/src/core/lib/security/transport/auth_filters.h +53 -24
- data/src/core/lib/security/transport/client_auth_filter.cc +57 -40
- data/src/core/lib/security/transport/secure_endpoint.cc +130 -75
- data/src/core/lib/security/transport/secure_endpoint.h +28 -27
- data/src/core/lib/security/transport/security_handshaker.cc +144 -114
- data/src/core/lib/security/transport/security_handshaker.h +28 -23
- data/src/core/lib/security/transport/server_auth_filter.cc +157 -266
- data/src/core/lib/security/transport/tsi_error.cc +23 -20
- data/src/core/lib/security/transport/tsi_error.h +20 -20
- data/src/core/lib/security/util/json_util.cc +24 -24
- data/src/core/lib/security/util/json_util.h +21 -23
- data/src/core/lib/service_config/service_config.h +19 -12
- data/src/core/lib/service_config/service_config_call_data.h +15 -5
- data/src/core/lib/service_config/service_config_impl.cc +111 -150
- data/src/core/lib/service_config/service_config_impl.h +27 -27
- data/src/core/lib/service_config/service_config_parser.cc +16 -28
- data/src/core/lib/service_config/service_config_parser.h +18 -19
- data/src/core/lib/slice/b64.cc +26 -26
- data/src/core/lib/slice/b64.h +34 -32
- data/src/core/lib/slice/percent_encoding.cc +24 -30
- data/src/core/lib/slice/percent_encoding.h +28 -34
- data/src/core/lib/slice/slice.cc +59 -46
- data/src/core/lib/slice/slice.h +64 -20
- data/src/core/lib/slice/slice_buffer.cc +136 -76
- data/src/core/lib/slice/slice_buffer.h +168 -0
- data/src/core/lib/slice/slice_internal.h +38 -45
- data/src/core/lib/slice/slice_refcount.cc +3 -18
- data/src/core/lib/slice/slice_refcount.h +53 -19
- data/src/core/lib/slice/slice_string_helpers.cc +17 -33
- data/src/core/lib/slice/slice_string_helpers.h +23 -30
- data/src/core/lib/surface/api_trace.cc +17 -17
- data/src/core/lib/surface/api_trace.h +25 -25
- data/src/core/lib/surface/builtins.cc +7 -2
- data/src/core/lib/surface/builtins.h +3 -3
- data/src/core/lib/surface/byte_buffer.cc +26 -21
- data/src/core/lib/surface/byte_buffer_reader.cc +24 -24
- data/src/core/lib/surface/call.cc +2232 -483
- data/src/core/lib/surface/call.h +135 -42
- data/src/core/lib/surface/call_details.cc +22 -23
- data/src/core/lib/surface/call_log_batch.cc +25 -18
- data/src/core/lib/surface/call_test_only.h +34 -31
- data/src/core/lib/surface/call_trace.cc +123 -0
- data/src/core/{ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc → lib/surface/call_trace.h} +12 -10
- data/src/core/lib/surface/channel.cc +217 -284
- data/src/core/lib/surface/channel.h +137 -90
- data/src/core/lib/surface/channel_init.cc +17 -17
- data/src/core/lib/surface/channel_init.h +22 -20
- data/src/core/lib/surface/channel_ping.cc +26 -20
- data/src/core/lib/surface/channel_stack_type.cc +21 -19
- data/src/core/lib/surface/channel_stack_type.h +22 -22
- data/src/core/lib/surface/completion_queue.cc +200 -222
- data/src/core/lib/surface/completion_queue.h +42 -40
- data/src/core/lib/surface/completion_queue_factory.cc +34 -28
- data/src/core/lib/surface/completion_queue_factory.h +21 -23
- data/src/core/lib/surface/event_string.cc +19 -24
- data/src/core/lib/surface/event_string.h +21 -21
- data/src/core/lib/surface/init.cc +57 -114
- data/src/core/lib/surface/init.h +20 -28
- data/src/core/lib/surface/init_internally.cc +25 -0
- data/src/core/lib/surface/init_internally.h +37 -0
- data/src/core/lib/surface/lame_client.cc +87 -130
- data/src/core/lib/surface/lame_client.h +62 -24
- data/src/core/lib/surface/metadata_array.cc +18 -17
- data/src/core/lib/surface/server.cc +406 -174
- data/src/core/lib/surface/server.h +56 -24
- data/src/core/lib/surface/validate_metadata.cc +64 -77
- data/src/core/lib/surface/validate_metadata.h +33 -21
- data/src/core/lib/surface/version.cc +21 -21
- data/src/core/lib/transport/bdp_estimator.cc +19 -19
- data/src/core/lib/transport/bdp_estimator.h +22 -24
- data/src/core/lib/transport/connectivity_state.cc +24 -23
- data/src/core/lib/transport/connectivity_state.h +24 -25
- data/src/core/lib/transport/error_utils.cc +57 -79
- data/src/core/lib/transport/error_utils.h +29 -25
- data/src/core/lib/{channel → transport}/handshaker.cc +75 -58
- data/src/core/lib/{channel → transport}/handshaker.h +59 -48
- data/src/core/lib/transport/handshaker_factory.h +74 -0
- data/src/core/lib/transport/handshaker_registry.cc +61 -0
- data/src/core/lib/transport/handshaker_registry.h +69 -0
- data/src/core/lib/transport/http2_errors.h +22 -22
- data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.cc +78 -65
- data/src/core/lib/transport/http_connect_handshaker.h +42 -0
- data/src/core/lib/transport/metadata_batch.cc +305 -0
- data/src/core/lib/transport/metadata_batch.h +405 -304
- data/src/core/lib/transport/parsed_metadata.cc +2 -4
- data/src/core/lib/transport/parsed_metadata.h +33 -14
- data/src/core/lib/transport/pid_controller.cc +20 -20
- data/src/core/lib/transport/pid_controller.h +27 -27
- data/src/core/lib/transport/status_conversion.cc +23 -23
- data/src/core/lib/transport/status_conversion.h +24 -24
- data/src/core/lib/transport/tcp_connect_handshaker.cc +245 -0
- data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
- data/src/core/lib/transport/timeout_encoding.cc +24 -28
- data/src/core/lib/transport/timeout_encoding.h +25 -21
- data/src/core/lib/transport/transport.cc +97 -57
- data/src/core/lib/transport/transport.h +243 -213
- data/src/core/lib/transport/transport_fwd.h +20 -0
- data/src/core/lib/transport/transport_impl.h +55 -45
- data/src/core/lib/transport/transport_op_string.cc +40 -39
- data/src/core/lib/uri/uri_parser.cc +12 -4
- data/src/core/lib/uri/uri_parser.h +3 -5
- data/src/core/plugin_registry/grpc_plugin_registry.cc +60 -69
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +20 -39
- data/src/core/tsi/alts/crypt/aes_gcm.cc +20 -20
- data/src/core/tsi/alts/crypt/gsec.cc +26 -26
- data/src/core/tsi/alts/crypt/gsec.h +336 -336
- data/src/core/tsi/alts/frame_protector/alts_counter.cc +23 -23
- data/src/core/tsi/alts/frame_protector/alts_counter.h +68 -68
- data/src/core/tsi/alts/frame_protector/alts_crypter.cc +19 -19
- data/src/core/tsi/alts/frame_protector/alts_crypter.h +209 -209
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +72 -71
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +40 -40
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +18 -18
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +82 -83
- data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +22 -22
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +22 -22
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +26 -25
- data/src/core/tsi/alts/frame_protector/frame_handler.h +169 -169
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +117 -97
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +104 -104
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +18 -17
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +43 -44
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +51 -43
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +60 -60
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +24 -24
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +21 -20
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +38 -38
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +19 -19
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +105 -104
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +45 -44
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +40 -41
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +38 -36
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +35 -36
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +67 -68
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +32 -31
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +55 -56
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +54 -53
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +141 -142
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +67 -58
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +43 -44
- data/src/core/tsi/fake_transport_security.cc +146 -110
- data/src/core/tsi/fake_transport_security.h +36 -30
- data/src/core/tsi/local_transport_security.cc +43 -38
- data/src/core/tsi/local_transport_security.h +33 -33
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +9 -4
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +3 -3
- data/src/core/tsi/ssl/session_cache/ssl_session.h +23 -21
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +21 -19
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +18 -17
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +31 -22
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +27 -20
- data/src/core/tsi/ssl_transport_security.cc +299 -370
- data/src/core/tsi/ssl_transport_security.h +206 -203
- data/src/core/tsi/ssl_transport_security_utils.cc +250 -0
- data/src/core/tsi/ssl_transport_security_utils.h +147 -0
- data/src/core/tsi/ssl_types.h +27 -27
- data/src/core/tsi/transport_security.cc +44 -32
- data/src/core/tsi/transport_security.h +49 -48
- data/src/core/tsi/transport_security_grpc.cc +23 -22
- data/src/core/tsi/transport_security_grpc.h +44 -41
- data/src/core/tsi/transport_security_interface.h +344 -332
- data/src/ruby/ext/grpc/ext-export-truffleruby-with-ruby-abi-version.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-truffleruby-with-ruby-abi-version.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export.gcc +1 -1
- data/src/ruby/ext/grpc/extconf.rb +98 -20
- data/src/ruby/ext/grpc/rb_call.c +1 -0
- data/src/ruby/ext/grpc/rb_channel.c +1 -0
- data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +38 -38
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +60 -60
- data/src/ruby/ext/grpc/rb_loader.c +6 -2
- data/src/ruby/lib/grpc/errors.rb +1 -1
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +0 -6
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
- data/src/ruby/spec/channel_spec.rb +5 -43
- data/src/ruby/spec/client_server_spec.rb +20 -8
- data/src/ruby/spec/generic/active_call_spec.rb +12 -3
- data/src/ruby/spec/generic/client_stub_spec.rb +23 -23
- data/src/ruby/spec/generic/server_interceptors_spec.rb +1 -1
- data/src/ruby/spec/user_agent_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +57 -58
- data/third_party/abseil-cpp/absl/base/attributes.h +88 -41
- data/third_party/abseil-cpp/absl/base/casts.h +61 -68
- data/third_party/abseil-cpp/absl/base/config.h +221 -39
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +52 -2
- data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +55 -0
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +5 -4
- data/third_party/abseil-cpp/absl/base/internal/endian.h +17 -62
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +2 -0
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +3 -3
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +54 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +1 -1
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +39 -28
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +36 -36
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +6 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +10 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +4 -1
- data/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
- data/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +14 -11
- data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +9 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +2 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +6 -7
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -40
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +62 -0
- data/third_party/abseil-cpp/absl/base/log_severity.cc +28 -0
- data/third_party/abseil-cpp/absl/base/log_severity.h +51 -0
- data/third_party/abseil-cpp/absl/base/macros.h +4 -21
- data/third_party/abseil-cpp/absl/base/optimization.h +76 -16
- data/third_party/abseil-cpp/absl/base/options.h +1 -7
- data/third_party/abseil-cpp/absl/base/policy_checks.h +15 -13
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +2 -2
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
- data/third_party/abseil-cpp/absl/container/fixed_array.h +9 -5
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +11 -4
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +503 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +84 -25
- data/third_party/abseil-cpp/absl/container/internal/common.h +9 -8
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +132 -0
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +23 -29
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +4 -55
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +116 -23
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +40 -54
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +165 -66
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +159 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1121 -470
- data/third_party/abseil-cpp/absl/crc/crc32c.cc +99 -0
- data/third_party/abseil-cpp/absl/crc/crc32c.h +183 -0
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +256 -0
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +57 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc.cc +468 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc.h +91 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +269 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc32c.h +39 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc32c_inline.h +72 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +130 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +159 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +179 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy.h +119 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +75 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +434 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +93 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +725 -0
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +79 -0
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +180 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -88
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +67 -38
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +16 -13
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +3 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +19 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +2 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +59 -102
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +5 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +41 -11
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +18 -4
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +6 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +164 -101
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +7 -6
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +316 -0
- data/third_party/abseil-cpp/absl/functional/bind_front.h +10 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -1
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +878 -0
- data/third_party/abseil-cpp/absl/hash/hash.h +82 -8
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +10 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +235 -26
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +3 -14
- data/third_party/abseil-cpp/absl/memory/memory.h +26 -447
- data/third_party/abseil-cpp/absl/meta/type_traits.h +104 -12
- data/third_party/abseil-cpp/absl/numeric/bits.h +1 -1
- data/third_party/abseil-cpp/absl/numeric/int128.cc +14 -10
- data/third_party/abseil-cpp/absl/numeric/int128.h +2 -2
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +33 -10
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +4 -4
- data/third_party/abseil-cpp/absl/random/distributions.h +3 -3
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +3 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +4 -2
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +59 -48
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +3 -24
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +9 -9
- data/third_party/abseil-cpp/absl/random/internal/randen.h +5 -11
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -2
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +48 -23
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +24 -26
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +2 -2
- data/third_party/abseil-cpp/absl/random/internal/traits.h +53 -5
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +5 -5
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +33 -48
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +9 -10
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +7 -4
- data/third_party/abseil-cpp/absl/random/random.h +6 -6
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +1 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +2 -2
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +4 -3
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/status.cc +193 -14
- data/third_party/abseil-cpp/absl/status/status.h +24 -14
- data/third_party/abseil-cpp/absl/status/statusor.h +9 -3
- data/third_party/abseil-cpp/absl/strings/ascii.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
- data/third_party/abseil-cpp/absl/strings/charconv.cc +534 -96
- data/third_party/abseil-cpp/absl/strings/cord.cc +257 -924
- data/third_party/abseil-cpp/absl/strings/cord.h +268 -156
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +44 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +575 -0
- data/third_party/abseil-cpp/absl/strings/escaping.cc +73 -62
- data/third_party/abseil-cpp/absl/strings/escaping.h +24 -19
- data/third_party/abseil-cpp/absl/strings/internal/char_map.h +14 -12
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +20 -32
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +441 -150
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +157 -53
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +70 -73
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +8 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +3 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +5 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +7 -74
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +56 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +103 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +58 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +13 -11
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +7 -15
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +19 -43
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +7 -7
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +5 -4
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +93 -0
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +34 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +18 -15
- data/third_party/abseil-cpp/absl/strings/internal/escaping.h +7 -9
- data/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h +55 -0
- data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +9 -6
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +14 -7
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +35 -10
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +113 -46
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +127 -30
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +42 -10
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +56 -289
- data/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +351 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +9 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +215 -181
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +10 -209
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -103
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +9 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +10 -2
- data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc +28 -0
- data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +57 -0
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/numbers.cc +42 -39
- data/third_party/abseil-cpp/absl/strings/numbers.h +26 -23
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +9 -6
- data/third_party/abseil-cpp/absl/strings/str_cat.h +70 -16
- data/third_party/abseil-cpp/absl/strings/str_format.h +71 -9
- data/third_party/abseil-cpp/absl/strings/str_join.h +9 -15
- data/third_party/abseil-cpp/absl/strings/str_split.h +1 -2
- data/third_party/abseil-cpp/absl/strings/string_view.cc +8 -19
- data/third_party/abseil-cpp/absl/strings/string_view.h +6 -12
- data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.cc +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.h +55 -21
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +9 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +20 -17
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +37 -31
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +22 -8
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -25
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +10 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +172 -88
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +102 -55
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +0 -1
- data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -3
- data/third_party/abseil-cpp/absl/time/civil_time.cc +26 -0
- data/third_party/abseil-cpp/absl/time/civil_time.h +25 -0
- data/third_party/abseil-cpp/absl/time/clock.cc +17 -11
- data/third_party/abseil-cpp/absl/time/duration.cc +12 -11
- data/third_party/abseil-cpp/absl/time/format.cc +2 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +11 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +26 -5
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +7 -6
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +36 -35
- data/third_party/abseil-cpp/absl/time/time.cc +2 -2
- data/third_party/abseil-cpp/absl/time/time.h +268 -169
- data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
- data/third_party/abseil-cpp/absl/types/internal/span.h +30 -19
- data/third_party/abseil-cpp/absl/types/internal/variant.h +28 -40
- data/third_party/abseil-cpp/absl/types/optional.h +17 -14
- data/third_party/abseil-cpp/absl/types/span.h +31 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +1 -2
- data/third_party/re2/re2/bitstate.cc +3 -3
- data/third_party/re2/re2/dfa.cc +13 -13
- data/third_party/re2/re2/nfa.cc +4 -4
- data/third_party/re2/re2/onepass.cc +2 -2
- data/third_party/re2/re2/prefilter_tree.cc +27 -59
- data/third_party/re2/re2/prefilter_tree.h +3 -2
- data/third_party/re2/re2/prog.cc +11 -2
- data/third_party/re2/re2/prog.h +17 -5
- data/third_party/re2/re2/re2.cc +6 -11
- data/third_party/re2/re2/re2.h +1 -1
- data/third_party/re2/re2/regexp.cc +1 -2
- data/third_party/re2/re2/stringpiece.h +10 -7
- data/third_party/re2/re2/unicode_casefold.cc +25 -11
- data/third_party/re2/re2/unicode_groups.cc +319 -151
- data/third_party/re2/re2/walker-inl.h +3 -2
- data/third_party/re2/util/mutex.h +4 -4
- data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
- data/third_party/upb/upb/arena.c +277 -0
- data/third_party/upb/upb/arena.h +225 -0
- data/third_party/upb/upb/array.c +114 -0
- data/third_party/upb/upb/array.h +83 -0
- data/third_party/upb/upb/collections.h +36 -0
- data/third_party/upb/upb/decode.c +161 -65
- data/third_party/upb/upb/decode.h +1 -0
- data/third_party/upb/upb/decode_fast.c +1 -1
- data/third_party/upb/upb/def.c +10 -2
- data/third_party/upb/upb/def.h +8 -1
- data/third_party/upb/upb/def.hpp +7 -4
- data/third_party/upb/upb/encode.c +29 -20
- data/third_party/upb/upb/encode.h +16 -6
- data/third_party/upb/upb/extension_registry.c +93 -0
- data/third_party/upb/upb/extension_registry.h +84 -0
- data/third_party/upb/upb/{decode_internal.h → internal/decode.h} +5 -5
- data/third_party/upb/upb/internal/table.h +385 -0
- data/third_party/upb/upb/{upb_internal.h → internal/upb.h} +3 -3
- data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
- data/third_party/upb/upb/json_decode.c +1512 -0
- data/third_party/upb/upb/json_decode.h +47 -0
- data/third_party/upb/upb/json_encode.c +7 -3
- data/third_party/upb/upb/json_encode.h +6 -3
- data/third_party/upb/upb/map.c +108 -0
- data/third_party/upb/upb/map.h +117 -0
- data/third_party/upb/upb/message_value.h +66 -0
- data/third_party/upb/upb/mini_table.c +1147 -0
- data/third_party/upb/upb/mini_table.h +189 -0
- data/third_party/upb/upb/mini_table.hpp +112 -0
- data/third_party/upb/upb/msg.c +2 -62
- data/third_party/upb/upb/msg.h +2 -45
- data/third_party/upb/upb/msg_internal.h +28 -22
- data/third_party/upb/upb/port_def.inc +2 -1
- data/third_party/upb/upb/port_undef.inc +1 -0
- data/third_party/upb/upb/reflection.c +2 -159
- data/third_party/upb/upb/reflection.h +2 -112
- data/third_party/upb/upb/status.c +86 -0
- data/third_party/upb/upb/status.h +66 -0
- data/third_party/upb/upb/table.c +2 -2
- data/third_party/upb/upb/table_internal.h +3 -352
- data/third_party/upb/upb/text_encode.c +3 -2
- data/third_party/upb/upb/upb.c +4 -290
- data/third_party/upb/upb/upb.h +7 -196
- data/third_party/zlib/compress.c +3 -3
- data/third_party/zlib/crc32.c +21 -12
- data/third_party/zlib/deflate.c +112 -106
- data/third_party/zlib/deflate.h +2 -2
- data/third_party/zlib/gzlib.c +1 -1
- data/third_party/zlib/gzread.c +3 -5
- data/third_party/zlib/gzwrite.c +1 -1
- data/third_party/zlib/infback.c +10 -7
- data/third_party/zlib/inflate.c +5 -2
- data/third_party/zlib/inftrees.c +2 -2
- data/third_party/zlib/inftrees.h +1 -1
- data/third_party/zlib/trees.c +61 -62
- data/third_party/zlib/uncompr.c +2 -2
- data/third_party/zlib/zconf.h +16 -3
- data/third_party/zlib/zlib.h +10 -10
- data/third_party/zlib/zutil.c +9 -7
- data/third_party/zlib/zutil.h +1 -0
- metadata +372 -102
- data/include/grpc/impl/codegen/gpr_slice.h +0 -71
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -42
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -48
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +0 -185
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +0 -65
- data/src/core/ext/filters/client_channel/proxy_mapper.h +0 -54
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -89
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +0 -50
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -186
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -179
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +0 -456
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -53
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -386
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +0 -61
- data/src/core/ext/xds/certificate_provider_registry.cc +0 -103
- data/src/core/ext/xds/certificate_provider_registry.h +0 -57
- data/src/core/lib/channel/handshaker_factory.h +0 -50
- data/src/core/lib/channel/handshaker_registry.cc +0 -50
- data/src/core/lib/channel/handshaker_registry.h +0 -71
- data/src/core/lib/event_engine/sockaddr.cc +0 -40
- data/src/core/lib/event_engine/sockaddr.h +0 -44
- data/src/core/lib/gpr/env.h +0 -40
- data/src/core/lib/gpr/env_linux.cc +0 -75
- data/src/core/lib/gpr/env_posix.cc +0 -46
- data/src/core/lib/gpr/env_windows.cc +0 -74
- data/src/core/lib/gpr/murmur_hash.cc +0 -82
- data/src/core/lib/gpr/murmur_hash.h +0 -29
- data/src/core/lib/gpr/string_windows.h +0 -32
- data/src/core/lib/gpr/tls.h +0 -158
- data/src/core/lib/gprpp/capture.h +0 -76
- data/src/core/lib/iomgr/error_internal.h +0 -66
- data/src/core/lib/iomgr/event_engine/endpoint.cc +0 -172
- data/src/core/lib/iomgr/event_engine/endpoint.h +0 -52
- data/src/core/lib/iomgr/event_engine/iomgr.cc +0 -85
- data/src/core/lib/iomgr/event_engine/pollset.cc +0 -87
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +0 -47
- data/src/core/lib/iomgr/event_engine/resolver.cc +0 -133
- data/src/core/lib/iomgr/event_engine/resolver.h +0 -56
- data/src/core/lib/iomgr/event_engine/tcp.cc +0 -296
- data/src/core/lib/iomgr/event_engine/timer.cc +0 -62
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
- data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
- data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
- data/src/core/lib/iomgr/executor/threadpool.h +0 -150
- data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
- data/src/core/lib/profiling/basic_timers.cc +0 -295
- data/src/core/lib/profiling/stap_timers.cc +0 -50
- data/src/core/lib/profiling/timers.h +0 -94
- data/src/core/lib/promise/call_push_pull.h +0 -144
- data/src/core/lib/security/security_connector/load_system_roots_linux.h +0 -46
- data/src/core/lib/slice/slice_api.cc +0 -39
- data/src/core/lib/slice/slice_refcount_base.h +0 -61
- data/src/core/lib/slice/slice_split.cc +0 -100
- data/src/core/lib/slice/slice_split.h +0 -40
- data/src/core/lib/transport/byte_stream.cc +0 -164
- data/src/core/lib/transport/byte_stream.h +0 -166
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -50
@@ -1,54 +1,108 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
#ifndef
|
20
|
-
#define
|
1
|
+
//
|
2
|
+
//
|
3
|
+
// Copyright 2015 gRPC authors.
|
4
|
+
//
|
5
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
// you may not use this file except in compliance with the License.
|
7
|
+
// You may obtain a copy of the License at
|
8
|
+
//
|
9
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
//
|
11
|
+
// Unless required by applicable law or agreed to in writing, software
|
12
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
// See the License for the specific language governing permissions and
|
15
|
+
// limitations under the License.
|
16
|
+
//
|
17
|
+
//
|
18
|
+
|
19
|
+
#ifndef GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_BATCH_H
|
20
|
+
#define GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_BATCH_H
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include <
|
24
|
+
#include <stdlib.h>
|
25
25
|
|
26
26
|
#include <cstdint>
|
27
|
-
#include <
|
28
|
-
|
29
|
-
#include
|
30
|
-
|
31
|
-
#include "absl/
|
27
|
+
#include <string>
|
28
|
+
#include <type_traits>
|
29
|
+
#include <utility>
|
30
|
+
|
31
|
+
#include "absl/container/inlined_vector.h"
|
32
|
+
#include "absl/functional/function_ref.h"
|
33
|
+
#include "absl/meta/type_traits.h"
|
34
|
+
#include "absl/strings/numbers.h"
|
35
|
+
#include "absl/strings/string_view.h"
|
32
36
|
#include "absl/types/optional.h"
|
33
37
|
|
34
|
-
#include <grpc/
|
35
|
-
#include <grpc/slice.h>
|
38
|
+
#include <grpc/impl/compression_types.h>
|
36
39
|
#include <grpc/status.h>
|
37
|
-
#include <grpc/support/
|
40
|
+
#include <grpc/support/log.h>
|
38
41
|
|
39
42
|
#include "src/core/lib/compression/compression_internal.h"
|
40
43
|
#include "src/core/lib/gprpp/chunked_vector.h"
|
41
|
-
#include "src/core/lib/gprpp/
|
42
|
-
#include "src/core/lib/
|
44
|
+
#include "src/core/lib/gprpp/packed_table.h"
|
45
|
+
#include "src/core/lib/gprpp/time.h"
|
46
|
+
#include "src/core/lib/resource_quota/arena.h"
|
43
47
|
#include "src/core/lib/slice/slice.h"
|
44
|
-
#include "src/core/lib/surface/validate_metadata.h"
|
45
48
|
#include "src/core/lib/transport/parsed_metadata.h"
|
46
|
-
#include "src/core/lib/transport/timeout_encoding.h"
|
47
|
-
|
48
|
-
struct grpc_call_final_info;
|
49
49
|
|
50
50
|
namespace grpc_core {
|
51
51
|
|
52
|
+
///////////////////////////////////////////////////////////////////////////////
|
53
|
+
// Compression traits.
|
54
|
+
//
|
55
|
+
// Each metadata trait exposes exactly one compression trait.
|
56
|
+
// This type directs how transports might choose to compress the metadata.
|
57
|
+
// Adding a value here typically involves editing all transports to support the
|
58
|
+
// trait, and so should not be done lightly.
|
59
|
+
|
60
|
+
// No compression.
|
61
|
+
struct NoCompressionCompressor {};
|
62
|
+
|
63
|
+
// Expect a single value for this metadata key, but we don't know apriori its
|
64
|
+
// value.
|
65
|
+
// It's ok if it changes over time, but it should be mostly stable.
|
66
|
+
// This is used for things like user-agent, which is expected to be the same
|
67
|
+
// for all requests.
|
68
|
+
struct StableValueCompressor {};
|
69
|
+
|
70
|
+
// Expect a single value for this metadata key, and we know apriori its value.
|
71
|
+
template <typename T, T value>
|
72
|
+
struct KnownValueCompressor {};
|
73
|
+
|
74
|
+
// Values are uncompressible, but expect the key to be in most requests and try
|
75
|
+
// and compress that.
|
76
|
+
struct FrequentKeyWithNoValueCompressionCompressor {};
|
77
|
+
|
78
|
+
// Expect a small set of values for this metadata key.
|
79
|
+
struct SmallSetOfValuesCompressor {};
|
80
|
+
|
81
|
+
// Expect integral values up to N for this metadata key.
|
82
|
+
template <size_t N>
|
83
|
+
struct SmallIntegralValuesCompressor {};
|
84
|
+
|
85
|
+
// Specialty compressor for grpc-timeout metadata.
|
86
|
+
struct TimeoutCompressor {};
|
87
|
+
|
88
|
+
// Specialty compressors for HTTP/2 psuedo headers.
|
89
|
+
struct HttpSchemeCompressor {};
|
90
|
+
struct HttpMethodCompressor {};
|
91
|
+
struct HttpStatusCompressor {};
|
92
|
+
|
93
|
+
///////////////////////////////////////////////////////////////////////////////
|
94
|
+
// Metadata traits
|
95
|
+
|
96
|
+
// Given a metadata key and a value, return the encoded size.
|
97
|
+
// Defaults to calling the key's Encode() method and then calculating the size
|
98
|
+
// of that, but can be overridden for specific keys if there's a better way of
|
99
|
+
// doing this.
|
100
|
+
// May return 0 if the size is unknown/unknowable.
|
101
|
+
template <typename Key>
|
102
|
+
size_t EncodedSizeOfKey(Key, const typename Key::ValueType& value) {
|
103
|
+
return Key::Encode(value).size();
|
104
|
+
}
|
105
|
+
|
52
106
|
// grpc-timeout metadata trait.
|
53
107
|
// ValueType is defined as Timestamp - an absolute timestamp (i.e. a
|
54
108
|
// deadline!), that is converted to a duration by transports before being
|
@@ -60,25 +114,13 @@ struct GrpcTimeoutMetadata {
|
|
60
114
|
static constexpr bool kRepeatable = false;
|
61
115
|
using ValueType = Timestamp;
|
62
116
|
using MementoType = Duration;
|
117
|
+
using CompressionTraits = TimeoutCompressor;
|
63
118
|
static absl::string_view key() { return "grpc-timeout"; }
|
64
|
-
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error)
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
}
|
70
|
-
return *timeout;
|
71
|
-
}
|
72
|
-
static ValueType MementoToValue(MementoType timeout) {
|
73
|
-
if (timeout == Duration::Infinity()) {
|
74
|
-
return Timestamp::InfFuture();
|
75
|
-
}
|
76
|
-
return ExecCtx::Get()->Now() + timeout;
|
77
|
-
}
|
78
|
-
static Slice Encode(ValueType x) {
|
79
|
-
return Timeout::FromDuration(x - ExecCtx::Get()->Now()).Encode();
|
80
|
-
}
|
81
|
-
static std::string DisplayValue(MementoType x) { return x.ToString(); }
|
119
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
120
|
+
static ValueType MementoToValue(MementoType timeout);
|
121
|
+
static Slice Encode(ValueType x);
|
122
|
+
static std::string DisplayValue(ValueType x) { return x.ToString(); }
|
123
|
+
static std::string DisplayMemento(MementoType x) { return x.ToString(); }
|
82
124
|
};
|
83
125
|
|
84
126
|
// TE metadata trait.
|
@@ -92,179 +134,96 @@ struct TeMetadata {
|
|
92
134
|
kInvalid,
|
93
135
|
};
|
94
136
|
using MementoType = ValueType;
|
137
|
+
using CompressionTraits = KnownValueCompressor<ValueType, kTrailers>;
|
95
138
|
static absl::string_view key() { return "te"; }
|
96
|
-
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error)
|
97
|
-
auto out = kInvalid;
|
98
|
-
if (value == "trailers") {
|
99
|
-
out = kTrailers;
|
100
|
-
} else {
|
101
|
-
on_error("invalid value", value);
|
102
|
-
}
|
103
|
-
return out;
|
104
|
-
}
|
139
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
105
140
|
static ValueType MementoToValue(MementoType te) { return te; }
|
106
141
|
static StaticSlice Encode(ValueType x) {
|
107
142
|
GPR_ASSERT(x == kTrailers);
|
108
143
|
return StaticSlice::FromStaticString("trailers");
|
109
144
|
}
|
110
|
-
static const char* DisplayValue(
|
111
|
-
|
112
|
-
case ValueType::kTrailers:
|
113
|
-
return "trailers";
|
114
|
-
default:
|
115
|
-
return "<discarded-invalid-value>";
|
116
|
-
}
|
117
|
-
}
|
145
|
+
static const char* DisplayValue(ValueType te);
|
146
|
+
static const char* DisplayMemento(MementoType te) { return DisplayValue(te); }
|
118
147
|
};
|
119
148
|
|
149
|
+
inline size_t EncodedSizeOfKey(TeMetadata, TeMetadata::ValueType x) {
|
150
|
+
return x == TeMetadata::kTrailers ? 8 : 0;
|
151
|
+
}
|
152
|
+
|
120
153
|
// content-type metadata trait.
|
121
154
|
struct ContentTypeMetadata {
|
122
155
|
static constexpr bool kRepeatable = false;
|
123
156
|
// gRPC says that content-type can be application/grpc[;something]
|
124
157
|
// Core has only ever verified the prefix.
|
125
158
|
// IF we want to start verifying more, we can expand this type.
|
126
|
-
enum ValueType {
|
159
|
+
enum ValueType : uint8_t {
|
127
160
|
kApplicationGrpc,
|
128
161
|
kEmpty,
|
129
162
|
kInvalid,
|
130
163
|
};
|
131
164
|
using MementoType = ValueType;
|
165
|
+
using CompressionTraits = KnownValueCompressor<ValueType, kApplicationGrpc>;
|
132
166
|
static absl::string_view key() { return "content-type"; }
|
133
|
-
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error)
|
134
|
-
auto out = kInvalid;
|
135
|
-
auto value_string = value.as_string_view();
|
136
|
-
if (value_string == "application/grpc") {
|
137
|
-
out = kApplicationGrpc;
|
138
|
-
} else if (absl::StartsWith(value_string, "application/grpc;")) {
|
139
|
-
out = kApplicationGrpc;
|
140
|
-
} else if (absl::StartsWith(value_string, "application/grpc+")) {
|
141
|
-
out = kApplicationGrpc;
|
142
|
-
} else if (value_string.empty()) {
|
143
|
-
out = kEmpty;
|
144
|
-
} else {
|
145
|
-
on_error("invalid value", value);
|
146
|
-
}
|
147
|
-
return out;
|
148
|
-
}
|
167
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
149
168
|
static ValueType MementoToValue(MementoType content_type) {
|
150
169
|
return content_type;
|
151
170
|
}
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
return StaticSlice::FromStaticString("application/grpc");
|
158
|
-
case kInvalid:
|
159
|
-
return StaticSlice::FromStaticString("application/grpc+unknown");
|
160
|
-
}
|
161
|
-
GPR_UNREACHABLE_CODE(
|
162
|
-
return StaticSlice::FromStaticString("unrepresentable value"));
|
163
|
-
}
|
164
|
-
static const char* DisplayValue(MementoType content_type) {
|
165
|
-
switch (content_type) {
|
166
|
-
case ValueType::kApplicationGrpc:
|
167
|
-
return "application/grpc";
|
168
|
-
case ValueType::kEmpty:
|
169
|
-
return "";
|
170
|
-
default:
|
171
|
-
return "<discarded-invalid-value>";
|
172
|
-
}
|
171
|
+
|
172
|
+
static StaticSlice Encode(ValueType x);
|
173
|
+
static const char* DisplayValue(ValueType content_type);
|
174
|
+
static const char* DisplayMemento(ValueType content_type) {
|
175
|
+
return DisplayValue(content_type);
|
173
176
|
}
|
174
177
|
};
|
175
178
|
|
176
179
|
// scheme metadata trait.
|
177
180
|
struct HttpSchemeMetadata {
|
178
181
|
static constexpr bool kRepeatable = false;
|
179
|
-
enum ValueType {
|
182
|
+
enum ValueType : uint8_t {
|
180
183
|
kHttp,
|
181
184
|
kHttps,
|
182
185
|
kInvalid,
|
183
186
|
};
|
184
187
|
using MementoType = ValueType;
|
188
|
+
using CompressionTraits = HttpSchemeCompressor;
|
185
189
|
static absl::string_view key() { return ":scheme"; }
|
186
190
|
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error) {
|
187
191
|
return Parse(value.as_string_view(), on_error);
|
188
192
|
}
|
189
193
|
static ValueType Parse(absl::string_view value,
|
190
|
-
MetadataParseErrorFn on_error)
|
191
|
-
if (value == "http") {
|
192
|
-
return kHttp;
|
193
|
-
} else if (value == "https") {
|
194
|
-
return kHttps;
|
195
|
-
}
|
196
|
-
on_error("invalid value", Slice::FromCopiedBuffer(value));
|
197
|
-
return kInvalid;
|
198
|
-
}
|
194
|
+
MetadataParseErrorFn on_error);
|
199
195
|
static ValueType MementoToValue(MementoType content_type) {
|
200
196
|
return content_type;
|
201
197
|
}
|
202
|
-
static StaticSlice Encode(ValueType x)
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
case kHttps:
|
207
|
-
return StaticSlice::FromStaticString("https");
|
208
|
-
default:
|
209
|
-
abort();
|
210
|
-
}
|
211
|
-
}
|
212
|
-
static const char* DisplayValue(MementoType content_type) {
|
213
|
-
switch (content_type) {
|
214
|
-
case kHttp:
|
215
|
-
return "http";
|
216
|
-
case kHttps:
|
217
|
-
return "https";
|
218
|
-
default:
|
219
|
-
return "<discarded-invalid-value>";
|
220
|
-
}
|
198
|
+
static StaticSlice Encode(ValueType x);
|
199
|
+
static const char* DisplayValue(ValueType content_type);
|
200
|
+
static const char* DisplayMemento(MementoType content_type) {
|
201
|
+
return DisplayValue(content_type);
|
221
202
|
}
|
222
203
|
};
|
223
204
|
|
205
|
+
size_t EncodedSizeOfKey(HttpSchemeMetadata, HttpSchemeMetadata::ValueType x);
|
206
|
+
|
224
207
|
// method metadata trait.
|
225
208
|
struct HttpMethodMetadata {
|
226
209
|
static constexpr bool kRepeatable = false;
|
227
|
-
enum ValueType {
|
210
|
+
enum ValueType : uint8_t {
|
228
211
|
kPost,
|
229
212
|
kGet,
|
213
|
+
kPut,
|
230
214
|
kInvalid,
|
231
215
|
};
|
232
216
|
using MementoType = ValueType;
|
217
|
+
using CompressionTraits = HttpMethodCompressor;
|
233
218
|
static absl::string_view key() { return ":method"; }
|
234
|
-
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error)
|
235
|
-
auto out = kInvalid;
|
236
|
-
auto value_string = value.as_string_view();
|
237
|
-
if (value_string == "POST") {
|
238
|
-
out = kPost;
|
239
|
-
} else if (value_string == "GET") {
|
240
|
-
out = kGet;
|
241
|
-
} else {
|
242
|
-
on_error("invalid value", value);
|
243
|
-
}
|
244
|
-
return out;
|
245
|
-
}
|
219
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
246
220
|
static ValueType MementoToValue(MementoType content_type) {
|
247
221
|
return content_type;
|
248
222
|
}
|
249
|
-
static StaticSlice Encode(ValueType x)
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
case kGet:
|
254
|
-
return StaticSlice::FromStaticString("GET");
|
255
|
-
default:
|
256
|
-
abort();
|
257
|
-
}
|
258
|
-
}
|
259
|
-
static const char* DisplayValue(MementoType content_type) {
|
260
|
-
switch (content_type) {
|
261
|
-
case kPost:
|
262
|
-
return "POST";
|
263
|
-
case kGet:
|
264
|
-
return "GET";
|
265
|
-
default:
|
266
|
-
return "<discarded-invalid-value>";
|
267
|
-
}
|
223
|
+
static StaticSlice Encode(ValueType x);
|
224
|
+
static const char* DisplayValue(ValueType content_type);
|
225
|
+
static const char* DisplayMemento(MementoType content_type) {
|
226
|
+
return DisplayValue(content_type);
|
268
227
|
}
|
269
228
|
};
|
270
229
|
|
@@ -273,37 +232,34 @@ struct HttpMethodMetadata {
|
|
273
232
|
struct CompressionAlgorithmBasedMetadata {
|
274
233
|
using ValueType = grpc_compression_algorithm;
|
275
234
|
using MementoType = ValueType;
|
276
|
-
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error)
|
277
|
-
auto algorithm = ParseCompressionAlgorithm(value.as_string_view());
|
278
|
-
if (!algorithm.has_value()) {
|
279
|
-
on_error("invalid value", value);
|
280
|
-
return GRPC_COMPRESS_NONE;
|
281
|
-
}
|
282
|
-
return *algorithm;
|
283
|
-
}
|
235
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
284
236
|
static ValueType MementoToValue(MementoType x) { return x; }
|
285
237
|
static Slice Encode(ValueType x) {
|
286
238
|
GPR_ASSERT(x != GRPC_COMPRESS_ALGORITHMS_COUNT);
|
287
239
|
return Slice::FromStaticString(CompressionAlgorithmAsString(x));
|
288
240
|
}
|
289
|
-
static const char* DisplayValue(
|
241
|
+
static const char* DisplayValue(ValueType x) {
|
290
242
|
if (const char* p = CompressionAlgorithmAsString(x)) {
|
291
243
|
return p;
|
292
244
|
} else {
|
293
245
|
return "<discarded-invalid-value>";
|
294
246
|
}
|
295
247
|
}
|
248
|
+
static const char* DisplayMemento(MementoType x) { return DisplayValue(x); }
|
296
249
|
};
|
297
250
|
|
298
251
|
// grpc-encoding metadata trait.
|
299
252
|
struct GrpcEncodingMetadata : public CompressionAlgorithmBasedMetadata {
|
300
253
|
static constexpr bool kRepeatable = false;
|
254
|
+
using CompressionTraits =
|
255
|
+
SmallIntegralValuesCompressor<GRPC_COMPRESS_ALGORITHMS_COUNT>;
|
301
256
|
static absl::string_view key() { return "grpc-encoding"; }
|
302
257
|
};
|
303
258
|
|
304
259
|
// grpc-internal-encoding-request metadata trait.
|
305
260
|
struct GrpcInternalEncodingRequest : public CompressionAlgorithmBasedMetadata {
|
306
261
|
static constexpr bool kRepeatable = false;
|
262
|
+
using CompressionTraits = NoCompressionCompressor;
|
307
263
|
static absl::string_view key() { return "grpc-internal-encoding-request"; }
|
308
264
|
};
|
309
265
|
|
@@ -313,12 +269,16 @@ struct GrpcAcceptEncodingMetadata {
|
|
313
269
|
static absl::string_view key() { return "grpc-accept-encoding"; }
|
314
270
|
using ValueType = CompressionAlgorithmSet;
|
315
271
|
using MementoType = ValueType;
|
272
|
+
using CompressionTraits = StableValueCompressor;
|
316
273
|
static MementoType ParseMemento(Slice value, MetadataParseErrorFn) {
|
317
274
|
return CompressionAlgorithmSet::FromString(value.as_string_view());
|
318
275
|
}
|
319
276
|
static ValueType MementoToValue(MementoType x) { return x; }
|
320
277
|
static Slice Encode(ValueType x) { return x.ToSlice(); }
|
321
|
-
static
|
278
|
+
static absl::string_view DisplayValue(ValueType x) { return x.ToString(); }
|
279
|
+
static absl::string_view DisplayMemento(MementoType x) {
|
280
|
+
return DisplayValue(x);
|
281
|
+
}
|
322
282
|
};
|
323
283
|
|
324
284
|
struct SimpleSliceBasedMetadata {
|
@@ -329,7 +289,10 @@ struct SimpleSliceBasedMetadata {
|
|
329
289
|
}
|
330
290
|
static ValueType MementoToValue(MementoType value) { return value; }
|
331
291
|
static Slice Encode(const ValueType& x) { return x.Ref(); }
|
332
|
-
static absl::string_view DisplayValue(const
|
292
|
+
static absl::string_view DisplayValue(const ValueType& value) {
|
293
|
+
return value.as_string_view();
|
294
|
+
}
|
295
|
+
static absl::string_view DisplayMemento(const MementoType& value) {
|
333
296
|
return value.as_string_view();
|
334
297
|
}
|
335
298
|
};
|
@@ -337,67 +300,77 @@ struct SimpleSliceBasedMetadata {
|
|
337
300
|
// user-agent metadata trait.
|
338
301
|
struct UserAgentMetadata : public SimpleSliceBasedMetadata {
|
339
302
|
static constexpr bool kRepeatable = false;
|
303
|
+
using CompressionTraits = StableValueCompressor;
|
340
304
|
static absl::string_view key() { return "user-agent"; }
|
341
305
|
};
|
342
306
|
|
343
307
|
// grpc-message metadata trait.
|
344
308
|
struct GrpcMessageMetadata : public SimpleSliceBasedMetadata {
|
345
309
|
static constexpr bool kRepeatable = false;
|
310
|
+
using CompressionTraits = NoCompressionCompressor;
|
346
311
|
static absl::string_view key() { return "grpc-message"; }
|
347
312
|
};
|
348
313
|
|
349
314
|
// host metadata trait.
|
350
315
|
struct HostMetadata : public SimpleSliceBasedMetadata {
|
351
316
|
static constexpr bool kRepeatable = false;
|
317
|
+
using CompressionTraits = NoCompressionCompressor;
|
352
318
|
static absl::string_view key() { return "host"; }
|
353
319
|
};
|
354
320
|
|
355
|
-
//
|
356
|
-
struct
|
321
|
+
// endpoint-load-metrics-bin metadata trait.
|
322
|
+
struct EndpointLoadMetricsBinMetadata : public SimpleSliceBasedMetadata {
|
357
323
|
static constexpr bool kRepeatable = false;
|
358
|
-
|
324
|
+
using CompressionTraits = NoCompressionCompressor;
|
325
|
+
static absl::string_view key() { return "endpoint-load-metrics-bin"; }
|
359
326
|
};
|
360
327
|
|
361
328
|
// grpc-server-stats-bin metadata trait.
|
362
329
|
struct GrpcServerStatsBinMetadata : public SimpleSliceBasedMetadata {
|
363
330
|
static constexpr bool kRepeatable = false;
|
331
|
+
using CompressionTraits = NoCompressionCompressor;
|
364
332
|
static absl::string_view key() { return "grpc-server-stats-bin"; }
|
365
333
|
};
|
366
334
|
|
367
335
|
// grpc-trace-bin metadata trait.
|
368
336
|
struct GrpcTraceBinMetadata : public SimpleSliceBasedMetadata {
|
369
337
|
static constexpr bool kRepeatable = false;
|
338
|
+
using CompressionTraits = FrequentKeyWithNoValueCompressionCompressor;
|
370
339
|
static absl::string_view key() { return "grpc-trace-bin"; }
|
371
340
|
};
|
372
341
|
|
373
342
|
// grpc-tags-bin metadata trait.
|
374
343
|
struct GrpcTagsBinMetadata : public SimpleSliceBasedMetadata {
|
375
344
|
static constexpr bool kRepeatable = false;
|
345
|
+
using CompressionTraits = FrequentKeyWithNoValueCompressionCompressor;
|
376
346
|
static absl::string_view key() { return "grpc-tags-bin"; }
|
377
347
|
};
|
378
348
|
|
379
349
|
// :authority metadata trait.
|
380
350
|
struct HttpAuthorityMetadata : public SimpleSliceBasedMetadata {
|
381
351
|
static constexpr bool kRepeatable = false;
|
352
|
+
using CompressionTraits = SmallSetOfValuesCompressor;
|
382
353
|
static absl::string_view key() { return ":authority"; }
|
383
354
|
};
|
384
355
|
|
385
356
|
// :path metadata trait.
|
386
357
|
struct HttpPathMetadata : public SimpleSliceBasedMetadata {
|
387
358
|
static constexpr bool kRepeatable = false;
|
359
|
+
using CompressionTraits = SmallSetOfValuesCompressor;
|
388
360
|
static absl::string_view key() { return ":path"; }
|
389
361
|
};
|
390
362
|
|
391
|
-
// We separate SimpleIntBasedMetadata into two pieces: one that does not
|
392
|
-
// on the invalid value, and one that does. This allows the compiler to
|
393
|
-
// see the functions that are shared, and helps reduce code bloat here.
|
363
|
+
// We separate SimpleIntBasedMetadata into two pieces: one that does not
|
364
|
+
// depend on the invalid value, and one that does. This allows the compiler to
|
365
|
+
// easily see the functions that are shared, and helps reduce code bloat here.
|
394
366
|
template <typename Int>
|
395
367
|
struct SimpleIntBasedMetadataBase {
|
396
368
|
using ValueType = Int;
|
397
369
|
using MementoType = Int;
|
398
370
|
static ValueType MementoToValue(MementoType value) { return value; }
|
399
371
|
static Slice Encode(ValueType x) { return Slice::FromInt64(x); }
|
400
|
-
static Int DisplayValue(
|
372
|
+
static Int DisplayValue(ValueType x) { return x; }
|
373
|
+
static Int DisplayMemento(MementoType x) { return x; }
|
401
374
|
};
|
402
375
|
|
403
376
|
template <typename Int, Int kInvalidValue>
|
@@ -417,6 +390,7 @@ struct SimpleIntBasedMetadata : public SimpleIntBasedMetadataBase<Int> {
|
|
417
390
|
struct GrpcStatusMetadata
|
418
391
|
: public SimpleIntBasedMetadata<grpc_status_code, GRPC_STATUS_UNKNOWN> {
|
419
392
|
static constexpr bool kRepeatable = false;
|
393
|
+
using CompressionTraits = SmallIntegralValuesCompressor<16>;
|
420
394
|
static absl::string_view key() { return "grpc-status"; }
|
421
395
|
};
|
422
396
|
|
@@ -424,6 +398,7 @@ struct GrpcStatusMetadata
|
|
424
398
|
struct GrpcPreviousRpcAttemptsMetadata
|
425
399
|
: public SimpleIntBasedMetadata<uint32_t, 0> {
|
426
400
|
static constexpr bool kRepeatable = false;
|
401
|
+
using CompressionTraits = NoCompressionCompressor;
|
427
402
|
static absl::string_view key() { return "grpc-previous-rpc-attempts"; }
|
428
403
|
};
|
429
404
|
|
@@ -433,45 +408,52 @@ struct GrpcRetryPushbackMsMetadata {
|
|
433
408
|
static absl::string_view key() { return "grpc-retry-pushback-ms"; }
|
434
409
|
using ValueType = Duration;
|
435
410
|
using MementoType = Duration;
|
411
|
+
using CompressionTraits = NoCompressionCompressor;
|
436
412
|
static ValueType MementoToValue(MementoType x) { return x; }
|
437
413
|
static Slice Encode(Duration x) { return Slice::FromInt64(x.millis()); }
|
438
414
|
static int64_t DisplayValue(Duration x) { return x.millis(); }
|
439
|
-
static
|
440
|
-
|
441
|
-
if (!absl::SimpleAtoi(value.as_string_view(), &out)) {
|
442
|
-
on_error("not an integer", value);
|
443
|
-
return Duration::NegativeInfinity();
|
444
|
-
}
|
445
|
-
return Duration::Milliseconds(out);
|
446
|
-
}
|
415
|
+
static int64_t DisplayMemento(Duration x) { return DisplayValue(x); }
|
416
|
+
static Duration ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
447
417
|
};
|
448
418
|
|
449
419
|
// :status metadata trait.
|
450
420
|
// TODO(ctiller): consider moving to uint16_t
|
451
421
|
struct HttpStatusMetadata : public SimpleIntBasedMetadata<uint32_t, 0> {
|
452
422
|
static constexpr bool kRepeatable = false;
|
423
|
+
using CompressionTraits = HttpStatusCompressor;
|
453
424
|
static absl::string_view key() { return ":status"; }
|
454
425
|
};
|
455
426
|
|
456
427
|
// "secret" metadata trait used to pass load balancing token between filters.
|
457
428
|
// This should not be exposed outside of gRPC core.
|
458
429
|
class GrpcLbClientStats;
|
430
|
+
|
459
431
|
struct GrpcLbClientStatsMetadata {
|
460
432
|
static constexpr bool kRepeatable = false;
|
461
433
|
static absl::string_view key() { return "grpclb_client_stats"; }
|
462
434
|
using ValueType = GrpcLbClientStats*;
|
463
435
|
using MementoType = ValueType;
|
436
|
+
using CompressionTraits = NoCompressionCompressor;
|
464
437
|
static ValueType MementoToValue(MementoType value) { return value; }
|
465
438
|
static Slice Encode(ValueType) { abort(); }
|
466
|
-
static const char* DisplayValue(
|
439
|
+
static const char* DisplayValue(ValueType) { return "<internal-lb-stats>"; }
|
440
|
+
static const char* DisplayMemento(MementoType) {
|
441
|
+
return "<internal-lb-stats>";
|
442
|
+
}
|
467
443
|
static MementoType ParseMemento(Slice, MetadataParseErrorFn) {
|
468
444
|
return nullptr;
|
469
445
|
}
|
470
446
|
};
|
471
447
|
|
448
|
+
inline size_t EncodedSizeOfKey(GrpcLbClientStatsMetadata,
|
449
|
+
GrpcLbClientStatsMetadata::ValueType) {
|
450
|
+
return 0;
|
451
|
+
}
|
452
|
+
|
472
453
|
// lb-token metadata
|
473
454
|
struct LbTokenMetadata : public SimpleSliceBasedMetadata {
|
474
455
|
static constexpr bool kRepeatable = false;
|
456
|
+
using CompressionTraits = NoCompressionCompressor;
|
475
457
|
static absl::string_view key() { return "lb-token"; }
|
476
458
|
};
|
477
459
|
|
@@ -484,29 +466,12 @@ struct LbCostBinMetadata {
|
|
484
466
|
std::string name;
|
485
467
|
};
|
486
468
|
using MementoType = ValueType;
|
469
|
+
using CompressionTraits = NoCompressionCompressor;
|
487
470
|
static ValueType MementoToValue(MementoType value) { return value; }
|
488
|
-
static Slice Encode(const ValueType& x)
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
memcpy(slice.data() + sizeof(double), x.name.data(), x.name.length());
|
493
|
-
return Slice(std::move(slice));
|
494
|
-
}
|
495
|
-
static std::string DisplayValue(MementoType x) {
|
496
|
-
return absl::StrCat(x.name, ":", x.cost);
|
497
|
-
}
|
498
|
-
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error) {
|
499
|
-
if (value.length() < sizeof(double)) {
|
500
|
-
on_error("too short", value);
|
501
|
-
return {0, ""};
|
502
|
-
}
|
503
|
-
MementoType out;
|
504
|
-
memcpy(&out.cost, value.data(), sizeof(double));
|
505
|
-
out.name = std::string(
|
506
|
-
reinterpret_cast<const char*>(value.data()) + sizeof(double),
|
507
|
-
value.length() - sizeof(double));
|
508
|
-
return out;
|
509
|
-
}
|
471
|
+
static Slice Encode(const ValueType& x);
|
472
|
+
static std::string DisplayValue(ValueType x);
|
473
|
+
static std::string DisplayMemento(MementoType x) { return DisplayValue(x); }
|
474
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
510
475
|
};
|
511
476
|
|
512
477
|
// Annotation added by a transport to note whether a failed request was never
|
@@ -518,14 +483,7 @@ struct GrpcStreamNetworkState {
|
|
518
483
|
kNotSentOnWire,
|
519
484
|
kNotSeenByServer,
|
520
485
|
};
|
521
|
-
static std::string DisplayValue(ValueType x)
|
522
|
-
switch (x) {
|
523
|
-
case kNotSentOnWire:
|
524
|
-
return "not sent on wire";
|
525
|
-
case kNotSeenByServer:
|
526
|
-
return "not seen by server";
|
527
|
-
}
|
528
|
-
}
|
486
|
+
static std::string DisplayValue(ValueType x);
|
529
487
|
};
|
530
488
|
|
531
489
|
// Annotation added by a server transport to note the peer making a request.
|
@@ -533,7 +491,7 @@ struct PeerString {
|
|
533
491
|
static absl::string_view DebugKey() { return "PeerString"; }
|
534
492
|
static constexpr bool kRepeatable = false;
|
535
493
|
using ValueType = absl::string_view;
|
536
|
-
static std::string DisplayValue(ValueType x)
|
494
|
+
static std::string DisplayValue(ValueType x);
|
537
495
|
};
|
538
496
|
|
539
497
|
// Annotation added by various systems to describe the reason for a failure.
|
@@ -541,16 +499,59 @@ struct GrpcStatusContext {
|
|
541
499
|
static absl::string_view DebugKey() { return "GrpcStatusContext"; }
|
542
500
|
static constexpr bool kRepeatable = true;
|
543
501
|
using ValueType = std::string;
|
544
|
-
static const std::string& DisplayValue(const std::string& x)
|
502
|
+
static const std::string& DisplayValue(const std::string& x);
|
503
|
+
};
|
504
|
+
|
505
|
+
// Annotation added by a transport to note that the status came from the wire.
|
506
|
+
struct GrpcStatusFromWire {
|
507
|
+
static absl::string_view DebugKey() { return "GrpcStatusFromWire"; }
|
508
|
+
static constexpr bool kRepeatable = false;
|
509
|
+
using ValueType = bool;
|
510
|
+
static absl::string_view DisplayValue(bool x) { return x ? "true" : "false"; }
|
511
|
+
};
|
512
|
+
|
513
|
+
// Annotation added by client surface code to denote wait-for-ready state
|
514
|
+
struct WaitForReady {
|
515
|
+
struct ValueType {
|
516
|
+
bool value = false;
|
517
|
+
bool explicitly_set = false;
|
518
|
+
};
|
519
|
+
static absl::string_view DebugKey() { return "WaitForReady"; }
|
520
|
+
static constexpr bool kRepeatable = false;
|
521
|
+
static std::string DisplayValue(ValueType x);
|
522
|
+
};
|
523
|
+
|
524
|
+
// Annotation added by a transport to note that server trailing metadata
|
525
|
+
// is a Trailers-Only response.
|
526
|
+
struct GrpcTrailersOnly {
|
527
|
+
static absl::string_view DebugKey() { return "GrpcTrailersOnly"; }
|
528
|
+
static constexpr bool kRepeatable = false;
|
529
|
+
using ValueType = bool;
|
530
|
+
static absl::string_view DisplayValue(bool x) { return x ? "true" : "false"; }
|
545
531
|
};
|
546
532
|
|
547
533
|
namespace metadata_detail {
|
548
534
|
|
549
|
-
//
|
550
|
-
//
|
551
|
-
//
|
552
|
-
|
553
|
-
|
535
|
+
// Build a key/value formatted debug string.
|
536
|
+
// Output looks like 'key1: value1, key2: value2'
|
537
|
+
// The string is expected to be readable, but not necessarily parsable.
|
538
|
+
class DebugStringBuilder {
|
539
|
+
public:
|
540
|
+
// Add one key/value pair to the output.
|
541
|
+
void Add(absl::string_view key, absl::string_view value);
|
542
|
+
|
543
|
+
// Finalize the output and return the string.
|
544
|
+
// Subsequent Add calls are UB.
|
545
|
+
std::string TakeOutput() { return std::move(out_); }
|
546
|
+
|
547
|
+
private:
|
548
|
+
std::string out_;
|
549
|
+
};
|
550
|
+
|
551
|
+
// IsEncodable: Given a trait, determine if that trait is encodable, or is
|
552
|
+
// just a value attached to a MetadataMap. We use the presence of the key()
|
553
|
+
// static method to determine if a trait is encodable or not - encodable
|
554
|
+
// traits have string names, and non-encodable traits do not.
|
554
555
|
template <typename Trait, typename Ignored = void>
|
555
556
|
struct IsEncodableTrait {
|
556
557
|
static const bool value = false;
|
@@ -600,8 +601,8 @@ struct NameLookup<void> {
|
|
600
601
|
};
|
601
602
|
|
602
603
|
// Helper to take a slice to a memento to a value.
|
603
|
-
// By splitting this part out we can scale code size as the number of
|
604
|
-
// value) types, rather than as the number of traits.
|
604
|
+
// By splitting this part out we can scale code size as the number of
|
605
|
+
// (memento, value) types, rather than as the number of traits.
|
605
606
|
template <typename ParseMementoFn, typename MementoToValueFn>
|
606
607
|
struct ParseValue {
|
607
608
|
template <ParseMementoFn parse_memento, MementoToValueFn memento_to_value>
|
@@ -629,13 +630,14 @@ class ParseHelper {
|
|
629
630
|
return ParsedMetadata<Container>(
|
630
631
|
trait,
|
631
632
|
ParseValueToMemento<typename Trait::MementoType, Trait::ParseMemento>(),
|
632
|
-
transport_size_);
|
633
|
+
static_cast<uint32_t>(transport_size_));
|
633
634
|
}
|
634
635
|
|
635
636
|
GPR_ATTRIBUTE_NOINLINE ParsedMetadata<Container> NotFound(
|
636
637
|
absl::string_view key) {
|
637
|
-
return ParsedMetadata<Container>(
|
638
|
-
|
638
|
+
return ParsedMetadata<Container>(
|
639
|
+
typename ParsedMetadata<Container>::FromSlicePair{},
|
640
|
+
Slice::FromCopiedString(key), std::move(value_), transport_size_);
|
639
641
|
}
|
640
642
|
|
641
643
|
private:
|
@@ -650,8 +652,8 @@ class ParseHelper {
|
|
650
652
|
};
|
651
653
|
|
652
654
|
// This is an "Op" type for NameLookup.
|
653
|
-
// Used for MetadataMap::Append, its Found/NotFound methods turn a slice into
|
654
|
-
// value and add it to a container.
|
655
|
+
// Used for MetadataMap::Append, its Found/NotFound methods turn a slice into
|
656
|
+
// a value and add it to a container.
|
655
657
|
template <typename Container>
|
656
658
|
class AppendHelper {
|
657
659
|
public:
|
@@ -668,7 +670,7 @@ class AppendHelper {
|
|
668
670
|
}
|
669
671
|
|
670
672
|
GPR_ATTRIBUTE_NOINLINE void NotFound(absl::string_view key) {
|
671
|
-
container_->
|
673
|
+
container_->unknown_.Append(key, std::move(value_));
|
672
674
|
}
|
673
675
|
|
674
676
|
private:
|
@@ -691,7 +693,7 @@ class RemoveHelper {
|
|
691
693
|
}
|
692
694
|
|
693
695
|
GPR_ATTRIBUTE_NOINLINE void NotFound(absl::string_view key) {
|
694
|
-
container_->
|
696
|
+
container_->unknown_.Remove(key);
|
695
697
|
}
|
696
698
|
|
697
699
|
private:
|
@@ -699,8 +701,8 @@ class RemoveHelper {
|
|
699
701
|
};
|
700
702
|
|
701
703
|
// This is an "Op" type for NameLookup.
|
702
|
-
// Used for MetadataMap::GetStringValue, its Found/NotFound methods generated
|
703
|
-
// string value from the container.
|
704
|
+
// Used for MetadataMap::GetStringValue, its Found/NotFound methods generated
|
705
|
+
// a string value from the container.
|
704
706
|
template <typename Container>
|
705
707
|
class GetStringValueHelper {
|
706
708
|
public:
|
@@ -750,7 +752,7 @@ class GetStringValueHelper {
|
|
750
752
|
|
751
753
|
GPR_ATTRIBUTE_NOINLINE absl::optional<absl::string_view> NotFound(
|
752
754
|
absl::string_view key) {
|
753
|
-
return container_->
|
755
|
+
return container_->unknown_.GetStringValue(key, backing_);
|
754
756
|
}
|
755
757
|
|
756
758
|
private:
|
@@ -763,7 +765,24 @@ using LogFn = absl::FunctionRef<void(absl::string_view, absl::string_view)>;
|
|
763
765
|
|
764
766
|
template <typename T>
|
765
767
|
struct AdaptDisplayValueToLog {
|
766
|
-
static std::string ToString(const T& value) { return
|
768
|
+
static std::string ToString(const T& value) { return std::to_string(value); }
|
769
|
+
};
|
770
|
+
|
771
|
+
template <>
|
772
|
+
struct AdaptDisplayValueToLog<std::string> {
|
773
|
+
static std::string ToString(const std::string& value) { return value; }
|
774
|
+
};
|
775
|
+
|
776
|
+
template <>
|
777
|
+
struct AdaptDisplayValueToLog<const std::string&> {
|
778
|
+
static std::string ToString(const std::string& value) { return value; }
|
779
|
+
};
|
780
|
+
|
781
|
+
template <>
|
782
|
+
struct AdaptDisplayValueToLog<absl::string_view> {
|
783
|
+
static std::string ToString(absl::string_view value) {
|
784
|
+
return std::string(value);
|
785
|
+
}
|
767
786
|
};
|
768
787
|
|
769
788
|
template <>
|
@@ -773,6 +792,11 @@ struct AdaptDisplayValueToLog<Slice> {
|
|
773
792
|
}
|
774
793
|
};
|
775
794
|
|
795
|
+
template <>
|
796
|
+
struct AdaptDisplayValueToLog<const char*> {
|
797
|
+
static std::string ToString(const char* value) { return std::string(value); }
|
798
|
+
};
|
799
|
+
|
776
800
|
template <>
|
777
801
|
struct AdaptDisplayValueToLog<StaticSlice> {
|
778
802
|
static absl::string_view ToString(StaticSlice value) {
|
@@ -809,8 +833,12 @@ struct Value<Which, absl::enable_if_t<Which::kRepeatable == false &&
|
|
809
833
|
void EncodeTo(Encoder* encoder) const {
|
810
834
|
encoder->Encode(Which(), value);
|
811
835
|
}
|
836
|
+
template <typename Encoder>
|
837
|
+
void VisitWith(Encoder* encoder) const {
|
838
|
+
return EncodeTo(encoder);
|
839
|
+
}
|
812
840
|
void LogTo(LogFn log_fn) const {
|
813
|
-
LogKeyValueTo(Which::key(), value, Which::
|
841
|
+
LogKeyValueTo(Which::key(), value, Which::DisplayValue, log_fn);
|
814
842
|
}
|
815
843
|
using StorageType = typename Which::ValueType;
|
816
844
|
GPR_NO_UNIQUE_ADDRESS StorageType value;
|
@@ -833,6 +861,10 @@ struct Value<Which, absl::enable_if_t<Which::kRepeatable == false &&
|
|
833
861
|
}
|
834
862
|
template <typename Encoder>
|
835
863
|
void EncodeTo(Encoder*) const {}
|
864
|
+
template <typename Encoder>
|
865
|
+
void VisitWith(Encoder* encoder) const {
|
866
|
+
encoder->Encode(Which(), value);
|
867
|
+
}
|
836
868
|
void LogTo(LogFn log_fn) const {
|
837
869
|
LogKeyValueTo(Which::DebugKey(), value, Which::DisplayValue, log_fn);
|
838
870
|
}
|
@@ -864,6 +896,10 @@ struct Value<Which, absl::enable_if_t<Which::kRepeatable == true &&
|
|
864
896
|
encoder->Encode(Which(), v);
|
865
897
|
}
|
866
898
|
}
|
899
|
+
template <typename Encoder>
|
900
|
+
void VisitWith(Encoder* encoder) const {
|
901
|
+
return EncodeTo(encoder);
|
902
|
+
}
|
867
903
|
void LogTo(LogFn log_fn) const {
|
868
904
|
for (const auto& v : value) {
|
869
905
|
LogKeyValueTo(Which::key(), v, Which::Encode, log_fn);
|
@@ -893,6 +929,12 @@ struct Value<Which, absl::enable_if_t<Which::kRepeatable == true &&
|
|
893
929
|
}
|
894
930
|
template <typename Encoder>
|
895
931
|
void EncodeTo(Encoder*) const {}
|
932
|
+
template <typename Encoder>
|
933
|
+
void VisitWith(Encoder* encoder) const {
|
934
|
+
for (const auto& v : value) {
|
935
|
+
encoder->Encode(Which(), v);
|
936
|
+
}
|
937
|
+
}
|
896
938
|
void LogTo(LogFn log_fn) const {
|
897
939
|
for (const auto& v : value) {
|
898
940
|
LogKeyValueTo(Which::DebugKey(), v, Which::DisplayValue, log_fn);
|
@@ -919,7 +961,7 @@ class CopySink {
|
|
919
961
|
}
|
920
962
|
|
921
963
|
void Encode(const Slice& key, const Slice& value) {
|
922
|
-
dst_->
|
964
|
+
dst_->unknown_.Append(key.as_string_view(), value.Ref());
|
923
965
|
}
|
924
966
|
|
925
967
|
private:
|
@@ -937,6 +979,17 @@ struct EncodeWrapper {
|
|
937
979
|
}
|
938
980
|
};
|
939
981
|
|
982
|
+
// Callable for the table ForEach in ForEach() -- for each value, call the
|
983
|
+
// appropriate visitor method.
|
984
|
+
template <typename Encoder>
|
985
|
+
struct ForEachWrapper {
|
986
|
+
Encoder* encoder;
|
987
|
+
template <typename Which>
|
988
|
+
void operator()(const Value<Which>& which) {
|
989
|
+
which.VisitWith(encoder);
|
990
|
+
}
|
991
|
+
};
|
992
|
+
|
940
993
|
// Callable for the ForEach in Log()
|
941
994
|
struct LogWrapper {
|
942
995
|
LogFn log_fn;
|
@@ -975,6 +1028,60 @@ class TransportSizeEncoder {
|
|
975
1028
|
uint32_t size_ = 0;
|
976
1029
|
};
|
977
1030
|
|
1031
|
+
// Handle unknown (non-trait-based) fields in the metadata map.
|
1032
|
+
class UnknownMap {
|
1033
|
+
public:
|
1034
|
+
explicit UnknownMap(Arena* arena) : unknown_(arena) {}
|
1035
|
+
|
1036
|
+
using BackingType = ChunkedVector<std::pair<Slice, Slice>, 10>;
|
1037
|
+
|
1038
|
+
void Append(absl::string_view key, Slice value);
|
1039
|
+
void Remove(absl::string_view key);
|
1040
|
+
absl::optional<absl::string_view> GetStringValue(absl::string_view key,
|
1041
|
+
std::string* backing) const;
|
1042
|
+
|
1043
|
+
BackingType::ConstForwardIterator begin() const { return unknown_.cbegin(); }
|
1044
|
+
BackingType::ConstForwardIterator end() const { return unknown_.cend(); }
|
1045
|
+
|
1046
|
+
bool empty() const { return unknown_.empty(); }
|
1047
|
+
size_t size() const { return unknown_.size(); }
|
1048
|
+
void Clear() { unknown_.Clear(); }
|
1049
|
+
Arena* arena() const { return unknown_.arena(); }
|
1050
|
+
|
1051
|
+
private:
|
1052
|
+
// Backing store for added metadata.
|
1053
|
+
ChunkedVector<std::pair<Slice, Slice>, 10> unknown_;
|
1054
|
+
};
|
1055
|
+
|
1056
|
+
// Given a factory template Factory, construct a type that derives from
|
1057
|
+
// Factory<MetadataTrait, MetadataTrait::CompressionTraits> for all
|
1058
|
+
// MetadataTraits. Useful for transports in defining the stateful parts of their
|
1059
|
+
// compression algorithm.
|
1060
|
+
template <template <typename, typename> class Factory,
|
1061
|
+
typename... MetadataTraits>
|
1062
|
+
struct StatefulCompressor;
|
1063
|
+
|
1064
|
+
template <template <typename, typename> class Factory, typename MetadataTrait,
|
1065
|
+
bool kEncodable = IsEncodableTrait<MetadataTrait>::value>
|
1066
|
+
struct SpecificStatefulCompressor;
|
1067
|
+
|
1068
|
+
template <template <typename, typename> class Factory, typename MetadataTrait>
|
1069
|
+
struct SpecificStatefulCompressor<Factory, MetadataTrait, true>
|
1070
|
+
: public Factory<MetadataTrait, typename MetadataTrait::CompressionTraits> {
|
1071
|
+
};
|
1072
|
+
|
1073
|
+
template <template <typename, typename> class Factory, typename MetadataTrait>
|
1074
|
+
struct SpecificStatefulCompressor<Factory, MetadataTrait, false> {};
|
1075
|
+
|
1076
|
+
template <template <typename, typename> class Factory, typename MetadataTrait,
|
1077
|
+
typename... MetadataTraits>
|
1078
|
+
struct StatefulCompressor<Factory, MetadataTrait, MetadataTraits...>
|
1079
|
+
: public SpecificStatefulCompressor<Factory, MetadataTrait>,
|
1080
|
+
public StatefulCompressor<Factory, MetadataTraits...> {};
|
1081
|
+
|
1082
|
+
template <template <typename, typename> class Factory>
|
1083
|
+
struct StatefulCompressor<Factory> {};
|
1084
|
+
|
978
1085
|
} // namespace metadata_detail
|
979
1086
|
|
980
1087
|
// Helper function for encoders
|
@@ -1035,21 +1142,24 @@ MetadataValueAsSlice(typename Which::ValueType value) {
|
|
1035
1142
|
// // Parse a memento from a slice
|
1036
1143
|
// // Takes ownership of value
|
1037
1144
|
// // Calls fn in the case of an error that should be reported to the user
|
1038
|
-
// static MementoType ParseMemento(Slice value, MementoParseErrorFn fn) {
|
1145
|
+
// static MementoType ParseMemento(Slice value, MementoParseErrorFn fn) {
|
1146
|
+
// ...
|
1039
1147
|
// }
|
1040
1148
|
// // Convert a memento to a value
|
1041
1149
|
// static ValueType MementoToValue(MementoType memento) { ... }
|
1042
1150
|
// // Convert a value to its canonical text wire format (the format that
|
1043
1151
|
// // ParseMemento will accept!)
|
1044
1152
|
// static Slice Encode(const ValueType& value);
|
1045
|
-
// // Convert a value to something that can be passed to StrCat and
|
1153
|
+
// // Convert a value to something that can be passed to StrCat and
|
1154
|
+
// displayed
|
1046
1155
|
// // for debugging
|
1047
|
-
// static SomeStrCatableType DisplayValue(
|
1156
|
+
// static SomeStrCatableType DisplayValue(ValueType value) { ... }
|
1157
|
+
// static SomeStrCatableType DisplayMemento(MementoType value) { ... }
|
1048
1158
|
// };
|
1049
1159
|
//
|
1050
|
-
// Non-encodable traits are determined by missing the key() method, and have
|
1051
|
-
// following signature (and by convention omit the Metadata part of the
|
1052
|
-
// name):
|
1160
|
+
// Non-encodable traits are determined by missing the key() method, and have
|
1161
|
+
// the following signature (and by convention omit the Metadata part of the
|
1162
|
+
// type name):
|
1053
1163
|
// // Traits for the GrpcXyz field:
|
1054
1164
|
// struct GrpcXyz {
|
1055
1165
|
// // The string key that should be used for debug dumps - should not be a
|
@@ -1059,7 +1169,8 @@ MetadataValueAsSlice(typename Which::ValueType value) {
|
|
1059
1169
|
// static constexpr bool kRepeatable = ...;
|
1060
1170
|
// // The type that's stored on MetadataBatch
|
1061
1171
|
// using ValueType = ...;
|
1062
|
-
// // Convert a value to something that can be passed to StrCat and
|
1172
|
+
// // Convert a value to something that can be passed to StrCat and
|
1173
|
+
// displayed
|
1063
1174
|
// // for debugging
|
1064
1175
|
// static SomeStrCatableType DisplayValue(ValueType value) { ... }
|
1065
1176
|
// };
|
@@ -1072,10 +1183,10 @@ MetadataValueAsSlice(typename Which::ValueType value) {
|
|
1072
1183
|
// in the compression table. This is what mementos are used for.
|
1073
1184
|
//
|
1074
1185
|
// A trait offers the capability to turn a slice into a memento via
|
1075
|
-
// ParseMemento. This is exposed to users of MetadataMap via the Parse()
|
1076
|
-
// that returns a ParsedMetadata object. That ParsedMetadata object
|
1077
|
-
// be used to set the same value on many different MetadataMaps
|
1078
|
-
// to reparse.
|
1186
|
+
// ParseMemento. This is exposed to users of MetadataMap via the Parse()
|
1187
|
+
// method, that returns a ParsedMetadata object. That ParsedMetadata object
|
1188
|
+
// can in turn be used to set the same value on many different MetadataMaps
|
1189
|
+
// without having to reparse.
|
1079
1190
|
//
|
1080
1191
|
// Implementation wise, ParsedMetadata is a type erased wrapper around
|
1081
1192
|
// MementoType. When we set a value on MetadataMap, we first turn that memento
|
@@ -1089,6 +1200,15 @@ class MetadataMap {
|
|
1089
1200
|
explicit MetadataMap(Arena* arena);
|
1090
1201
|
~MetadataMap();
|
1091
1202
|
|
1203
|
+
// Given a compressor factory - template taking <MetadataTrait,
|
1204
|
+
// CompressionTrait>, StatefulCompressor<Factory> provides a type
|
1205
|
+
// derived from all Encodable traits in this MetadataMap.
|
1206
|
+
// This can be used by transports to delegate compression to the appropriate
|
1207
|
+
// compression algorithm.
|
1208
|
+
template <template <typename, typename> class Factory>
|
1209
|
+
using StatefulCompressor =
|
1210
|
+
metadata_detail::StatefulCompressor<Factory, Traits...>;
|
1211
|
+
|
1092
1212
|
MetadataMap(const MetadataMap&) = delete;
|
1093
1213
|
MetadataMap& operator=(const MetadataMap&) = delete;
|
1094
1214
|
MetadataMap(MetadataMap&&) noexcept;
|
@@ -1106,13 +1226,21 @@ class MetadataMap {
|
|
1106
1226
|
// void Encode(TraitsType, typename TraitsType::ValueType value);
|
1107
1227
|
// For fields for which we do not have traits, this will be a method
|
1108
1228
|
// with the signature:
|
1109
|
-
// void Encode(
|
1110
|
-
// TODO(ctiller): It's expected that the latter Encode method will
|
1111
|
-
// become Encode(Slice, Slice) by the end of the current metadata API
|
1112
|
-
// transitions.
|
1229
|
+
// void Encode(string_view key, Slice value);
|
1113
1230
|
template <typename Encoder>
|
1114
1231
|
void Encode(Encoder* encoder) const {
|
1115
|
-
table_.
|
1232
|
+
table_.template ForEachIn<metadata_detail::EncodeWrapper<Encoder>,
|
1233
|
+
Value<Traits>...>(
|
1234
|
+
metadata_detail::EncodeWrapper<Encoder>{encoder});
|
1235
|
+
for (const auto& unk : unknown_) {
|
1236
|
+
encoder->Encode(unk.first, unk.second);
|
1237
|
+
}
|
1238
|
+
}
|
1239
|
+
|
1240
|
+
// Like Encode, but also visit the non-encodable fields.
|
1241
|
+
template <typename Encoder>
|
1242
|
+
void ForEach(Encoder* encoder) const {
|
1243
|
+
table_.ForEach(metadata_detail::ForEachWrapper<Encoder>{encoder});
|
1116
1244
|
for (const auto& unk : unknown_) {
|
1117
1245
|
encoder->Encode(unk.first, unk.second);
|
1118
1246
|
}
|
@@ -1128,12 +1256,11 @@ class MetadataMap {
|
|
1128
1256
|
}
|
1129
1257
|
|
1130
1258
|
std::string DebugString() const {
|
1131
|
-
|
1132
|
-
Log([&
|
1133
|
-
|
1134
|
-
absl::StrAppend(&out, absl::CEscape(key), ": ", absl::CEscape(value));
|
1259
|
+
metadata_detail::DebugStringBuilder builder;
|
1260
|
+
Log([&builder](absl::string_view key, absl::string_view value) {
|
1261
|
+
builder.Add(key, value);
|
1135
1262
|
});
|
1136
|
-
return
|
1263
|
+
return builder.TakeOutput();
|
1137
1264
|
}
|
1138
1265
|
|
1139
1266
|
// Get the pointer to the value of some known metadata.
|
@@ -1280,36 +1407,9 @@ class MetadataMap {
|
|
1280
1407
|
template <typename Which>
|
1281
1408
|
using Value = metadata_detail::Value<Which>;
|
1282
1409
|
|
1283
|
-
void AppendUnknown(absl::string_view key, Slice value) {
|
1284
|
-
unknown_.EmplaceBack(Slice::FromCopiedString(key), value.Ref());
|
1285
|
-
}
|
1286
|
-
|
1287
|
-
void RemoveUnknown(absl::string_view key) {
|
1288
|
-
unknown_.SetEnd(std::remove_if(unknown_.begin(), unknown_.end(),
|
1289
|
-
[key](const std::pair<Slice, Slice>& p) {
|
1290
|
-
return p.first.as_string_view() == key;
|
1291
|
-
}));
|
1292
|
-
}
|
1293
|
-
|
1294
|
-
absl::optional<absl::string_view> GetStringValueUnknown(
|
1295
|
-
absl::string_view key, std::string* backing) const {
|
1296
|
-
absl::optional<absl::string_view> out;
|
1297
|
-
for (const auto& p : unknown_) {
|
1298
|
-
if (p.first.as_string_view() == key) {
|
1299
|
-
if (!out.has_value()) {
|
1300
|
-
out = p.second.as_string_view();
|
1301
|
-
} else {
|
1302
|
-
out = *backing = absl::StrCat(*out, ",", p.second.as_string_view());
|
1303
|
-
}
|
1304
|
-
}
|
1305
|
-
}
|
1306
|
-
return out;
|
1307
|
-
}
|
1308
|
-
|
1309
1410
|
// Table of known metadata types.
|
1310
|
-
|
1311
|
-
|
1312
|
-
ChunkedVector<std::pair<Slice, Slice>, 10> unknown_;
|
1411
|
+
PackedTable<Value<Traits>...> table_;
|
1412
|
+
metadata_detail::UnknownMap unknown_;
|
1313
1413
|
};
|
1314
1414
|
|
1315
1415
|
// Ok/not-ok check for metadata maps that contain GrpcStatusMetadata, so that
|
@@ -1327,8 +1427,8 @@ template <typename Derived, typename... Traits>
|
|
1327
1427
|
MetadataMap<Derived, Traits...>::MetadataMap(MetadataMap&& other) noexcept
|
1328
1428
|
: table_(std::move(other.table_)), unknown_(std::move(other.unknown_)) {}
|
1329
1429
|
|
1330
|
-
// We never create MetadataMap directly, instead we create Derived, but we
|
1331
|
-
// to be able to move it without redeclaring this.
|
1430
|
+
// We never create MetadataMap directly, instead we create Derived, but we
|
1431
|
+
// want to be able to move it without redeclaring this.
|
1332
1432
|
// NOLINTNEXTLINE(misc-unconventional-assign-operator)
|
1333
1433
|
template <typename Derived, typename... Traits>
|
1334
1434
|
Derived& MetadataMap<Derived, Traits...>::operator=(
|
@@ -1358,7 +1458,7 @@ template <typename Derived, typename... Traits>
|
|
1358
1458
|
Derived MetadataMap<Derived, Traits...>::Copy() const {
|
1359
1459
|
Derived out(unknown_.arena());
|
1360
1460
|
metadata_detail::CopySink<Derived> sink(&out);
|
1361
|
-
|
1461
|
+
ForEach(&sink);
|
1362
1462
|
return out;
|
1363
1463
|
}
|
1364
1464
|
|
@@ -1379,16 +1479,17 @@ using grpc_metadata_batch_base = grpc_core::MetadataMap<
|
|
1379
1479
|
grpc_core::GrpcTimeoutMetadata, grpc_core::GrpcPreviousRpcAttemptsMetadata,
|
1380
1480
|
grpc_core::GrpcRetryPushbackMsMetadata, grpc_core::UserAgentMetadata,
|
1381
1481
|
grpc_core::GrpcMessageMetadata, grpc_core::HostMetadata,
|
1382
|
-
grpc_core::
|
1482
|
+
grpc_core::EndpointLoadMetricsBinMetadata,
|
1383
1483
|
grpc_core::GrpcServerStatsBinMetadata, grpc_core::GrpcTraceBinMetadata,
|
1384
1484
|
grpc_core::GrpcTagsBinMetadata, grpc_core::GrpcLbClientStatsMetadata,
|
1385
1485
|
grpc_core::LbCostBinMetadata, grpc_core::LbTokenMetadata,
|
1386
1486
|
// Non-encodable things
|
1387
1487
|
grpc_core::GrpcStreamNetworkState, grpc_core::PeerString,
|
1388
|
-
grpc_core::GrpcStatusContext
|
1488
|
+
grpc_core::GrpcStatusContext, grpc_core::GrpcStatusFromWire,
|
1489
|
+
grpc_core::WaitForReady, grpc_core::GrpcTrailersOnly>;
|
1389
1490
|
|
1390
1491
|
struct grpc_metadata_batch : public grpc_metadata_batch_base {
|
1391
1492
|
using grpc_metadata_batch_base::grpc_metadata_batch_base;
|
1392
1493
|
};
|
1393
1494
|
|
1394
|
-
#endif
|
1495
|
+
#endif // GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_BATCH_H
|