grpc 1.81.0 → 1.82.0.pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +12 -9
- data/include/grpc/grpc.h +6 -7
- data/include/grpc/impl/channel_arg_names.h +3 -1
- data/src/core/call/call_filters.h +2 -2
- data/src/core/call/client_call.cc +1 -1
- data/src/core/call/interception_chain.h +6 -9
- data/src/core/call/metadata.h +1 -1
- data/src/core/call/metadata_batch.cc +1 -1
- data/src/core/call/metadata_batch.h +17 -1
- data/src/core/call/parsed_metadata.h +7 -2
- data/src/core/call/server_call.cc +4 -2
- data/src/core/call/server_call.h +9 -2
- data/src/core/call/status_util.cc +0 -4
- data/src/core/call/status_util.h +0 -3
- data/src/core/channelz/channel_trace.cc +3 -1
- data/src/core/client_channel/backup_poller.cc +1 -1
- data/src/core/client_channel/client_channel.cc +6 -14
- data/src/core/client_channel/client_channel.h +2 -2
- data/src/core/client_channel/client_channel_filter.cc +8 -17
- data/src/core/client_channel/client_channel_filter.h +2 -2
- data/src/core/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/client_channel/config_selector.h +2 -7
- data/src/core/client_channel/dynamic_filters.cc +4 -7
- data/src/core/client_channel/dynamic_filters.h +1 -3
- data/src/core/client_channel/retry_filter.cc +2 -25
- data/src/core/client_channel/retry_filter.h +3 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +1 -1
- data/src/core/client_channel/retry_filter_legacy_call_data.h +2 -2
- data/src/core/client_channel/retry_interceptor.cc +7 -35
- data/src/core/client_channel/retry_interceptor.h +11 -14
- data/src/core/client_channel/retry_service_config.cc +0 -2
- data/src/core/client_channel/retry_service_config.h +0 -2
- data/src/core/client_channel/retry_throttle.cc +19 -7
- data/src/core/client_channel/retry_throttle.h +24 -7
- data/src/core/client_channel/subchannel.cc +1 -1
- data/src/core/credentials/call/external/external_account_credentials.cc +125 -12
- data/src/core/credentials/call/external/external_account_credentials.h +6 -1
- data/src/core/credentials/call/jwt/jwt_credentials.cc +11 -1
- data/src/core/credentials/call/jwt/jwt_credentials.h +3 -0
- data/src/core/credentials/call/oauth2/oauth2_credentials.cc +64 -11
- data/src/core/credentials/call/oauth2/oauth2_credentials.h +0 -1
- data/src/core/credentials/call/regional_access_boundary_fetcher.cc +411 -0
- data/src/core/credentials/call/regional_access_boundary_fetcher.h +158 -0
- data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +1 -1
- data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +7 -1
- data/src/core/credentials/transport/insecure/insecure_security_connector.h +1 -1
- data/src/core/credentials/transport/local/local_security_connector.cc +1 -1
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +6 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +28 -66
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +0 -8
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +24 -58
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +24 -19
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -81
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -50
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +13 -56
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +0 -14
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +175 -51
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +10 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +73 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.h +11 -0
- data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +2 -4
- data/src/core/ext/transport/chttp2/transport/frame.cc +63 -13
- data/src/core/ext/transport/chttp2/transport/frame.h +45 -10
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +11 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +54 -22
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +53 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +22 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +20 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +33 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +118 -157
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +6 -13
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +2187 -0
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +748 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -4
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +0 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +50 -17
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +13 -15
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +16 -48
- data/src/core/ext/transport/chttp2/transport/internal.h +14 -0
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +1 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +82 -24
- data/src/core/ext/transport/chttp2/transport/read_context.h +452 -0
- data/src/core/ext/transport/chttp2/transport/security_frame.h +12 -3
- data/src/core/ext/transport/chttp2/transport/stream.h +25 -26
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +6 -4
- data/src/core/ext/transport/chttp2/transport/write_cycle.h +9 -1
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +16 -2
- data/src/core/ext/upb-gen/cel/expr/checked.upb.h +621 -432
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +264 -166
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h +0 -13
- data/src/core/ext/upb-gen/cel/expr/syntax.upb.h +708 -497
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +294 -176
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h +0 -15
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +262 -181
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +84 -58
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +254 -190
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +107 -53
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +271 -190
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +88 -64
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +1035 -730
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +384 -260
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +0 -19
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +87 -56
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +26 -16
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +105 -71
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +30 -22
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +31 -29
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +19 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +25 -23
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +25 -23
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +201 -165
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +79 -31
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +29 -26
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +46 -29
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +37 -19
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +4 -4
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +34 -27
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +34 -13
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +617 -452
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +221 -163
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +0 -16
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +1339 -970
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +484 -324
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +0 -23
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +181 -135
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +59 -43
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +1353 -1028
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +535 -361
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +0 -25
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +37 -33
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +234 -196
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +77 -57
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +695 -502
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +246 -186
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +0 -15
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb.h +140 -116
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +53 -43
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +363 -269
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +131 -89
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +35 -31
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +1073 -769
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +515 -293
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +0 -30
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb.h +25 -23
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +375 -267
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +142 -86
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +0 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +32 -27
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +29 -26
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +87 -56
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +26 -16
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +634 -468
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +255 -161
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +0 -14
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +672 -474
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +228 -130
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +0 -9
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +56 -40
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +34 -29
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +811 -635
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +347 -221
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +0 -16
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +174 -118
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +62 -38
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +78 -57
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +28 -18
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +37 -33
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +22 -14
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +159 -119
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +47 -35
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +101 -76
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +41 -23
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +35 -31
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +189 -127
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +79 -49
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +378 -283
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +156 -98
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +354 -255
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +125 -69
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +0 -6
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +611 -451
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +159 -119
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +0 -11
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +468 -321
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +157 -99
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +0 -6
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +146 -119
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +55 -35
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +61 -51
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +16 -16
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +43 -39
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +25 -13
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +341 -247
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +130 -84
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +452 -313
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +144 -100
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +0 -10
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +666 -493
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +251 -181
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +0 -12
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +327 -197
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +92 -48
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +3583 -2532
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +1340 -816
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +0 -60
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +111 -82
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +48 -28
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +548 -410
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +214 -148
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +0 -12
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +59 -50
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +30 -20
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +29 -26
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +60 -49
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +28 -20
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +50 -36
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +82 -63
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +27 -19
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +70 -58
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +32 -22
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +2 -5
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +73 -62
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +39 -25
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +49 -45
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +33 -13
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +771 -588
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +383 -185
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +0 -16
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +66 -47
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +31 -17
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb.h +69 -58
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.c +27 -23
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +151 -119
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +45 -39
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb.h +19 -17
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.c +1 -3
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb.h +144 -109
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.c +46 -38
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +184 -139
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +65 -35
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +129 -106
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +69 -41
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +83 -71
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +40 -26
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +148 -101
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +45 -27
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +62 -51
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +35 -21
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1362 -1024
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +508 -336
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +0 -22
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb.h +21 -19
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb.h +35 -31
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +94 -74
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +35 -23
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +231 -179
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +88 -66
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +0 -6
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +21 -19
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +63 -56
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +31 -19
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +27 -24
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -5
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +538 -364
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +157 -95
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -110
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +69 -49
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +517 -389
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +182 -116
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +0 -7
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +84 -62
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +30 -22
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +340 -256
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +92 -82
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +19 -17
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +1 -3
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +857 -566
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +288 -182
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +0 -15
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +105 -72
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +36 -22
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +312 -226
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +132 -78
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +82 -61
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +35 -19
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +123 -89
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +25 -25
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h +48 -33
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +42 -36
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +101 -79
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +61 -31
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +83 -60
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +37 -19
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +56 -40
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +15 -13
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +34 -29
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +32 -27
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +13 -11
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +88 -71
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +48 -30
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +37 -30
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +95 -71
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +36 -22
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +79 -56
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +26 -18
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +164 -124
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +54 -40
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +200 -147
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +47 -41
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +0 -7
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +160 -130
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +89 -47
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +0 -5
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +78 -62
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +26 -20
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +2 -5
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +21 -19
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +43 -36
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +22 -12
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +67 -55
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +36 -18
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +62 -51
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +33 -19
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +2 -5
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +25 -23
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +37 -33
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/api/annotations.upb.h +15 -13
- data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +22 -7
- data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +1 -1
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +619 -430
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +260 -168
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +0 -13
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +734 -518
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +312 -182
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +0 -16
- data/src/core/ext/upb-gen/google/api/http.upb.h +146 -105
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +65 -29
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/google/api/httpbody.upb.h +52 -37
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/any.upb.h +23 -21
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +2236 -1514
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +824 -406
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +0 -34
- data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +23 -21
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +19 -17
- data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +1 -3
- data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +149 -100
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +59 -43
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +23 -21
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +15 -7
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +181 -139
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +99 -53
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +0 -9
- data/src/core/ext/upb-gen/google/rpc/status.upb.h +52 -37
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h +1553 -1157
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +712 -410
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h +0 -39
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +189 -125
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +59 -35
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +454 -343
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +204 -130
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +0 -11
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +369 -243
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +109 -79
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +0 -7
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +256 -175
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +122 -68
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +0 -8
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +71 -51
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +39 -19
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +583 -407
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +259 -145
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +0 -12
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +114 -84
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +52 -30
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +41 -34
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +25 -13
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +309 -230
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +123 -79
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +0 -9
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +98 -63
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +51 -23
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +505 -312
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +159 -87
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +0 -9
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +128 -91
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +82 -41
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +5 -8
- data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +36 -29
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +36 -13
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +13 -11
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +22 -7
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +1 -1
- data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +36 -29
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +36 -13
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +34 -27
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +34 -13
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/validate/validate.upb.h +1682 -1130
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +587 -247
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +4 -27
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +128 -91
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +82 -41
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +5 -8
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +36 -29
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +36 -13
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +13 -11
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +22 -7
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +1 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +122 -90
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +82 -39
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +3 -7
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +34 -27
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +34 -13
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +1 -2
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +21 -19
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +13 -7
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +29 -26
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +70 -58
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +32 -22
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +53 -34
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +26 -16
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +29 -26
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +37 -33
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +22 -14
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +102 -76
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +43 -23
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +33 -30
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +19 -11
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +136 -83
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +41 -33
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +0 -4
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +46 -32
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +20 -12
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +29 -26
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +20 -12
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +93 -61
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +28 -20
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +19 -17
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +1 -3
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +105 -71
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +32 -22
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +430 -314
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +153 -123
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +0 -10
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +307 -199
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +74 -62
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +0 -6
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +52 -42
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +95 -71
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +36 -22
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +92 -77
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +42 -28
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +0 -2
- data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +67 -55
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +36 -18
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +0 -3
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +29 -26
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +0 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +885 -855
- data/src/core/filter/composite/composite_filter.cc +10 -3
- data/src/core/filter/composite/composite_filter.h +11 -1
- data/src/core/filter/filter_args.h +4 -22
- data/src/core/handshaker/handshaker.cc +10 -2
- data/src/core/handshaker/security/secure_endpoint.cc +73 -5
- data/src/core/lib/channel/channel_args.h +12 -6
- data/src/core/lib/channel/channel_stack.cc +1 -2
- data/src/core/lib/channel/channel_stack.h +1 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +0 -7
- data/src/core/lib/channel/promise_based_filter.cc +13 -1
- data/src/core/lib/channel/promise_based_filter.h +4 -5
- data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +0 -13
- data/src/core/lib/event_engine/extensions/receive_coalescing_extension.h +48 -0
- data/src/core/lib/event_engine/posix.h +2 -0
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +2 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +11 -8
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +7 -6
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +2 -1
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +10 -10
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +1 -1
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +1 -1
- data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +5 -4
- data/src/core/lib/experiments/experiments.cc +261 -90
- data/src/core/lib/experiments/experiments.h +136 -35
- data/src/core/lib/iomgr/buffer_list.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +1 -1
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
- data/src/core/lib/iomgr/tcp_posix.cc +2 -1
- data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
- data/src/core/lib/promise/detail/promise_factory.h +8 -8
- data/src/core/lib/promise/interceptor_list.h +1 -1
- data/src/core/lib/promise/try_seq.h +2 -2
- data/src/core/lib/resource_quota/telemetry.cc +54 -0
- data/src/core/lib/resource_quota/telemetry.h +5 -23
- data/src/core/lib/surface/call.cc +6 -1
- data/src/core/lib/surface/call.h +9 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.h +7 -5
- data/src/core/lib/transport/transport.h +31 -4
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +146 -74
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.h +88 -0
- data/src/core/mitigation_engine/mitigation_engine.h +81 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -5
- data/src/core/resolver/xds/xds_resolver.cc +23 -133
- data/src/core/server/server.cc +40 -18
- data/src/core/server/server.h +25 -14
- data/src/core/server/server_config_selector_filter.cc +122 -0
- data/src/core/server/server_config_selector_filter.h +1 -0
- data/src/core/server/xds_server_config_fetcher.cc +6 -0
- data/src/core/server/xds_server_config_fetcher_legacy.cc +1333 -0
- data/src/core/telemetry/histogram.h +10 -89
- data/src/core/telemetry/instrument.h +42 -28
- data/src/core/transport/message_size_service_config.cc +123 -0
- data/src/core/transport/message_size_service_config.h +85 -0
- data/src/core/transport/session_endpoint.cc +29 -4
- data/src/core/transport/session_endpoint.h +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +4 -2
- data/src/core/tsi/ssl_transport_security.cc +6 -4
- data/src/core/util/http_client/parser.cc +1 -1
- data/src/core/util/lru_cache.h +2 -0
- data/src/core/util/ref_counted_string.h +1 -1
- data/src/core/util/tchar.cc +13 -7
- data/src/core/util/trie_lookup.h +1 -1
- data/src/core/xds/grpc/blackboard.cc +58 -0
- data/src/core/{filter → xds/grpc}/blackboard.h +30 -11
- data/src/core/xds/grpc/xds_client_grpc.cc +14 -1
- data/src/core/xds/grpc/xds_client_grpc.h +1 -0
- data/src/core/xds/grpc/xds_common_types.cc +40 -0
- data/src/core/xds/grpc/xds_common_types.h +13 -0
- data/src/core/xds/grpc/xds_common_types_parser.cc +37 -34
- data/src/core/xds/grpc/xds_endpoint_parser.cc +1 -1
- data/src/core/xds/grpc/xds_http_composite_filter.cc +34 -18
- data/src/core/xds/grpc/xds_http_composite_filter.h +6 -3
- data/src/core/xds/grpc/xds_http_fault_filter.cc +0 -149
- data/src/core/xds/grpc/xds_http_fault_filter.h +19 -8
- data/src/core/xds/grpc/xds_http_filter.cc +2 -1
- data/src/core/xds/grpc/xds_http_filter.h +6 -16
- data/src/core/xds/grpc/xds_http_filter_registry.cc +0 -2
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +25 -119
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +27 -15
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +0 -149
- data/src/core/xds/grpc/xds_http_stateful_session_filter.h +19 -8
- data/src/core/xds/grpc/xds_lb_policy_registry.cc +18 -0
- data/src/core/xds/grpc/xds_listener_parser.cc +13 -9
- data/src/core/xds/grpc/xds_route_config.h +1 -1
- data/src/core/xds/grpc/xds_route_config_parser.cc +3 -5
- data/src/core/xds/grpc/xds_routing.cc +5 -11
- data/src/core/xds/grpc/xds_routing.h +2 -3
- data/src/core/xds/xds_client/lrs_client.cc +2 -2
- data/src/ruby/ext/grpc/rb_byte_buffer.c +1 -0
- data/src/ruby/ext/grpc/rb_call.c +3 -0
- data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_channel.c +1 -0
- data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
- data/src/ruby/ext/grpc/rb_channel_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +1 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -4
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -6
- data/src/ruby/ext/grpc/rb_server.c +1 -0
- data/src/ruby/ext/grpc/rb_server_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +1 -0
- data/src/ruby/lib/grpc/core/call_credentials.rb +86 -0
- data/src/ruby/lib/grpc/core/channel_credentials.rb +69 -0
- data/src/ruby/lib/grpc/core/credentials_helper.rb +126 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +86 -73
- data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/lib/grpc.rb +25 -0
- data/src/ruby/spec/call_credentials_spec.rb +52 -2
- data/src/ruby/spec/credentials_helper_spec.rb +80 -0
- data/src/ruby/spec/generic/client_stub_spec.rb +27 -4
- data/src/ruby/spec/generic/server_interceptors_spec.rb +17 -3
- data/third_party/upb/upb/base/error_handler.h +79 -0
- data/third_party/upb/upb/base/internal/log2.h +29 -5
- data/third_party/upb/upb/generated_code_support.h +1 -0
- data/third_party/upb/upb/hash/common.c +129 -14
- data/third_party/upb/upb/hash/common.h +1 -1
- data/third_party/upb/upb/hash/ext_table.h +65 -0
- data/third_party/upb/upb/lex/strtod.c +14 -5
- data/third_party/upb/upb/mem/arena.c +113 -95
- data/third_party/upb/upb/mem/internal/arena.h +13 -8
- data/third_party/upb/upb/message/accessors.c +2 -3
- data/third_party/upb/upb/message/accessors.h +32 -12
- data/third_party/upb/upb/message/array.c +51 -2
- data/third_party/upb/upb/message/array.h +10 -0
- data/third_party/upb/upb/message/copy.c +18 -34
- data/third_party/upb/upb/message/internal/accessors.h +15 -49
- data/third_party/upb/upb/message/internal/array.h +1 -1
- data/third_party/upb/upb/message/internal/map.h +1 -1
- data/third_party/upb/upb/message/internal/message.c +8 -1
- data/third_party/upb/upb/message/internal/message.h +40 -10
- data/third_party/upb/upb/message/message.c +3 -2
- data/third_party/upb/upb/message/value.h +0 -6
- data/third_party/upb/upb/mini_descriptor/decode.c +78 -59
- data/third_party/upb/upb/mini_descriptor/link.c +8 -6
- data/third_party/upb/upb/mini_table/extension_registry.c +17 -49
- data/third_party/upb/upb/mini_table/extension_registry.h +5 -17
- data/third_party/upb/upb/mini_table/generated_registry.c +180 -0
- data/third_party/upb/upb/mini_table/generated_registry.h +66 -0
- data/third_party/upb/upb/mini_table/internal/extension.h +5 -3
- data/third_party/upb/upb/mini_table/internal/field.h +7 -5
- data/third_party/upb/upb/mini_table/internal/generated_registry.h +37 -0
- data/third_party/upb/upb/mini_table/internal/message.c +0 -18
- data/third_party/upb/upb/mini_table/internal/message.h +24 -41
- data/third_party/upb/upb/mini_table/internal/size_log2.h +2 -1
- data/third_party/upb/upb/mini_table/internal/sub.h +2 -5
- data/third_party/upb/upb/mini_table/message.h +34 -13
- data/third_party/upb/upb/port/atomic.h +180 -74
- data/third_party/upb/upb/port/def.inc +194 -29
- data/third_party/upb/upb/port/sanitizers.h +15 -0
- data/third_party/upb/upb/port/undef.inc +6 -2
- data/third_party/upb/upb/reflection/common.h +0 -6
- data/third_party/upb/upb/reflection/def.hpp +8 -12
- data/third_party/upb/upb/reflection/def_pool.c +85 -33
- data/third_party/upb/upb/reflection/def_pool.h +38 -8
- data/third_party/upb/upb/reflection/def_type.h +3 -0
- data/third_party/upb/upb/reflection/enum_def.c +45 -33
- data/third_party/upb/upb/reflection/enum_def.h +8 -4
- data/third_party/upb/upb/reflection/enum_reserved_range.c +7 -3
- data/third_party/upb/upb/reflection/enum_value_def.c +14 -29
- data/third_party/upb/upb/reflection/enum_value_def.h +5 -4
- data/third_party/upb/upb/reflection/extension_range.c +15 -14
- data/third_party/upb/upb/reflection/extension_range.h +7 -4
- data/third_party/upb/upb/reflection/field_def.c +114 -96
- data/third_party/upb/upb/reflection/field_def.h +3 -3
- data/third_party/upb/upb/reflection/file_def.c +71 -65
- data/third_party/upb/upb/reflection/file_def.h +4 -5
- data/third_party/upb/upb/reflection/internal/def_builder.c +22 -14
- data/third_party/upb/upb/reflection/internal/def_builder.h +44 -38
- data/third_party/upb/upb/reflection/internal/def_pool.h +5 -1
- data/third_party/upb/upb/reflection/internal/enum_def.h +6 -4
- data/third_party/upb/upb/reflection/internal/enum_reserved_range.h +3 -2
- data/third_party/upb/upb/reflection/internal/enum_value_def.h +7 -4
- data/third_party/upb/upb/reflection/internal/extension_range.h +4 -3
- data/third_party/upb/upb/reflection/internal/field_def.h +15 -12
- data/third_party/upb/upb/reflection/internal/file_def.h +8 -1
- data/third_party/upb/upb/reflection/internal/message_def.h +10 -7
- data/third_party/upb/upb/reflection/internal/message_reserved_range.h +3 -1
- data/third_party/upb/upb/reflection/internal/method_def.h +6 -6
- data/third_party/upb/upb/reflection/internal/oneof_def.h +6 -6
- data/third_party/upb/upb/reflection/internal/service_def.h +9 -6
- data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
- data/third_party/upb/upb/reflection/message_def.c +46 -53
- data/third_party/upb/upb/reflection/message_def.h +6 -7
- data/third_party/upb/upb/reflection/message_reserved_range.c +7 -6
- data/third_party/upb/upb/reflection/method_def.c +22 -20
- data/third_party/upb/upb/reflection/method_def.h +4 -4
- data/third_party/upb/upb/reflection/oneof_def.c +17 -15
- data/third_party/upb/upb/reflection/oneof_def.h +6 -3
- data/third_party/upb/upb/reflection/service_def.c +50 -23
- data/third_party/upb/upb/reflection/service_def.h +7 -4
- data/third_party/upb/upb/text/internal/encode.c +7 -10
- data/third_party/upb/upb/wire/decode.c +269 -430
- data/third_party/upb/upb/wire/decode.h +6 -45
- data/third_party/upb/upb/wire/decode_fast/combinations.h +7 -3
- data/third_party/upb/upb/wire/decode_fast/select.c +7 -2
- data/third_party/upb/upb/wire/encode.c +144 -106
- data/third_party/upb/upb/wire/encode.h +6 -2
- data/third_party/upb/upb/wire/eps_copy_input_stream.c +36 -7
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +94 -380
- data/third_party/upb/upb/wire/internal/decoder.c +1 -14
- data/third_party/upb/upb/wire/internal/decoder.h +84 -24
- data/third_party/upb/upb/wire/internal/eps_copy_input_stream.h +339 -0
- data/third_party/upb/upb/wire/internal/reader.h +29 -12
- data/third_party/upb/upb/wire/reader.c +35 -22
- data/third_party/upb/upb/wire/reader.h +11 -18
- data/third_party/utf8_range/utf8_range.c +1 -1
- data/third_party/utf8_range/utf8_range.h +2 -1
- metadata +27 -13
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +0 -117
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +0 -109
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +0 -80
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +0 -86
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +0 -83
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +0 -91
- data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +0 -217
- data/src/core/filter/blackboard.cc +0 -33
- data/third_party/upb/upb/message/internal/tagged_ptr.h +0 -56
- data/third_party/upb/upb/message/tagged_ptr.h +0 -48
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
#include <string.h>
|
|
25
25
|
|
|
26
26
|
#include <atomic>
|
|
27
|
+
#include <cstdint>
|
|
27
28
|
#include <initializer_list>
|
|
28
29
|
#include <limits>
|
|
29
30
|
#include <memory>
|
|
@@ -61,6 +62,7 @@
|
|
|
61
62
|
#include "src/core/lib/transport/bdp_estimator.h"
|
|
62
63
|
#include "src/core/lib/transport/error_utils.h"
|
|
63
64
|
#include "src/core/lib/transport/transport.h"
|
|
65
|
+
#include "src/core/mitigation_engine/mitigation_engine.h"
|
|
64
66
|
#include "src/core/telemetry/call_tracer.h"
|
|
65
67
|
#include "src/core/telemetry/stats.h"
|
|
66
68
|
#include "src/core/telemetry/stats_data.h"
|
|
@@ -440,6 +442,22 @@ static grpc_error_handle init_frame_parser(grpc_chttp2_transport* t,
|
|
|
440
442
|
"grpc_chttp2_stream %08x",
|
|
441
443
|
t->expect_continuation_stream_id, t->incoming_stream_id));
|
|
442
444
|
}
|
|
445
|
+
if (GPR_UNLIKELY(grpc_core::IsOptimization02Enabled() &&
|
|
446
|
+
t->incoming_frame_size == 0u &&
|
|
447
|
+
(t->incoming_frame_flags &
|
|
448
|
+
GRPC_CHTTP2_DATA_FLAG_END_HEADERS) == 0u)) {
|
|
449
|
+
t->noop_continuation_frames++;
|
|
450
|
+
if (GPR_UNLIKELY(t->noop_continuation_frames >=
|
|
451
|
+
kMaxNoopContinuationFrames)) {
|
|
452
|
+
return grpc_error_set_int(
|
|
453
|
+
GRPC_ERROR_CREATE(
|
|
454
|
+
"Too many zero length continuation frames without "
|
|
455
|
+
"end_headers flag set"),
|
|
456
|
+
grpc_core::StatusIntProperty::kHttp2Error,
|
|
457
|
+
static_cast<intptr_t>(Http2ErrorCode::kInternalError));
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
443
461
|
return init_header_frame_parser(t, 1, requests_started);
|
|
444
462
|
}
|
|
445
463
|
switch (t->incoming_frame_type) {
|
|
@@ -517,7 +535,8 @@ static grpc_error_handle init_header_skip_frame_parser(
|
|
|
517
535
|
/*metadata_size_hard_limit=*/
|
|
518
536
|
t->settings.acked().max_header_list_size(),
|
|
519
537
|
hpack_boundary_type(t, is_eoh), priority_type,
|
|
520
|
-
hpack_parser_log_info(t, HPackParser::LogInfo::kDontKnow)
|
|
538
|
+
hpack_parser_log_info(t, HPackParser::LogInfo::kDontKnow),
|
|
539
|
+
t->mitigation_engine.get());
|
|
521
540
|
return absl::OkStatus();
|
|
522
541
|
}
|
|
523
542
|
|
|
@@ -556,20 +575,32 @@ static grpc_error_handle init_data_frame_parser(grpc_chttp2_transport* t) {
|
|
|
556
575
|
}
|
|
557
576
|
grpc_chttp2_stream* s =
|
|
558
577
|
grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
|
|
559
|
-
absl::Status status;
|
|
560
|
-
grpc_core::
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
578
|
+
absl::Status status = absl::OkStatus();
|
|
579
|
+
if (!grpc_core::IsOptimization01Enabled() || t->incoming_frame_size > 0u) {
|
|
580
|
+
// Received data frame with size 0 can happen when the peer wants to send an
|
|
581
|
+
// END_STREAM. It is a legitimate data frame.
|
|
582
|
+
grpc_core::chttp2::FlowControlAction action;
|
|
583
|
+
if (s == nullptr) {
|
|
584
|
+
grpc_core::chttp2::TransportFlowControl::IncomingUpdateContext upd(
|
|
585
|
+
&t->flow_control);
|
|
586
|
+
status = upd.RecvData(t->incoming_frame_size);
|
|
587
|
+
action = upd.MakeAction();
|
|
588
|
+
} else {
|
|
589
|
+
grpc_core::chttp2::StreamFlowControl::IncomingUpdateContext upd(
|
|
590
|
+
&s->flow_control);
|
|
591
|
+
status = upd.RecvData(t->incoming_frame_size);
|
|
592
|
+
action = upd.MakeAction();
|
|
593
|
+
}
|
|
594
|
+
grpc_chttp2_act_on_flowctl_action(action, t, s);
|
|
595
|
+
} else if (grpc_core::IsOptimization02Enabled() &&
|
|
596
|
+
t->incoming_frame_size == 0u &&
|
|
597
|
+
(t->incoming_frame_flags & GRPC_CHTTP2_DATA_FLAG_END_STREAM) ==
|
|
598
|
+
0u) {
|
|
599
|
+
t->noop_data_frames++;
|
|
600
|
+
if (t->noop_data_frames >= kMaxNoopDataFrames) {
|
|
601
|
+
return GRPC_ERROR_CREATE("Too many zero length data frames");
|
|
602
|
+
}
|
|
571
603
|
}
|
|
572
|
-
grpc_chttp2_act_on_flowctl_action(action, t, s);
|
|
573
604
|
if (!status.ok()) {
|
|
574
605
|
goto error_handler;
|
|
575
606
|
}
|
|
@@ -594,10 +625,11 @@ error_handler:
|
|
|
594
625
|
// handle stream errors by closing the stream
|
|
595
626
|
grpc_chttp2_mark_stream_closed(t, s, true, false,
|
|
596
627
|
absl_status_to_grpc_error(status));
|
|
597
|
-
grpc_chttp2_add_rst_stream_to_next_write(
|
|
628
|
+
grpc_error_handle rst_error = grpc_chttp2_add_rst_stream_to_next_write(
|
|
598
629
|
t, t->incoming_stream_id,
|
|
599
630
|
static_cast<uint32_t>(Http2ErrorCode::kProtocolError),
|
|
600
631
|
&s->call_tracer_wrapper);
|
|
632
|
+
if (GPR_UNLIKELY(!rst_error.ok())) return rst_error;
|
|
601
633
|
return init_non_header_skip_frame_parser(t);
|
|
602
634
|
} else {
|
|
603
635
|
return absl_status_to_grpc_error(status);
|
|
@@ -615,6 +647,7 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
|
|
|
615
647
|
|
|
616
648
|
if (is_eoh) {
|
|
617
649
|
t->expect_continuation_stream_id = 0;
|
|
650
|
+
t->noop_continuation_frames = 0;
|
|
618
651
|
} else {
|
|
619
652
|
t->expect_continuation_stream_id = t->incoming_stream_id;
|
|
620
653
|
}
|
|
@@ -663,7 +696,10 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
|
|
|
663
696
|
return init_header_skip_frame_parser(t, priority_type, is_eoh);
|
|
664
697
|
} else if (GPR_UNLIKELY(t->stream_map.size() + t->extra_streams >=
|
|
665
698
|
t->settings.acked().max_concurrent_streams())) {
|
|
666
|
-
|
|
699
|
+
grpc_error_handle error =
|
|
700
|
+
grpc_chttp2_increase_num_pending_induced_frames(t);
|
|
701
|
+
if (GPR_UNLIKELY(!error.ok())) return error;
|
|
702
|
+
|
|
667
703
|
grpc_slice_buffer_add(
|
|
668
704
|
&t->qbuf, grpc_chttp2_rst_stream_create(
|
|
669
705
|
t->incoming_stream_id,
|
|
@@ -677,7 +713,11 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
|
|
|
677
713
|
// by refusing this stream.
|
|
678
714
|
t->memory_owner.telemetry_storage()->Increment(
|
|
679
715
|
grpc_core::ResourceQuotaDomain::kCallsRejected);
|
|
680
|
-
|
|
716
|
+
|
|
717
|
+
grpc_error_handle error =
|
|
718
|
+
grpc_chttp2_increase_num_pending_induced_frames(t);
|
|
719
|
+
if (GPR_UNLIKELY(!error.ok())) return error;
|
|
720
|
+
|
|
681
721
|
grpc_slice_buffer_add(
|
|
682
722
|
&t->qbuf, grpc_chttp2_rst_stream_create(
|
|
683
723
|
t->incoming_stream_id,
|
|
@@ -694,7 +734,11 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
|
|
|
694
734
|
t->max_deallocating_streams))) {
|
|
695
735
|
// We have more streams allocated than we'd like, so apply some pushback
|
|
696
736
|
// by refusing this stream.
|
|
697
|
-
|
|
737
|
+
|
|
738
|
+
grpc_error_handle error =
|
|
739
|
+
grpc_chttp2_increase_num_pending_induced_frames(t);
|
|
740
|
+
if (GPR_UNLIKELY(!error.ok())) return error;
|
|
741
|
+
|
|
698
742
|
grpc_slice_buffer_add(
|
|
699
743
|
&t->qbuf, grpc_chttp2_rst_stream_create(
|
|
700
744
|
t->incoming_stream_id,
|
|
@@ -711,7 +755,11 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
|
|
|
711
755
|
// We are under the limit of max concurrent streams for the current
|
|
712
756
|
// setting, but are over the next value that will be advertised.
|
|
713
757
|
// Apply some backpressure by randomly not accepting new streams.
|
|
714
|
-
|
|
758
|
+
|
|
759
|
+
grpc_error_handle error =
|
|
760
|
+
grpc_chttp2_increase_num_pending_induced_frames(t);
|
|
761
|
+
if (GPR_UNLIKELY(!error.ok())) return error;
|
|
762
|
+
|
|
715
763
|
grpc_slice_buffer_add(
|
|
716
764
|
&t->qbuf, grpc_chttp2_rst_stream_create(
|
|
717
765
|
t->incoming_stream_id,
|
|
@@ -738,7 +786,11 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
|
|
|
738
786
|
<< " rejecting grpc_chttp2_stream id=" << t->incoming_stream_id
|
|
739
787
|
<< ", last grpc_chttp2_stream id=" << t->last_new_stream_id
|
|
740
788
|
<< " before settings have been acknowledged";
|
|
741
|
-
|
|
789
|
+
|
|
790
|
+
grpc_error_handle error =
|
|
791
|
+
grpc_chttp2_increase_num_pending_induced_frames(t);
|
|
792
|
+
if (GPR_UNLIKELY(!error.ok())) return error;
|
|
793
|
+
|
|
742
794
|
grpc_slice_buffer_add(
|
|
743
795
|
&t->qbuf, grpc_chttp2_rst_stream_create(
|
|
744
796
|
t->incoming_stream_id,
|
|
@@ -834,7 +886,8 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
|
|
|
834
886
|
/*metadata_size_hard_limit=*/
|
|
835
887
|
t->settings.acked().max_header_list_size(),
|
|
836
888
|
hpack_boundary_type(t, is_eoh), priority_type,
|
|
837
|
-
hpack_parser_log_info(t, frame_type)
|
|
889
|
+
hpack_parser_log_info(t, frame_type),
|
|
890
|
+
t->mitigation_engine.get());
|
|
838
891
|
return absl::OkStatus();
|
|
839
892
|
}
|
|
840
893
|
|
|
@@ -977,11 +1030,16 @@ static void force_client_rst_stream(void* sp, grpc_error_handle /*error*/) {
|
|
|
977
1030
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(sp);
|
|
978
1031
|
grpc_chttp2_transport* t = s->t.get();
|
|
979
1032
|
if (!s->write_closed) {
|
|
980
|
-
grpc_chttp2_add_rst_stream_to_next_write(
|
|
1033
|
+
grpc_error_handle rst_error = grpc_chttp2_add_rst_stream_to_next_write(
|
|
981
1034
|
t, s->id, static_cast<uint32_t>(Http2ErrorCode::kNoError),
|
|
982
1035
|
&s->call_tracer_wrapper);
|
|
983
|
-
|
|
984
|
-
|
|
1036
|
+
if (GPR_UNLIKELY(!rst_error.ok())) {
|
|
1037
|
+
grpc_chttp2_close_transport_locked(t, rst_error);
|
|
1038
|
+
} else {
|
|
1039
|
+
grpc_chttp2_initiate_write(t,
|
|
1040
|
+
GRPC_CHTTP2_INITIATE_WRITE_FORCE_RST_STREAM);
|
|
1041
|
+
grpc_chttp2_mark_stream_closed(t, s, true, true, absl::OkStatus());
|
|
1042
|
+
}
|
|
985
1043
|
}
|
|
986
1044
|
GRPC_CHTTP2_STREAM_UNREF(s, "final_rst");
|
|
987
1045
|
}
|
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
//
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2025 gRPC authors.
|
|
4
|
+
//
|
|
5
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
// you may not use this file except in compliance with the License.
|
|
7
|
+
// You may obtain a copy of the License at
|
|
8
|
+
//
|
|
9
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
//
|
|
11
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
// See the License for the specific language governing permissions and
|
|
15
|
+
// limitations under the License.
|
|
16
|
+
//
|
|
17
|
+
//
|
|
18
|
+
|
|
19
|
+
#ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_READ_CONTEXT_H
|
|
20
|
+
#define GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_READ_CONTEXT_H
|
|
21
|
+
|
|
22
|
+
#include <grpc/support/port_platform.h>
|
|
23
|
+
|
|
24
|
+
#include <cstdint>
|
|
25
|
+
#include <string>
|
|
26
|
+
#include <utility>
|
|
27
|
+
|
|
28
|
+
#include "src/core/call/metadata_info.h"
|
|
29
|
+
#include "src/core/ext/transport/chttp2/transport/header_assembler.h"
|
|
30
|
+
#include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
|
|
31
|
+
#include "src/core/ext/transport/chttp2/transport/http2_status.h"
|
|
32
|
+
#include "src/core/ext/transport/chttp2/transport/http2_transport.h"
|
|
33
|
+
#include "src/core/ext/transport/chttp2/transport/stream.h"
|
|
34
|
+
#include "src/core/lib/event_engine/tcp_socket_utils.h"
|
|
35
|
+
#include "src/core/lib/slice/slice.h"
|
|
36
|
+
#include "src/core/lib/slice/slice_buffer.h"
|
|
37
|
+
#include "src/core/lib/transport/promise_endpoint.h"
|
|
38
|
+
#include "src/core/util/debug_location.h"
|
|
39
|
+
#include "src/core/util/grpc_check.h"
|
|
40
|
+
#include "absl/log/log.h"
|
|
41
|
+
#include "absl/status/statusor.h"
|
|
42
|
+
#include "absl/strings/str_cat.h"
|
|
43
|
+
|
|
44
|
+
namespace grpc_core {
|
|
45
|
+
namespace http2 {
|
|
46
|
+
|
|
47
|
+
class ReadLoopPauseRestart {
|
|
48
|
+
public:
|
|
49
|
+
ReadLoopPauseRestart() = default;
|
|
50
|
+
ReadLoopPauseRestart(const ReadLoopPauseRestart&) = delete;
|
|
51
|
+
ReadLoopPauseRestart& operator=(const ReadLoopPauseRestart&) = delete;
|
|
52
|
+
ReadLoopPauseRestart(ReadLoopPauseRestart&&) = delete;
|
|
53
|
+
ReadLoopPauseRestart& operator=(ReadLoopPauseRestart&&) = delete;
|
|
54
|
+
|
|
55
|
+
// Signals that the read loop should pause. If it's already paused, this is a
|
|
56
|
+
// no-op.
|
|
57
|
+
void SetPauseReadLoop() {
|
|
58
|
+
// TODO(tjagtap) [PH2][P2][Settings] Plumb with when we receive urgent
|
|
59
|
+
// settings. Example - initial window size 0 is urgent because it indicates
|
|
60
|
+
// extreme memory pressure on the server.
|
|
61
|
+
should_pause_read_loop_ = true;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// If SetPauseReadLoop() was called, this returns Pending and
|
|
65
|
+
// registers a waker that will be woken by WakeReadLoop().
|
|
66
|
+
// If the read loop does not need to be paused, this returns OkStatus.
|
|
67
|
+
// This should be polled by the read loop to yield control when requested.
|
|
68
|
+
Poll<absl::Status> MaybePauseReadLoop() {
|
|
69
|
+
if (should_pause_read_loop_) {
|
|
70
|
+
read_loop_waker_ = GetContext<Activity>()->MakeNonOwningWaker();
|
|
71
|
+
return Pending{};
|
|
72
|
+
}
|
|
73
|
+
return absl::OkStatus();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// If SetPauseReadLoop() was called, resumes ReadLoop by waking it up.
|
|
77
|
+
// This will cause a wakeup ONLY if the loop was paused because of
|
|
78
|
+
// MaybePauseReadLoop(). If the ReadLoop was paused due to other
|
|
79
|
+
// endpoint.Read(), this wakeup will not happen.
|
|
80
|
+
void ResumeReadLoopIfPaused() {
|
|
81
|
+
if (should_pause_read_loop_) {
|
|
82
|
+
should_pause_read_loop_ = false;
|
|
83
|
+
read_loop_waker_.Wakeup();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
bool TestOnlyCheckCounters(const bool should_pause) const {
|
|
88
|
+
return should_pause_read_loop_ == should_pause;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
std::string DebugString() const {
|
|
92
|
+
return absl::StrCat("{ should_pause_read_loop : ",
|
|
93
|
+
should_pause_read_loop_ ? "true }" : "false }");
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
private:
|
|
97
|
+
bool should_pause_read_loop_ = false;
|
|
98
|
+
Waker read_loop_waker_;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
class IncomingMetadataState {
|
|
102
|
+
// Manages transport-wide state for incoming HEADERS and CONTINUATION frames.
|
|
103
|
+
// RFC 9113 (Section 6.10) requires that if a HEADERS frame does not have
|
|
104
|
+
// END_HEADERS set, it must be followed by a contiguous sequence of
|
|
105
|
+
// CONTINUATION frames for the same stream, ending with END_HEADERS. No other
|
|
106
|
+
// frame types or frames for other streams may be interleaved during this
|
|
107
|
+
// sequence. This constraint makes tracking header sequence state a
|
|
108
|
+
// transport-level concern, as only one stream can be receiving headers at
|
|
109
|
+
// a time. This class is distinct from HeaderAssembler, which buffers header
|
|
110
|
+
// payloads on a per-stream basis.
|
|
111
|
+
public:
|
|
112
|
+
IncomingMetadataState() = default;
|
|
113
|
+
IncomingMetadataState(const IncomingMetadataState&) = delete;
|
|
114
|
+
IncomingMetadataState& operator=(const IncomingMetadataState&) = delete;
|
|
115
|
+
IncomingMetadataState(IncomingMetadataState&&) = delete;
|
|
116
|
+
IncomingMetadataState& operator=(IncomingMetadataState&&) = delete;
|
|
117
|
+
|
|
118
|
+
// Called when a HEADER frame is received.
|
|
119
|
+
void UpdateState(const Http2HeaderFrame& frame) {
|
|
120
|
+
GRPC_CHECK(!metadata_in_progress_);
|
|
121
|
+
metadata_in_progress_ = !frame.end_headers;
|
|
122
|
+
stream_id_ = frame.stream_id;
|
|
123
|
+
end_stream_ = frame.end_stream;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Called when a CONTINUATION frame is received.
|
|
127
|
+
void UpdateState(const Http2ContinuationFrame& frame) {
|
|
128
|
+
GRPC_CHECK(metadata_in_progress_);
|
|
129
|
+
GRPC_CHECK_EQ(frame.stream_id, stream_id_);
|
|
130
|
+
metadata_in_progress_ = !frame.end_headers;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Returns true if we are in the middle of receiving a header block
|
|
134
|
+
// (i.e., HEADERS without END_HEADERS was received, and we are waiting for
|
|
135
|
+
// CONTINUATION frames).
|
|
136
|
+
bool IsWaitingForContinuationFrame() const { return metadata_in_progress_; }
|
|
137
|
+
|
|
138
|
+
// Returns true if end_stream was set in the received header.
|
|
139
|
+
bool HeaderHasEndStream() const { return end_stream_; }
|
|
140
|
+
|
|
141
|
+
// Returns stream id of stream for which headers are being received.
|
|
142
|
+
uint32_t GetStreamId() const { return stream_id_; }
|
|
143
|
+
|
|
144
|
+
// A gRPC server is permitted to send both initial metadata and trailing
|
|
145
|
+
// metadata where initial metadata is optional.
|
|
146
|
+
// A gRPC C++ client is permitted to send only initial metadata.
|
|
147
|
+
// However, other gRPC Client implementations may send trailing metadata too.
|
|
148
|
+
// So we allow only a maximum of 2 metadata per streams.
|
|
149
|
+
bool DidReceiveDuplicateMetadata(
|
|
150
|
+
const bool did_receive_initial_metadata,
|
|
151
|
+
const bool did_receive_trailing_metadata) const {
|
|
152
|
+
const bool is_duplicate_initial_metadata =
|
|
153
|
+
!end_stream_ && did_receive_initial_metadata;
|
|
154
|
+
const bool is_duplicate_trailing_metadata =
|
|
155
|
+
end_stream_ && did_receive_trailing_metadata;
|
|
156
|
+
return is_duplicate_initial_metadata || is_duplicate_trailing_metadata;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
std::string DebugString() const {
|
|
160
|
+
return absl::StrCat(
|
|
161
|
+
"{ incoming_header_in_progress : ",
|
|
162
|
+
metadata_in_progress_ ? "true" : "false",
|
|
163
|
+
", incoming_header_end_stream : ", end_stream_ ? "true" : "false",
|
|
164
|
+
", incoming_header_stream_id : ", stream_id_, "}");
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
private:
|
|
168
|
+
bool metadata_in_progress_ = false;
|
|
169
|
+
bool end_stream_ = false;
|
|
170
|
+
uint32_t stream_id_ = 0;
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
class ReadContext {
|
|
174
|
+
public:
|
|
175
|
+
explicit ReadContext(const uint32_t max_new_streams_per_read_cycle,
|
|
176
|
+
const PromiseEndpoint& endpoint, const bool is_client)
|
|
177
|
+
: max_new_streams_per_read_cycle_(max_new_streams_per_read_cycle),
|
|
178
|
+
peer_string_(GetPeerString(endpoint)),
|
|
179
|
+
is_client_(is_client),
|
|
180
|
+
header_assembler_(is_client) {
|
|
181
|
+
GRPC_DCHECK(max_new_streams_per_read_cycle > 0u)
|
|
182
|
+
<< "0 is invalid, because we will never be able to create a stream.";
|
|
183
|
+
}
|
|
184
|
+
~ReadContext() = default;
|
|
185
|
+
|
|
186
|
+
ReadContext(ReadContext&& rvalue) = delete;
|
|
187
|
+
ReadContext& operator=(ReadContext&& rvalue) = delete;
|
|
188
|
+
ReadContext(const ReadContext&) = delete;
|
|
189
|
+
ReadContext& operator=(const ReadContext&) = delete;
|
|
190
|
+
|
|
191
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
192
|
+
// Peer String management.
|
|
193
|
+
|
|
194
|
+
Slice peer_string() const { return peer_string_.Ref(); }
|
|
195
|
+
|
|
196
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
197
|
+
// HPack Parser Parsing and Management.
|
|
198
|
+
|
|
199
|
+
void set_soft_limit(uint32_t limit) {
|
|
200
|
+
max_header_list_size_soft_limit_ = limit;
|
|
201
|
+
}
|
|
202
|
+
uint32_t soft_limit() const { return max_header_list_size_soft_limit_; }
|
|
203
|
+
|
|
204
|
+
uint32_t max_new_streams_per_read_cycle() const {
|
|
205
|
+
return max_new_streams_per_read_cycle_;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
HPackParser& parser() { return parser_; }
|
|
209
|
+
HeaderAssembler& header_assembler() { return header_assembler_; }
|
|
210
|
+
|
|
211
|
+
void SetMaxHeaderTableSize(const uint32_t size) {
|
|
212
|
+
parser_.hpack_table()->SetMaxBytes(size);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// This function is used to partially process a HEADER or CONTINUATION frame.
|
|
216
|
+
// `PARTIAL PROCESSING` means reading the payload of a HEADER or CONTINUATION
|
|
217
|
+
// and processing it with the HPACK decoder, and then discarding the payload.
|
|
218
|
+
// This is done to keep the transports HPACK parser in sync with peers HPACK.
|
|
219
|
+
// Scenarios where 'partial processing' is used when we receive a HEADER or
|
|
220
|
+
// CONTINUATION frames when a stream is closed, or there is a Stream Error. We
|
|
221
|
+
// do not do partial processing for Connection Errors because the Transport
|
|
222
|
+
// will be destroyed soon after.
|
|
223
|
+
Http2Status ParseAndDiscardHeaders(
|
|
224
|
+
SliceBuffer&& buffer, const bool is_end_headers,
|
|
225
|
+
Http2Status&& original_status,
|
|
226
|
+
const uint32_t max_header_list_size_hard_limit) {
|
|
227
|
+
const HeaderAssembler::ParseHeaderArgs args = {
|
|
228
|
+
/*is_initial_metadata=*/!metadata_state_.HeaderHasEndStream(),
|
|
229
|
+
/*is_end_headers=*/is_end_headers,
|
|
230
|
+
/*is_client=*/is_client_,
|
|
231
|
+
/*max_header_list_size_soft_limit=*/
|
|
232
|
+
max_header_list_size_soft_limit_,
|
|
233
|
+
/*max_header_list_size_hard_limit=*/max_header_list_size_hard_limit,
|
|
234
|
+
/*stream_id=*/metadata_state_.GetStreamId(),
|
|
235
|
+
};
|
|
236
|
+
GRPC_HTTP2_COMMON_DLOG << "ParseAndDiscardHeaders buffer size: "
|
|
237
|
+
<< buffer.Length() << " args: " << args.DebugString()
|
|
238
|
+
<< " stream_id: " << metadata_state_.GetStreamId()
|
|
239
|
+
<< " original_status: "
|
|
240
|
+
<< original_status.DebugString();
|
|
241
|
+
|
|
242
|
+
// Parse any data in the header assembler buffer
|
|
243
|
+
Http2Status result = header_assembler_.ParseAndDiscardHeaders(
|
|
244
|
+
parser_, args.is_initial_metadata, args.max_header_list_size_soft_limit,
|
|
245
|
+
args.max_header_list_size_hard_limit);
|
|
246
|
+
if (!result.IsOk()) {
|
|
247
|
+
GRPC_DCHECK(result.GetType() ==
|
|
248
|
+
Http2Status::Http2ErrorType::kConnectionError);
|
|
249
|
+
LOG(ERROR) << "Connection Error: " << result;
|
|
250
|
+
return result;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
if (buffer.Length() == 0) {
|
|
254
|
+
return std::move(original_status);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
Http2Status status = HeaderAssembler::ParseHeader(
|
|
258
|
+
parser_, std::move(buffer), /*grpc_metadata_batch=*/nullptr, args);
|
|
259
|
+
|
|
260
|
+
return (status.IsOk()) ? std::move(original_status) : std::move(status);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
264
|
+
// Incoming Header and Continuation State
|
|
265
|
+
|
|
266
|
+
// Client : For a client, the last_stream_id is the last stream that is sent
|
|
267
|
+
// by the Client.
|
|
268
|
+
// Server : For a server, the last_stream_id is the last known stream that is
|
|
269
|
+
// received by the Server.
|
|
270
|
+
Http2Status ValidateHeader(const uint32_t max_frame_size_setting,
|
|
271
|
+
const Http2FrameHeader& current_frame_header,
|
|
272
|
+
const uint32_t last_stream_id,
|
|
273
|
+
const bool is_first_settings_processed) {
|
|
274
|
+
GRPC_HTTP2_COMMON_DLOG << "ReadContext::ValidateFrameHeader "
|
|
275
|
+
<< current_frame_header.ToString();
|
|
276
|
+
return ValidateFrameHeader(
|
|
277
|
+
/*max_frame_size_setting=*/max_frame_size_setting,
|
|
278
|
+
/*incoming_header_in_progress=*/
|
|
279
|
+
metadata_state_.IsWaitingForContinuationFrame(),
|
|
280
|
+
/*incoming_header_stream_id=*/metadata_state_.GetStreamId(),
|
|
281
|
+
/*current_frame_header=*/current_frame_header,
|
|
282
|
+
/*last_stream_id=*/last_stream_id,
|
|
283
|
+
/*is_client=*/is_client_,
|
|
284
|
+
/*is_first_settings_processed=*/is_first_settings_processed,
|
|
285
|
+
/*tracker=*/tracker_);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
// Called when a HEADER frame is received.
|
|
289
|
+
void UpdateState(const Http2HeaderFrame& frame,
|
|
290
|
+
const bool is_existing_stream) {
|
|
291
|
+
metadata_state_.UpdateState(frame);
|
|
292
|
+
header_assembler_.SetStreamId(frame.stream_id);
|
|
293
|
+
if (!is_client_ && !is_existing_stream) {
|
|
294
|
+
// This is not relevant for clients, because only a client can initiate a
|
|
295
|
+
// stream. Not a server.
|
|
296
|
+
IncrementIncomingStreams();
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
// Called when a CONTINUATION frame is received.
|
|
300
|
+
void UpdateState(const Http2ContinuationFrame& frame,
|
|
301
|
+
GRPC_UNUSED const bool is_existing_stream) {
|
|
302
|
+
metadata_state_.UpdateState(frame);
|
|
303
|
+
if (frame.end_headers) {
|
|
304
|
+
tracker_.OnLastContinuationFrame();
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
// Returns true if we are in the middle of receiving a header block
|
|
309
|
+
// (i.e., HEADERS without END_HEADERS was received, and we are waiting for
|
|
310
|
+
// CONTINUATION frames).
|
|
311
|
+
bool IsWaitingForContinuationFrame() const {
|
|
312
|
+
return metadata_state_.IsWaitingForContinuationFrame();
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
// Returns true if end_stream was set in the received header.
|
|
316
|
+
bool HeaderHasEndStream() const {
|
|
317
|
+
return metadata_state_.HeaderHasEndStream();
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// Returns stream id of stream for which headers are being received.
|
|
321
|
+
uint32_t GetStreamId() const { return metadata_state_.GetStreamId(); }
|
|
322
|
+
|
|
323
|
+
// A gRPC server is permitted to send both initial metadata and trailing
|
|
324
|
+
// metadata where initial metadata is optional.
|
|
325
|
+
// A gRPC C++ client is permitted to send only initial metadata.
|
|
326
|
+
// However, other gRPC Client implementations may send trailing metadata too.
|
|
327
|
+
// So we allow only a maximum of 2 metadata per streams.
|
|
328
|
+
bool DidReceiveDuplicateMetadata(
|
|
329
|
+
const bool did_receive_initial_metadata,
|
|
330
|
+
const bool did_receive_trailing_metadata) const {
|
|
331
|
+
return metadata_state_.DidReceiveDuplicateMetadata(
|
|
332
|
+
did_receive_initial_metadata, did_receive_trailing_metadata);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
Http2FrameCountTracker& mutable_tracker() { return tracker_; }
|
|
336
|
+
const Http2FrameCountTracker& tracker() const { return tracker_; }
|
|
337
|
+
|
|
338
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
339
|
+
// Current Frame Header management.
|
|
340
|
+
|
|
341
|
+
const Http2FrameHeader& GetCurrentFrameHeader() const {
|
|
342
|
+
return current_frame_header_;
|
|
343
|
+
}
|
|
344
|
+
void SetCurrentFrameHeader(const Http2FrameHeader& header) {
|
|
345
|
+
current_frame_header_ = header;
|
|
346
|
+
IncrementReadCycleCounters(header.length);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
350
|
+
// ReadLoopPauseRestart wrapper functions.
|
|
351
|
+
|
|
352
|
+
void SetPauseReadLoop() { read_loop_manager_.SetPauseReadLoop(); }
|
|
353
|
+
|
|
354
|
+
Poll<absl::Status> MaybePauseReadLoop() {
|
|
355
|
+
return read_loop_manager_.MaybePauseReadLoop();
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
void ResumeReadLoopIfPaused() {
|
|
359
|
+
ResetReadCycleCounters();
|
|
360
|
+
read_loop_manager_.ResumeReadLoopIfPaused();
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
bool TestOnlyCheckCounters(uint64_t expected_bytes_read,
|
|
364
|
+
uint16_t expected_read_count,
|
|
365
|
+
bool should_pause) const {
|
|
366
|
+
return current_cycle_read_count_ == expected_read_count &&
|
|
367
|
+
current_cycle_bytes_read_ == expected_bytes_read &&
|
|
368
|
+
read_loop_manager_.TestOnlyCheckCounters(should_pause);
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
std::string DebugString() const {
|
|
372
|
+
return absl::StrCat(
|
|
373
|
+
"{ metadata_state : ", metadata_state_.DebugString(),
|
|
374
|
+
", read_loop_manager : ", read_loop_manager_.DebugString(),
|
|
375
|
+
", tracker : ", tracker_.DebugString(),
|
|
376
|
+
", current_cycle_num_new_streams : ", current_cycle_num_new_streams_,
|
|
377
|
+
", max_new_streams_per_read_cycle : ", max_new_streams_per_read_cycle_,
|
|
378
|
+
", current_cycle_bytes_read : ", current_cycle_bytes_read_,
|
|
379
|
+
", current_cycle_read_count : ", current_cycle_read_count_,
|
|
380
|
+
", current_frame_header : ", current_frame_header_.ToString(), "}");
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
private:
|
|
384
|
+
static Slice GetPeerString(const PromiseEndpoint& endpoint) {
|
|
385
|
+
absl::StatusOr<std::string> uri =
|
|
386
|
+
grpc_event_engine::experimental::ResolvedAddressToURI(
|
|
387
|
+
endpoint.GetPeerAddress());
|
|
388
|
+
if (uri.ok()) {
|
|
389
|
+
return Slice::FromCopiedString(*uri);
|
|
390
|
+
}
|
|
391
|
+
return Slice::FromCopiedString("unknown");
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
395
|
+
// Read Cycle Counter management.
|
|
396
|
+
void ResetReadCycleCounters() {
|
|
397
|
+
current_cycle_read_count_ = 0u;
|
|
398
|
+
current_cycle_bytes_read_ = 0u;
|
|
399
|
+
current_cycle_num_new_streams_ = 0u;
|
|
400
|
+
}
|
|
401
|
+
void IncrementIncomingStreams() {
|
|
402
|
+
++current_cycle_num_new_streams_;
|
|
403
|
+
if (current_cycle_num_new_streams_ >= max_new_streams_per_read_cycle_) {
|
|
404
|
+
read_loop_manager_.SetPauseReadLoop();
|
|
405
|
+
ResetReadCycleCounters();
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
void IncrementReadCycleCounters(const uint32_t payload_length) {
|
|
409
|
+
current_cycle_bytes_read_ += kFrameHeaderSize + payload_length;
|
|
410
|
+
++current_cycle_read_count_;
|
|
411
|
+
if (current_cycle_read_count_ >= kMaxFramesReadPerReadCycle) {
|
|
412
|
+
read_loop_manager_.SetPauseReadLoop();
|
|
413
|
+
ResetReadCycleCounters();
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
// Counters to track total bytes and frames read per cycle.
|
|
418
|
+
// Checked against limits to pause the read loop when maxed out.
|
|
419
|
+
// This yields execution to prevent starvation of other transport tasks.
|
|
420
|
+
// As per RFC 9113, HTTP/2 frame sizes can vary significantly.
|
|
421
|
+
// Some frames are very large, while others are extremely small.
|
|
422
|
+
// We stall the read loop based only on current_cycle_read_count_.
|
|
423
|
+
// We measure current_cycle_bytes_read_ just for telemetry. We are not
|
|
424
|
+
// stalling the read loop based on the number of bytes read right now because
|
|
425
|
+
// we think that current_cycle_read_count_ would be sufficient for now.
|
|
426
|
+
uint64_t current_cycle_bytes_read_ = 0u;
|
|
427
|
+
uint16_t current_cycle_read_count_ = 0u;
|
|
428
|
+
|
|
429
|
+
uint32_t current_cycle_num_new_streams_ = 0u;
|
|
430
|
+
// Unlike other limits, this cannot be a constexpr because it is set per
|
|
431
|
+
// transport via a ChannelArg named "grpc.http2.max_requests_per_read".
|
|
432
|
+
const uint32_t max_new_streams_per_read_cycle_;
|
|
433
|
+
|
|
434
|
+
// Initialized only once at the time of transport creation.
|
|
435
|
+
// Should remain constant for the lifetime of the transport.
|
|
436
|
+
const Slice peer_string_;
|
|
437
|
+
const bool is_client_;
|
|
438
|
+
|
|
439
|
+
uint32_t max_header_list_size_soft_limit_ =
|
|
440
|
+
DEFAULT_MAX_HEADER_LIST_SIZE_SOFT_LIMIT;
|
|
441
|
+
HPackParser parser_;
|
|
442
|
+
Http2FrameCountTracker tracker_;
|
|
443
|
+
Http2FrameHeader current_frame_header_ = {};
|
|
444
|
+
ReadLoopPauseRestart read_loop_manager_;
|
|
445
|
+
HeaderAssembler header_assembler_;
|
|
446
|
+
IncomingMetadataState metadata_state_;
|
|
447
|
+
};
|
|
448
|
+
|
|
449
|
+
} // namespace http2
|
|
450
|
+
} // namespace grpc_core
|
|
451
|
+
|
|
452
|
+
#endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_READ_CONTEXT_H
|
|
@@ -118,9 +118,18 @@ class SecurityFrameHandler final : public RefCounted<SecurityFrameHandler> {
|
|
|
118
118
|
// Only run on the Transport Party
|
|
119
119
|
void ProcessPayload(SliceBuffer&& payload) {
|
|
120
120
|
GRPC_HTTP2_SECURITY_FRAME_DLOG << "SecurityFrameHandler::ProcessPayload";
|
|
121
|
-
if (endpoint_extension_ != nullptr) {
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
if (endpoint_extension_ != nullptr && payload.Length() > 0) {
|
|
122
|
+
bool should_receive = false;
|
|
123
|
+
{
|
|
124
|
+
MutexLock lock(&mutex_);
|
|
125
|
+
should_receive = !transport_closed_;
|
|
126
|
+
}
|
|
127
|
+
// Since transport_closed_ is only changed from the transport party, we
|
|
128
|
+
// can safely assume that the value of transport_closed_ will not change
|
|
129
|
+
// between the above check and endpoint_extension_->ReceiveFrame.
|
|
130
|
+
if (should_receive) {
|
|
131
|
+
GRPC_HTTP2_SECURITY_FRAME_DLOG
|
|
132
|
+
<< "SecurityFrameHandler::ProcessPayload ReceiveFrame";
|
|
124
133
|
endpoint_extension_->ReceiveFrame(std::move(payload));
|
|
125
134
|
}
|
|
126
135
|
}
|