grpc 1.39.0 → 1.41.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +45 -38
- data/include/grpc/byte_buffer.h +1 -1
- data/include/grpc/byte_buffer_reader.h +1 -1
- data/include/grpc/event_engine/endpoint_config.h +6 -11
- data/include/grpc/event_engine/event_engine.h +73 -72
- data/include/grpc/event_engine/port.h +1 -3
- data/include/grpc/event_engine/slice_allocator.h +14 -34
- data/include/grpc/fork.h +1 -1
- data/include/grpc/grpc.h +10 -4
- data/include/grpc/grpc_posix.h +5 -2
- data/include/grpc/impl/codegen/atm.h +5 -3
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
- data/include/grpc/impl/codegen/atm_windows.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
- data/include/grpc/impl/codegen/compression_types.h +2 -0
- data/include/grpc/impl/codegen/connectivity_state.h +2 -0
- data/include/grpc/impl/codegen/fork.h +2 -0
- data/include/grpc/impl/codegen/gpr_slice.h +2 -0
- data/include/grpc/impl/codegen/gpr_types.h +2 -0
- data/include/grpc/impl/codegen/grpc_types.h +22 -13
- data/include/grpc/impl/codegen/log.h +2 -0
- data/include/grpc/impl/codegen/port_platform.h +50 -22
- data/include/grpc/impl/codegen/propagation_bits.h +2 -0
- data/include/grpc/impl/codegen/slice.h +2 -0
- data/include/grpc/impl/codegen/status.h +2 -0
- data/include/grpc/impl/codegen/sync.h +8 -5
- data/include/grpc/impl/codegen/sync_abseil.h +2 -0
- data/include/grpc/impl/codegen/sync_custom.h +2 -0
- data/include/grpc/impl/codegen/sync_generic.h +3 -0
- data/include/grpc/impl/codegen/sync_posix.h +4 -2
- data/include/grpc/impl/codegen/sync_windows.h +2 -0
- data/include/grpc/slice.h +1 -1
- data/include/grpc/status.h +1 -1
- data/include/grpc/support/atm.h +1 -1
- data/include/grpc/support/atm_gcc_atomic.h +1 -1
- data/include/grpc/support/atm_gcc_sync.h +1 -1
- data/include/grpc/support/atm_windows.h +1 -1
- data/include/grpc/support/log.h +1 -1
- data/include/grpc/support/port_platform.h +1 -1
- data/include/grpc/support/sync.h +1 -1
- data/include/grpc/support/sync_abseil.h +1 -1
- data/include/grpc/support/sync_custom.h +1 -1
- data/include/grpc/support/sync_generic.h +1 -1
- data/include/grpc/support/sync_posix.h +1 -1
- data/include/grpc/support/sync_windows.h +1 -1
- data/include/grpc/support/time.h +2 -2
- data/src/core/ext/filters/census/grpc_context.cc +1 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +0 -1
- data/src/core/ext/filters/client_channel/backup_poller.h +1 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +1 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +437 -299
- data/src/core/ext/filters/client_channel/client_channel.h +45 -21
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -5
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +1 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +8 -1
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
- data/src/core/ext/filters/client_channel/config_selector.h +19 -6
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -6
- data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -3
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +8 -7
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +9 -16
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +12 -21
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +17 -28
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +18 -38
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +8 -15
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +5 -14
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +23 -30
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +24 -29
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +4 -17
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +7 -11
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -15
- data/src/core/ext/filters/client_channel/lb_policy.h +81 -90
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +2 -10
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +6 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +14 -19
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -0
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +106 -81
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +2 -3
- data/src/core/ext/filters/client_channel/retry_filter.cc +408 -246
- data/src/core/ext/filters/client_channel/retry_service_config.cc +36 -26
- data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
- data/src/core/ext/filters/client_channel/service_config_call_data.h +45 -5
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +36 -30
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +8 -12
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +6 -13
- data/src/core/ext/filters/http/client/http_client_filter.cc +8 -4
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -1
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +2 -1
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +7 -8
- data/src/core/ext/filters/http/server/http_server_filter.cc +5 -3
- data/src/core/ext/filters/message_size/message_size_filter.cc +9 -13
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +29 -12
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -0
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -3
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +10 -6
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +2 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +65 -38
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -6
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -9
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +4 -2
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +67 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +26 -36
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -1
- data/src/core/ext/transport/chttp2/transport/context_list.h +1 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +39 -23
- data/src/core/ext/transport/chttp2/transport/flow_control.h +10 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +11 -11
- data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +12 -11
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +41 -10
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +12 -7
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -0
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +272 -666
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +236 -70
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +107 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +69 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +821 -1195
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +76 -76
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +159 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +130 -0
- data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +46 -0
- data/src/core/ext/transport/chttp2/transport/hpack_utils.h +30 -0
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +3 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +89 -83
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +60 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/varint.cc +13 -7
- data/src/core/ext/transport/chttp2/transport/varint.h +39 -28
- data/src/core/ext/transport/chttp2/transport/writing.cc +32 -28
- data/src/core/ext/transport/inproc/inproc_transport.cc +6 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +96 -96
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +221 -89
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +48 -48
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +151 -61
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +117 -96
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +347 -141
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +133 -126
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +326 -149
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +23 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +28 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +71 -29
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +114 -78
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +268 -88
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +24 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +62 -62
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +131 -53
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +51 -51
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +81 -33
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +110 -53
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +356 -45
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +133 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +9 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +96 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +57 -22
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +174 -17
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +45 -37
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +177 -94
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +42 -40
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +86 -29
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +177 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +48 -28
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +30 -30
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +81 -33
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +41 -29
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +141 -43
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +47 -43
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +88 -29
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +34 -17
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +84 -9
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +293 -277
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +633 -240
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +24 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +35 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +10 -9
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +26 -16
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +147 -106
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +457 -160
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +48 -31
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +135 -34
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +44 -42
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +108 -55
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +42 -42
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +61 -25
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +48 -20
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +162 -17
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +205 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +9 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +10 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +71 -29
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +19 -19
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +11 -5
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +1 -1
- 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 +58 -58
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +111 -45
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +68 -68
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +121 -49
- data/src/core/ext/upb-generated/google/api/http.upb.c +18 -18
- data/src/core/ext/upb-generated/google/api/http.upb.h +31 -13
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +153 -153
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +271 -109
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +2 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +15 -15
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +31 -13
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +19 -19
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +91 -37
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +5 -5
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +11 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +12 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +60 -60
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +101 -41
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -9
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +5 -5
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +21 -9
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +31 -31
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +91 -37
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +8 -8
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +31 -13
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +13 -13
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +11 -5
- data/src/core/ext/upb-generated/validate/validate.upb.c +240 -224
- data/src/core/ext/upb-generated/validate/validate.upb.h +451 -217
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +11 -5
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +8 -8
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +21 -9
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +11 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +11 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +11 -11
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +21 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +11 -5
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +53 -52
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +318 -277
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +438 -409
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +198 -170
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +219 -163
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +29 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +94 -63
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +135 -125
- 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/listener_components.upbdefs.c +131 -123
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +32 -24
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +30 -19
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -55
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +796 -765
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +436 -374
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +140 -114
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +178 -173
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +112 -79
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +14 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +103 -103
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -160
- data/src/core/ext/xds/certificate_provider_registry.cc +2 -2
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/xds_api.cc +1116 -1054
- data/src/core/ext/xds/xds_api.h +47 -35
- data/src/core/ext/xds/xds_bootstrap.cc +29 -51
- data/src/core/ext/xds/xds_client.cc +130 -68
- data/src/core/ext/xds/xds_client.h +0 -4
- data/src/core/ext/xds/xds_client_stats.cc +16 -15
- data/src/core/ext/xds/xds_client_stats.h +6 -6
- data/src/core/ext/xds/xds_http_fault_filter.cc +4 -3
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -2
- data/src/core/ext/xds/xds_http_filters.cc +4 -2
- data/src/core/ext/xds/xds_http_filters.h +3 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +10 -10
- data/src/core/lib/address_utils/parse_address.cc +4 -8
- data/src/core/lib/address_utils/sockaddr_utils.cc +2 -2
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_args.cc +2 -1
- data/src/core/lib/channel/channel_stack.cc +5 -3
- data/src/core/lib/channel/channel_stack.h +1 -1
- data/src/core/lib/channel/channel_stack_builder.cc +1 -11
- data/src/core/lib/channel/channel_stack_builder.h +0 -8
- data/src/core/lib/channel/channel_trace.cc +4 -3
- data/src/core/lib/channel/channel_trace.h +1 -0
- data/src/core/lib/channel/channelz.cc +40 -36
- data/src/core/lib/channel/channelz.h +27 -27
- data/src/core/lib/channel/channelz_registry.cc +7 -6
- data/src/core/lib/channel/connected_channel.cc +1 -0
- data/src/core/lib/channel/context.h +3 -0
- data/src/core/lib/channel/handshaker.cc +2 -1
- data/src/core/lib/channel/handshaker.h +1 -2
- data/src/core/lib/channel/handshaker_factory.h +10 -2
- data/src/core/lib/channel/handshaker_registry.cc +15 -70
- data/src/core/lib/channel/handshaker_registry.h +29 -12
- data/src/core/lib/channel/status_util.h +6 -2
- data/src/core/lib/compression/algorithm_metadata.h +1 -0
- data/src/core/lib/compression/compression_args.cc +2 -1
- data/src/core/lib/compression/compression_internal.cc +2 -4
- data/src/core/lib/compression/message_compress.cc +2 -2
- data/src/core/lib/compression/stream_compression.cc +2 -1
- data/src/core/lib/compression/stream_compression.h +3 -2
- data/src/core/lib/compression/stream_compression_gzip.cc +2 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.cc +2 -1
- data/src/core/lib/compression/stream_compression_identity.h +1 -1
- data/src/core/lib/config/core_configuration.cc +54 -0
- data/src/core/lib/config/core_configuration.h +108 -0
- data/src/core/lib/debug/stats.h +2 -1
- data/src/core/lib/debug/stats_data.cc +2 -1
- data/src/core/lib/debug/stats_data.h +1 -0
- data/src/core/lib/debug/trace.cc +1 -0
- data/src/core/lib/debug/trace.h +2 -1
- data/src/core/lib/event_engine/endpoint_config.cc +0 -1
- data/src/core/lib/event_engine/event_engine.cc +3 -3
- data/src/core/lib/event_engine/sockaddr.cc +3 -3
- data/src/core/lib/gpr/alloc.cc +4 -3
- data/src/core/lib/gpr/env_linux.cc +1 -2
- data/src/core/lib/gpr/env_posix.cc +2 -3
- data/src/core/lib/gpr/log.cc +3 -3
- data/src/core/lib/gpr/log_android.cc +3 -2
- data/src/core/lib/gpr/log_linux.cc +7 -4
- data/src/core/lib/gpr/log_posix.cc +6 -3
- data/src/core/lib/gpr/murmur_hash.cc +4 -2
- data/src/core/lib/gpr/string.h +2 -2
- data/src/core/lib/gpr/sync.cc +2 -2
- data/src/core/lib/gpr/sync_abseil.cc +7 -6
- data/src/core/lib/gpr/sync_posix.cc +3 -3
- data/src/core/lib/gpr/time.cc +3 -2
- data/src/core/lib/gpr/time_windows.cc +3 -2
- data/src/core/lib/gpr/tls.h +120 -41
- data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
- data/src/core/lib/gprpp/arena.cc +2 -1
- data/src/core/lib/gprpp/arena.h +5 -5
- data/src/core/lib/gprpp/atomic_utils.h +47 -0
- data/src/core/lib/gprpp/bitset.h +166 -0
- data/src/core/lib/gprpp/construct_destruct.h +39 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +25 -26
- data/src/core/lib/gprpp/fork.cc +14 -12
- data/src/core/lib/gprpp/fork.h +4 -4
- data/src/core/lib/gprpp/global_config.h +1 -2
- data/src/core/lib/gprpp/global_config_env.cc +7 -7
- data/src/core/lib/gprpp/global_config_generic.h +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +9 -6
- data/src/core/lib/gprpp/match.h +73 -0
- data/src/core/lib/gprpp/memory.h +3 -3
- data/src/core/lib/gprpp/mpscq.cc +7 -7
- data/src/core/lib/gprpp/mpscq.h +6 -5
- data/src/core/lib/gprpp/orphanable.h +6 -6
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/ref_counted.h +18 -18
- data/src/core/lib/gprpp/status_helper.cc +4 -4
- data/src/core/lib/gprpp/sync.h +5 -31
- data/src/core/lib/gprpp/thd_posix.cc +5 -5
- data/src/core/lib/gprpp/thd_windows.cc +4 -11
- data/src/core/lib/gprpp/time_util.cc +2 -2
- data/src/core/lib/gprpp/time_util.h +2 -2
- data/src/core/lib/http/format_request.cc +1 -0
- data/src/core/lib/http/format_request.h +1 -0
- data/src/core/lib/http/httpcli.cc +9 -9
- data/src/core/lib/http/httpcli.h +3 -0
- data/src/core/lib/http/httpcli_security_connector.cc +5 -8
- data/src/core/lib/http/parser.h +1 -0
- data/src/core/lib/iomgr/buffer_list.cc +3 -2
- data/src/core/lib/iomgr/buffer_list.h +1 -2
- data/src/core/lib/iomgr/call_combiner.cc +1 -0
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
- data/src/core/lib/iomgr/combiner.cc +3 -2
- data/src/core/lib/iomgr/combiner.h +1 -0
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +1 -0
- data/src/core/lib/iomgr/endpoint.cc +0 -4
- data/src/core/lib/iomgr/endpoint.h +1 -3
- data/src/core/lib/iomgr/endpoint_cfstream.cc +9 -20
- data/src/core/lib/iomgr/endpoint_cfstream.h +1 -1
- data/src/core/lib/iomgr/endpoint_pair.h +1 -0
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +1 -2
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +15 -11
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +17 -9
- data/src/core/lib/iomgr/error.h +23 -9
- data/src/core/lib/iomgr/error_cfstream.cc +2 -2
- data/src/core/lib/iomgr/error_internal.h +1 -0
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +14 -22
- data/src/core/lib/iomgr/ev_epollex_linux.cc +15 -22
- data/src/core/lib/iomgr/ev_poll_posix.cc +13 -25
- data/src/core/lib/iomgr/ev_posix.cc +1 -2
- data/src/core/lib/iomgr/event_engine/endpoint.cc +9 -30
- data/src/core/lib/iomgr/event_engine/endpoint.h +1 -2
- data/src/core/lib/iomgr/event_engine/iomgr.cc +17 -18
- data/src/core/lib/iomgr/event_engine/iomgr.h +20 -2
- data/src/core/lib/iomgr/event_engine/resolver.cc +2 -1
- data/src/core/lib/iomgr/event_engine/tcp.cc +68 -19
- data/src/core/lib/iomgr/exec_ctx.cc +3 -4
- data/src/core/lib/iomgr/exec_ctx.h +11 -19
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +10 -9
- data/src/core/lib/iomgr/executor/mpmcqueue.h +4 -3
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -2
- data/src/core/lib/iomgr/executor/threadpool.h +2 -1
- data/src/core/lib/iomgr/executor.cc +5 -6
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -2
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +2 -2
- data/src/core/lib/iomgr/internal_errqueue.cc +3 -2
- data/src/core/lib/iomgr/iocp_windows.cc +1 -0
- data/src/core/lib/iomgr/iomgr.h +2 -2
- data/src/core/lib/iomgr/iomgr_custom.cc +2 -2
- data/src/core/lib/iomgr/iomgr_custom.h +2 -2
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -1
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -2
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +4 -4
- data/src/core/lib/iomgr/polling_entity.cc +2 -2
- data/src/core/lib/iomgr/pollset_custom.cc +3 -4
- data/src/core/lib/iomgr/pollset_custom.h +2 -2
- data/src/core/lib/iomgr/pollset_set_custom.cc +1 -2
- data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
- data/src/core/lib/iomgr/port.h +0 -5
- data/src/core/lib/iomgr/python_util.h +2 -1
- data/src/core/lib/iomgr/resolve_address.cc +2 -1
- data/src/core/lib/iomgr/resolve_address.h +0 -4
- data/src/core/lib/iomgr/resolve_address_custom.cc +4 -4
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +2 -4
- data/src/core/lib/iomgr/resolve_address_windows.cc +6 -8
- data/src/core/lib/iomgr/resource_quota.cc +127 -40
- data/src/core/lib/iomgr/resource_quota.h +66 -17
- data/src/core/lib/iomgr/sockaddr.h +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +3 -3
- data/src/core/lib/iomgr/socket_factory_posix.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.h +2 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +3 -3
- data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
- data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
- data/src/core/lib/iomgr/socket_utils_posix.h +2 -2
- data/src/core/lib/iomgr/socket_utils_windows.cc +2 -2
- data/src/core/lib/iomgr/tcp_client.cc +4 -2
- data/src/core/lib/iomgr/tcp_client.h +4 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +9 -19
- data/src/core/lib/iomgr/tcp_client_custom.cc +9 -17
- data/src/core/lib/iomgr/tcp_client_posix.cc +24 -9
- data/src/core/lib/iomgr/tcp_client_posix.h +5 -2
- data/src/core/lib/iomgr/tcp_client_windows.cc +16 -6
- data/src/core/lib/iomgr/tcp_custom.cc +11 -23
- data/src/core/lib/iomgr/tcp_custom.h +2 -1
- data/src/core/lib/iomgr/tcp_posix.cc +29 -59
- data/src/core/lib/iomgr/tcp_posix.h +11 -12
- data/src/core/lib/iomgr/tcp_server.cc +6 -4
- data/src/core/lib/iomgr/tcp_server.h +12 -9
- data/src/core/lib/iomgr/tcp_server_custom.cc +15 -33
- data/src/core/lib/iomgr/tcp_server_posix.cc +21 -13
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -2
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +3 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +13 -9
- data/src/core/lib/iomgr/tcp_windows.cc +6 -25
- data/src/core/lib/iomgr/tcp_windows.h +2 -1
- data/src/core/lib/iomgr/timer.cc +1 -0
- data/src/core/lib/iomgr/timer.h +1 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -2
- data/src/core/lib/iomgr/timer_generic.cc +8 -38
- data/src/core/lib/iomgr/timer_generic.h +1 -0
- data/src/core/lib/iomgr/timer_heap.cc +1 -2
- data/src/core/lib/iomgr/timer_manager.cc +1 -1
- data/src/core/lib/iomgr/udp_server.cc +1 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -5
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -3
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +1 -0
- data/src/core/lib/iomgr/work_serializer.cc +4 -4
- data/src/core/lib/iomgr/work_serializer.h +1 -1
- data/src/core/lib/json/json_reader.cc +10 -19
- data/src/core/lib/json/json_util.h +18 -26
- data/src/core/lib/matchers/matchers.cc +8 -20
- data/src/core/lib/matchers/matchers.h +2 -2
- data/src/core/lib/profiling/basic_timers.cc +8 -6
- data/src/core/lib/profiling/stap_timers.cc +2 -2
- data/src/core/lib/security/authorization/authorization_policy_provider.h +5 -4
- data/src/core/lib/security/authorization/evaluate_args.cc +2 -0
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +159 -0
- data/src/core/lib/security/authorization/sdk_server_authz_filter.h +67 -0
- data/src/core/lib/security/context/security_context.cc +7 -6
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -3
- data/src/core/lib/security/credentials/credentials.cc +6 -6
- data/src/core/lib/security/credentials/credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -3
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +13 -26
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -2
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +3 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +13 -22
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -4
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +55 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -1
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +31 -14
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +0 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +3 -7
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +4 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +3 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +10 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +50 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +14 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +2 -2
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +4 -6
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +1 -0
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -3
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +15 -32
- data/src/core/lib/security/transport/auth_filters.h +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +4 -6
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -14
- data/src/core/lib/security/transport/secure_endpoint.h +1 -0
- data/src/core/lib/security/transport/security_handshaker.cc +17 -8
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +0 -7
- data/src/core/lib/security/util/json_util.cc +6 -8
- data/src/core/lib/slice/percent_encoding.cc +73 -30
- data/src/core/lib/slice/percent_encoding.h +29 -28
- data/src/core/lib/slice/slice.cc +14 -5
- data/src/core/lib/slice/slice_buffer.cc +1 -2
- data/src/core/lib/slice/slice_intern.cc +2 -3
- data/src/core/lib/slice/slice_internal.h +3 -2
- data/src/core/lib/surface/api_trace.cc +2 -1
- data/src/core/lib/surface/api_trace.h +1 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +1 -1
- data/src/core/lib/surface/call.cc +14 -14
- data/src/core/lib/surface/call.h +3 -3
- data/src/core/lib/surface/call_details.cc +2 -2
- data/src/core/lib/surface/call_log_batch.cc +2 -2
- data/src/core/lib/surface/channel.cc +22 -9
- data/src/core/lib/surface/channel.h +14 -2
- data/src/core/lib/surface/channel_ping.cc +1 -2
- data/src/core/lib/surface/channel_stack_type.cc +2 -1
- data/src/core/lib/surface/completion_queue.cc +54 -64
- data/src/core/lib/surface/completion_queue_factory.cc +2 -1
- data/src/core/lib/surface/completion_queue_factory.h +1 -0
- data/src/core/lib/surface/event_string.cc +1 -0
- data/src/core/lib/surface/init.cc +4 -9
- data/src/core/lib/surface/init.h +0 -1
- data/src/core/lib/surface/init_secure.cc +23 -4
- data/src/core/lib/surface/lame_client.cc +6 -5
- data/src/core/lib/surface/metadata_array.cc +2 -2
- data/src/core/lib/surface/server.cc +20 -34
- data/src/core/lib/surface/server.h +14 -16
- data/src/core/lib/surface/validate_metadata.cc +44 -16
- data/src/core/lib/surface/version.cc +2 -4
- data/src/core/lib/transport/byte_stream.h +1 -0
- data/src/core/lib/transport/connectivity_state.cc +8 -5
- data/src/core/lib/transport/connectivity_state.h +2 -2
- data/src/core/lib/transport/error_utils.cc +1 -0
- data/src/core/lib/transport/metadata.cc +10 -10
- data/src/core/lib/transport/metadata.h +13 -11
- data/src/core/lib/transport/metadata_batch.cc +13 -2
- data/src/core/lib/transport/metadata_batch.h +15 -0
- data/src/core/lib/transport/transport_op_string.cc +2 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +14 -0
- data/src/core/tsi/alts/crypt/aes_gcm.cc +3 -2
- data/src/core/tsi/alts/crypt/gsec.h +2 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +2 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +2 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +2 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -2
- data/src/core/tsi/ssl_transport_security.cc +11 -9
- data/src/core/tsi/ssl_transport_security.h +3 -1
- data/src/core/tsi/transport_security.cc +3 -3
- data/src/core/tsi/transport_security_grpc.h +1 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
- data/src/ruby/ext/grpc/rb_call.c +5 -5
- data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
- data/src/ruby/ext/grpc/rb_channel.c +10 -8
- data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
- data/src/ruby/ext/grpc/rb_channel_credentials.c +4 -4
- data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
- data/src/ruby/ext/grpc/rb_compression_options.c +5 -4
- data/src/ruby/ext/grpc/rb_event_thread.c +4 -4
- data/src/ruby/ext/grpc/rb_grpc.c +5 -4
- data/src/ruby/ext/grpc/rb_grpc.h +1 -0
- data/src/ruby/ext/grpc/rb_server.c +6 -5
- data/src/ruby/ext/grpc/rb_server_credentials.c +3 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +8 -5
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +3 -1
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +6 -5
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +3 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/err_data.c +294 -292
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +52 -47
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_locl.h → internal.h} +20 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +5 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
- data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +23 -2
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +45 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +10 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +6 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +9 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +160 -74
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +0 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +25 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +5 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +58 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +184 -55
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +0 -5
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +9 -16
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +44 -2
- data/third_party/boringssl-with-bazel/src/ssl/{t1_lib.cc → extensions.cc} +24 -11
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +9 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +75 -68
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +17 -9
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +25 -6
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +1 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +11 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +0 -49
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +121 -65
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +14 -6
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +9 -11
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +2 -2
- data/third_party/upb/upb/decode.c +129 -60
- data/third_party/upb/upb/decode.h +32 -4
- data/third_party/upb/upb/decode_fast.c +513 -500
- data/third_party/upb/upb/decode_fast.h +27 -0
- data/third_party/upb/upb/{decode.int.h → decode_internal.h} +38 -8
- data/third_party/upb/upb/def.c +171 -181
- data/third_party/upb/upb/def.h +41 -19
- data/third_party/upb/upb/def.hpp +29 -0
- data/third_party/upb/upb/encode.c +49 -16
- data/third_party/upb/upb/encode.h +29 -2
- data/third_party/upb/upb/msg.c +169 -28
- data/third_party/upb/upb/msg.h +75 -580
- data/third_party/upb/upb/msg_internal.h +687 -0
- data/third_party/upb/upb/port_def.inc +85 -24
- data/third_party/upb/upb/port_undef.inc +38 -1
- data/third_party/upb/upb/reflection.c +29 -37
- data/third_party/upb/upb/reflection.h +36 -8
- data/third_party/upb/upb/reflection.hpp +37 -0
- data/third_party/upb/upb/table.c +211 -86
- data/third_party/upb/upb/{table.int.h → table_internal.h} +56 -180
- data/third_party/upb/upb/text_encode.c +32 -4
- data/third_party/upb/upb/text_encode.h +26 -0
- data/third_party/upb/upb/upb.c +59 -8
- data/third_party/upb/upb/upb.h +36 -6
- data/third_party/upb/upb/upb.hpp +24 -0
- data/third_party/upb/upb/upb_internal.h +58 -0
- data/third_party/xxhash/xxhash.h +77 -195
- metadata +79 -60
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -243
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
- data/src/core/lib/event_engine/slice_allocator.cc +0 -89
- data/src/core/lib/gpr/arena.h +0 -47
- data/src/core/lib/gpr/tls_gcc.h +0 -52
- data/src/core/lib/gpr/tls_msvc.h +0 -54
- data/src/core/lib/gpr/tls_pthread.cc +0 -30
- data/src/core/lib/gpr/tls_pthread.h +0 -56
- data/src/core/lib/gpr/tls_stdcpp.h +0 -48
- data/src/core/lib/gprpp/atomic.h +0 -104
- data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
- data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
- data/src/core/lib/iomgr/pollset_uv.cc +0 -95
- data/src/core/lib/iomgr/pollset_uv.h +0 -36
- data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
- data/src/core/lib/iomgr/socket_utils_uv.cc +0 -49
- data/src/core/lib/iomgr/tcp_uv.cc +0 -421
- data/src/core/lib/iomgr/timer_uv.cc +0 -66
- data/third_party/upb/third_party/wyhash/wyhash.h +0 -145
- data/third_party/upb/upb/upb.int.h +0 -29
@@ -0,0 +1,74 @@
|
|
1
|
+
// Copyright 2021 The gRPC Authors
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_CHTTP2_SLICE_ALLOCATOR_H
|
15
|
+
#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_CHTTP2_SLICE_ALLOCATOR_H
|
16
|
+
|
17
|
+
#include <grpc/support/port_platform.h>
|
18
|
+
|
19
|
+
#include <functional>
|
20
|
+
|
21
|
+
#include "absl/status/status.h"
|
22
|
+
|
23
|
+
#include <grpc/event_engine/slice_allocator.h>
|
24
|
+
|
25
|
+
#include "src/core/lib/iomgr/resource_quota.h"
|
26
|
+
|
27
|
+
namespace grpc_event_engine {
|
28
|
+
namespace experimental {
|
29
|
+
|
30
|
+
class Chttp2SliceAllocator
|
31
|
+
: public grpc_event_engine::experimental::SliceAllocator {
|
32
|
+
public:
|
33
|
+
/// gRPC-internal constructor. Takes ownership of a resource_user ref from the
|
34
|
+
/// caller.
|
35
|
+
explicit Chttp2SliceAllocator(grpc_resource_user* user);
|
36
|
+
// Not copyable
|
37
|
+
Chttp2SliceAllocator(Chttp2SliceAllocator& other) = delete;
|
38
|
+
Chttp2SliceAllocator& operator=(const Chttp2SliceAllocator& other) = delete;
|
39
|
+
// Not Moveable
|
40
|
+
Chttp2SliceAllocator(Chttp2SliceAllocator&& other) = delete;
|
41
|
+
Chttp2SliceAllocator& operator=(Chttp2SliceAllocator&& other) = delete;
|
42
|
+
~Chttp2SliceAllocator() override;
|
43
|
+
absl::Status Allocate(size_t size, SliceBuffer* dest,
|
44
|
+
SliceAllocator::AllocateCallback cb) override;
|
45
|
+
|
46
|
+
private:
|
47
|
+
grpc_resource_user* resource_user_;
|
48
|
+
};
|
49
|
+
|
50
|
+
class Chttp2SliceAllocatorFactory
|
51
|
+
: public grpc_event_engine::experimental::SliceAllocatorFactory {
|
52
|
+
public:
|
53
|
+
// gRPC-internal constructor
|
54
|
+
explicit Chttp2SliceAllocatorFactory(grpc_resource_quota* quota);
|
55
|
+
// Not copyable
|
56
|
+
Chttp2SliceAllocatorFactory(Chttp2SliceAllocatorFactory& other) = delete;
|
57
|
+
Chttp2SliceAllocatorFactory& operator=(
|
58
|
+
const Chttp2SliceAllocatorFactory& other) = delete;
|
59
|
+
// Not Moveable
|
60
|
+
Chttp2SliceAllocatorFactory(Chttp2SliceAllocatorFactory&& other) = delete;
|
61
|
+
Chttp2SliceAllocatorFactory& operator=(Chttp2SliceAllocatorFactory&& other) =
|
62
|
+
delete;
|
63
|
+
~Chttp2SliceAllocatorFactory() override;
|
64
|
+
std::unique_ptr<SliceAllocator> CreateSliceAllocator(
|
65
|
+
absl::string_view peer_name) override;
|
66
|
+
|
67
|
+
private:
|
68
|
+
grpc_resource_quota* resource_quota_;
|
69
|
+
};
|
70
|
+
|
71
|
+
} // namespace experimental
|
72
|
+
} // namespace grpc_event_engine
|
73
|
+
|
74
|
+
#endif // GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_CHTTP2_SLICE_ALLOCATOR_H
|
@@ -18,18 +18,18 @@
|
|
18
18
|
|
19
19
|
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
|
20
20
|
|
21
|
+
#include <inttypes.h>
|
22
|
+
#include <limits.h>
|
23
|
+
#include <math.h>
|
24
|
+
#include <stdio.h>
|
25
|
+
#include <string.h>
|
26
|
+
|
21
27
|
#include "absl/strings/str_format.h"
|
22
28
|
|
23
29
|
#include <grpc/slice_buffer.h>
|
24
30
|
#include <grpc/support/alloc.h>
|
25
31
|
#include <grpc/support/log.h>
|
26
|
-
#include <grpc/support/port_platform.h>
|
27
32
|
#include <grpc/support/string_util.h>
|
28
|
-
#include <inttypes.h>
|
29
|
-
#include <limits.h>
|
30
|
-
#include <math.h>
|
31
|
-
#include <stdio.h>
|
32
|
-
#include <string.h>
|
33
33
|
|
34
34
|
#include "src/core/ext/transport/chttp2/transport/context_list.h"
|
35
35
|
#include "src/core/ext/transport/chttp2/transport/frame_data.h"
|
@@ -204,7 +204,6 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
204
204
|
grpc_slice_buffer_destroy_internal(&qbuf);
|
205
205
|
|
206
206
|
grpc_slice_buffer_destroy_internal(&outbuf);
|
207
|
-
grpc_chttp2_hpack_compressor_destroy(&hpack_compressor);
|
208
207
|
|
209
208
|
grpc_error_handle error =
|
210
209
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Transport destroyed");
|
@@ -215,7 +214,6 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
215
214
|
cl = nullptr;
|
216
215
|
|
217
216
|
grpc_slice_buffer_destroy_internal(&read_buffer);
|
218
|
-
grpc_chttp2_hpack_parser_destroy(&hpack_parser);
|
219
217
|
grpc_chttp2_goaway_parser_destroy(&goaway_parser);
|
220
218
|
|
221
219
|
for (i = 0; i < STREAM_LIST_COUNT; i++) {
|
@@ -281,8 +279,7 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
281
279
|
const int value =
|
282
280
|
grpc_channel_arg_get_integer(&channel_args->args[i], options);
|
283
281
|
if (value >= 0) {
|
284
|
-
|
285
|
-
&t->hpack_compressor, static_cast<uint32_t>(value));
|
282
|
+
t->hpack_compressor.SetMaxUsableSize(value);
|
286
283
|
}
|
287
284
|
} else if (0 == strcmp(channel_args->args[i].key,
|
288
285
|
GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA)) {
|
@@ -475,7 +472,6 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
475
472
|
grpc_slice_buffer_add(&outbuf, grpc_slice_from_copied_string(
|
476
473
|
GRPC_CHTTP2_CLIENT_CONNECT_STRING));
|
477
474
|
}
|
478
|
-
grpc_chttp2_hpack_compressor_init(&hpack_compressor);
|
479
475
|
grpc_slice_buffer_init(&qbuf);
|
480
476
|
// copy in initial settings to all setting sets
|
481
477
|
size_t i;
|
@@ -485,7 +481,6 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
485
481
|
settings[j][i] = grpc_chttp2_settings_parameters[i].default_value;
|
486
482
|
}
|
487
483
|
}
|
488
|
-
grpc_chttp2_hpack_parser_init(&hpack_parser);
|
489
484
|
grpc_chttp2_goaway_parser_init(&goaway_parser);
|
490
485
|
|
491
486
|
// configure http2 the way we like it
|
@@ -540,6 +535,8 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
540
535
|
static void destroy_transport_locked(void* tp, grpc_error_handle /*error*/) {
|
541
536
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
542
537
|
t->destroying = 1;
|
538
|
+
grpc_resource_user_shutdown(t->resource_user);
|
539
|
+
grpc_resource_user_unref(t->resource_user);
|
543
540
|
close_transport_locked(
|
544
541
|
t, grpc_error_set_int(
|
545
542
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Transport destroyed"),
|
@@ -714,13 +711,10 @@ grpc_chttp2_stream::~grpc_chttp2_stream() {
|
|
714
711
|
GRPC_ERROR_UNREF(read_closed_error);
|
715
712
|
GRPC_ERROR_UNREF(write_closed_error);
|
716
713
|
GRPC_ERROR_UNREF(byte_stream_error);
|
717
|
-
|
718
714
|
flow_control.Destroy();
|
719
|
-
|
720
|
-
if (t->resource_user != nullptr) {
|
715
|
+
if (!t->is_client) {
|
721
716
|
grpc_resource_user_free(t->resource_user, GRPC_RESOURCE_QUOTA_CALL_SIZE);
|
722
717
|
}
|
723
|
-
|
724
718
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "stream");
|
725
719
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, destroy_stream_arg, GRPC_ERROR_NONE);
|
726
720
|
}
|
@@ -772,10 +766,10 @@ grpc_chttp2_stream* grpc_chttp2_parsing_accept_stream(grpc_chttp2_transport* t,
|
|
772
766
|
// Don't accept the stream if memory quota doesn't allow. Note that we should
|
773
767
|
// simply refuse the stream here instead of canceling the stream after it's
|
774
768
|
// accepted since the latter will create the call which costs much memory.
|
775
|
-
|
776
|
-
|
769
|
+
GPR_ASSERT(t->resource_user != nullptr);
|
770
|
+
if (!grpc_resource_user_safe_alloc(t->resource_user,
|
777
771
|
GRPC_RESOURCE_QUOTA_CALL_SIZE)) {
|
778
|
-
gpr_log(
|
772
|
+
gpr_log(GPR_INFO, "Memory exhausted, rejecting the stream.");
|
779
773
|
grpc_chttp2_add_rst_stream_to_next_write(t, id, GRPC_HTTP2_REFUSED_STREAM,
|
780
774
|
nullptr);
|
781
775
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_RST_STREAM);
|
@@ -1288,7 +1282,6 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1288
1282
|
if (s->fetching_send_message == nullptr) {
|
1289
1283
|
// Stream was cancelled before message fetch completed
|
1290
1284
|
abort(); /* TODO(ctiller): what cleanup here? */
|
1291
|
-
return; /* early out */
|
1292
1285
|
}
|
1293
1286
|
if (s->fetched_send_message_length == s->fetching_send_message->length()) {
|
1294
1287
|
int64_t notify_offset = s->next_message_end_offset;
|
@@ -1593,8 +1586,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1593
1586
|
grpc_chttp2_maybe_complete_recv_message(t, s);
|
1594
1587
|
if (s->id != 0) {
|
1595
1588
|
if (!s->read_closed && s->frame_storage.length == 0) {
|
1596
|
-
size_t after = s->
|
1597
|
-
s->unprocessed_incoming_frames_buffer_cached_length;
|
1589
|
+
size_t after = s->unprocessed_incoming_frames_buffer_cached_length;
|
1598
1590
|
s->flow_control->IncomingByteStreamUpdate(GRPC_HEADER_SIZE_IN_BYTES,
|
1599
1591
|
before - after);
|
1600
1592
|
grpc_chttp2_act_on_flowctl_action(s->flow_control->MakeAction(), t, s);
|
@@ -1753,7 +1745,7 @@ void grpc_chttp2_ack_ping(grpc_chttp2_transport* t, uint64_t id) {
|
|
1753
1745
|
|
1754
1746
|
static void send_goaway(grpc_chttp2_transport* t, grpc_error_handle error) {
|
1755
1747
|
// We want to log this irrespective of whether http tracing is enabled
|
1756
|
-
gpr_log(
|
1748
|
+
gpr_log(GPR_DEBUG, "%s: Sending goaway err=%s", t->peer_string.c_str(),
|
1757
1749
|
grpc_error_std_string(error).c_str());
|
1758
1750
|
t->sent_goaway_state = GRPC_CHTTP2_GOAWAY_SEND_SCHEDULED;
|
1759
1751
|
grpc_http2_error_code http_error;
|
@@ -2357,8 +2349,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2357
2349
|
|
2358
2350
|
size_t msg_len = GRPC_SLICE_LENGTH(slice);
|
2359
2351
|
GPR_ASSERT(msg_len <= UINT32_MAX);
|
2360
|
-
|
2361
|
-
message_pfx = GRPC_SLICE_MALLOC(14 +
|
2352
|
+
grpc_core::VarintWriter<1> msg_len_writer(msg_len);
|
2353
|
+
message_pfx = GRPC_SLICE_MALLOC(14 + msg_len_writer.length());
|
2362
2354
|
p = GRPC_SLICE_START_PTR(message_pfx);
|
2363
2355
|
*p++ = 0x00; /* literal header, not indexed */
|
2364
2356
|
*p++ = 12; /* len(grpc-message) */
|
@@ -2374,8 +2366,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2374
2366
|
*p++ = 'a';
|
2375
2367
|
*p++ = 'g';
|
2376
2368
|
*p++ = 'e';
|
2377
|
-
|
2378
|
-
p +=
|
2369
|
+
msg_len_writer.Write(0, p);
|
2370
|
+
p += msg_len_writer.length();
|
2379
2371
|
GPR_ASSERT(p == GRPC_SLICE_END_PTR(message_pfx));
|
2380
2372
|
len += static_cast<uint32_t> GRPC_SLICE_LENGTH(message_pfx);
|
2381
2373
|
len += static_cast<uint32_t>(msg_len);
|
@@ -2447,7 +2439,7 @@ static void WithUrgency(grpc_chttp2_transport* t,
|
|
2447
2439
|
break;
|
2448
2440
|
case grpc_core::chttp2::FlowControlAction::Urgency::UPDATE_IMMEDIATELY:
|
2449
2441
|
grpc_chttp2_initiate_write(t, reason);
|
2450
|
-
|
2442
|
+
ABSL_FALLTHROUGH_INTENDED;
|
2451
2443
|
case grpc_core::chttp2::FlowControlAction::Urgency::QUEUE_UPDATE:
|
2452
2444
|
action();
|
2453
2445
|
break;
|
@@ -3165,8 +3157,8 @@ static void post_benign_reclaimer(grpc_chttp2_transport* t) {
|
|
3165
3157
|
GRPC_CHTTP2_REF_TRANSPORT(t, "benign_reclaimer");
|
3166
3158
|
GRPC_CLOSURE_INIT(&t->benign_reclaimer_locked, benign_reclaimer, t,
|
3167
3159
|
grpc_schedule_on_exec_ctx);
|
3168
|
-
grpc_resource_user_post_reclaimer(
|
3169
|
-
|
3160
|
+
grpc_resource_user_post_reclaimer(t->resource_user, false,
|
3161
|
+
&t->benign_reclaimer_locked);
|
3170
3162
|
}
|
3171
3163
|
}
|
3172
3164
|
|
@@ -3176,8 +3168,8 @@ static void post_destructive_reclaimer(grpc_chttp2_transport* t) {
|
|
3176
3168
|
GRPC_CHTTP2_REF_TRANSPORT(t, "destructive_reclaimer");
|
3177
3169
|
GRPC_CLOSURE_INIT(&t->destructive_reclaimer_locked, destructive_reclaimer,
|
3178
3170
|
t, grpc_schedule_on_exec_ctx);
|
3179
|
-
grpc_resource_user_post_reclaimer(
|
3180
|
-
|
3171
|
+
grpc_resource_user_post_reclaimer(t->resource_user, true,
|
3172
|
+
&t->destructive_reclaimer_locked);
|
3181
3173
|
}
|
3182
3174
|
}
|
3183
3175
|
|
@@ -3212,8 +3204,7 @@ static void benign_reclaimer_locked(void* arg, grpc_error_handle error) {
|
|
3212
3204
|
}
|
3213
3205
|
t->benign_reclaimer_registered = false;
|
3214
3206
|
if (error != GRPC_ERROR_CANCELLED) {
|
3215
|
-
grpc_resource_user_finish_reclamation(
|
3216
|
-
grpc_endpoint_get_resource_user(t->ep));
|
3207
|
+
grpc_resource_user_finish_reclamation(t->resource_user);
|
3217
3208
|
}
|
3218
3209
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "benign_reclaimer");
|
3219
3210
|
}
|
@@ -3250,8 +3241,7 @@ static void destructive_reclaimer_locked(void* arg, grpc_error_handle error) {
|
|
3250
3241
|
}
|
3251
3242
|
}
|
3252
3243
|
if (error != GRPC_ERROR_CANCELLED) {
|
3253
|
-
grpc_resource_user_finish_reclamation(
|
3254
|
-
grpc_endpoint_get_resource_user(t->ep));
|
3244
|
+
grpc_resource_user_finish_reclamation(t->resource_user);
|
3255
3245
|
}
|
3256
3246
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "destructive_reclaimer");
|
3257
3247
|
}
|
@@ -34,9 +34,12 @@ extern grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_hpack_parser;
|
|
34
34
|
|
35
35
|
extern bool g_flow_control_enabled;
|
36
36
|
|
37
|
+
/// Creates a CHTTP2 Transport. This takes ownership of a \a resource_user ref
|
38
|
+
/// from the caller; if the caller still needs the resource_user after creating
|
39
|
+
/// a transport, the caller must take another ref.
|
37
40
|
grpc_transport* grpc_create_chttp2_transport(
|
38
41
|
const grpc_channel_args* channel_args, grpc_endpoint* ep, bool is_client,
|
39
|
-
grpc_resource_user* resource_user
|
42
|
+
grpc_resource_user* resource_user);
|
40
43
|
|
41
44
|
grpc_core::RefCountedPtr<grpc_core::channelz::SocketNode>
|
42
45
|
grpc_chttp2_transport_get_socket_node(grpc_transport* transport);
|
@@ -21,9 +21,8 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include "src/core/lib/iomgr/buffer_list.h"
|
25
|
-
|
26
24
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
25
|
+
#include "src/core/lib/iomgr/buffer_list.h"
|
27
26
|
|
28
27
|
namespace grpc_core {
|
29
28
|
/** A list of RPC Contexts */
|
@@ -43,6 +43,8 @@ namespace chttp2 {
|
|
43
43
|
TestOnlyTransportTargetWindowEstimatesMocker*
|
44
44
|
g_test_only_transport_target_window_estimates_mocker;
|
45
45
|
|
46
|
+
bool g_test_only_transport_flow_control_window_check;
|
47
|
+
|
46
48
|
namespace {
|
47
49
|
|
48
50
|
static constexpr const int kTracePadding = 30;
|
@@ -206,11 +208,9 @@ uint32_t TransportFlowControl::MaybeSendUpdate(bool writing_anyway) {
|
|
206
208
|
grpc_error_handle TransportFlowControl::ValidateRecvData(
|
207
209
|
int64_t incoming_frame_size) {
|
208
210
|
if (incoming_frame_size > announced_window_) {
|
209
|
-
return
|
210
|
-
|
211
|
-
|
212
|
-
incoming_frame_size, announced_window_)
|
213
|
-
.c_str());
|
211
|
+
return GRPC_ERROR_CREATE_FROM_CPP_STRING(absl::StrFormat(
|
212
|
+
"frame of size %" PRId64 " overflows local window of %" PRId64,
|
213
|
+
incoming_frame_size, announced_window_));
|
214
214
|
}
|
215
215
|
return GRPC_ERROR_NONE;
|
216
216
|
}
|
@@ -248,11 +248,9 @@ grpc_error_handle StreamFlowControl::RecvData(int64_t incoming_frame_size) {
|
|
248
248
|
"See (for example) https://github.com/netty/netty/issues/6520.",
|
249
249
|
incoming_frame_size, acked_stream_window, sent_stream_window);
|
250
250
|
} else {
|
251
|
-
return
|
252
|
-
|
253
|
-
|
254
|
-
incoming_frame_size, acked_stream_window)
|
255
|
-
.c_str());
|
251
|
+
return GRPC_ERROR_CREATE_FROM_CPP_STRING(absl::StrFormat(
|
252
|
+
"frame of size %" PRId64 " overflows local window of %" PRId64,
|
253
|
+
incoming_frame_size, acked_stream_window));
|
256
254
|
}
|
257
255
|
}
|
258
256
|
|
@@ -264,6 +262,23 @@ grpc_error_handle StreamFlowControl::RecvData(int64_t incoming_frame_size) {
|
|
264
262
|
|
265
263
|
uint32_t StreamFlowControl::MaybeSendUpdate() {
|
266
264
|
FlowControlTrace trace("s updt sent", tfc_, this);
|
265
|
+
// If a recently sent settings frame caused the stream's flow control window
|
266
|
+
// to go in the negative (or < GRPC_HEADER_SIZE_IN_BYTES), update the delta if
|
267
|
+
// one of the following conditions is satisfied -
|
268
|
+
// 1) There is a pending byte_stream and higher layers have expressed interest
|
269
|
+
// in reading additional data through the invokation of `Next()` where the
|
270
|
+
// bytes are to be available asynchronously. 2) There is a pending
|
271
|
+
// recv_message op.
|
272
|
+
// In these cases, we want to make sure that bytes are still flowing.
|
273
|
+
if (local_window_delta_ < GRPC_HEADER_SIZE_IN_BYTES) {
|
274
|
+
if (s_->on_next != nullptr) {
|
275
|
+
GPR_DEBUG_ASSERT(s_->pending_byte_stream);
|
276
|
+
IncomingByteStreamUpdate(GRPC_HEADER_SIZE_IN_BYTES, 0);
|
277
|
+
} else if (s_->recv_message != nullptr) {
|
278
|
+
IncomingByteStreamUpdate(GRPC_HEADER_SIZE_IN_BYTES,
|
279
|
+
s_->frame_storage.length);
|
280
|
+
}
|
281
|
+
}
|
267
282
|
if (local_window_delta_ > announced_window_delta_) {
|
268
283
|
uint32_t announce = static_cast<uint32_t> GPR_CLAMP(
|
269
284
|
local_window_delta_ - announced_window_delta_, 0, kMaxWindowUpdateSize);
|
@@ -277,13 +292,10 @@ void StreamFlowControl::IncomingByteStreamUpdate(size_t max_size_hint,
|
|
277
292
|
size_t have_already) {
|
278
293
|
FlowControlTrace trace("app st recv", tfc_, this);
|
279
294
|
uint32_t max_recv_bytes;
|
280
|
-
uint32_t sent_init_window =
|
281
|
-
tfc_->transport()->settings[GRPC_SENT_SETTINGS]
|
282
|
-
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
|
283
295
|
|
284
296
|
/* clamp max recv hint to an allowable size */
|
285
|
-
if (max_size_hint >=
|
286
|
-
max_recv_bytes =
|
297
|
+
if (max_size_hint >= kMaxWindowDelta) {
|
298
|
+
max_recv_bytes = kMaxWindowDelta;
|
287
299
|
} else {
|
288
300
|
max_recv_bytes = static_cast<uint32_t>(max_size_hint);
|
289
301
|
}
|
@@ -296,7 +308,12 @@ void StreamFlowControl::IncomingByteStreamUpdate(size_t max_size_hint,
|
|
296
308
|
}
|
297
309
|
|
298
310
|
/* add some small lookahead to keep pipelines flowing */
|
299
|
-
GPR_DEBUG_ASSERT(
|
311
|
+
GPR_DEBUG_ASSERT(
|
312
|
+
max_recv_bytes <=
|
313
|
+
kMaxWindowUpdateSize -
|
314
|
+
tfc_->transport()
|
315
|
+
->settings[GRPC_SENT_SETTINGS]
|
316
|
+
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE]);
|
300
317
|
if (local_window_delta_ < max_recv_bytes) {
|
301
318
|
uint32_t add_max_recv_bytes =
|
302
319
|
static_cast<uint32_t>(max_recv_bytes - local_window_delta_);
|
@@ -324,9 +341,8 @@ static double AdjustForMemoryPressure(grpc_resource_quota* quota,
|
|
324
341
|
}
|
325
342
|
|
326
343
|
double TransportFlowControl::TargetLogBdp() {
|
327
|
-
return AdjustForMemoryPressure(
|
328
|
-
|
329
|
-
1 + log2(bdp_estimator_.EstimateBdp()));
|
344
|
+
return AdjustForMemoryPressure(grpc_resource_user_quota(t_->resource_user),
|
345
|
+
1 + log2(bdp_estimator_.EstimateBdp()));
|
330
346
|
}
|
331
347
|
|
332
348
|
double TransportFlowControl::SmoothLogBdp(double value) {
|
@@ -365,10 +381,10 @@ FlowControlAction TransportFlowControl::PeriodicUpdate() {
|
|
365
381
|
->ComputeNextTargetInitialWindowSizeFromPeriodicUpdate(
|
366
382
|
target_initial_window_size_ /* current target */);
|
367
383
|
}
|
368
|
-
// Though initial window 'could' drop to 0, we keep the floor at
|
369
|
-
|
370
|
-
|
371
|
-
|
384
|
+
// Though initial window 'could' drop to 0, we keep the floor at
|
385
|
+
// kMinInitialWindowSize
|
386
|
+
target_initial_window_size_ = static_cast<int32_t> GPR_CLAMP(
|
387
|
+
target, kMinInitialWindowSize, kMaxInitialWindowSize);
|
372
388
|
action.set_send_initial_window_update(
|
373
389
|
DeltaUrgency(target_initial_window_size_,
|
374
390
|
GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE),
|
@@ -47,10 +47,16 @@ static constexpr uint32_t kDefaultWindow = 65535;
|
|
47
47
|
static constexpr int64_t kMaxWindow = static_cast<int64_t>((1u << 31) - 1);
|
48
48
|
// TODO(ncteisen): Tune this
|
49
49
|
static constexpr uint32_t kFrameSize = 1024 * 1024;
|
50
|
+
static constexpr const uint32_t kMinInitialWindowSize = 128;
|
51
|
+
static constexpr const uint32_t kMaxInitialWindowSize = (1u << 30);
|
52
|
+
// The maximum per-stream flow control window delta to advertise.
|
53
|
+
static constexpr const uint32_t kMaxWindowDelta = (1u << 20);
|
50
54
|
|
51
55
|
class TransportFlowControl;
|
52
56
|
class StreamFlowControl;
|
53
57
|
|
58
|
+
extern bool g_test_only_transport_flow_control_window_check;
|
59
|
+
|
54
60
|
// Encapsulates a collections of actions the transport needs to take with
|
55
61
|
// regard to flow control. Each action comes with urgencies that tell the
|
56
62
|
// transport how quickly the action must take place.
|
@@ -373,9 +379,9 @@ class StreamFlowControlBase {
|
|
373
379
|
virtual void TestOnlyForceHugeWindow() {}
|
374
380
|
|
375
381
|
// Getters
|
376
|
-
int64_t remote_window_delta() { return remote_window_delta_; }
|
377
|
-
int64_t local_window_delta() { return local_window_delta_; }
|
378
|
-
int64_t announced_window_delta() { return announced_window_delta_; }
|
382
|
+
int64_t remote_window_delta() const { return remote_window_delta_; }
|
383
|
+
int64_t local_window_delta() const { return local_window_delta_; }
|
384
|
+
int64_t announced_window_delta() const { return announced_window_delta_; }
|
379
385
|
|
380
386
|
protected:
|
381
387
|
friend class ::grpc::testing::TrickledCHTTP2;
|
@@ -479,4 +485,4 @@ extern TestOnlyTransportTargetWindowEstimatesMocker*
|
|
479
485
|
} // namespace chttp2
|
480
486
|
} // namespace grpc_core
|
481
487
|
|
482
|
-
#endif
|
488
|
+
#endif // GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FLOW_CONTROL_H
|
@@ -26,6 +26,7 @@
|
|
26
26
|
|
27
27
|
#include <grpc/support/alloc.h>
|
28
28
|
#include <grpc/support/log.h>
|
29
|
+
|
29
30
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
30
31
|
#include "src/core/lib/gpr/string.h"
|
31
32
|
#include "src/core/lib/gprpp/memory.h"
|
@@ -45,10 +46,10 @@ grpc_error_handle grpc_chttp2_data_parser_begin_frame(
|
|
45
46
|
grpc_chttp2_data_parser* /*parser*/, uint8_t flags, uint32_t stream_id,
|
46
47
|
grpc_chttp2_stream* s) {
|
47
48
|
if (flags & ~GRPC_CHTTP2_DATA_FLAG_END_STREAM) {
|
48
|
-
return grpc_error_set_int(
|
49
|
-
|
50
|
-
|
51
|
-
|
49
|
+
return grpc_error_set_int(GRPC_ERROR_CREATE_FROM_CPP_STRING(absl::StrFormat(
|
50
|
+
"unsupported data flags: 0x%02x", flags)),
|
51
|
+
GRPC_ERROR_INT_STREAM_ID,
|
52
|
+
static_cast<intptr_t>(stream_id));
|
52
53
|
}
|
53
54
|
|
54
55
|
if (flags & GRPC_CHTTP2_DATA_FLAG_END_STREAM) {
|
@@ -128,9 +129,8 @@ grpc_error_handle grpc_deframe_unprocessed_incoming_frames(
|
|
128
129
|
p->is_frame_compressed = true; /* GPR_TRUE */
|
129
130
|
break;
|
130
131
|
default:
|
131
|
-
p->error =
|
132
|
-
absl::StrFormat("Bad GRPC frame type 0x%02x", p->frame_type)
|
133
|
-
.c_str());
|
132
|
+
p->error = GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
133
|
+
absl::StrFormat("Bad GRPC frame type 0x%02x", p->frame_type));
|
134
134
|
p->error = grpc_error_set_int(p->error, GRPC_ERROR_INT_STREAM_ID,
|
135
135
|
static_cast<intptr_t>(s->id));
|
136
136
|
p->error = grpc_error_set_str(
|
@@ -148,7 +148,7 @@ grpc_error_handle grpc_deframe_unprocessed_incoming_frames(
|
|
148
148
|
grpc_slice_buffer_remove_first(slices);
|
149
149
|
continue;
|
150
150
|
}
|
151
|
-
|
151
|
+
ABSL_FALLTHROUGH_INTENDED;
|
152
152
|
case GRPC_CHTTP2_DATA_FH_1:
|
153
153
|
s->stats.incoming.framing_bytes++;
|
154
154
|
p->frame_size = (static_cast<uint32_t>(*cur)) << 24;
|
@@ -157,7 +157,7 @@ grpc_error_handle grpc_deframe_unprocessed_incoming_frames(
|
|
157
157
|
grpc_slice_buffer_remove_first(slices);
|
158
158
|
continue;
|
159
159
|
}
|
160
|
-
|
160
|
+
ABSL_FALLTHROUGH_INTENDED;
|
161
161
|
case GRPC_CHTTP2_DATA_FH_2:
|
162
162
|
s->stats.incoming.framing_bytes++;
|
163
163
|
p->frame_size |= (static_cast<uint32_t>(*cur)) << 16;
|
@@ -166,7 +166,7 @@ grpc_error_handle grpc_deframe_unprocessed_incoming_frames(
|
|
166
166
|
grpc_slice_buffer_remove_first(slices);
|
167
167
|
continue;
|
168
168
|
}
|
169
|
-
|
169
|
+
ABSL_FALLTHROUGH_INTENDED;
|
170
170
|
case GRPC_CHTTP2_DATA_FH_3:
|
171
171
|
s->stats.incoming.framing_bytes++;
|
172
172
|
p->frame_size |= (static_cast<uint32_t>(*cur)) << 8;
|
@@ -175,7 +175,7 @@ grpc_error_handle grpc_deframe_unprocessed_incoming_frames(
|
|
175
175
|
grpc_slice_buffer_remove_first(slices);
|
176
176
|
continue;
|
177
177
|
}
|
178
|
-
|
178
|
+
ABSL_FALLTHROUGH_INTENDED;
|
179
179
|
case GRPC_CHTTP2_DATA_FH_4:
|
180
180
|
s->stats.incoming.framing_bytes++;
|
181
181
|
GPR_ASSERT(stream_out != nullptr);
|
@@ -19,7 +19,6 @@
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
21
|
#include "src/core/ext/transport/chttp2/transport/frame_goaway.h"
|
22
|
-
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
23
22
|
|
24
23
|
#include <string.h>
|
25
24
|
|
@@ -28,6 +27,8 @@
|
|
28
27
|
#include <grpc/support/alloc.h>
|
29
28
|
#include <grpc/support/log.h>
|
30
29
|
|
30
|
+
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
31
|
+
|
31
32
|
void grpc_chttp2_goaway_parser_init(grpc_chttp2_goaway_parser* p) {
|
32
33
|
p->debug_data = nullptr;
|
33
34
|
}
|
@@ -39,8 +40,8 @@ void grpc_chttp2_goaway_parser_destroy(grpc_chttp2_goaway_parser* p) {
|
|
39
40
|
grpc_error_handle grpc_chttp2_goaway_parser_begin_frame(
|
40
41
|
grpc_chttp2_goaway_parser* p, uint32_t length, uint8_t /*flags*/) {
|
41
42
|
if (length < 8) {
|
42
|
-
return
|
43
|
-
absl::StrFormat("goaway frame too short (%d bytes)", length)
|
43
|
+
return GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
44
|
+
absl::StrFormat("goaway frame too short (%d bytes)", length));
|
44
45
|
}
|
45
46
|
|
46
47
|
gpr_free(p->debug_data);
|
@@ -70,7 +71,7 @@ grpc_error_handle grpc_chttp2_goaway_parser_parse(void* parser,
|
|
70
71
|
}
|
71
72
|
p->last_stream_id = (static_cast<uint32_t>(*cur)) << 24;
|
72
73
|
++cur;
|
73
|
-
|
74
|
+
ABSL_FALLTHROUGH_INTENDED;
|
74
75
|
case GRPC_CHTTP2_GOAWAY_LSI1:
|
75
76
|
if (cur == end) {
|
76
77
|
p->state = GRPC_CHTTP2_GOAWAY_LSI1;
|
@@ -78,7 +79,7 @@ grpc_error_handle grpc_chttp2_goaway_parser_parse(void* parser,
|
|
78
79
|
}
|
79
80
|
p->last_stream_id |= (static_cast<uint32_t>(*cur)) << 16;
|
80
81
|
++cur;
|
81
|
-
|
82
|
+
ABSL_FALLTHROUGH_INTENDED;
|
82
83
|
case GRPC_CHTTP2_GOAWAY_LSI2:
|
83
84
|
if (cur == end) {
|
84
85
|
p->state = GRPC_CHTTP2_GOAWAY_LSI2;
|
@@ -86,7 +87,7 @@ grpc_error_handle grpc_chttp2_goaway_parser_parse(void* parser,
|
|
86
87
|
}
|
87
88
|
p->last_stream_id |= (static_cast<uint32_t>(*cur)) << 8;
|
88
89
|
++cur;
|
89
|
-
|
90
|
+
ABSL_FALLTHROUGH_INTENDED;
|
90
91
|
case GRPC_CHTTP2_GOAWAY_LSI3:
|
91
92
|
if (cur == end) {
|
92
93
|
p->state = GRPC_CHTTP2_GOAWAY_LSI3;
|
@@ -94,7 +95,7 @@ grpc_error_handle grpc_chttp2_goaway_parser_parse(void* parser,
|
|
94
95
|
}
|
95
96
|
p->last_stream_id |= (static_cast<uint32_t>(*cur));
|
96
97
|
++cur;
|
97
|
-
|
98
|
+
ABSL_FALLTHROUGH_INTENDED;
|
98
99
|
case GRPC_CHTTP2_GOAWAY_ERR0:
|
99
100
|
if (cur == end) {
|
100
101
|
p->state = GRPC_CHTTP2_GOAWAY_ERR0;
|
@@ -102,7 +103,7 @@ grpc_error_handle grpc_chttp2_goaway_parser_parse(void* parser,
|
|
102
103
|
}
|
103
104
|
p->error_code = (static_cast<uint32_t>(*cur)) << 24;
|
104
105
|
++cur;
|
105
|
-
|
106
|
+
ABSL_FALLTHROUGH_INTENDED;
|
106
107
|
case GRPC_CHTTP2_GOAWAY_ERR1:
|
107
108
|
if (cur == end) {
|
108
109
|
p->state = GRPC_CHTTP2_GOAWAY_ERR1;
|
@@ -110,7 +111,7 @@ grpc_error_handle grpc_chttp2_goaway_parser_parse(void* parser,
|
|
110
111
|
}
|
111
112
|
p->error_code |= (static_cast<uint32_t>(*cur)) << 16;
|
112
113
|
++cur;
|
113
|
-
|
114
|
+
ABSL_FALLTHROUGH_INTENDED;
|
114
115
|
case GRPC_CHTTP2_GOAWAY_ERR2:
|
115
116
|
if (cur == end) {
|
116
117
|
p->state = GRPC_CHTTP2_GOAWAY_ERR2;
|
@@ -118,7 +119,7 @@ grpc_error_handle grpc_chttp2_goaway_parser_parse(void* parser,
|
|
118
119
|
}
|
119
120
|
p->error_code |= (static_cast<uint32_t>(*cur)) << 8;
|
120
121
|
++cur;
|
121
|
-
|
122
|
+
ABSL_FALLTHROUGH_INTENDED;
|
122
123
|
case GRPC_CHTTP2_GOAWAY_ERR3:
|
123
124
|
if (cur == end) {
|
124
125
|
p->state = GRPC_CHTTP2_GOAWAY_ERR3;
|
@@ -126,7 +127,7 @@ grpc_error_handle grpc_chttp2_goaway_parser_parse(void* parser,
|
|
126
127
|
}
|
127
128
|
p->error_code |= (static_cast<uint32_t>(*cur));
|
128
129
|
++cur;
|
129
|
-
|
130
|
+
ABSL_FALLTHROUGH_INTENDED;
|
130
131
|
case GRPC_CHTTP2_GOAWAY_DEBUG:
|
131
132
|
if (end != cur) {
|
132
133
|
memcpy(p->debug_data + p->debug_pos, cur,
|
@@ -19,7 +19,6 @@
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
21
|
#include "src/core/ext/transport/chttp2/transport/frame_ping.h"
|
22
|
-
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
23
22
|
|
24
23
|
#include <string.h>
|
25
24
|
|
@@ -28,6 +27,8 @@
|
|
28
27
|
#include <grpc/support/alloc.h>
|
29
28
|
#include <grpc/support/log.h>
|
30
29
|
|
30
|
+
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
31
|
+
|
31
32
|
static bool g_disable_ping_ack = false;
|
32
33
|
|
33
34
|
grpc_slice grpc_chttp2_ping_create(uint8_t ack, uint64_t opaque_8bytes) {
|
@@ -58,9 +59,8 @@ grpc_slice grpc_chttp2_ping_create(uint8_t ack, uint64_t opaque_8bytes) {
|
|
58
59
|
grpc_error_handle grpc_chttp2_ping_parser_begin_frame(
|
59
60
|
grpc_chttp2_ping_parser* parser, uint32_t length, uint8_t flags) {
|
60
61
|
if (flags & 0xfe || length != 8) {
|
61
|
-
return
|
62
|
-
absl::StrFormat("invalid ping: length=%d, flags=%02x", length, flags)
|
63
|
-
.c_str());
|
62
|
+
return GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
63
|
+
absl::StrFormat("invalid ping: length=%d, flags=%02x", length, flags));
|
64
64
|
}
|
65
65
|
parser->byte = 0;
|
66
66
|
parser->is_ack = flags;
|