grpc 1.58.0.pre1 → 1.59.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Makefile +48 -33
- data/include/grpc/event_engine/event_engine.h +6 -10
- data/include/grpc/impl/channel_arg_names.h +4 -0
- data/include/grpc/support/port_platform.h +74 -1
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +22 -9
- data/src/core/ext/filters/client_channel/client_channel.cc +422 -56
- data/src/core/ext/filters/client_channel/client_channel.h +52 -8
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +15 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.h +2 -0
- data/src/core/ext/filters/client_channel/{http_proxy.cc → http_proxy_mapper.cc} +1 -1
- data/src/core/ext/filters/client_channel/{http_proxy.h → http_proxy_mapper.h} +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/endpoint_list.cc +188 -0
- data/src/core/ext/filters/client_channel/lb_policy/endpoint_list.h +214 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +17 -4
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +41 -6
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +5 -3
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +32 -103
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +0 -7
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +416 -139
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.h +16 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +434 -459
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +410 -26
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +14 -46
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +851 -57
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +16 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +47 -32
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +55 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +105 -175
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +14 -7
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +24 -6
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +36 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +54 -44
- data/src/core/ext/filters/client_channel/subchannel.cc +33 -0
- data/src/core/ext/filters/client_channel/subchannel.h +9 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +11 -6
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +28 -22
- data/src/core/ext/transport/chttp2/transport/flow_control.h +27 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +9 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +19 -10
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +3 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +66 -47
- data/src/core/ext/transport/chttp2/transport/{frame.h → legacy_frame.h} +3 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +4 -2
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +10 -0
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +4 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/writing.cc +2 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +9 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +16 -18
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +75 -83
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +27 -29
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +102 -110
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +16 -18
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +73 -81
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +65 -67
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +294 -302
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +20 -28
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +5 -7
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +24 -32
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +7 -9
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +19 -27
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +10 -18
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +10 -18
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +42 -44
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +141 -149
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +3 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +8 -16
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +5 -7
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -9
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +3 -5
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +4 -12
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +36 -38
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +157 -165
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +87 -89
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +372 -380
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +13 -15
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +55 -63
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +111 -113
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +441 -449
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +3 -5
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +8 -16
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +23 -25
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +88 -96
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +40 -42
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +180 -188
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +26 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +108 -116
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +3 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +9 -17
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +65 -67
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +245 -253
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +27 -29
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +119 -127
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +2 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +6 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +3 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +8 -16
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +20 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +49 -51
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +184 -192
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +49 -51
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +225 -233
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +13 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +63 -65
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +246 -254
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +5 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +19 -27
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +5 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +19 -27
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +8 -10
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +30 -38
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +7 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +28 -36
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +3 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +9 -17
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +12 -14
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +48 -56
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +23 -25
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +92 -100
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +27 -29
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +108 -116
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +2 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +5 -13
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +38 -40
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +167 -175
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +34 -36
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +162 -170
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +10 -12
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +37 -45
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +13 -21
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +6 -8
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +18 -26
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +22 -24
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +97 -105
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +24 -26
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +111 -119
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +43 -45
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +183 -191
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +20 -22
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +102 -110
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +253 -255
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +1108 -1116
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +8 -10
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +31 -39
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +35 -37
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +150 -158
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +10 -18
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +3 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +8 -16
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +13 -21
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +5 -7
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +19 -27
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +14 -16
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +53 -61
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +3 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +8 -16
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +2 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +5 -13
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +7 -9
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +24 -32
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +1 -3
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +1 -9
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +7 -9
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +23 -31
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +8 -10
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +23 -31
- data/src/core/ext/upb-generated/envoy/data/accesslog/v3/accesslog.upb.c +114 -116
- data/src/core/ext/upb-generated/envoy/data/accesslog/v3/accesslog.upb.h +372 -380
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +2 -4
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +9 -17
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +8 -10
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +30 -38
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +21 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +81 -89
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +7 -9
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +24 -32
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +12 -14
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +52 -60
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +14 -22
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +114 -116
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +468 -476
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +2 -4
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +5 -13
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +7 -9
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +25 -33
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +11 -13
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +40 -48
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.c +2 -4
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +4 -12
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +8 -10
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +27 -35
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +2 -4
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +5 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +1 -3
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -9
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +35 -37
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +165 -173
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +9 -11
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +32 -40
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +39 -41
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +169 -177
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +16 -24
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -3
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +1 -9
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +55 -57
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +241 -249
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +7 -9
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +31 -39
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +23 -25
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +98 -106
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +11 -19
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +18 -26
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +3 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +9 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +6 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +16 -24
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +6 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +24 -32
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +3 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +13 -21
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +3 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +10 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +2 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +6 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +6 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +20 -28
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +1 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +1 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +8 -10
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +33 -41
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +18 -26
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +8 -10
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +31 -39
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +8 -10
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +34 -42
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +14 -16
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +47 -55
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +13 -21
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +1 -3
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -9
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +2 -4
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +4 -12
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +10 -18
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +7 -9
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +19 -27
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +6 -8
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +20 -28
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +1 -3
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +1 -9
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +10 -18
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +4 -6
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +12 -20
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +2 -4
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -9
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +45 -47
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +190 -198
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +54 -56
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +210 -218
- data/src/core/ext/upb-generated/google/api/http.upb.c +15 -17
- data/src/core/ext/upb-generated/google/api/http.upb.h +60 -68
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +4 -6
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +15 -23
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +3 -5
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +7 -15
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +359 -204
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1340 -760
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +3 -5
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +7 -15
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -3
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +1 -9
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +11 -13
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +43 -51
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +3 -5
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +7 -15
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +10 -12
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +28 -36
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +4 -6
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +15 -23
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +11 -13
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +35 -43
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +10 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +28 -36
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +48 -50
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +190 -198
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +15 -23
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +3 -5
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +7 -15
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +21 -23
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +80 -88
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +9 -11
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +29 -37
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +32 -34
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +147 -155
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +10 -12
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +13 -21
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +4 -6
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -15
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +2 -4
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -9
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +4 -6
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -15
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +3 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +4 -12
- data/src/core/ext/upb-generated/validate/validate.upb.c +201 -203
- data/src/core/ext/upb-generated/validate/validate.upb.h +924 -932
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +10 -12
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +13 -21
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +4 -6
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +7 -15
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +2 -4
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +1 -9
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +9 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +16 -24
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +3 -5
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +4 -12
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +2 -4
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +4 -12
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +3 -5
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +8 -16
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +6 -8
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +20 -28
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +4 -6
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +9 -17
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +3 -5
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +8 -16
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +4 -6
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +12 -20
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +9 -11
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +35 -43
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +5 -7
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +14 -22
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +16 -18
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +43 -51
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +3 -5
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +13 -21
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +2 -4
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +5 -13
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +4 -6
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +21 -29
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +1 -3
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +1 -9
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +5 -7
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +24 -32
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +24 -26
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +103 -111
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +10 -12
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +61 -69
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +3 -5
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +9 -17
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +8 -10
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +33 -41
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +5 -7
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +18 -26
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +7 -9
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +19 -27
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +3 -5
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +8 -16
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +367 -290
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +10 -0
- data/src/core/ext/xds/xds_client.cc +6 -9
- data/src/core/ext/xds/xds_client.h +2 -2
- data/src/core/ext/xds/xds_cluster.cc +30 -42
- data/src/core/ext/xds/xds_cluster.h +0 -4
- data/src/core/ext/xds/xds_endpoint.cc +12 -19
- data/src/core/ext/xds/xds_endpoint.h +0 -1
- data/src/core/ext/xds/xds_http_filters.cc +1 -4
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +1 -4
- data/src/core/ext/xds/xds_listener.cc +14 -14
- data/src/core/ext/xds/xds_listener.h +13 -3
- data/src/core/ext/xds/xds_resource_type.h +1 -7
- data/src/core/ext/xds/xds_resource_type_impl.h +9 -11
- data/src/core/ext/xds/xds_route_config.cc +10 -11
- data/src/core/ext/xds/xds_route_config.h +1 -1
- data/src/core/ext/xds/xds_server_config_fetcher.cc +53 -28
- data/src/core/ext/xds/xds_transport_grpc.cc +11 -1
- data/src/core/lib/backoff/random_early_detection.cc +4 -2
- data/src/core/lib/backoff/random_early_detection.h +2 -4
- data/src/core/lib/channel/call_tracer.cc +7 -1
- data/src/core/lib/channel/call_tracer.h +4 -1
- data/src/core/lib/channel/channelz_registry.h +4 -2
- data/src/core/lib/channel/connected_channel.cc +1 -1
- data/src/core/lib/config/config_vars.h +1 -1
- data/src/core/lib/config/core_configuration.cc +2 -1
- data/src/core/lib/config/core_configuration.h +5 -4
- data/src/core/lib/debug/stats_data.cc +146 -51
- data/src/core/lib/debug/stats_data.h +81 -20
- data/src/core/lib/event_engine/ares_resolver.cc +9 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +3 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +3 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +3 -0
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +3 -0
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +15 -3
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +3 -0
- data/src/core/lib/event_engine/nameser.h +102 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.h +15 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +3 -15
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +10 -4
- data/src/core/lib/experiments/config.cc +9 -1
- data/src/core/lib/experiments/experiments.cc +409 -144
- data/src/core/lib/experiments/experiments.h +153 -39
- data/src/core/lib/gprpp/fork.h +1 -1
- data/src/core/lib/gprpp/manual_constructor.h +1 -2
- data/src/core/lib/gprpp/no_destruct.h +1 -1
- data/src/core/lib/gprpp/per_cpu.cc +2 -0
- data/src/core/lib/gprpp/per_cpu.h +36 -7
- data/src/core/lib/gprpp/ref_counted_ptr.h +63 -0
- data/src/core/lib/gprpp/work_serializer.cc +297 -25
- data/src/core/lib/gprpp/work_serializer.h +25 -9
- data/src/core/lib/iomgr/combiner.cc +54 -15
- data/src/core/lib/iomgr/combiner.h +8 -3
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -4
- data/src/core/lib/iomgr/exec_ctx.cc +12 -0
- data/src/core/lib/iomgr/exec_ctx.h +55 -19
- data/src/core/lib/iomgr/polling_entity.cc +10 -0
- data/src/core/lib/iomgr/polling_entity.h +2 -0
- data/src/core/lib/iomgr/port.h +14 -0
- data/src/core/lib/iomgr/tcp_posix.cc +17 -14
- data/src/core/lib/load_balancing/lb_policy.h +10 -9
- data/src/core/lib/promise/arena_promise.h +5 -1
- data/src/core/lib/promise/detail/seq_state.h +418 -0
- data/src/core/lib/promise/latch.h +1 -0
- data/src/core/lib/promise/loop.h +8 -5
- data/src/core/lib/promise/pipe.h +24 -24
- data/src/core/lib/promise/poll.h +4 -6
- data/src/core/lib/resolver/server_address.h +1 -0
- data/src/core/lib/resource_quota/memory_quota.cc +58 -2
- data/src/core/lib/resource_quota/memory_quota.h +4 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +115 -9
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +14 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc +86 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +0 -59
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +2 -0
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +7 -57
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +2 -14
- data/src/core/lib/slice/slice.h +6 -0
- data/src/core/lib/slice/slice_buffer.cc +15 -0
- data/src/core/lib/slice/slice_buffer.h +16 -4
- data/src/core/lib/slice/slice_refcount.h +1 -1
- data/src/core/lib/surface/call.cc +92 -34
- data/src/core/lib/surface/call.h +4 -0
- data/src/core/lib/surface/channel.cc +7 -4
- data/src/core/lib/surface/channel_init.h +3 -2
- data/src/core/lib/surface/server.cc +45 -5
- data/src/core/lib/surface/server.h +18 -6
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/batch_builder.cc +3 -5
- data/src/core/lib/transport/metadata_batch.cc +6 -0
- data/src/core/lib/transport/metadata_batch.h +20 -1
- data/src/core/lib/transport/parsed_metadata.h +2 -4
- data/src/core/lib/transport/simple_slice_based_metadata.h +1 -2
- data/src/core/lib/transport/transport.h +21 -11
- data/src/core/tsi/ssl_transport_security.cc +7 -0
- data/src/core/tsi/ssl_transport_security.h +4 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_channel_args.c +6 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -1
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +185 -0
- data/third_party/upb/upb/collections/array.c +6 -0
- data/third_party/upb/upb/collections/array.h +6 -0
- data/third_party/upb/upb/collections/map.c +7 -0
- data/third_party/upb/upb/collections/map.h +5 -0
- data/third_party/upb/upb/collections/map_sorter_internal.h +1 -1
- data/third_party/upb/upb/collections/message_value.h +8 -1
- data/third_party/upb/upb/generated_code_support.h +54 -0
- data/third_party/upb/upb/hash/common.c +5 -0
- data/third_party/upb/upb/hash/common.h +1 -0
- data/third_party/upb/upb/hash/str_table.h +1 -0
- data/third_party/upb/upb/message/accessors.c +25 -1
- data/third_party/upb/upb/message/accessors.h +46 -25
- data/third_party/upb/upb/message/accessors_internal.h +69 -3
- data/third_party/upb/upb/message/extension_internal.h +1 -1
- data/third_party/upb/upb/message/internal/map_entry.h +64 -0
- data/third_party/upb/upb/message/internal.h +2 -6
- data/third_party/upb/upb/message/message.c +0 -6
- data/third_party/upb/upb/message/message.h +1 -1
- data/third_party/upb/upb/message/tagged_ptr.h +89 -0
- data/third_party/upb/upb/mini_descriptor/build_enum.c +150 -0
- data/third_party/upb/upb/mini_descriptor/build_enum.h +63 -0
- data/third_party/upb/upb/{mini_table → mini_descriptor}/decode.c +122 -374
- data/third_party/upb/upb/{mini_table → mini_descriptor}/decode.h +11 -50
- data/third_party/upb/upb/mini_descriptor/internal/base92.c +46 -0
- data/third_party/upb/upb/mini_descriptor/internal/base92.h +81 -0
- data/third_party/upb/upb/mini_descriptor/internal/decoder.h +73 -0
- data/third_party/upb/upb/{mini_table → mini_descriptor/internal}/encode.c +58 -32
- data/third_party/upb/upb/{mini_table/encode_internal.h → mini_descriptor/internal/encode.h} +3 -4
- data/third_party/upb/upb/{mini_table/encode_internal.hpp → mini_descriptor/internal/encode.hpp} +1 -1
- data/third_party/upb/upb/mini_descriptor/internal/modifiers.h +50 -0
- data/third_party/upb/upb/{mini_table/common_internal.h → mini_descriptor/internal/wire_constants.h} +3 -23
- data/third_party/upb/upb/mini_descriptor/link.c +142 -0
- data/third_party/upb/upb/mini_descriptor/link.h +104 -0
- data/third_party/upb/upb/mini_table/{types.h → enum.h} +19 -9
- data/third_party/upb/upb/mini_table/extension.h +40 -0
- data/third_party/upb/upb/mini_table/extension_registry.c +1 -1
- data/third_party/upb/upb/mini_table/extension_registry.h +2 -1
- data/third_party/upb/upb/mini_table/field.h +118 -0
- data/third_party/upb/upb/{json_decode.h → mini_table/file.h} +5 -6
- data/third_party/upb/upb/mini_table/{enum_internal.h → internal/enum.h} +7 -19
- data/third_party/upb/upb/mini_table/{extension_internal.h → internal/extension.h} +8 -8
- data/third_party/upb/upb/mini_table/{field_internal.h → internal/field.h} +10 -66
- data/third_party/upb/upb/mini_table/{file_internal.h → internal/file.h} +6 -4
- data/third_party/upb/upb/mini_table/internal/message.c +39 -0
- data/third_party/upb/upb/mini_table/{message_internal.h → internal/message.h} +14 -37
- data/third_party/upb/upb/mini_table/{sub_internal.h → internal/sub.h} +7 -6
- data/third_party/upb/upb/mini_table/{common.c → message.c} +2 -33
- data/third_party/upb/upb/mini_table/{common.h → message.h} +12 -77
- data/third_party/upb/upb/{json_encode.h → mini_table/sub.h} +5 -6
- data/third_party/upb/upb/reflection/def.hpp +16 -4
- data/third_party/upb/upb/reflection/def_pool_internal.h +1 -1
- data/third_party/upb/upb/reflection/desc_state_internal.h +1 -1
- data/third_party/upb/upb/reflection/enum_def.c +1 -1
- data/third_party/upb/upb/reflection/field_def.c +2 -1
- data/third_party/upb/upb/reflection/message.c +2 -2
- data/third_party/upb/upb/reflection/message_def.c +3 -1
- data/third_party/upb/upb/wire/decode.c +68 -29
- data/third_party/upb/upb/wire/decode.h +40 -0
- data/third_party/upb/upb/wire/encode.c +23 -13
- metadata +46 -29
- data/src/core/lib/event_engine/thread_pool/original_thread_pool.cc +0 -256
- data/src/core/lib/event_engine/thread_pool/original_thread_pool.h +0 -137
@@ -26,8 +26,8 @@
|
|
26
26
|
|
27
27
|
#include <grpc/slice.h>
|
28
28
|
|
29
|
-
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
30
29
|
#include "src/core/ext/transport/chttp2/transport/http2_settings.h"
|
30
|
+
#include "src/core/ext/transport/chttp2/transport/legacy_frame.h"
|
31
31
|
#include "src/core/lib/iomgr/error.h"
|
32
32
|
|
33
33
|
typedef enum {
|
@@ -28,10 +28,10 @@
|
|
28
28
|
#include <grpc/support/log.h>
|
29
29
|
|
30
30
|
#include "src/core/ext/transport/chttp2/transport/bin_encoder.h"
|
31
|
-
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
32
31
|
#include "src/core/ext/transport/chttp2/transport/hpack_constants.h"
|
33
32
|
#include "src/core/ext/transport/chttp2/transport/hpack_encoder_table.h"
|
34
33
|
#include "src/core/ext/transport/chttp2/transport/http_trace.h"
|
34
|
+
#include "src/core/ext/transport/chttp2/transport/legacy_frame.h"
|
35
35
|
#include "src/core/ext/transport/chttp2/transport/varint.h"
|
36
36
|
#include "src/core/lib/debug/trace.h"
|
37
37
|
#include "src/core/lib/gprpp/crash.h"
|
@@ -91,12 +91,13 @@ constexpr Base64InverseTable kBase64InverseTable;
|
|
91
91
|
class HPackParser::Input {
|
92
92
|
public:
|
93
93
|
Input(grpc_slice_refcount* current_slice_refcount, const uint8_t* begin,
|
94
|
-
const uint8_t* end, HpackParseResult& error)
|
94
|
+
const uint8_t* end, absl::BitGenRef bitsrc, HpackParseResult& error)
|
95
95
|
: current_slice_refcount_(current_slice_refcount),
|
96
96
|
begin_(begin),
|
97
97
|
end_(end),
|
98
98
|
frontier_(begin),
|
99
|
-
error_(error)
|
99
|
+
error_(error),
|
100
|
+
bitsrc_(bitsrc) {}
|
100
101
|
|
101
102
|
// If input is backed by a slice, retrieve its refcount. If not, return
|
102
103
|
// nullptr.
|
@@ -279,6 +280,9 @@ class HPackParser::Input {
|
|
279
280
|
// Get the frontier - for buffering should we fail due to eof
|
280
281
|
const uint8_t* frontier() const { return frontier_; }
|
281
282
|
|
283
|
+
// Access the rng
|
284
|
+
absl::BitGenRef bitsrc() { return bitsrc_; }
|
285
|
+
|
282
286
|
private:
|
283
287
|
// Helper to set the error to out of range for ParseVarint
|
284
288
|
absl::optional<uint32_t> ParseVarintOutOfRange(uint32_t value,
|
@@ -324,6 +328,8 @@ class HPackParser::Input {
|
|
324
328
|
// (We've failed parsing a request for whatever reason, but we're still
|
325
329
|
// continuing the connection so we need to see future opcodes after this bit).
|
326
330
|
size_t skip_bytes_ = 0;
|
331
|
+
// Random number generator
|
332
|
+
absl::BitGenRef bitsrc_;
|
327
333
|
};
|
328
334
|
|
329
335
|
absl::string_view HPackParser::String::string_view() const {
|
@@ -1144,7 +1150,7 @@ void HPackParser::BeginFrame(grpc_metadata_batch* metadata_buffer,
|
|
1144
1150
|
}
|
1145
1151
|
|
1146
1152
|
grpc_error_handle HPackParser::Parse(
|
1147
|
-
const grpc_slice& slice, bool is_last,
|
1153
|
+
const grpc_slice& slice, bool is_last, absl::BitGenRef bitsrc,
|
1148
1154
|
CallTracerAnnotationInterface* call_tracer) {
|
1149
1155
|
if (GPR_UNLIKELY(!unparsed_bytes_.empty())) {
|
1150
1156
|
unparsed_bytes_.insert(unparsed_bytes_.end(), GRPC_SLICE_START_PTR(slice),
|
@@ -1155,20 +1161,23 @@ grpc_error_handle HPackParser::Parse(
|
|
1155
1161
|
return absl::OkStatus();
|
1156
1162
|
}
|
1157
1163
|
std::vector<uint8_t> buffer = std::move(unparsed_bytes_);
|
1158
|
-
return ParseInput(
|
1159
|
-
|
1160
|
-
|
1164
|
+
return ParseInput(
|
1165
|
+
Input(nullptr, buffer.data(), buffer.data() + buffer.size(), bitsrc,
|
1166
|
+
state_.frame_error),
|
1167
|
+
is_last, call_tracer);
|
1161
1168
|
}
|
1162
|
-
return ParseInput(
|
1163
|
-
|
1164
|
-
|
1169
|
+
return ParseInput(
|
1170
|
+
Input(slice.refcount, GRPC_SLICE_START_PTR(slice),
|
1171
|
+
GRPC_SLICE_END_PTR(slice), bitsrc, state_.frame_error),
|
1172
|
+
is_last, call_tracer);
|
1165
1173
|
}
|
1166
1174
|
|
1167
1175
|
grpc_error_handle HPackParser::ParseInput(
|
1168
1176
|
Input input, bool is_last, CallTracerAnnotationInterface* call_tracer) {
|
1169
1177
|
ParseInputInner(&input);
|
1170
1178
|
if (is_last && is_boundary()) {
|
1171
|
-
if (state_.metadata_early_detection.Reject(state_.frame_length
|
1179
|
+
if (state_.metadata_early_detection.Reject(state_.frame_length,
|
1180
|
+
input.bitsrc())) {
|
1172
1181
|
HandleMetadataSoftSizeLimitExceeded(&input);
|
1173
1182
|
}
|
1174
1183
|
global_stats().IncrementHttp2MetadataSize(state_.frame_length);
|
@@ -28,6 +28,7 @@
|
|
28
28
|
#include <utility>
|
29
29
|
#include <vector>
|
30
30
|
|
31
|
+
#include "absl/random/bit_gen_ref.h"
|
31
32
|
#include "absl/strings/str_cat.h"
|
32
33
|
#include "absl/strings/string_view.h"
|
33
34
|
#include "absl/types/optional.h"
|
@@ -36,9 +37,9 @@
|
|
36
37
|
|
37
38
|
#include <grpc/slice.h>
|
38
39
|
|
39
|
-
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
40
40
|
#include "src/core/ext/transport/chttp2/transport/hpack_parse_result.h"
|
41
41
|
#include "src/core/ext/transport/chttp2/transport/hpack_parser_table.h"
|
42
|
+
#include "src/core/ext/transport/chttp2/transport/legacy_frame.h"
|
42
43
|
#include "src/core/lib/backoff/random_early_detection.h"
|
43
44
|
#include "src/core/lib/channel/call_tracer.h"
|
44
45
|
#include "src/core/lib/iomgr/error.h"
|
@@ -101,6 +102,7 @@ class HPackParser {
|
|
101
102
|
void StopBufferingFrame() { metadata_buffer_ = nullptr; }
|
102
103
|
// Parse one slice worth of data
|
103
104
|
grpc_error_handle Parse(const grpc_slice& slice, bool is_last,
|
105
|
+
absl::BitGenRef bitsrc,
|
104
106
|
CallTracerAnnotationInterface* call_tracer);
|
105
107
|
// Reset state ready for the next BeginFrame
|
106
108
|
void FinishFrame();
|
@@ -28,6 +28,7 @@
|
|
28
28
|
|
29
29
|
#include "absl/container/flat_hash_map.h"
|
30
30
|
#include "absl/meta/type_traits.h"
|
31
|
+
#include "absl/random/random.h"
|
31
32
|
#include "absl/strings/string_view.h"
|
32
33
|
#include "absl/types/optional.h"
|
33
34
|
|
@@ -39,7 +40,6 @@
|
|
39
40
|
|
40
41
|
#include "src/core/ext/transport/chttp2/transport/context_list_entry.h"
|
41
42
|
#include "src/core/ext/transport/chttp2/transport/flow_control.h"
|
42
|
-
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
43
43
|
#include "src/core/ext/transport/chttp2/transport/frame_goaway.h"
|
44
44
|
#include "src/core/ext/transport/chttp2/transport/frame_ping.h"
|
45
45
|
#include "src/core/ext/transport/chttp2/transport/frame_rst_stream.h"
|
@@ -48,6 +48,7 @@
|
|
48
48
|
#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
|
49
49
|
#include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
|
50
50
|
#include "src/core/ext/transport/chttp2/transport/http2_settings.h"
|
51
|
+
#include "src/core/ext/transport/chttp2/transport/legacy_frame.h"
|
51
52
|
#include "src/core/ext/transport/chttp2/transport/ping_abuse_policy.h"
|
52
53
|
#include "src/core/ext/transport/chttp2/transport/ping_rate_policy.h"
|
53
54
|
#include "src/core/lib/channel/channel_args.h"
|
@@ -267,22 +268,16 @@ struct grpc_chttp2_transport : public grpc_core::KeepsGrpcInitialized {
|
|
267
268
|
const grpc_core::MemoryAllocator::Reservation self_reservation;
|
268
269
|
grpc_core::ReclamationSweep active_reclamation;
|
269
270
|
|
271
|
+
std::shared_ptr<grpc_event_engine::experimental::EventEngine> event_engine;
|
270
272
|
grpc_core::Combiner* combiner;
|
273
|
+
absl::BitGen bitgen;
|
271
274
|
|
272
275
|
grpc_closure* notify_on_receive_settings = nullptr;
|
273
276
|
grpc_closure* notify_on_close = nullptr;
|
274
277
|
|
275
|
-
/// write execution state of the transport
|
276
|
-
grpc_chttp2_write_state write_state = GRPC_CHTTP2_WRITE_STATE_IDLE;
|
277
|
-
|
278
|
-
/// is the transport destroying itself?
|
279
|
-
uint8_t destroying = false;
|
280
278
|
/// has the upper layer closed the transport?
|
281
279
|
grpc_error_handle closed_with_error;
|
282
280
|
|
283
|
-
/// is there a read request to the endpoint outstanding?
|
284
|
-
uint8_t endpoint_reading = 1;
|
285
|
-
|
286
281
|
/// various lists of streams
|
287
282
|
grpc_chttp2_stream_list lists[STREAM_LIST_COUNT] = {};
|
288
283
|
|
@@ -306,6 +301,10 @@ struct grpc_chttp2_transport : public grpc_core::KeepsGrpcInitialized {
|
|
306
301
|
// accept stream callback
|
307
302
|
void (*accept_stream_cb)(void* user_data, grpc_transport* transport,
|
308
303
|
const void* server_data);
|
304
|
+
// registered_method_matcher_cb is called before invoking the recv initial
|
305
|
+
// metadata callback.
|
306
|
+
void (*registered_method_matcher_cb)(
|
307
|
+
void* user_data, grpc_core::ServerMetadata* metadata) = nullptr;
|
309
308
|
void* accept_stream_cb_user_data;
|
310
309
|
|
311
310
|
/// connectivity tracking
|
@@ -315,26 +314,16 @@ struct grpc_chttp2_transport : public grpc_core::KeepsGrpcInitialized {
|
|
315
314
|
grpc_slice_buffer outbuf;
|
316
315
|
/// hpack encoding
|
317
316
|
grpc_core::HPackCompressor hpack_compressor;
|
318
|
-
/// is this a client?
|
319
|
-
bool is_client;
|
320
317
|
|
321
318
|
/// data to write next write
|
322
319
|
grpc_slice_buffer qbuf;
|
323
320
|
|
324
|
-
/// how much data are we willing to buffer when the WRITE_BUFFER_HINT is set?
|
325
|
-
///
|
326
|
-
uint32_t write_buffer_size = grpc_core::chttp2::kDefaultWindow;
|
327
|
-
|
328
321
|
/// Set to a grpc_error object if a goaway frame is received. By default, set
|
329
322
|
/// to absl::OkStatus()
|
330
323
|
grpc_error_handle goaway_error;
|
331
324
|
|
332
325
|
grpc_chttp2_sent_goaway_state sent_goaway_state = GRPC_CHTTP2_NO_GOAWAY_SEND;
|
333
326
|
|
334
|
-
/// are the local settings dirty and need to be sent?
|
335
|
-
bool dirtied_local_settings = true;
|
336
|
-
/// have local settings been sent?
|
337
|
-
bool sent_local_settings = false;
|
338
327
|
/// bitmask of setting indexes to send out
|
339
328
|
/// Hack: it's common for implementations to assume 65536 bytes initial send
|
340
329
|
/// window -- this should by rights be 0
|
@@ -389,7 +378,6 @@ struct grpc_chttp2_transport : public grpc_core::KeepsGrpcInitialized {
|
|
389
378
|
bool is_first_frame = true;
|
390
379
|
uint32_t expect_continuation_stream_id = 0;
|
391
380
|
uint32_t incoming_frame_size = 0;
|
392
|
-
uint32_t incoming_stream_id = 0;
|
393
381
|
|
394
382
|
grpc_chttp2_stream* incoming_stream = nullptr;
|
395
383
|
// active parser
|
@@ -405,8 +393,6 @@ struct grpc_chttp2_transport : public grpc_core::KeepsGrpcInitialized {
|
|
405
393
|
grpc_chttp2_write_cb* write_cb_pool = nullptr;
|
406
394
|
|
407
395
|
// bdp estimator
|
408
|
-
bool bdp_ping_blocked =
|
409
|
-
false; // Is the BDP blocked due to not receiving any data?
|
410
396
|
grpc_closure next_bdp_ping_timer_expired_locked;
|
411
397
|
grpc_closure start_bdp_ping_locked;
|
412
398
|
grpc_closure finish_bdp_ping_locked;
|
@@ -418,19 +404,11 @@ struct grpc_chttp2_transport : public grpc_core::KeepsGrpcInitialized {
|
|
418
404
|
grpc_closure_list run_after_write = GRPC_CLOSURE_LIST_INIT;
|
419
405
|
|
420
406
|
// buffer pool state
|
421
|
-
/// have we scheduled a benign cleanup?
|
422
|
-
bool benign_reclaimer_registered = false;
|
423
|
-
/// have we scheduled a destructive cleanup?
|
424
|
-
bool destructive_reclaimer_registered = false;
|
425
407
|
/// benign cleanup closure
|
426
408
|
grpc_closure benign_reclaimer_locked;
|
427
409
|
/// destructive cleanup closure
|
428
410
|
grpc_closure destructive_reclaimer_locked;
|
429
411
|
|
430
|
-
/// If start_bdp_ping_locked has been called
|
431
|
-
bool bdp_ping_started = false;
|
432
|
-
// True if pings should be acked
|
433
|
-
bool ack_pings = true;
|
434
412
|
// next bdp ping timer handle
|
435
413
|
absl::optional<grpc_event_engine::experimental::EventEngine::TaskHandle>
|
436
414
|
next_bdp_ping_timer_handle;
|
@@ -454,10 +432,6 @@ struct grpc_chttp2_transport : public grpc_core::KeepsGrpcInitialized {
|
|
454
432
|
grpc_core::Duration keepalive_time;
|
455
433
|
/// grace period for a ping to complete before watchdog kicks in
|
456
434
|
grpc_core::Duration keepalive_timeout;
|
457
|
-
/// if keepalive pings are allowed when there's no outstanding streams
|
458
|
-
bool keepalive_permit_without_calls = false;
|
459
|
-
/// If start_keepalive_ping_locked has been called
|
460
|
-
bool keepalive_ping_started = false;
|
461
435
|
/// keep-alive state machine state
|
462
436
|
grpc_chttp2_keepalive_state keepalive_state;
|
463
437
|
// Soft limit on max header size.
|
@@ -471,6 +445,12 @@ struct grpc_chttp2_transport : public grpc_core::KeepsGrpcInitialized {
|
|
471
445
|
/// only continue reading when we are able to write to the socket again,
|
472
446
|
/// thereby reducing the number of induced frames.
|
473
447
|
uint32_t num_pending_induced_frames = 0;
|
448
|
+
uint32_t incoming_stream_id = 0;
|
449
|
+
|
450
|
+
/// how much data are we willing to buffer when the WRITE_BUFFER_HINT is set?
|
451
|
+
///
|
452
|
+
uint32_t write_buffer_size = grpc_core::chttp2::kDefaultWindow;
|
453
|
+
|
474
454
|
bool reading_paused_on_pending_induced_frames = false;
|
475
455
|
/// Based on channel args, preferred_rx_crypto_frame_sizes are advertised to
|
476
456
|
/// the peer
|
@@ -480,7 +460,41 @@ struct grpc_chttp2_transport : public grpc_core::KeepsGrpcInitialized {
|
|
480
460
|
/// we can prove that the write got scheduled.
|
481
461
|
uint8_t closure_barrier_may_cover_write = CLOSURE_BARRIER_MAY_COVER_WRITE;
|
482
462
|
|
483
|
-
|
463
|
+
/// have we scheduled a benign cleanup?
|
464
|
+
bool benign_reclaimer_registered = false;
|
465
|
+
/// have we scheduled a destructive cleanup?
|
466
|
+
bool destructive_reclaimer_registered = false;
|
467
|
+
|
468
|
+
/// if keepalive pings are allowed when there's no outstanding streams
|
469
|
+
bool keepalive_permit_without_calls = false;
|
470
|
+
/// If start_keepalive_ping_locked has been called
|
471
|
+
bool keepalive_ping_started = false;
|
472
|
+
|
473
|
+
// bdp estimator
|
474
|
+
bool bdp_ping_blocked =
|
475
|
+
false; // Is the BDP blocked due to not receiving any data?
|
476
|
+
|
477
|
+
/// is the transport destroying itself?
|
478
|
+
uint8_t destroying = false;
|
479
|
+
|
480
|
+
/// is there a read request to the endpoint outstanding?
|
481
|
+
uint8_t endpoint_reading = 1;
|
482
|
+
|
483
|
+
/// is this a client?
|
484
|
+
bool is_client;
|
485
|
+
|
486
|
+
/// are the local settings dirty and need to be sent?
|
487
|
+
bool dirtied_local_settings = true;
|
488
|
+
/// have local settings been sent?
|
489
|
+
bool sent_local_settings = false;
|
490
|
+
|
491
|
+
/// If start_bdp_ping_locked has been called
|
492
|
+
bool bdp_ping_started = false;
|
493
|
+
// True if pings should be acked
|
494
|
+
bool ack_pings = true;
|
495
|
+
|
496
|
+
/// write execution state of the transport
|
497
|
+
grpc_chttp2_write_state write_state = GRPC_CHTTP2_WRITE_STATE_IDLE;
|
484
498
|
};
|
485
499
|
|
486
500
|
typedef enum {
|
@@ -503,7 +517,6 @@ struct grpc_chttp2_stream {
|
|
503
517
|
grpc_closure* destroy_stream_arg;
|
504
518
|
|
505
519
|
grpc_chttp2_stream_link links[STREAM_LIST_COUNT];
|
506
|
-
grpc_core::BitSet<STREAM_LIST_COUNT> included;
|
507
520
|
|
508
521
|
/// HTTP2 stream id for this stream, or zero if one has not been assigned
|
509
522
|
uint32_t id = 0;
|
@@ -529,7 +542,6 @@ struct grpc_chttp2_stream {
|
|
529
542
|
grpc_metadata_batch* recv_initial_metadata;
|
530
543
|
grpc_closure* recv_initial_metadata_ready = nullptr;
|
531
544
|
bool* trailing_metadata_available = nullptr;
|
532
|
-
bool parsed_trailers_only = false;
|
533
545
|
absl::optional<grpc_core::SliceBuffer>* recv_message = nullptr;
|
534
546
|
uint32_t* recv_message_flags = nullptr;
|
535
547
|
bool* call_failed_before_recv_message = nullptr;
|
@@ -557,30 +569,25 @@ struct grpc_chttp2_stream {
|
|
557
569
|
bool eos_received = false;
|
558
570
|
bool eos_sent = false;
|
559
571
|
|
572
|
+
grpc_core::BitSet<STREAM_LIST_COUNT> included;
|
573
|
+
|
560
574
|
/// the error that resulted in this stream being read-closed
|
561
575
|
grpc_error_handle read_closed_error;
|
562
576
|
/// the error that resulted in this stream being write-closed
|
563
577
|
grpc_error_handle write_closed_error;
|
564
578
|
|
565
579
|
grpc_published_metadata_method published_metadata[2] = {};
|
566
|
-
bool final_metadata_requested = false;
|
567
580
|
|
568
581
|
grpc_metadata_batch initial_metadata_buffer;
|
569
582
|
grpc_metadata_batch trailing_metadata_buffer;
|
570
583
|
|
571
|
-
grpc_slice_buffer frame_storage;
|
572
|
-
bool received_last_frame = false; // protected by t combiner
|
584
|
+
grpc_slice_buffer frame_storage; // protected by t combiner
|
573
585
|
|
574
586
|
grpc_core::Timestamp deadline = grpc_core::Timestamp::InfFuture();
|
575
587
|
|
576
|
-
/// how many header frames have we received?
|
577
|
-
uint8_t header_frames_received = 0;
|
578
588
|
/// number of bytes received - reset at end of parse thread execution
|
579
589
|
int64_t received_bytes = 0;
|
580
590
|
|
581
|
-
bool sent_initial_metadata = false;
|
582
|
-
bool sent_trailing_metadata = false;
|
583
|
-
|
584
591
|
grpc_core::chttp2::StreamFlowControl flow_control;
|
585
592
|
|
586
593
|
grpc_slice_buffer flow_controlled_buffer;
|
@@ -590,13 +597,25 @@ struct grpc_chttp2_stream {
|
|
590
597
|
grpc_chttp2_write_cb* finish_after_write = nullptr;
|
591
598
|
size_t sending_bytes = 0;
|
592
599
|
|
593
|
-
/// Whether the bytes needs to be traced using Fathom
|
594
|
-
bool traced = false;
|
595
600
|
/// Byte counter for number of bytes written
|
596
601
|
size_t byte_counter = 0;
|
597
602
|
|
598
603
|
// time this stream was created
|
599
604
|
gpr_timespec creation_time = gpr_now(GPR_CLOCK_MONOTONIC);
|
605
|
+
|
606
|
+
bool parsed_trailers_only = false;
|
607
|
+
|
608
|
+
bool final_metadata_requested = false;
|
609
|
+
bool received_last_frame = false; // protected by t combiner
|
610
|
+
|
611
|
+
/// how many header frames have we received?
|
612
|
+
uint8_t header_frames_received = 0;
|
613
|
+
|
614
|
+
bool sent_initial_metadata = false;
|
615
|
+
bool sent_trailing_metadata = false;
|
616
|
+
|
617
|
+
/// Whether the bytes needs to be traced using Fathom
|
618
|
+
bool traced = false;
|
600
619
|
};
|
601
620
|
|
602
621
|
/// Transport writing call flow:
|
@@ -16,8 +16,8 @@
|
|
16
16
|
//
|
17
17
|
//
|
18
18
|
|
19
|
-
#ifndef
|
20
|
-
#define
|
19
|
+
#ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_LEGACY_FRAME_H
|
20
|
+
#define GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_LEGACY_FRAME_H
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
@@ -40,4 +40,4 @@ typedef struct grpc_chttp2_transport grpc_chttp2_transport;
|
|
40
40
|
#define GRPC_CHTTP2_DATA_FLAG_PADDED 8
|
41
41
|
#define GRPC_CHTTP2_FLAG_HAS_PRIORITY 0x20
|
42
42
|
|
43
|
-
#endif //
|
43
|
+
#endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_LEGACY_FRAME_H
|
@@ -26,6 +26,7 @@
|
|
26
26
|
|
27
27
|
#include "absl/base/attributes.h"
|
28
28
|
#include "absl/container/flat_hash_map.h"
|
29
|
+
#include "absl/random/bit_gen_ref.h"
|
29
30
|
#include "absl/status/status.h"
|
30
31
|
#include "absl/strings/str_cat.h"
|
31
32
|
#include "absl/strings/str_format.h"
|
@@ -35,7 +36,6 @@
|
|
35
36
|
#include <grpc/support/log.h>
|
36
37
|
|
37
38
|
#include "src/core/ext/transport/chttp2/transport/flow_control.h"
|
38
|
-
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
39
39
|
#include "src/core/ext/transport/chttp2/transport/frame_data.h"
|
40
40
|
#include "src/core/ext/transport/chttp2/transport/frame_goaway.h"
|
41
41
|
#include "src/core/ext/transport/chttp2/transport/frame_ping.h"
|
@@ -47,6 +47,7 @@
|
|
47
47
|
#include "src/core/ext/transport/chttp2/transport/http2_settings.h"
|
48
48
|
#include "src/core/ext/transport/chttp2/transport/http_trace.h"
|
49
49
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
50
|
+
#include "src/core/ext/transport/chttp2/transport/legacy_frame.h"
|
50
51
|
#include "src/core/ext/transport/chttp2/transport/ping_rate_policy.h"
|
51
52
|
#include "src/core/lib/channel/call_tracer.h"
|
52
53
|
#include "src/core/lib/channel/channelz.h"
|
@@ -869,7 +870,8 @@ grpc_error_handle grpc_chttp2_header_parser_parse(void* hpack_parser,
|
|
869
870
|
.value);
|
870
871
|
}
|
871
872
|
}
|
872
|
-
grpc_error_handle error = parser->Parse(
|
873
|
+
grpc_error_handle error = parser->Parse(
|
874
|
+
slice, is_last != 0, absl::BitGenRef(t->bitgen), call_tracer);
|
873
875
|
if (!error.ok()) {
|
874
876
|
return error;
|
875
877
|
}
|
@@ -18,6 +18,7 @@
|
|
18
18
|
|
19
19
|
#include <algorithm>
|
20
20
|
|
21
|
+
#include "absl/strings/str_cat.h"
|
21
22
|
#include "absl/types/optional.h"
|
22
23
|
|
23
24
|
#include <grpc/impl/channel_arg_names.h>
|
@@ -61,6 +62,15 @@ bool Chttp2PingAbusePolicy::ReceivedOnePing(bool transport_idle) {
|
|
61
62
|
return ping_strikes_ > max_ping_strikes_ && max_ping_strikes_ != 0;
|
62
63
|
}
|
63
64
|
|
65
|
+
std::string Chttp2PingAbusePolicy::GetDebugString(bool transport_idle) const {
|
66
|
+
return absl::StrCat(
|
67
|
+
"now=", Timestamp::Now().ToString(), " transport_idle=", transport_idle,
|
68
|
+
" next_allowed_ping=",
|
69
|
+
(last_ping_recv_time_ + RecvPingIntervalWithoutData(transport_idle))
|
70
|
+
.ToString(),
|
71
|
+
" ping_strikes=", ping_strikes_);
|
72
|
+
}
|
73
|
+
|
64
74
|
Duration Chttp2PingAbusePolicy::RecvPingIntervalWithoutData(
|
65
75
|
bool transport_idle) const {
|
66
76
|
if (transport_idle) {
|
@@ -17,6 +17,8 @@
|
|
17
17
|
|
18
18
|
#include <grpc/support/port_platform.h>
|
19
19
|
|
20
|
+
#include <string>
|
21
|
+
|
20
22
|
#include "src/core/lib/channel/channel_args.h"
|
21
23
|
#include "src/core/lib/gprpp/time.h"
|
22
24
|
|
@@ -41,6 +43,8 @@ class Chttp2PingAbusePolicy {
|
|
41
43
|
return min_recv_ping_interval_without_data_;
|
42
44
|
}
|
43
45
|
|
46
|
+
std::string GetDebugString(bool transport_idle) const;
|
47
|
+
|
44
48
|
private:
|
45
49
|
Duration RecvPingIntervalWithoutData(bool transport_idle) const;
|
46
50
|
|
@@ -20,8 +20,8 @@
|
|
20
20
|
|
21
21
|
#include <grpc/support/log.h>
|
22
22
|
|
23
|
-
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
24
23
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
24
|
+
#include "src/core/ext/transport/chttp2/transport/legacy_frame.h"
|
25
25
|
#include "src/core/lib/debug/trace.h"
|
26
26
|
#include "src/core/lib/gprpp/bitset.h"
|
27
27
|
|
@@ -39,7 +39,6 @@
|
|
39
39
|
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
|
40
40
|
#include "src/core/ext/transport/chttp2/transport/context_list_entry.h"
|
41
41
|
#include "src/core/ext/transport/chttp2/transport/flow_control.h"
|
42
|
-
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
43
42
|
#include "src/core/ext/transport/chttp2/transport/frame_data.h"
|
44
43
|
#include "src/core/ext/transport/chttp2/transport/frame_ping.h"
|
45
44
|
#include "src/core/ext/transport/chttp2/transport/frame_rst_stream.h"
|
@@ -49,6 +48,7 @@
|
|
49
48
|
#include "src/core/ext/transport/chttp2/transport/http2_settings.h"
|
50
49
|
#include "src/core/ext/transport/chttp2/transport/http_trace.h"
|
51
50
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
51
|
+
#include "src/core/ext/transport/chttp2/transport/legacy_frame.h"
|
52
52
|
#include "src/core/ext/transport/chttp2/transport/ping_rate_policy.h"
|
53
53
|
#include "src/core/lib/channel/channelz.h"
|
54
54
|
#include "src/core/lib/debug/stats.h"
|
@@ -277,6 +277,7 @@ class WriteContext {
|
|
277
277
|
t_->force_send_settings = false;
|
278
278
|
t_->dirtied_local_settings = false;
|
279
279
|
t_->sent_local_settings = true;
|
280
|
+
t_->flow_control.FlushedSettings();
|
280
281
|
grpc_core::global_stats().IncrementHttp2SettingsWrites();
|
281
282
|
}
|
282
283
|
}
|
@@ -144,6 +144,8 @@ struct inproc_transport {
|
|
144
144
|
grpc_core::ConnectivityStateTracker state_tracker;
|
145
145
|
void (*accept_stream_cb)(void* user_data, grpc_transport* transport,
|
146
146
|
const void* server_data);
|
147
|
+
void (*registered_method_matcher_cb)(
|
148
|
+
void* user_data, grpc_core::ServerMetadata* metadata) = nullptr;
|
147
149
|
void* accept_stream_data;
|
148
150
|
bool is_closed = false;
|
149
151
|
struct inproc_transport* other_side;
|
@@ -696,6 +698,12 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
696
698
|
}
|
697
699
|
s->to_read_initial_md.Clear();
|
698
700
|
s->to_read_initial_md_filled = false;
|
701
|
+
if (s->t->registered_method_matcher_cb != nullptr) {
|
702
|
+
s->t->registered_method_matcher_cb(
|
703
|
+
s->t->accept_stream_data,
|
704
|
+
s->recv_initial_md_op->payload->recv_initial_metadata
|
705
|
+
.recv_initial_metadata);
|
706
|
+
}
|
699
707
|
grpc_core::ExecCtx::Run(
|
700
708
|
DEBUG_LOCATION,
|
701
709
|
std::exchange(s->recv_initial_md_op->payload->recv_initial_metadata
|
@@ -1120,6 +1128,7 @@ void perform_transport_op(grpc_transport* gt, grpc_transport_op* op) {
|
|
1120
1128
|
}
|
1121
1129
|
if (op->set_accept_stream) {
|
1122
1130
|
t->accept_stream_cb = op->set_accept_stream_fn;
|
1131
|
+
t->registered_method_matcher_cb = op->set_registered_method_matcher_fn;
|
1123
1132
|
t->accept_stream_data = op->set_accept_stream_user_data;
|
1124
1133
|
}
|
1125
1134
|
if (op->on_consumed) {
|
@@ -7,9 +7,7 @@
|
|
7
7
|
* regenerated. */
|
8
8
|
|
9
9
|
#include <stddef.h>
|
10
|
-
#include "upb/
|
11
|
-
#include "upb/message/internal.h"
|
12
|
-
#include "upb/mini_table/enum_internal.h"
|
10
|
+
#include "upb/generated_code_support.h"
|
13
11
|
#include "envoy/admin/v3/certs.upb.h"
|
14
12
|
#include "google/protobuf/timestamp.upb.h"
|
15
13
|
#include "udpa/annotations/status.upb.h"
|
@@ -23,7 +21,7 @@ static const upb_MiniTableSub envoy_admin_v3_Certificates_submsgs[1] = {
|
|
23
21
|
};
|
24
22
|
|
25
23
|
static const upb_MiniTableField envoy_admin_v3_Certificates__fields[1] = {
|
26
|
-
{1, 0, 0, 0, 11, kUpb_FieldMode_Array | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
24
|
+
{1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
27
25
|
};
|
28
26
|
|
29
27
|
const upb_MiniTable envoy_admin_v3_Certificates_msg_init = {
|
@@ -42,8 +40,8 @@ static const upb_MiniTableSub envoy_admin_v3_Certificate_submsgs[2] = {
|
|
42
40
|
};
|
43
41
|
|
44
42
|
static const upb_MiniTableField envoy_admin_v3_Certificate__fields[2] = {
|
45
|
-
{1, 0, 0, 0, 11, kUpb_FieldMode_Array | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
46
|
-
{2, UPB_SIZE(4, 8), 0, 1, 11, kUpb_FieldMode_Array | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
43
|
+
{1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
44
|
+
{2, UPB_SIZE(4, 8), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
47
45
|
};
|
48
46
|
|
49
47
|
const upb_MiniTable envoy_admin_v3_Certificate_msg_init = {
|
@@ -66,13 +64,13 @@ static const upb_MiniTableSub envoy_admin_v3_CertificateDetails_submsgs[4] = {
|
|
66
64
|
};
|
67
65
|
|
68
66
|
static const upb_MiniTableField envoy_admin_v3_CertificateDetails__fields[7] = {
|
69
|
-
{1, UPB_SIZE(20, 8), 0, kUpb_NoSub, 9, kUpb_FieldMode_Scalar | (kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
|
70
|
-
{2, UPB_SIZE(28, 24), 0, kUpb_NoSub, 9, kUpb_FieldMode_Scalar | (kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
|
71
|
-
{3, UPB_SIZE(4, 40), 0, 0, 11, kUpb_FieldMode_Array | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
72
|
-
{4, UPB_SIZE(40, 48), 0, kUpb_NoSub, 4, kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
|
73
|
-
{5, UPB_SIZE(8, 56), 1, 1, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
74
|
-
{6, UPB_SIZE(12, 64), 2, 2, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
75
|
-
{7, UPB_SIZE(16, 72), 3, 3, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
67
|
+
{1, UPB_SIZE(20, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
|
68
|
+
{2, UPB_SIZE(28, 24), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
|
69
|
+
{3, UPB_SIZE(4, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
70
|
+
{4, UPB_SIZE(40, 48), 0, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
|
71
|
+
{5, UPB_SIZE(8, 56), 1, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
72
|
+
{6, UPB_SIZE(12, 64), 2, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
73
|
+
{7, UPB_SIZE(16, 72), 3, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
76
74
|
};
|
77
75
|
|
78
76
|
const upb_MiniTable envoy_admin_v3_CertificateDetails_msg_init = {
|
@@ -97,8 +95,8 @@ static const upb_MiniTableSub envoy_admin_v3_CertificateDetails_OcspDetails_subm
|
|
97
95
|
};
|
98
96
|
|
99
97
|
static const upb_MiniTableField envoy_admin_v3_CertificateDetails_OcspDetails__fields[2] = {
|
100
|
-
{1, UPB_SIZE(4, 8), 1, 0, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
101
|
-
{2, UPB_SIZE(8, 16), 2, 1, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
98
|
+
{1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
99
|
+
{2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
|
102
100
|
};
|
103
101
|
|
104
102
|
const upb_MiniTable envoy_admin_v3_CertificateDetails_OcspDetails_msg_init = {
|
@@ -114,9 +112,9 @@ const upb_MiniTable envoy_admin_v3_CertificateDetails_OcspDetails_msg_init = {
|
|
114
112
|
};
|
115
113
|
|
116
114
|
static const upb_MiniTableField envoy_admin_v3_SubjectAlternateName__fields[3] = {
|
117
|
-
{1, UPB_SIZE(4, 8), -1, kUpb_NoSub, 9, kUpb_FieldMode_Scalar | (kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
|
118
|
-
{2, UPB_SIZE(4, 8), -1, kUpb_NoSub, 9, kUpb_FieldMode_Scalar | (kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
|
119
|
-
{3, UPB_SIZE(4, 8), -1, kUpb_NoSub, 9, kUpb_FieldMode_Scalar | (kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
|
115
|
+
{1, UPB_SIZE(4, 8), -1, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
|
116
|
+
{2, UPB_SIZE(4, 8), -1, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
|
117
|
+
{3, UPB_SIZE(4, 8), -1, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
|
120
118
|
};
|
121
119
|
|
122
120
|
const upb_MiniTable envoy_admin_v3_SubjectAlternateName_msg_init = {
|