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
|
@@ -0,0 +1,748 @@
|
|
|
1
|
+
//
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2024 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_HTTP2_SERVER_TRANSPORT_H
|
|
20
|
+
#define GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SERVER_TRANSPORT_H
|
|
21
|
+
|
|
22
|
+
#include <grpc/event_engine/event_engine.h>
|
|
23
|
+
#include <grpc/grpc.h>
|
|
24
|
+
#include <grpc/support/port_platform.h>
|
|
25
|
+
|
|
26
|
+
#include <cstddef>
|
|
27
|
+
#include <cstdint>
|
|
28
|
+
#include <memory>
|
|
29
|
+
#include <optional>
|
|
30
|
+
#include <type_traits>
|
|
31
|
+
#include <utility>
|
|
32
|
+
#include <vector>
|
|
33
|
+
|
|
34
|
+
#include "src/core/call/call_destination.h"
|
|
35
|
+
#include "src/core/call/call_spine.h"
|
|
36
|
+
#include "src/core/call/metadata.h"
|
|
37
|
+
#include "src/core/channelz/channelz.h"
|
|
38
|
+
#include "src/core/ext/transport/chttp2/transport/flow_control.h"
|
|
39
|
+
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
|
40
|
+
#include "src/core/ext/transport/chttp2/transport/goaway.h"
|
|
41
|
+
#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
|
|
42
|
+
#include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
|
|
43
|
+
#include "src/core/ext/transport/chttp2/transport/http2_settings.h"
|
|
44
|
+
#include "src/core/ext/transport/chttp2/transport/http2_settings_manager.h"
|
|
45
|
+
#include "src/core/ext/transport/chttp2/transport/http2_settings_promises.h"
|
|
46
|
+
#include "src/core/ext/transport/chttp2/transport/http2_status.h"
|
|
47
|
+
#include "src/core/ext/transport/chttp2/transport/http2_transport.h"
|
|
48
|
+
#include "src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h"
|
|
49
|
+
#include "src/core/ext/transport/chttp2/transport/keepalive.h"
|
|
50
|
+
#include "src/core/ext/transport/chttp2/transport/ping_promise.h"
|
|
51
|
+
#include "src/core/ext/transport/chttp2/transport/read_context.h"
|
|
52
|
+
#include "src/core/ext/transport/chttp2/transport/security_frame.h"
|
|
53
|
+
#include "src/core/ext/transport/chttp2/transport/stream.h"
|
|
54
|
+
#include "src/core/ext/transport/chttp2/transport/stream_data_queue.h"
|
|
55
|
+
#include "src/core/ext/transport/chttp2/transport/writable_streams.h"
|
|
56
|
+
#include "src/core/lib/channel/channel_args.h"
|
|
57
|
+
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
|
58
|
+
#include "src/core/lib/promise/activity.h"
|
|
59
|
+
#include "src/core/lib/promise/context.h"
|
|
60
|
+
#include "src/core/lib/promise/latch.h"
|
|
61
|
+
#include "src/core/lib/promise/map.h"
|
|
62
|
+
#include "src/core/lib/promise/mpsc.h"
|
|
63
|
+
#include "src/core/lib/promise/party.h"
|
|
64
|
+
#include "src/core/lib/promise/poll.h"
|
|
65
|
+
#include "src/core/lib/promise/promise.h"
|
|
66
|
+
#include "src/core/lib/promise/race.h"
|
|
67
|
+
#include "src/core/lib/resource_quota/memory_quota.h"
|
|
68
|
+
#include "src/core/lib/slice/slice_buffer.h"
|
|
69
|
+
#include "src/core/lib/transport/connectivity_state.h"
|
|
70
|
+
#include "src/core/lib/transport/promise_endpoint.h"
|
|
71
|
+
#include "src/core/lib/transport/transport.h"
|
|
72
|
+
#include "src/core/util/debug_location.h"
|
|
73
|
+
#include "src/core/util/grpc_check.h"
|
|
74
|
+
#include "src/core/util/orphanable.h"
|
|
75
|
+
#include "src/core/util/ref_counted.h"
|
|
76
|
+
#include "src/core/util/ref_counted_ptr.h"
|
|
77
|
+
#include "src/core/util/sync.h"
|
|
78
|
+
#include "src/core/util/time.h"
|
|
79
|
+
#include "absl/base/thread_annotations.h"
|
|
80
|
+
#include "absl/container/flat_hash_map.h"
|
|
81
|
+
#include "absl/functional/any_invocable.h"
|
|
82
|
+
#include "absl/log/log.h"
|
|
83
|
+
#include "absl/meta/type_traits.h"
|
|
84
|
+
#include "absl/status/status.h"
|
|
85
|
+
#include "absl/status/statusor.h"
|
|
86
|
+
#include "absl/strings/string_view.h"
|
|
87
|
+
|
|
88
|
+
namespace grpc_core {
|
|
89
|
+
namespace http2 {
|
|
90
|
+
|
|
91
|
+
// Experimental : The code will be written iteratively.
|
|
92
|
+
// Do not use or edit any of these functions unless you are
|
|
93
|
+
// familiar with the PH2 project (Moving chttp2 to promises.)
|
|
94
|
+
// TODO(tjagtap) : [PH2][P5] : Update the experimental status of the code when
|
|
95
|
+
// http2 rollout is completed.
|
|
96
|
+
class Http2ServerTransport final : public ServerTransport,
|
|
97
|
+
public channelz::DataSource {
|
|
98
|
+
// TODO(tjagtap) : [PH2][P3] Move the definitions to the header for better
|
|
99
|
+
// inlining. For now definitions are in the cc file to
|
|
100
|
+
// reduce cognitive load in the header.
|
|
101
|
+
public:
|
|
102
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
103
|
+
// Constructor, Destructor etc.
|
|
104
|
+
Http2ServerTransport(
|
|
105
|
+
PromiseEndpoint endpoint, const ChannelArgs& channel_args,
|
|
106
|
+
std::shared_ptr<grpc_event_engine::experimental::EventEngine>
|
|
107
|
+
event_engine,
|
|
108
|
+
absl::AnyInvocable<void(absl::StatusOr<uint32_t>)> on_receive_settings,
|
|
109
|
+
grpc_closure* on_close_callback);
|
|
110
|
+
|
|
111
|
+
Http2ServerTransport(const Http2ServerTransport&) = delete;
|
|
112
|
+
Http2ServerTransport& operator=(const Http2ServerTransport&) = delete;
|
|
113
|
+
Http2ServerTransport(Http2ServerTransport&&) = delete;
|
|
114
|
+
Http2ServerTransport& operator=(Http2ServerTransport&&) = delete;
|
|
115
|
+
~Http2ServerTransport() override;
|
|
116
|
+
|
|
117
|
+
FilterStackTransport* filter_stack_transport() override { return nullptr; }
|
|
118
|
+
ClientTransport* client_transport() override { return nullptr; }
|
|
119
|
+
ServerTransport* server_transport() override { return this; }
|
|
120
|
+
absl::string_view GetTransportName() const override { return "http2"; }
|
|
121
|
+
|
|
122
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
123
|
+
// Deprecated Stuff
|
|
124
|
+
|
|
125
|
+
// TODO(tjagtap) : [PH2][EXT] : Remove after event engine rollout
|
|
126
|
+
void SetPollset(grpc_stream*, grpc_pollset*) override {}
|
|
127
|
+
void SetPollsetSet(grpc_stream*, grpc_pollset_set*) override {}
|
|
128
|
+
|
|
129
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
130
|
+
// Transport Functions
|
|
131
|
+
|
|
132
|
+
void SetCallDestination(RefCountedPtr<UnstartedCallDestination>
|
|
133
|
+
unstarted_call_destination) override;
|
|
134
|
+
|
|
135
|
+
void PerformOp(grpc_transport_op*) override;
|
|
136
|
+
|
|
137
|
+
void Orphan() override;
|
|
138
|
+
|
|
139
|
+
bool AreTransportFlowControlTokensAvailable() {
|
|
140
|
+
return flow_control_.remote_window() > 0;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
void SpawnTransportLoops();
|
|
144
|
+
void InitializeAndSpawnTransportLoops();
|
|
145
|
+
|
|
146
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
147
|
+
// Channelz and ZTrace
|
|
148
|
+
|
|
149
|
+
std::unique_ptr<channelz::ZTrace> GetZTrace(absl::string_view name) override {
|
|
150
|
+
if (name == "transport_frames") return ztrace_collector_->MakeZTrace();
|
|
151
|
+
return nullptr;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
RefCountedPtr<channelz::SocketNode> GetSocketNode() const override;
|
|
155
|
+
|
|
156
|
+
void AddData(channelz::DataSink sink) override;
|
|
157
|
+
void SpawnAddChannelzData(RefCountedPtr<Party> party,
|
|
158
|
+
channelz::DataSink sink);
|
|
159
|
+
|
|
160
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
161
|
+
// Watchers
|
|
162
|
+
|
|
163
|
+
void StartWatch(RefCountedPtr<StateWatcher> watcher) override;
|
|
164
|
+
void StopWatch(RefCountedPtr<StateWatcher> watcher) override;
|
|
165
|
+
|
|
166
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
167
|
+
// Test Only Functions
|
|
168
|
+
|
|
169
|
+
template <typename Factory>
|
|
170
|
+
void TestOnlySpawnPromise(absl::string_view name, Factory&& factory) {
|
|
171
|
+
SpawnInfallible(general_party_, name, std::forward<Factory>(factory));
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
absl::Status TestOnlyTriggerWriteCycle() { return TriggerWriteCycle(); }
|
|
175
|
+
|
|
176
|
+
auto TestOnlySendPing(absl::AnyInvocable<void()> on_initiate,
|
|
177
|
+
bool important = false) {
|
|
178
|
+
return ping_manager_->RequestPing(std::move(on_initiate), important);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
int64_t TestOnlyTransportFlowControlWindow();
|
|
182
|
+
int64_t TestOnlyGetStreamFlowControlWindow(const uint32_t stream_id);
|
|
183
|
+
|
|
184
|
+
private:
|
|
185
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
186
|
+
// Endpoint Helpers
|
|
187
|
+
|
|
188
|
+
// Callers MUST ensure that the transport is not destroyed till the promise is
|
|
189
|
+
// resolved or cancelled.
|
|
190
|
+
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION auto EndpointReadSlice(
|
|
191
|
+
const size_t num_bytes) {
|
|
192
|
+
return Map(endpoint_.ReadSlice(num_bytes),
|
|
193
|
+
[this, num_bytes](absl::StatusOr<Slice> status) {
|
|
194
|
+
OnEndpointRead(status.ok(), num_bytes);
|
|
195
|
+
return status;
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Callers MUST ensure that the transport is not destroyed till the promise is
|
|
200
|
+
// resolved or cancelled.
|
|
201
|
+
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION auto EndpointRead(
|
|
202
|
+
const size_t num_bytes) {
|
|
203
|
+
return Map(endpoint_.Read(num_bytes),
|
|
204
|
+
[this, num_bytes](absl::StatusOr<SliceBuffer> status) {
|
|
205
|
+
OnEndpointRead(status.ok(), num_bytes);
|
|
206
|
+
return status;
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
void OnEndpointRead(const bool is_ok, const size_t num_bytes) {
|
|
211
|
+
if (is_ok) {
|
|
212
|
+
keepalive_manager_->GotData();
|
|
213
|
+
ztrace_collector_->Append(PromiseEndpointReadTrace{num_bytes});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
auto EndpointWrite(SliceBuffer&& output_buf);
|
|
218
|
+
|
|
219
|
+
// Serialize and write the frames in the write cycle to the endpoint.
|
|
220
|
+
auto SerializeAndWrite();
|
|
221
|
+
|
|
222
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
223
|
+
// Watchers
|
|
224
|
+
|
|
225
|
+
void StartConnectivityWatch(
|
|
226
|
+
grpc_connectivity_state state,
|
|
227
|
+
OrphanablePtr<ConnectivityStateWatcherInterface> watcher);
|
|
228
|
+
|
|
229
|
+
void StopConnectivityWatch(ConnectivityStateWatcherInterface* watcher);
|
|
230
|
+
|
|
231
|
+
void NotifyStateWatcherOnDisconnectLocked(
|
|
232
|
+
absl::Status status, StateWatcher::DisconnectInfo disconnect_info)
|
|
233
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&transport_mutex_);
|
|
234
|
+
|
|
235
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
236
|
+
// Transport Read Path
|
|
237
|
+
|
|
238
|
+
// Synchronous functions for processing each type of frame
|
|
239
|
+
Http2Status ProcessIncomingFrame(Http2DataFrame&& frame);
|
|
240
|
+
Http2Status ProcessIncomingFrame(Http2HeaderFrame&& frame);
|
|
241
|
+
Http2Status ProcessIncomingFrame(Http2RstStreamFrame&& frame);
|
|
242
|
+
Http2Status ProcessIncomingFrame(Http2SettingsFrame&& frame);
|
|
243
|
+
Http2Status ProcessIncomingFrame(Http2PingFrame&& frame);
|
|
244
|
+
Http2Status ProcessIncomingFrame(Http2GoawayFrame&& frame);
|
|
245
|
+
Http2Status ProcessIncomingFrame(Http2WindowUpdateFrame&& frame);
|
|
246
|
+
Http2Status ProcessIncomingFrame(Http2ContinuationFrame&& frame);
|
|
247
|
+
Http2Status ProcessIncomingFrame(Http2SecurityFrame&& frame);
|
|
248
|
+
Http2Status ProcessIncomingFrame(Http2UnknownFrame&& frame);
|
|
249
|
+
Http2Status ProcessIncomingFrame(Http2EmptyFrame&& frame);
|
|
250
|
+
|
|
251
|
+
Http2Status ProcessMetadata();
|
|
252
|
+
|
|
253
|
+
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION Http2Status
|
|
254
|
+
ProcessOneIncomingFrame(Http2Frame&& frame) {
|
|
255
|
+
GRPC_HTTP2_SERVER_DLOG << "Http2ServerTransport::ProcessOneIncomingFrame";
|
|
256
|
+
return std::visit(
|
|
257
|
+
[this](auto&& frame) {
|
|
258
|
+
return ProcessIncomingFrame(std::forward<decltype(frame)>(frame));
|
|
259
|
+
},
|
|
260
|
+
std::forward<Http2Frame>(frame));
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
template <typename T>
|
|
264
|
+
Http2Status ProcessIncomingMetadata(T&& frame);
|
|
265
|
+
|
|
266
|
+
auto ReadAndProcessOneFrame();
|
|
267
|
+
|
|
268
|
+
// Returns a promise to keep reading in a Loop till a fail/close is received.
|
|
269
|
+
auto ReadLoop();
|
|
270
|
+
|
|
271
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
272
|
+
// Transport Write Path
|
|
273
|
+
|
|
274
|
+
// Write time sensitive control frames to the endpoint. Frames sent from here
|
|
275
|
+
// will be GOAWAY, SETTINGS, PING and PING acks, WINDOW_UPDATE and
|
|
276
|
+
// Custom gRPC security frame.
|
|
277
|
+
// These frames are written to the endpoint in a single endpoint write. If any
|
|
278
|
+
// module needs to take action after the write (for cases like spawning
|
|
279
|
+
// timeout promises), they MUST plug the call in the
|
|
280
|
+
// NotifyControlFramesWriteDone.
|
|
281
|
+
|
|
282
|
+
// Prepares all the HTTP2 control frames that are to be sent out in this write
|
|
283
|
+
// cycle. The modules can choose to either trigger an endpoint write for the
|
|
284
|
+
// frames or defer the write with the stream specific frames. In most cases,
|
|
285
|
+
// the frames are deferred and a single write is triggered for all the
|
|
286
|
+
// frames.
|
|
287
|
+
absl::Status PrepareControlFrames();
|
|
288
|
+
|
|
289
|
+
// If there are any urgent frames this would trigger an additional endpoint
|
|
290
|
+
// write. CAUTION: This will add significant overhead if used for non-urgent
|
|
291
|
+
// frames.
|
|
292
|
+
auto MaybeWriteUrgentFrames();
|
|
293
|
+
|
|
294
|
+
// Notify the modules that an endpoint write is done. This corresponds to the
|
|
295
|
+
// generic endpoint write that happens in the MultiplexerLoop.
|
|
296
|
+
void NotifyFramesWriteDone();
|
|
297
|
+
|
|
298
|
+
// Notify the modules that an urgent endpoint write is done. If some module
|
|
299
|
+
// add frames to this buffer in PrepareControlFrames, they can use this to
|
|
300
|
+
// do post processing after the write is done.
|
|
301
|
+
void NotifyUrgentFramesWriteDone();
|
|
302
|
+
|
|
303
|
+
absl::Status DequeueStreamFrames(RefCountedPtr<Stream> stream,
|
|
304
|
+
WriteCycle& write_cycle);
|
|
305
|
+
|
|
306
|
+
// Returns a promise to keep draining control frames and data frames from all
|
|
307
|
+
// the writable streams and write to the endpoint.
|
|
308
|
+
auto MultiplexerLoop();
|
|
309
|
+
|
|
310
|
+
// Returns a promise to fetch data from the CallInitiator and pass it further
|
|
311
|
+
// down towards the endpoint.
|
|
312
|
+
auto CallOutboundLoop(RefCountedPtr<Stream> stream);
|
|
313
|
+
|
|
314
|
+
auto HandleMetadataAndMessages(RefCountedPtr<Stream> stream);
|
|
315
|
+
|
|
316
|
+
// Force triggers a transport write cycle
|
|
317
|
+
absl::Status TriggerWriteCycle(DebugLocation whence = {}) {
|
|
318
|
+
GRPC_HTTP2_SERVER_DLOG
|
|
319
|
+
<< "Http2ServerTransport::TriggerWriteCycle invoked from "
|
|
320
|
+
<< whence.file() << ":" << whence.line();
|
|
321
|
+
return writable_stream_list_.ForceReadyForWrite();
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// Triggers a write cycle. If successful, returns true.
|
|
325
|
+
// If failed, calls HandleError and returns false.
|
|
326
|
+
bool TriggerWriteCycleOrHandleError(DebugLocation whence = {}) {
|
|
327
|
+
absl::Status status = TriggerWriteCycle(whence);
|
|
328
|
+
if (GPR_LIKELY(status.ok())) return true;
|
|
329
|
+
GRPC_HTTP2_SERVER_DLOG
|
|
330
|
+
<< "Http2ServerTransport::TriggerWriteCycleOrHandleError failed with "
|
|
331
|
+
"status: "
|
|
332
|
+
<< status << " at " << whence.file() << ":" << whence.line();
|
|
333
|
+
GRPC_UNUSED absl::Status unused_status = HandleError(
|
|
334
|
+
/*stream_id=*/std::nullopt, ToHttpOkOrConnError(status), whence);
|
|
335
|
+
return false;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
339
|
+
// Spawn Helpers and Promise Helpers
|
|
340
|
+
|
|
341
|
+
template <typename Promise,
|
|
342
|
+
std::enable_if_t<std::is_same_v<decltype(std::declval<Promise>()()),
|
|
343
|
+
Poll<absl::Status>>,
|
|
344
|
+
bool> = true>
|
|
345
|
+
auto UntilTransportClosed(Promise&& promise) {
|
|
346
|
+
return Race(Map(transport_closed_latch_.Wait(),
|
|
347
|
+
[self = RefAsSubclass<Http2ServerTransport>()](Empty) {
|
|
348
|
+
GRPC_HTTP2_SERVER_DLOG << "Transport closed";
|
|
349
|
+
return absl::CancelledError("Transport closed");
|
|
350
|
+
}),
|
|
351
|
+
std::forward<Promise>(promise));
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
template <typename Promise,
|
|
355
|
+
std::enable_if_t<std::is_same_v<decltype(std::declval<Promise>()()),
|
|
356
|
+
Poll<Empty>>,
|
|
357
|
+
bool> = true>
|
|
358
|
+
auto UntilTransportClosed(Promise&& promise) {
|
|
359
|
+
return Race(Map(transport_closed_latch_.Wait(),
|
|
360
|
+
[self = RefAsSubclass<Http2ServerTransport>()](Empty) {
|
|
361
|
+
GRPC_HTTP2_SERVER_DLOG << "Transport closed";
|
|
362
|
+
return Empty{};
|
|
363
|
+
}),
|
|
364
|
+
std::forward<Promise>(promise));
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
// Spawns an infallible promise on the given party.
|
|
368
|
+
template <typename Factory>
|
|
369
|
+
void SpawnInfallible(RefCountedPtr<Party> party, absl::string_view name,
|
|
370
|
+
Factory&& factory) {
|
|
371
|
+
party->Spawn(name, std::forward<Factory>(factory), [](Empty) {});
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// Spawns an infallible promise on the transport party.
|
|
375
|
+
template <typename Factory>
|
|
376
|
+
void SpawnInfallibleTransportParty(absl::string_view name,
|
|
377
|
+
Factory&& factory) {
|
|
378
|
+
SpawnInfallible(general_party_, name, std::forward<Factory>(factory));
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
// Spawns a promise on the transport party. If the promise returns a non-ok
|
|
382
|
+
// status, it is handled by closing the transport with the corresponding
|
|
383
|
+
// status.
|
|
384
|
+
template <typename Factory>
|
|
385
|
+
void SpawnGuardedTransportParty(absl::string_view name, Factory&& factory) {
|
|
386
|
+
general_party_->Spawn(
|
|
387
|
+
name, std::forward<Factory>(factory),
|
|
388
|
+
[self = RefAsSubclass<Http2ServerTransport>()](absl::Status status) {
|
|
389
|
+
if (!status.ok()) {
|
|
390
|
+
GRPC_UNUSED absl::Status error = self->HandleError(
|
|
391
|
+
/*stream_id=*/std::nullopt, ToHttpOkOrConnError(status));
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
template <typename Factory, typename OnDone>
|
|
397
|
+
void SpawnWithOnDoneTransportParty(absl::string_view name, Factory&& factory,
|
|
398
|
+
OnDone&& on_done) {
|
|
399
|
+
general_party_->Spawn(name, std::forward<Factory>(factory),
|
|
400
|
+
std::forward<OnDone>(on_done));
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
404
|
+
// Settings
|
|
405
|
+
|
|
406
|
+
void EnforceLatestIncomingSettings();
|
|
407
|
+
auto WaitForSettingsTimeoutOnDone();
|
|
408
|
+
void MaybeSpawnWaitForSettingsTimeout();
|
|
409
|
+
|
|
410
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
411
|
+
// Flow Control and BDP
|
|
412
|
+
|
|
413
|
+
// Processes the flow control action and take necessary steps.
|
|
414
|
+
void ActOnFlowControlAction(const chttp2::FlowControlAction& action,
|
|
415
|
+
Stream* stream);
|
|
416
|
+
|
|
417
|
+
void MaybeGetWindowUpdateFrames(FrameSender& frame_sender);
|
|
418
|
+
|
|
419
|
+
// On receiving an increase in the initial_window size, update the writability
|
|
420
|
+
// for all active streams. This may un-stall streams that are stalled due to
|
|
421
|
+
// lack of flow control tokens. This is needed as the stream flow control
|
|
422
|
+
// tokens are calculated based on the initial window size.
|
|
423
|
+
absl::Status UpdateAllStreamsWritability();
|
|
424
|
+
|
|
425
|
+
auto FlowControlPeriodicUpdateLoop();
|
|
426
|
+
|
|
427
|
+
// TODO(tjagtap) [PH2][P2][BDP] Remove this when the BDP code is done.
|
|
428
|
+
void AddPeriodicUpdatePromiseWaker() {
|
|
429
|
+
periodic_updates_waker_ = GetContext<Activity>()->MakeNonOwningWaker();
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
// TODO(tjagtap) [PH2][P2][BDP] Remove this when the BDP code is done.
|
|
433
|
+
void WakeupPeriodicUpdatePromise() { periodic_updates_waker_.Wakeup(); }
|
|
434
|
+
|
|
435
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
436
|
+
// Stream List Operations
|
|
437
|
+
|
|
438
|
+
RefCountedPtr<Stream> LookupStream(uint32_t stream_id);
|
|
439
|
+
|
|
440
|
+
void AddToStreamList(RefCountedPtr<Stream> stream);
|
|
441
|
+
|
|
442
|
+
absl::Status MaybeAddStreamToWritableStreamList(
|
|
443
|
+
RefCountedPtr<Stream> stream,
|
|
444
|
+
StreamDataQueue<ServerMetadataHandle>::StreamWritabilityUpdate result);
|
|
445
|
+
|
|
446
|
+
// Returns the next stream id. If the next stream id is not available, it
|
|
447
|
+
// returns std::nullopt. MUST be called from the transport party.
|
|
448
|
+
// absl::StatusOr<uint32_t> NextStreamId();
|
|
449
|
+
|
|
450
|
+
// Returns the next stream id without incrementing it. MUST be called from the
|
|
451
|
+
// transport party.
|
|
452
|
+
// uint32_t PeekNextStreamId() const { return next_stream_id_; }
|
|
453
|
+
|
|
454
|
+
// Returns the last stream id sent by the transport. If no streams were sent,
|
|
455
|
+
// returns 0. MUST be called from the transport party.
|
|
456
|
+
// uint32_t GetLastStreamId() const {
|
|
457
|
+
// const uint32_t next_stream_id = PeekNextStreamId();
|
|
458
|
+
// return (next_stream_id > 1) ? (next_stream_id - 2) : 0;
|
|
459
|
+
// }
|
|
460
|
+
|
|
461
|
+
// Returns the number of active streams. A stream is removed from the `active`
|
|
462
|
+
// list once both client and server agree to close the stream. The count of
|
|
463
|
+
// stream_list_(even though stream list represents streams open for reads)
|
|
464
|
+
// works here because of the following cases where the stream is closed:
|
|
465
|
+
// 1. Reading a RST_STREAM frame: In this case, the stream is immediately
|
|
466
|
+
// closed for reads and writes and removed from the stream_list_
|
|
467
|
+
// (effectively tracking the number of active streams).
|
|
468
|
+
// 2. Reading a Trailing Metadata frame: In this case, the stream MAY be
|
|
469
|
+
// closed for reads and writes immediately which follows the above case. In
|
|
470
|
+
// other cases, the transport either reads RST_STREAM frame from the server
|
|
471
|
+
// (and follows case 1) or sends a half close frame and closes the stream
|
|
472
|
+
// for reads and writes (in the multiplexer loop).
|
|
473
|
+
// 3. Hitting error condition in the transport: In this case, RST_STREAM is
|
|
474
|
+
// is enqueued and the stream is closed for reads immediately. This means
|
|
475
|
+
// we effectively reduce the number of active streams inline (because we
|
|
476
|
+
// remove the stream from the stream_list_). This is fine because the
|
|
477
|
+
// priority logic in list of writable streams ensures that the RST_STREAM
|
|
478
|
+
// frame is given priority over any new streams being created by the
|
|
479
|
+
// client.
|
|
480
|
+
// 4. Application abort: In this case, multiplexer loop will write RST_STREAM
|
|
481
|
+
// frame to the endpoint and close the stream from reads and writes. This
|
|
482
|
+
// then follows the same reasoning as case 1.
|
|
483
|
+
inline uint32_t GetActiveStreamCountLocked() const
|
|
484
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(transport_mutex_) {
|
|
485
|
+
// TODO(tjagtap) : [PH2][P1] : Check if impl needs to change for server.
|
|
486
|
+
// TODO(tjagtap) : [PH2][P1] : Check if comment needs to change for server.
|
|
487
|
+
return stream_list_.size();
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
491
|
+
// Stream Operations
|
|
492
|
+
|
|
493
|
+
absl::Status InitializeStream(Stream& stream);
|
|
494
|
+
|
|
495
|
+
// Runs on the call party.
|
|
496
|
+
std::optional<RefCountedPtr<Stream>> MakeStream(
|
|
497
|
+
CallInitiator&& call_initiator, const uint32_t stream_id);
|
|
498
|
+
|
|
499
|
+
Http2Status IncomingStream(ClientMetadataHandle&& metadata,
|
|
500
|
+
uint32_t stream_id);
|
|
501
|
+
|
|
502
|
+
// void BeginCloseStream(RefCountedPtr<Stream> stream,
|
|
503
|
+
// std::optional<uint32_t> reset_stream_error_code,
|
|
504
|
+
// ServerMetadataHandle&& metadata,
|
|
505
|
+
// DebugLocation whence = {});
|
|
506
|
+
|
|
507
|
+
// This function MUST be idempotent.
|
|
508
|
+
void CloseStream(uint32_t stream_id, absl::Status status,
|
|
509
|
+
DebugLocation whence = {}) {
|
|
510
|
+
LOG(INFO) << "Http2ServerTransport::CloseStream for stream id=" << stream_id
|
|
511
|
+
<< " status=" << status << " location=" << whence.file() << ":"
|
|
512
|
+
<< whence.line();
|
|
513
|
+
// TODO(akshitpatel) : [PH2][P2] : Implement this.
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
// This function MUST be idempotent.
|
|
517
|
+
// void CloseStream(Stream& stream, CloseStreamArgs args,
|
|
518
|
+
// DebugLocation whence = {});
|
|
519
|
+
|
|
520
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
521
|
+
// Ping Keepalive and Goaway
|
|
522
|
+
|
|
523
|
+
// void MaybeSpawnPingTimeout(std::optional<uint64_t> opaque_data);
|
|
524
|
+
// void MaybeSpawnDelayedPing(std::optional<Duration> delayed_ping_wait);
|
|
525
|
+
|
|
526
|
+
auto SendPing(absl::AnyInvocable<void()> on_initiate, bool important) {
|
|
527
|
+
return ping_manager_->RequestPing(std::move(on_initiate), important);
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
auto WaitForPingAck() { return ping_manager_->WaitForPingAck(); }
|
|
531
|
+
|
|
532
|
+
// Duration NextAllowedPingInterval() {
|
|
533
|
+
// MutexLock lock(&transport_mutex_);
|
|
534
|
+
// return (!keepalive_permit_without_calls_ &&
|
|
535
|
+
// GetActiveStreamCountLocked() == 0)
|
|
536
|
+
// ? Duration::Hours(2)
|
|
537
|
+
// : Duration::Seconds(1);
|
|
538
|
+
// }
|
|
539
|
+
|
|
540
|
+
absl::Status AckPing(uint64_t opaque_data);
|
|
541
|
+
|
|
542
|
+
// void MaybeSpawnKeepaliveLoop();
|
|
543
|
+
|
|
544
|
+
// uint32_t GetMaxAllowedStreamId() const;
|
|
545
|
+
// void SetMaxAllowedStreamId(uint32_t max_allowed_stream_id);
|
|
546
|
+
|
|
547
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
548
|
+
// Error Path and Close Path
|
|
549
|
+
|
|
550
|
+
// void MaybeSpawnCloseTransport(Http2Status http2_status,
|
|
551
|
+
// DebugLocation whence = {});
|
|
552
|
+
|
|
553
|
+
// bool CanCloseTransportLocked() const
|
|
554
|
+
// ABSL_EXCLUSIVE_LOCKS_REQUIRED(transport_mutex_);
|
|
555
|
+
|
|
556
|
+
// This function MUST run on the transport party.
|
|
557
|
+
void CloseTransport();
|
|
558
|
+
|
|
559
|
+
// Handles the error status and returns the corresponding absl status. Absl
|
|
560
|
+
// Status is returned so that the error can be gracefully handled
|
|
561
|
+
// by promise primitives.
|
|
562
|
+
// If the error is a stream error, it closes the stream and returns an ok
|
|
563
|
+
// status. Ok status is returned because the calling transport promise loops
|
|
564
|
+
// should not be cancelled in case of stream errors.
|
|
565
|
+
// If the error is a connection error, it closes the transport and returns the
|
|
566
|
+
// corresponding (failed) absl status.
|
|
567
|
+
absl::Status HandleError(const std::optional<uint32_t> stream_id,
|
|
568
|
+
Http2Status status, DebugLocation whence = {}) {
|
|
569
|
+
// TODO(akshitpatel) : [PH2][P0] : Implement this. And remove the log.
|
|
570
|
+
GRPC_HTTP2_SERVER_DLOG << "Http2ServerTransport::HandleError for stream id="
|
|
571
|
+
<< (stream_id.has_value() ? absl::StrCat(*stream_id)
|
|
572
|
+
: "nullopt")
|
|
573
|
+
<< " status=" << status.DebugString()
|
|
574
|
+
<< " location=" << whence.file() << ":"
|
|
575
|
+
<< whence.line();
|
|
576
|
+
return absl::OkStatus();
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
580
|
+
// Misc Transport Stuff
|
|
581
|
+
|
|
582
|
+
void ReportDisconnection(grpc_connectivity_state state,
|
|
583
|
+
const absl::Status& status,
|
|
584
|
+
StateWatcher::DisconnectInfo disconnect_info,
|
|
585
|
+
const char* reason);
|
|
586
|
+
|
|
587
|
+
void ReportDisconnectionLocked(grpc_connectivity_state state,
|
|
588
|
+
const absl::Status& status,
|
|
589
|
+
StateWatcher::DisconnectInfo disconnect_info,
|
|
590
|
+
const char* reason)
|
|
591
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&transport_mutex_);
|
|
592
|
+
|
|
593
|
+
bool SetOnDone(RefCountedPtr<Stream> stream);
|
|
594
|
+
|
|
595
|
+
void ReadChannelArgs(const ChannelArgs& channel_args,
|
|
596
|
+
TransportChannelArgs& args);
|
|
597
|
+
|
|
598
|
+
auto SecurityFrameLoop() {
|
|
599
|
+
GRPC_HTTP2_SERVER_DLOG << "Http2ServerTransport::SecurityFrameLoop Factory";
|
|
600
|
+
return AssertResultType<Empty>(Loop([this]() {
|
|
601
|
+
return Map(security_frame_handler_->WaitForSecurityFrameSending(),
|
|
602
|
+
[this](Empty) -> LoopCtl<Empty> {
|
|
603
|
+
if (security_frame_handler_->TriggerWriteSecurityFrame()
|
|
604
|
+
.terminate) {
|
|
605
|
+
return Empty{};
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
if (!TriggerWriteCycleOrHandleError()) {
|
|
609
|
+
return Empty{};
|
|
610
|
+
}
|
|
611
|
+
return Continue();
|
|
612
|
+
});
|
|
613
|
+
}));
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
617
|
+
// Inner Classes and Structs
|
|
618
|
+
|
|
619
|
+
class PingSystemInterfaceImpl : public PingInterface {
|
|
620
|
+
public:
|
|
621
|
+
static std::unique_ptr<PingInterface> Make(Http2ServerTransport* transport);
|
|
622
|
+
absl::Status TriggerWrite() override;
|
|
623
|
+
Promise<absl::Status> PingTimeout() override;
|
|
624
|
+
|
|
625
|
+
private:
|
|
626
|
+
// Holding a raw pointer to transport works because all the promises
|
|
627
|
+
// invoking the methods of this class are invoked while holding a ref to the
|
|
628
|
+
// transport.
|
|
629
|
+
Http2ServerTransport* transport_;
|
|
630
|
+
explicit PingSystemInterfaceImpl(Http2ServerTransport* transport)
|
|
631
|
+
: transport_(transport) {}
|
|
632
|
+
};
|
|
633
|
+
|
|
634
|
+
class KeepAliveInterfaceImpl : public KeepAliveInterface {
|
|
635
|
+
public:
|
|
636
|
+
static std::unique_ptr<KeepAliveInterface> Make(
|
|
637
|
+
Http2ServerTransport* transport);
|
|
638
|
+
|
|
639
|
+
private:
|
|
640
|
+
explicit KeepAliveInterfaceImpl(Http2ServerTransport* transport)
|
|
641
|
+
: transport_(transport) {}
|
|
642
|
+
Promise<absl::Status> SendPingAndWaitForAck() override;
|
|
643
|
+
Promise<absl::Status> OnKeepAliveTimeout() override;
|
|
644
|
+
bool NeedToSendKeepAlivePing() override;
|
|
645
|
+
// Holding a raw pointer to transport works because all the promises
|
|
646
|
+
// invoking the methods of this class are invoked while holding a ref to the
|
|
647
|
+
// transport.
|
|
648
|
+
Http2ServerTransport* transport_;
|
|
649
|
+
};
|
|
650
|
+
|
|
651
|
+
class GoawayInterfaceImpl : public GoawayInterface {
|
|
652
|
+
public:
|
|
653
|
+
static std::unique_ptr<GoawayInterface> Make(
|
|
654
|
+
Http2ServerTransport* transport);
|
|
655
|
+
|
|
656
|
+
Promise<absl::Status> SendPingAndWaitForAck() override {
|
|
657
|
+
return transport_->ping_manager_->RequestPing(/*on_initiate=*/[] {},
|
|
658
|
+
/*important=*/true);
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
absl::Status TriggerWriteCycle() override {
|
|
662
|
+
return transport_->TriggerWriteCycle();
|
|
663
|
+
}
|
|
664
|
+
uint32_t GetLastAcceptedStreamId() override;
|
|
665
|
+
|
|
666
|
+
private:
|
|
667
|
+
explicit GoawayInterfaceImpl(Http2ServerTransport* transport)
|
|
668
|
+
: transport_(transport) {}
|
|
669
|
+
// Holding a raw pointer to transport works because all the promises
|
|
670
|
+
// invoking the methods of this class are invoked while holding a ref to the
|
|
671
|
+
// transport.
|
|
672
|
+
Http2ServerTransport* transport_;
|
|
673
|
+
};
|
|
674
|
+
|
|
675
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
676
|
+
// All Data Members
|
|
677
|
+
|
|
678
|
+
RefCountedPtr<UnstartedCallDestination> call_destination_;
|
|
679
|
+
|
|
680
|
+
// TODO(akshitpatel) : [PH2][P0] : Remove this when write path is ready.
|
|
681
|
+
MpscReceiver<Http2Frame> outgoing_frames_;
|
|
682
|
+
|
|
683
|
+
// TODO(tjagtap) : [PH2][P0] : These are copied as is from the client
|
|
684
|
+
// transport. Take a look if modifications are needed.
|
|
685
|
+
|
|
686
|
+
RefCountedPtr<Party> general_party_; // Refer Gemini.md for party slot usage
|
|
687
|
+
std::shared_ptr<grpc_event_engine::experimental::EventEngine> event_engine_;
|
|
688
|
+
|
|
689
|
+
PromiseEndpoint endpoint_;
|
|
690
|
+
RefCountedPtr<SettingsPromiseManager> settings_;
|
|
691
|
+
|
|
692
|
+
Mutex transport_mutex_;
|
|
693
|
+
|
|
694
|
+
absl::flat_hash_map<uint32_t, RefCountedPtr<Stream>> stream_list_
|
|
695
|
+
ABSL_GUARDED_BY(transport_mutex_);
|
|
696
|
+
|
|
697
|
+
GRPC_UNUSED uint32_t next_stream_id_;
|
|
698
|
+
HPackCompressor encoder_;
|
|
699
|
+
bool is_transport_closed_ ABSL_GUARDED_BY(transport_mutex_) = false;
|
|
700
|
+
Latch<void> transport_closed_latch_;
|
|
701
|
+
grpc_closure* on_close_callback_;
|
|
702
|
+
|
|
703
|
+
ConnectivityStateTracker state_tracker_ ABSL_GUARDED_BY(transport_mutex_){
|
|
704
|
+
"http2_server", GRPC_CHANNEL_READY};
|
|
705
|
+
|
|
706
|
+
RefCountedPtr<StateWatcher> watcher_ ABSL_GUARDED_BY(transport_mutex_);
|
|
707
|
+
|
|
708
|
+
bool should_reset_ping_clock_;
|
|
709
|
+
ReadContext read_context_;
|
|
710
|
+
|
|
711
|
+
// Transport wide write context. This is used to track the state of the
|
|
712
|
+
// transport during write cycles.
|
|
713
|
+
TransportWriteContext transport_write_context_;
|
|
714
|
+
|
|
715
|
+
// Tracks the max allowed stream id. Currently this is only set on receiving a
|
|
716
|
+
// graceful GOAWAY frame.
|
|
717
|
+
GRPC_UNUSED uint32_t max_allowed_stream_id_ = RFC9113::kMaxStreamId31Bit;
|
|
718
|
+
|
|
719
|
+
// Duration between two consecutive keepalive pings.
|
|
720
|
+
Duration keepalive_time_;
|
|
721
|
+
GRPC_UNUSED bool test_only_ack_pings_;
|
|
722
|
+
std::optional<PingManager> ping_manager_;
|
|
723
|
+
std::optional<KeepaliveManager> keepalive_manager_;
|
|
724
|
+
|
|
725
|
+
bool keepalive_permit_without_calls_;
|
|
726
|
+
|
|
727
|
+
GoawayManager goaway_manager_;
|
|
728
|
+
|
|
729
|
+
MemoryOwner memory_owner_;
|
|
730
|
+
chttp2::TransportFlowControl flow_control_;
|
|
731
|
+
WritableStreams<RefCountedPtr<Stream>> writable_stream_list_;
|
|
732
|
+
|
|
733
|
+
RefCountedPtr<SecurityFrameHandler> security_frame_handler_;
|
|
734
|
+
std::shared_ptr<PromiseHttp2ZTraceCollector> ztrace_collector_;
|
|
735
|
+
|
|
736
|
+
// TODO(tjagtap) [PH2][P2][BDP] Remove this when the BDP code is done.
|
|
737
|
+
Waker periodic_updates_waker_;
|
|
738
|
+
};
|
|
739
|
+
|
|
740
|
+
// TODO(tjagtap) : [PH2][P1] : Handle the case where a Server receives two
|
|
741
|
+
// header frames. Which means that the client sent trailing metadata. While we
|
|
742
|
+
// dont expect a gRPC C++ peer to send trailing metadata, not handling it might
|
|
743
|
+
// break interop tests and genuine interop cases.
|
|
744
|
+
|
|
745
|
+
} // namespace http2
|
|
746
|
+
} // namespace grpc_core
|
|
747
|
+
|
|
748
|
+
#endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SERVER_TRANSPORT_H
|