grpc 1.81.1 → 1.83.0
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 +15 -9
- data/etc/roots.pem +10400 -3855
- data/include/grpc/grpc.h +6 -7
- data/include/grpc/grpc_audit_logging.h +2 -2
- data/include/grpc/grpc_security_constants.h +2 -0
- data/include/grpc/impl/channel_arg_names.h +26 -1
- data/src/core/call/call_filters.h +21 -5
- data/src/core/call/call_spine.h +4 -4
- data/src/core/call/client_call.cc +2 -2
- data/src/core/call/interception_chain.h +6 -9
- data/src/core/call/metadata.cc +7 -2
- 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 +16 -4
- data/src/core/call/server_call.h +14 -5
- 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 +2 -17
- data/src/core/client_channel/client_channel.cc +23 -28
- data/src/core/client_channel/client_channel.h +5 -3
- data/src/core/client_channel/client_channel_filter.cc +19 -30
- 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/client_channel_service_config.cc +5 -13
- data/src/core/client_channel/config_selector.h +2 -7
- data/src/core/client_channel/direct_channel.cc +5 -1
- data/src/core/client_channel/direct_channel.h +3 -1
- 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/{filter/blackboard.cc → config/experiment_env_var.cc} +11 -14
- data/src/core/config/experiment_env_var.h +26 -0
- 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/credentials/transport/ssl/ssl_security_connector.cc +14 -2
- data/src/core/credentials/transport/tls/grpc_tls_certificate_selector.cc +172 -0
- data/src/core/credentials/transport/tls/grpc_tls_certificate_selector.h +103 -0
- data/src/core/credentials/transport/tls/load_system_roots_fallback.cc +3 -2
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +10 -3
- data/src/core/credentials/transport/tls/tls_security_connector.cc +14 -2
- data/src/core/credentials/transport/xds/xds_credentials.cc +4 -12
- 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/rbac/rbac_service_config_parser.cc +2 -1
- 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 +184 -54
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +10 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +84 -15
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +14 -2
- data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +2 -4
- data/src/core/ext/transport/chttp2/transport/frame.cc +120 -13
- data/src/core/ext/transport/chttp2/transport/frame.h +57 -10
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +13 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_security.cc +10 -1
- data/src/core/ext/transport/chttp2/transport/frame_security.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/goaway.cc +11 -1
- data/src/core/ext/transport/chttp2/transport/goaway.h +17 -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 +42 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +219 -417
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +49 -29
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +2073 -0
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +746 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +49 -15
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +0 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +74 -26
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +39 -15
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +18 -48
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -0
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +1 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +85 -26
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +4 -10
- data/src/core/ext/transport/chttp2/transport/read_context.h +494 -0
- data/src/core/ext/transport/chttp2/transport/security_frame.h +13 -3
- data/src/core/ext/transport/chttp2/transport/stream.h +287 -137
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +83 -65
- 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 +60 -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 +90 -4
- data/src/core/lib/channel/promise_based_filter.h +241 -188
- data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +0 -13
- data/src/core/lib/event_engine/extensions/receive_coalescing_extension.h +44 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +1 -1
- 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 +9 -18
- 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/shim.cc +2 -16
- data/src/core/lib/event_engine/shim.h +0 -4
- 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 +303 -183
- data/src/core/lib/experiments/experiments.h +166 -90
- data/src/core/lib/iomgr/buffer_list.h +1 -1
- data/src/core/lib/iomgr/error.cc +3 -73
- data/src/core/lib/iomgr/error.h +8 -6
- data/src/core/lib/iomgr/error_cfstream.cc +1 -2
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -7
- data/src/core/lib/iomgr/ev_poll_posix.cc +2 -6
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
- data/src/core/lib/iomgr/tcp_posix.cc +4 -7
- 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/security/authorization/audit_logging.cc +2 -2
- data/src/core/lib/security/authorization/audit_logging.h +3 -3
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +11 -13
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -1
- data/src/core/lib/security/authorization/matchers.cc +20 -20
- data/src/core/lib/security/authorization/matchers.h +15 -16
- data/src/core/lib/security/authorization/rbac_policy.h +1 -1
- data/src/core/lib/security/authorization/stdout_logger.cc +3 -3
- data/src/core/lib/security/authorization/stdout_logger.h +6 -5
- data/src/core/lib/surface/call.cc +6 -9
- data/src/core/lib/surface/call.h +11 -0
- data/src/core/lib/surface/channel.cc +21 -2
- data/src/core/lib/surface/channel.h +14 -6
- data/src/core/lib/surface/filter_stack_call.cc +10 -29
- data/src/core/lib/surface/legacy_channel.cc +7 -7
- data/src/core/lib/surface/legacy_channel.h +3 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +13 -13
- data/src/core/lib/transport/bdp_estimator.h +9 -5
- data/src/core/lib/transport/error_utils.cc +26 -138
- data/src/core/lib/transport/promise_endpoint.h +8 -8
- data/src/core/lib/transport/transport.h +31 -4
- data/src/core/load_balancing/grpclb/grpclb.cc +2 -1
- data/src/core/load_balancing/pick_first/pick_first.cc +33 -2
- data/src/core/load_balancing/pick_first/pick_first.h +6 -0
- data/src/core/load_balancing/ring_hash/ring_hash.cc +3 -10
- data/src/core/load_balancing/rls/rls.cc +2 -1
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +141 -74
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.h +88 -0
- data/src/core/load_balancing/xds/cds.cc +80 -56
- data/src/core/load_balancing/xds/cds.h +21 -0
- data/src/core/mitigation_engine/mitigation.h +53 -0
- data/src/core/mitigation_engine/mitigation_engine.h +81 -0
- data/src/core/mitigation_engine/mitigation_provider.h +62 -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/dns/dns_resolver_plugin.cc +1 -6
- data/src/core/resolver/xds/xds_resolver.cc +37 -144
- data/src/core/server/server.cc +40 -18
- data/src/core/server/server.h +26 -18
- data/src/core/server/server_config_selector.h +5 -4
- data/src/core/server/server_config_selector_filter.cc +135 -26
- data/src/core/server/server_config_selector_filter.h +1 -0
- data/src/core/server/xds_server_config_fetcher.cc +687 -692
- data/src/core/server/xds_server_config_fetcher_legacy.cc +1336 -0
- data/src/core/telemetry/call_tracer.cc +49 -2
- data/src/core/telemetry/call_tracer.h +1 -0
- data/src/core/telemetry/histogram.h +10 -89
- data/src/core/telemetry/instrument.h +42 -28
- data/src/core/telemetry/tcp_tracer.h +38 -0
- 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/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/ssl_telemetry_utils.cc +343 -0
- data/src/core/tsi/ssl_telemetry_utils.h +74 -0
- data/src/core/tsi/ssl_transport_security.cc +583 -305
- data/src/core/tsi/ssl_transport_security.h +22 -6
- data/src/core/tsi/ssl_transport_security_utils.cc +2 -0
- data/src/core/tsi/transport_security.h +7 -0
- data/src/core/util/http_client/httpcli.cc +1 -4
- data/src/core/util/http_client/httpcli_security_connector.cc +2 -1
- 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/status_helper.cc +71 -192
- data/src/core/util/status_helper.h +16 -21
- 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/file_watcher_certificate_provider_factory.cc +2 -11
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -7
- data/src/core/xds/grpc/xds_cluster_parser.cc +5 -16
- data/src/core/xds/grpc/xds_common_types.cc +96 -0
- data/src/core/xds/grpc/xds_common_types.h +35 -7
- data/src/core/xds/grpc/xds_common_types_parser.cc +205 -134
- data/src/core/xds/grpc/xds_common_types_parser.h +18 -1
- data/src/core/xds/grpc/xds_endpoint_parser.cc +7 -18
- 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 +2 -12
- 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_rbac_filter.cc +3 -12
- 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_metadata_parser.cc +0 -2
- data/src/core/xds/grpc/xds_route_config.h +1 -1
- data/src/core/xds/grpc/xds_route_config_parser.cc +10 -16
- data/src/core/xds/grpc/xds_routing.cc +115 -90
- data/src/core/xds/grpc/xds_routing.h +73 -24
- data/src/core/xds/grpc/xds_server_grpc.cc +22 -13
- data/src/core/xds/grpc/xds_server_grpc.h +16 -2
- data/src/core/xds/grpc/xds_server_grpc_interface.h +10 -0
- data/src/core/xds/grpc/xds_transport_grpc.cc +123 -18
- data/src/core/xds/grpc/xds_transport_grpc.h +28 -4
- data/src/core/xds/xds_client/lrs_client.cc +4 -8
- data/src/core/xds/xds_client/xds_bootstrap.cc +4 -16
- data/src/core/xds/xds_client/xds_client.cc +2 -15
- data/src/core/xds/xds_client/xds_transport.h +3 -0
- 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/pb/src/proto/grpc/testing/messages_pb.rb +1 -1
- 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 +35 -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/third_party/upb/upb/message/internal/tagged_ptr.h +0 -56
- data/third_party/upb/upb/message/tagged_ptr.h +0 -48
|
@@ -80,53 +80,102 @@ class XdsRouting final {
|
|
|
80
80
|
grpc_metadata_batch* initial_metadata, absl::string_view header_name,
|
|
81
81
|
std::string* concatenated_value);
|
|
82
82
|
|
|
83
|
-
// Logic for building
|
|
84
|
-
// done to avoid unnecessary work while
|
|
85
|
-
//
|
|
83
|
+
// Logic for building filter chains for each route within a
|
|
84
|
+
// RouteConfiguration. Caching is done to avoid unnecessary work while
|
|
85
|
+
// iterating over the list of routes.
|
|
86
86
|
//
|
|
87
87
|
// TODO(roth): Currently, this class uses the xds_resolver tracer for
|
|
88
88
|
// logging. When we change the server side to use the new filter
|
|
89
89
|
// config structure, add a new tracer and use that instead, so that it
|
|
90
90
|
// can be used on both the client and server side.
|
|
91
|
-
class
|
|
91
|
+
class RouteConfigFilterChainBuilder {
|
|
92
92
|
public:
|
|
93
|
+
// Builds filter chains for each route within a VirtualHost.
|
|
94
|
+
class VirtualHostFilterChainBuilder {
|
|
95
|
+
public:
|
|
96
|
+
// Builds filter chains for each ClusterWeight within a route.
|
|
97
|
+
class WeightedClusterRouteFilterChainBuilder {
|
|
98
|
+
public:
|
|
99
|
+
WeightedClusterRouteFilterChainBuilder(
|
|
100
|
+
VirtualHostFilterChainBuilder& vhost_builder,
|
|
101
|
+
const XdsRouteConfigResource::Route& route)
|
|
102
|
+
: vhost_builder_(vhost_builder), route_(route) {}
|
|
103
|
+
|
|
104
|
+
// Builds a filter chain for a ClusterWeight.
|
|
105
|
+
absl::StatusOr<RefCountedPtr<const FilterChain>>
|
|
106
|
+
BuildFilterChainForClusterWeight(
|
|
107
|
+
const XdsRouteConfigResource::Route::RouteAction::ClusterWeight&
|
|
108
|
+
cluster_weight);
|
|
109
|
+
|
|
110
|
+
private:
|
|
111
|
+
absl::StatusOr<RefCountedPtr<const FilterChain>> GetRouteFilterChain();
|
|
112
|
+
|
|
113
|
+
VirtualHostFilterChainBuilder& vhost_builder_;
|
|
114
|
+
const XdsRouteConfigResource::Route& route_;
|
|
115
|
+
|
|
116
|
+
// Cached filter chain for the route, to be used for any ClusterWeight
|
|
117
|
+
// that does not have any filter config overrides.
|
|
118
|
+
absl::StatusOr<RefCountedPtr<const FilterChain>> route_filter_chain_ =
|
|
119
|
+
nullptr;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
VirtualHostFilterChainBuilder(
|
|
123
|
+
RouteConfigFilterChainBuilder& route_config_builder,
|
|
124
|
+
const XdsRouteConfigResource::VirtualHost& vhost)
|
|
125
|
+
: route_config_builder_(route_config_builder), vhost_(vhost) {}
|
|
126
|
+
|
|
127
|
+
// Builds a filter chain for a route that has an individual cluster
|
|
128
|
+
// or a ClusterSpecifierPlugin.
|
|
129
|
+
absl::StatusOr<RefCountedPtr<const FilterChain>> BuildFilterChainForRoute(
|
|
130
|
+
const XdsRouteConfigResource::Route& route);
|
|
131
|
+
|
|
132
|
+
// Returns a filter chain builder for a given route that uses
|
|
133
|
+
// WeightedClusters.
|
|
134
|
+
WeightedClusterRouteFilterChainBuilder
|
|
135
|
+
MakeWeightedClusterRouteFilterChainBuilder(
|
|
136
|
+
const XdsRouteConfigResource::Route& route) {
|
|
137
|
+
return WeightedClusterRouteFilterChainBuilder(*this, route);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
private:
|
|
141
|
+
absl::StatusOr<RefCountedPtr<const FilterChain>>
|
|
142
|
+
GetVirtualHostFilterChain();
|
|
143
|
+
|
|
144
|
+
RouteConfigFilterChainBuilder& route_config_builder_;
|
|
145
|
+
const XdsRouteConfigResource::VirtualHost& vhost_;
|
|
146
|
+
|
|
147
|
+
// Cached filter chain for the virtual host, to be used for any route
|
|
148
|
+
// that does not have any filter config overrides.
|
|
149
|
+
absl::StatusOr<RefCountedPtr<const FilterChain>> vhost_filter_chain_ =
|
|
150
|
+
nullptr;
|
|
151
|
+
};
|
|
152
|
+
|
|
93
153
|
// The add_last_filter() callback is called on the builder after
|
|
94
154
|
// adding all of the xDS HTTP filters and right before building the
|
|
95
155
|
// filter chain. May be null if not needed.
|
|
96
|
-
|
|
156
|
+
RouteConfigFilterChainBuilder(
|
|
97
157
|
const std::vector<
|
|
98
158
|
XdsListenerResource::HttpConnectionManager::HttpFilter>&
|
|
99
159
|
hcm_filter_configs,
|
|
100
160
|
const XdsHttpFilterRegistry& http_filter_registry,
|
|
101
|
-
const XdsRouteConfigResource::VirtualHost& vhost,
|
|
102
161
|
FilterChainBuilder& builder,
|
|
103
162
|
absl::AnyInvocable<void(FilterChainBuilder&)> add_last_filter,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
//
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
// Builds a filter chain for a route that uses WeightedClusters.
|
|
112
|
-
// The set_filter_chain_for_cluster_weight() function will be called
|
|
113
|
-
// once for each index in the WeightedClusters list.
|
|
114
|
-
void BuildFilterChainForRouteWithWeightedClusters(
|
|
115
|
-
const XdsRouteConfigResource::Route& route,
|
|
116
|
-
absl::FunctionRef<
|
|
117
|
-
void(size_t, absl::StatusOr<RefCountedPtr<const FilterChain>>)>
|
|
118
|
-
set_filter_chain_for_cluster_weight);
|
|
163
|
+
Blackboard& blackboard);
|
|
164
|
+
|
|
165
|
+
// Returns a filter chain builder for a given virtual host.
|
|
166
|
+
VirtualHostFilterChainBuilder MakeVirtualHostFilterChainBuilder(
|
|
167
|
+
const XdsRouteConfigResource::VirtualHost& vhost) {
|
|
168
|
+
return VirtualHostFilterChainBuilder(*this, vhost);
|
|
169
|
+
}
|
|
119
170
|
|
|
120
171
|
private:
|
|
121
172
|
absl::StatusOr<RefCountedPtr<const FilterChain>> GetDefaultFilterChain();
|
|
122
173
|
|
|
123
174
|
const std::vector<XdsListenerResource::HttpConnectionManager::HttpFilter>&
|
|
124
175
|
hcm_filter_configs_;
|
|
125
|
-
const XdsRouteConfigResource::VirtualHost& vhost_;
|
|
126
176
|
FilterChainBuilder& builder_;
|
|
127
177
|
absl::AnyInvocable<void(FilterChainBuilder&)> add_last_filter_;
|
|
128
|
-
|
|
129
|
-
Blackboard* new_blackboard_;
|
|
178
|
+
Blackboard& blackboard_;
|
|
130
179
|
|
|
131
180
|
// Same size as hcm_filter_configs_.
|
|
132
181
|
std::vector<const XdsHttpFilterImpl*> filter_impls_;
|
|
@@ -24,11 +24,10 @@
|
|
|
24
24
|
#include <vector>
|
|
25
25
|
|
|
26
26
|
#include "src/core/config/core_configuration.h"
|
|
27
|
+
#include "src/core/config/experiment_env_var.h"
|
|
27
28
|
#include "src/core/util/down_cast.h"
|
|
28
|
-
#include "src/core/util/env.h"
|
|
29
29
|
#include "src/core/util/json/json_reader.h"
|
|
30
30
|
#include "src/core/util/json/json_writer.h"
|
|
31
|
-
#include "src/core/util/string.h"
|
|
32
31
|
#include "absl/strings/str_cat.h"
|
|
33
32
|
#include "absl/strings/string_view.h"
|
|
34
33
|
|
|
@@ -98,16 +97,6 @@ struct ChannelOrCallCreds {
|
|
|
98
97
|
}
|
|
99
98
|
};
|
|
100
99
|
|
|
101
|
-
// TODO(roth): Remove this guard once we have reports from OSS Istio
|
|
102
|
-
// users that this works properly.
|
|
103
|
-
bool XdsBootstrapCallCredsEnabled() {
|
|
104
|
-
auto value = GetEnv("GRPC_EXPERIMENTAL_XDS_BOOTSTRAP_CALL_CREDS");
|
|
105
|
-
if (!value.has_value()) return false;
|
|
106
|
-
bool parsed_value;
|
|
107
|
-
bool parse_succeeded = gpr_parse_bool_value(value->c_str(), &parsed_value);
|
|
108
|
-
return parse_succeeded && parsed_value;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
100
|
} // namespace
|
|
112
101
|
|
|
113
102
|
RefCountedPtr<const ChannelCredsConfig> ParseXdsBootstrapChannelCreds(
|
|
@@ -170,7 +159,9 @@ void GrpcXdsServer::JsonPostLoad(const Json& json, const JsonArgs& args,
|
|
|
170
159
|
ParseXdsBootstrapChannelCreds(json, args, errors);
|
|
171
160
|
// Parse "call_creds".
|
|
172
161
|
std::vector<RefCountedPtr<const CallCredsConfig>> call_creds_configs;
|
|
173
|
-
|
|
162
|
+
// TODO(roth): Remove this guard once we have reports from OSS Istio
|
|
163
|
+
// users that this works properly.
|
|
164
|
+
if (IsExperimentEnvVarEnabled("GRPC_EXPERIMENTAL_XDS_BOOTSTRAP_CALL_CREDS")) {
|
|
174
165
|
call_creds_configs = ParseXdsBootstrapCallCreds(json, args, errors);
|
|
175
166
|
}
|
|
176
167
|
// Parse "server_features".
|
|
@@ -238,6 +229,22 @@ std::string GrpcXdsServerTarget::Key() const {
|
|
|
238
229
|
StrAppend(result, call_creds_config->ToString());
|
|
239
230
|
StrAppend(result, "}");
|
|
240
231
|
}
|
|
232
|
+
if (!initial_metadata_.empty()) {
|
|
233
|
+
StrAppend(result, ", initial_metadata=[");
|
|
234
|
+
bool is_first = true;
|
|
235
|
+
for (const auto& metadata : initial_metadata_) {
|
|
236
|
+
if (!is_first) StrAppend(result, ", ");
|
|
237
|
+
StrAppend(result, metadata.first);
|
|
238
|
+
StrAppend(result, "=");
|
|
239
|
+
StrAppend(result, metadata.second);
|
|
240
|
+
is_first = false;
|
|
241
|
+
}
|
|
242
|
+
StrAppend(result, "]");
|
|
243
|
+
}
|
|
244
|
+
if (timeout_ != Duration::Zero()) {
|
|
245
|
+
StrAppend(result, ", timeout=");
|
|
246
|
+
StrAppend(result, timeout_.ToString());
|
|
247
|
+
}
|
|
241
248
|
StrAppend(result, "}");
|
|
242
249
|
return result;
|
|
243
250
|
}
|
|
@@ -258,6 +265,8 @@ bool GrpcXdsServerTarget::Equals(const XdsServerTarget& other) const {
|
|
|
258
265
|
return false;
|
|
259
266
|
}
|
|
260
267
|
}
|
|
268
|
+
if (initial_metadata_ != o.initial_metadata_) return false;
|
|
269
|
+
if (timeout_ != o.timeout_) return false;
|
|
261
270
|
return true;
|
|
262
271
|
}
|
|
263
272
|
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
|
|
20
20
|
#include <set>
|
|
21
21
|
#include <string>
|
|
22
|
+
#include <utility>
|
|
23
|
+
#include <vector>
|
|
22
24
|
|
|
23
25
|
#include "src/core/credentials/call/call_creds_registry.h"
|
|
24
26
|
#include "src/core/credentials/transport/channel_creds_registry.h"
|
|
@@ -26,6 +28,7 @@
|
|
|
26
28
|
#include "src/core/util/json/json_args.h"
|
|
27
29
|
#include "src/core/util/json/json_object_loader.h"
|
|
28
30
|
#include "src/core/util/ref_counted_ptr.h"
|
|
31
|
+
#include "src/core/util/time.h"
|
|
29
32
|
#include "src/core/util/validation_errors.h"
|
|
30
33
|
#include "src/core/xds/grpc/xds_server_grpc_interface.h"
|
|
31
34
|
#include "src/core/xds/xds_client/xds_bootstrap.h"
|
|
@@ -43,10 +46,14 @@ class GrpcXdsServerTarget final : public GrpcXdsServerInterface {
|
|
|
43
46
|
explicit GrpcXdsServerTarget(
|
|
44
47
|
std::string server_uri,
|
|
45
48
|
RefCountedPtr<const ChannelCredsConfig> channel_creds_config,
|
|
46
|
-
std::vector<RefCountedPtr<const CallCredsConfig>> call_creds_configs
|
|
49
|
+
std::vector<RefCountedPtr<const CallCredsConfig>> call_creds_configs,
|
|
50
|
+
std::vector<std::pair<std::string, std::string>> initial_metadata = {},
|
|
51
|
+
Duration timeout = Duration::Infinity())
|
|
47
52
|
: server_uri_(std::move(server_uri)),
|
|
48
53
|
channel_creds_config_(std::move(channel_creds_config)),
|
|
49
|
-
call_creds_configs_(std::move(call_creds_configs))
|
|
54
|
+
call_creds_configs_(std::move(call_creds_configs)),
|
|
55
|
+
initial_metadata_(std::move(initial_metadata)),
|
|
56
|
+
timeout_(timeout) {}
|
|
50
57
|
|
|
51
58
|
bool Equals(const XdsServerTarget& other) const override;
|
|
52
59
|
std::string Key() const override;
|
|
@@ -59,11 +66,18 @@ class GrpcXdsServerTarget final : public GrpcXdsServerInterface {
|
|
|
59
66
|
const override {
|
|
60
67
|
return call_creds_configs_;
|
|
61
68
|
}
|
|
69
|
+
const std::vector<std::pair<std::string, std::string>>& initial_metadata()
|
|
70
|
+
const override {
|
|
71
|
+
return initial_metadata_;
|
|
72
|
+
}
|
|
73
|
+
Duration timeout() const override { return timeout_; }
|
|
62
74
|
|
|
63
75
|
private:
|
|
64
76
|
std::string server_uri_;
|
|
65
77
|
RefCountedPtr<const ChannelCredsConfig> channel_creds_config_;
|
|
66
78
|
std::vector<RefCountedPtr<const CallCredsConfig>> call_creds_configs_;
|
|
79
|
+
std::vector<std::pair<std::string, std::string>> initial_metadata_;
|
|
80
|
+
Duration timeout_;
|
|
67
81
|
};
|
|
68
82
|
|
|
69
83
|
class GrpcXdsServer final : public XdsBootstrap::XdsServer {
|
|
@@ -17,9 +17,14 @@
|
|
|
17
17
|
#ifndef GRPC_SRC_CORE_XDS_GRPC_XDS_SERVER_GRPC_INTERFACE_H
|
|
18
18
|
#define GRPC_SRC_CORE_XDS_GRPC_XDS_SERVER_GRPC_INTERFACE_H
|
|
19
19
|
|
|
20
|
+
#include <string>
|
|
21
|
+
#include <utility>
|
|
22
|
+
#include <vector>
|
|
23
|
+
|
|
20
24
|
#include "src/core/credentials/call/call_creds_registry.h"
|
|
21
25
|
#include "src/core/credentials/transport/channel_creds_registry.h"
|
|
22
26
|
#include "src/core/util/ref_counted_ptr.h"
|
|
27
|
+
#include "src/core/util/time.h"
|
|
23
28
|
#include "src/core/xds/xds_client/xds_bootstrap.h"
|
|
24
29
|
|
|
25
30
|
namespace grpc_core {
|
|
@@ -31,6 +36,11 @@ class GrpcXdsServerInterface : public XdsBootstrap::XdsServerTarget {
|
|
|
31
36
|
|
|
32
37
|
virtual const std::vector<RefCountedPtr<const CallCredsConfig>>&
|
|
33
38
|
call_creds_configs() const = 0;
|
|
39
|
+
|
|
40
|
+
virtual const std::vector<std::pair<std::string, std::string>>&
|
|
41
|
+
initial_metadata() const = 0;
|
|
42
|
+
|
|
43
|
+
virtual Duration timeout() const = 0;
|
|
34
44
|
};
|
|
35
45
|
|
|
36
46
|
} // namespace grpc_core
|
|
@@ -28,8 +28,11 @@
|
|
|
28
28
|
|
|
29
29
|
#include <functional>
|
|
30
30
|
#include <memory>
|
|
31
|
+
#include <optional>
|
|
32
|
+
#include <string>
|
|
31
33
|
#include <string_view>
|
|
32
34
|
#include <utility>
|
|
35
|
+
#include <vector>
|
|
33
36
|
|
|
34
37
|
#include "src/core/client_channel/client_channel_filter.h"
|
|
35
38
|
#include "src/core/config/core_configuration.h"
|
|
@@ -43,6 +46,7 @@
|
|
|
43
46
|
#include "src/core/lib/debug/trace.h"
|
|
44
47
|
#include "src/core/lib/event_engine/default_event_engine.h"
|
|
45
48
|
#include "src/core/lib/iomgr/closure.h"
|
|
49
|
+
#include "src/core/lib/iomgr/error.h"
|
|
46
50
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
|
47
51
|
#include "src/core/lib/iomgr/pollset_set.h"
|
|
48
52
|
#include "src/core/lib/slice/slice.h"
|
|
@@ -56,7 +60,9 @@
|
|
|
56
60
|
#include "src/core/util/down_cast.h"
|
|
57
61
|
#include "src/core/util/grpc_check.h"
|
|
58
62
|
#include "src/core/util/orphanable.h"
|
|
63
|
+
#include "src/core/util/ref_counted.h"
|
|
59
64
|
#include "src/core/util/ref_counted_ptr.h"
|
|
65
|
+
#include "src/core/util/sync.h"
|
|
60
66
|
#include "src/core/util/time.h"
|
|
61
67
|
#include "src/core/xds/grpc/xds_server_grpc_interface.h"
|
|
62
68
|
#include "src/core/xds/xds_client/xds_bootstrap.h"
|
|
@@ -71,28 +77,43 @@ namespace grpc_core {
|
|
|
71
77
|
GrpcXdsTransportFactory::GrpcXdsTransport::GrpcStreamingCall::GrpcStreamingCall(
|
|
72
78
|
WeakRefCountedPtr<GrpcXdsTransportFactory> factory, Channel* channel,
|
|
73
79
|
const char* method,
|
|
74
|
-
std::unique_ptr<StreamingCall::EventHandler> event_handler
|
|
80
|
+
std::unique_ptr<StreamingCall::EventHandler> event_handler,
|
|
81
|
+
const std::vector<std::pair<std::string, std::string>>& initial_metadata,
|
|
82
|
+
Duration timeout)
|
|
75
83
|
: factory_(std::move(factory)), event_handler_(std::move(event_handler)) {
|
|
84
|
+
Timestamp deadline = (timeout == Duration::Infinity())
|
|
85
|
+
? Timestamp::InfFuture()
|
|
86
|
+
: Timestamp::Now() + timeout;
|
|
76
87
|
// Create call.
|
|
77
88
|
call_ = channel->CreateCall(
|
|
78
89
|
/*parent_call=*/nullptr, GRPC_PROPAGATE_DEFAULTS, /*cq=*/nullptr,
|
|
79
90
|
factory_->interested_parties(), Slice::FromStaticString(method),
|
|
80
|
-
/*authority=*/std::nullopt,
|
|
81
|
-
/*registered_method=*/true);
|
|
91
|
+
/*authority=*/std::nullopt, deadline,
|
|
92
|
+
/*registered_method=*/true, /*arena_init_function=*/std::nullopt);
|
|
82
93
|
GRPC_CHECK_NE(call_, nullptr);
|
|
83
94
|
// Init data associated with the call.
|
|
84
95
|
grpc_metadata_array_init(&initial_metadata_recv_);
|
|
85
96
|
grpc_metadata_array_init(&trailing_metadata_recv_);
|
|
86
97
|
// Initialize closure to be used for sending messages.
|
|
87
98
|
GRPC_CLOSURE_INIT(&on_request_sent_, OnRequestSent, this, nullptr);
|
|
99
|
+
GRPC_CLOSURE_INIT(&on_half_closed_, OnHalfClosed, this, nullptr);
|
|
88
100
|
// Start ops on the call.
|
|
89
101
|
grpc_call_error call_error;
|
|
90
102
|
grpc_op ops[2];
|
|
91
103
|
memset(ops, 0, sizeof(ops));
|
|
92
104
|
// Send initial metadata.
|
|
105
|
+
send_initial_metadata_.resize(initial_metadata.size());
|
|
106
|
+
for (size_t i = 0; i < initial_metadata.size(); ++i) {
|
|
107
|
+
send_initial_metadata_[i].key =
|
|
108
|
+
grpc_slice_from_cpp_string(initial_metadata[i].first);
|
|
109
|
+
send_initial_metadata_[i].value =
|
|
110
|
+
grpc_slice_from_cpp_string(initial_metadata[i].second);
|
|
111
|
+
}
|
|
93
112
|
grpc_op* op = ops;
|
|
94
113
|
op->op = GRPC_OP_SEND_INITIAL_METADATA;
|
|
95
|
-
op->data.send_initial_metadata.count =
|
|
114
|
+
op->data.send_initial_metadata.count = send_initial_metadata_.size();
|
|
115
|
+
op->data.send_initial_metadata.metadata =
|
|
116
|
+
send_initial_metadata_.empty() ? nullptr : send_initial_metadata_.data();
|
|
96
117
|
op->flags = GRPC_INITIAL_METADATA_WAIT_FOR_READY |
|
|
97
118
|
GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET;
|
|
98
119
|
op->reserved = nullptr;
|
|
@@ -136,6 +157,10 @@ GrpcXdsTransportFactory::GrpcXdsTransport::GrpcStreamingCall::
|
|
|
136
157
|
grpc_byte_buffer_destroy(send_message_payload_);
|
|
137
158
|
grpc_byte_buffer_destroy(recv_message_payload_);
|
|
138
159
|
CSliceUnref(status_details_);
|
|
160
|
+
for (auto& md : send_initial_metadata_) {
|
|
161
|
+
CSliceUnref(md.key);
|
|
162
|
+
CSliceUnref(md.value);
|
|
163
|
+
}
|
|
139
164
|
GRPC_CHECK_NE(call_, nullptr);
|
|
140
165
|
grpc_call_unref(call_);
|
|
141
166
|
}
|
|
@@ -181,6 +206,18 @@ void GrpcXdsTransportFactory::GrpcXdsTransport::GrpcStreamingCall::
|
|
|
181
206
|
GRPC_CHECK_EQ(call_error, GRPC_CALL_OK);
|
|
182
207
|
}
|
|
183
208
|
|
|
209
|
+
void GrpcXdsTransportFactory::GrpcXdsTransport::GrpcStreamingCall::
|
|
210
|
+
SendHalfClose() {
|
|
211
|
+
Ref(DEBUG_LOCATION, "SendHalfClose").release();
|
|
212
|
+
grpc_op op;
|
|
213
|
+
memset(&op, 0, sizeof(op));
|
|
214
|
+
op.op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;
|
|
215
|
+
GRPC_CHECK_NE(call_, nullptr);
|
|
216
|
+
const grpc_call_error call_error =
|
|
217
|
+
grpc_call_start_batch_and_execute(call_, &op, 1, &on_half_closed_);
|
|
218
|
+
GRPC_CHECK_EQ(call_error, GRPC_CALL_OK);
|
|
219
|
+
}
|
|
220
|
+
|
|
184
221
|
void GrpcXdsTransportFactory::GrpcXdsTransport::GrpcStreamingCall::
|
|
185
222
|
OnRecvInitialMetadata(void* arg, grpc_error_handle /*error*/) {
|
|
186
223
|
RefCountedPtr<GrpcStreamingCall> self(static_cast<GrpcStreamingCall*>(arg));
|
|
@@ -197,6 +234,11 @@ void GrpcXdsTransportFactory::GrpcXdsTransport::GrpcStreamingCall::
|
|
|
197
234
|
self->event_handler_->OnRequestSent(error.ok());
|
|
198
235
|
}
|
|
199
236
|
|
|
237
|
+
void GrpcXdsTransportFactory::GrpcXdsTransport::GrpcStreamingCall::OnHalfClosed(
|
|
238
|
+
void* arg, grpc_error_handle /*error*/) {
|
|
239
|
+
RefCountedPtr<GrpcStreamingCall> self(static_cast<GrpcStreamingCall*>(arg));
|
|
240
|
+
}
|
|
241
|
+
|
|
200
242
|
void GrpcXdsTransportFactory::GrpcXdsTransport::GrpcStreamingCall::
|
|
201
243
|
OnResponseReceived(void* arg, grpc_error_handle /*error*/) {
|
|
202
244
|
RefCountedPtr<GrpcStreamingCall> self(static_cast<GrpcStreamingCall*>(arg));
|
|
@@ -279,23 +321,66 @@ RefCountedPtr<Channel> CreateXdsChannel(
|
|
|
279
321
|
server.server_uri().c_str(), channel_creds.get(), args.ToC().get())));
|
|
280
322
|
}
|
|
281
323
|
|
|
324
|
+
std::string GetChannelKey(const GrpcXdsServerInterface& server) {
|
|
325
|
+
std::string result = "{server_uri=";
|
|
326
|
+
absl::StrAppend(&result, server.server_uri());
|
|
327
|
+
if (server.channel_creds_config() != nullptr) {
|
|
328
|
+
absl::StrAppend(
|
|
329
|
+
&result,
|
|
330
|
+
", channel_creds={type=", server.channel_creds_config()->type(),
|
|
331
|
+
", config=", server.channel_creds_config()->ToString(), "}");
|
|
332
|
+
}
|
|
333
|
+
for (const auto& call_creds_config : server.call_creds_configs()) {
|
|
334
|
+
absl::StrAppend(&result, ", call_creds={type=", call_creds_config->type(),
|
|
335
|
+
", config=", call_creds_config->ToString(), "}");
|
|
336
|
+
}
|
|
337
|
+
absl::StrAppend(&result, "}");
|
|
338
|
+
return result;
|
|
339
|
+
}
|
|
340
|
+
|
|
282
341
|
} // namespace
|
|
283
342
|
|
|
343
|
+
class GrpcXdsTransportFactory::SharedChannel final
|
|
344
|
+
: public RefCounted<SharedChannel> {
|
|
345
|
+
public:
|
|
346
|
+
SharedChannel(std::string key, RefCountedPtr<Channel> channel,
|
|
347
|
+
WeakRefCountedPtr<GrpcXdsTransportFactory> factory)
|
|
348
|
+
: key_(std::move(key)),
|
|
349
|
+
channel_(std::move(channel)),
|
|
350
|
+
factory_(std::move(factory)) {}
|
|
351
|
+
|
|
352
|
+
~SharedChannel() override {
|
|
353
|
+
MutexLock lock(&factory_->mu_);
|
|
354
|
+
auto it = factory_->channels_.find(key_);
|
|
355
|
+
if (it != factory_->channels_.end() && it->second == this) {
|
|
356
|
+
factory_->channels_.erase(it);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
Channel* channel() const { return channel_.get(); }
|
|
361
|
+
|
|
362
|
+
private:
|
|
363
|
+
std::string key_;
|
|
364
|
+
RefCountedPtr<Channel> channel_;
|
|
365
|
+
WeakRefCountedPtr<GrpcXdsTransportFactory> factory_;
|
|
366
|
+
};
|
|
367
|
+
|
|
284
368
|
GrpcXdsTransportFactory::GrpcXdsTransport::GrpcXdsTransport(
|
|
285
369
|
WeakRefCountedPtr<GrpcXdsTransportFactory> factory,
|
|
370
|
+
RefCountedPtr<SharedChannel> channel,
|
|
286
371
|
const XdsBootstrap::XdsServerTarget& server, absl::Status* status)
|
|
287
372
|
: XdsTransport(GRPC_TRACE_FLAG_ENABLED(xds_client_refcount)
|
|
288
373
|
? "GrpcXdsTransport"
|
|
289
374
|
: nullptr),
|
|
290
375
|
factory_(std::move(factory)),
|
|
291
|
-
key_(server.Key())
|
|
376
|
+
key_(server.Key()),
|
|
377
|
+
channel_(std::move(channel)) {
|
|
292
378
|
GRPC_TRACE_LOG(xds_client, INFO)
|
|
293
379
|
<< "[GrpcXdsTransport " << this << "] created";
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
if (channel_->IsLame()) {
|
|
380
|
+
const auto& grpc_server = DownCast<const GrpcXdsServerInterface&>(server);
|
|
381
|
+
initial_metadata_ = grpc_server.initial_metadata();
|
|
382
|
+
timeout_ = grpc_server.timeout();
|
|
383
|
+
if (channel_->channel()->IsLame()) {
|
|
299
384
|
*status = absl::UnavailableError("xds client has a lame channel");
|
|
300
385
|
}
|
|
301
386
|
}
|
|
@@ -327,20 +412,20 @@ void GrpcXdsTransportFactory::GrpcXdsTransport::Orphaned() {
|
|
|
327
412
|
|
|
328
413
|
void GrpcXdsTransportFactory::GrpcXdsTransport::StartConnectivityFailureWatch(
|
|
329
414
|
RefCountedPtr<ConnectivityFailureWatcher> watcher) {
|
|
330
|
-
if (channel_->IsLame()) return;
|
|
415
|
+
if (channel_->channel()->IsLame()) return;
|
|
331
416
|
auto* state_watcher = new StateWatcher(watcher);
|
|
332
417
|
{
|
|
333
418
|
MutexLock lock(&mu_);
|
|
334
419
|
watchers_.emplace(watcher, state_watcher);
|
|
335
420
|
}
|
|
336
|
-
channel_->AddConnectivityWatcher(
|
|
421
|
+
channel_->channel()->AddConnectivityWatcher(
|
|
337
422
|
GRPC_CHANNEL_IDLE,
|
|
338
423
|
OrphanablePtr<AsyncConnectivityStateWatcherInterface>(state_watcher));
|
|
339
424
|
}
|
|
340
425
|
|
|
341
426
|
void GrpcXdsTransportFactory::GrpcXdsTransport::StopConnectivityFailureWatch(
|
|
342
427
|
const RefCountedPtr<ConnectivityFailureWatcher>& watcher) {
|
|
343
|
-
if (channel_->IsLame()) return;
|
|
428
|
+
if (channel_->channel()->IsLame()) return;
|
|
344
429
|
StateWatcher* state_watcher = nullptr;
|
|
345
430
|
{
|
|
346
431
|
MutexLock lock(&mu_);
|
|
@@ -349,7 +434,7 @@ void GrpcXdsTransportFactory::GrpcXdsTransport::StopConnectivityFailureWatch(
|
|
|
349
434
|
state_watcher = it->second;
|
|
350
435
|
watchers_.erase(it);
|
|
351
436
|
}
|
|
352
|
-
channel_->RemoveConnectivityWatcher(state_watcher);
|
|
437
|
+
channel_->channel()->RemoveConnectivityWatcher(state_watcher);
|
|
353
438
|
}
|
|
354
439
|
|
|
355
440
|
OrphanablePtr<XdsTransportFactory::XdsTransport::StreamingCall>
|
|
@@ -357,12 +442,16 @@ GrpcXdsTransportFactory::GrpcXdsTransport::CreateStreamingCall(
|
|
|
357
442
|
const char* method,
|
|
358
443
|
std::unique_ptr<StreamingCall::EventHandler> event_handler) {
|
|
359
444
|
return MakeOrphanable<GrpcStreamingCall>(
|
|
360
|
-
factory_.WeakRef(DEBUG_LOCATION, "StreamingCall"), channel_
|
|
361
|
-
std::move(event_handler));
|
|
445
|
+
factory_.WeakRef(DEBUG_LOCATION, "StreamingCall"), channel_->channel(),
|
|
446
|
+
method, std::move(event_handler), initial_metadata_, timeout_);
|
|
362
447
|
}
|
|
363
448
|
|
|
364
449
|
void GrpcXdsTransportFactory::GrpcXdsTransport::ResetBackoff() {
|
|
365
|
-
channel_->ResetConnectionBackoff();
|
|
450
|
+
channel_->channel()->ResetConnectionBackoff();
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
Channel* GrpcXdsTransportFactory::GrpcXdsTransport::channel() const {
|
|
454
|
+
return channel_->channel();
|
|
366
455
|
}
|
|
367
456
|
|
|
368
457
|
//
|
|
@@ -406,8 +495,24 @@ GrpcXdsTransportFactory::GetTransport(
|
|
|
406
495
|
transport = it->second->RefIfNonZero().TakeAsSubclass<GrpcXdsTransport>();
|
|
407
496
|
}
|
|
408
497
|
if (transport == nullptr) {
|
|
498
|
+
const auto& grpc_server = DownCast<const GrpcXdsServerInterface&>(server);
|
|
499
|
+
std::string channel_key = GetChannelKey(grpc_server);
|
|
500
|
+
auto channel_it = channels_.find(channel_key);
|
|
501
|
+
RefCountedPtr<SharedChannel> channel;
|
|
502
|
+
if (channel_it != channels_.end()) {
|
|
503
|
+
channel = channel_it->second->Ref();
|
|
504
|
+
} else {
|
|
505
|
+
RefCountedPtr<Channel> raw_channel =
|
|
506
|
+
CreateXdsChannel(args_, *certificate_provider_store_, grpc_server);
|
|
507
|
+
GRPC_CHECK(raw_channel != nullptr);
|
|
508
|
+
channel = MakeRefCounted<SharedChannel>(
|
|
509
|
+
channel_key, std::move(raw_channel),
|
|
510
|
+
WeakRefAsSubclass<GrpcXdsTransportFactory>());
|
|
511
|
+
channels_.emplace(channel_key, channel.get());
|
|
512
|
+
}
|
|
409
513
|
transport = MakeRefCounted<GrpcXdsTransport>(
|
|
410
|
-
WeakRefAsSubclass<GrpcXdsTransportFactory>(),
|
|
514
|
+
WeakRefAsSubclass<GrpcXdsTransportFactory>(), std::move(channel),
|
|
515
|
+
server, status);
|
|
411
516
|
transports_.emplace(std::move(key), transport.get());
|
|
412
517
|
}
|
|
413
518
|
return transport;
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
#include <functional>
|
|
26
26
|
#include <memory>
|
|
27
27
|
#include <string>
|
|
28
|
+
#include <utility>
|
|
29
|
+
#include <vector>
|
|
28
30
|
|
|
29
31
|
#include "src/core/lib/channel/channel_args.h"
|
|
30
32
|
#include "src/core/lib/iomgr/closure.h"
|
|
@@ -34,6 +36,7 @@
|
|
|
34
36
|
#include "src/core/util/orphanable.h"
|
|
35
37
|
#include "src/core/util/ref_counted_ptr.h"
|
|
36
38
|
#include "src/core/util/sync.h"
|
|
39
|
+
#include "src/core/util/time.h"
|
|
37
40
|
#include "src/core/xds/grpc/certificate_provider_store_interface.h"
|
|
38
41
|
#include "src/core/xds/xds_client/xds_bootstrap.h"
|
|
39
42
|
#include "src/core/xds/xds_client/xds_transport.h"
|
|
@@ -60,6 +63,8 @@ class GrpcXdsTransportFactory final : public XdsTransportFactory {
|
|
|
60
63
|
grpc_pollset_set* interested_parties() const { return interested_parties_; }
|
|
61
64
|
|
|
62
65
|
private:
|
|
66
|
+
class SharedChannel;
|
|
67
|
+
|
|
63
68
|
ChannelArgs args_;
|
|
64
69
|
RefCountedPtr<CertificateProviderStoreInterface> certificate_provider_store_;
|
|
65
70
|
grpc_pollset_set* interested_parties_;
|
|
@@ -67,6 +72,8 @@ class GrpcXdsTransportFactory final : public XdsTransportFactory {
|
|
|
67
72
|
Mutex mu_;
|
|
68
73
|
absl::flat_hash_map<std::string /*XdsServerTarget key*/, GrpcXdsTransport*>
|
|
69
74
|
transports_ ABSL_GUARDED_BY(&mu_);
|
|
75
|
+
absl::flat_hash_map<std::string /*Channel key*/, SharedChannel*> channels_
|
|
76
|
+
ABSL_GUARDED_BY(&mu_);
|
|
70
77
|
};
|
|
71
78
|
|
|
72
79
|
class GrpcXdsTransportFactory::GrpcXdsTransport final
|
|
@@ -75,6 +82,7 @@ class GrpcXdsTransportFactory::GrpcXdsTransport final
|
|
|
75
82
|
class GrpcStreamingCall;
|
|
76
83
|
|
|
77
84
|
GrpcXdsTransport(WeakRefCountedPtr<GrpcXdsTransportFactory> factory,
|
|
85
|
+
RefCountedPtr<SharedChannel> channel,
|
|
78
86
|
const XdsBootstrap::XdsServerTarget& server,
|
|
79
87
|
absl::Status* status);
|
|
80
88
|
~GrpcXdsTransport() override;
|
|
@@ -92,12 +100,16 @@ class GrpcXdsTransportFactory::GrpcXdsTransport final
|
|
|
92
100
|
|
|
93
101
|
void ResetBackoff() override;
|
|
94
102
|
|
|
103
|
+
Channel* channel() const;
|
|
104
|
+
|
|
95
105
|
private:
|
|
96
106
|
class StateWatcher;
|
|
97
107
|
|
|
98
108
|
WeakRefCountedPtr<GrpcXdsTransportFactory> factory_;
|
|
99
109
|
std::string key_;
|
|
100
|
-
RefCountedPtr<
|
|
110
|
+
RefCountedPtr<SharedChannel> channel_;
|
|
111
|
+
std::vector<std::pair<std::string, std::string>> initial_metadata_;
|
|
112
|
+
Duration timeout_;
|
|
101
113
|
|
|
102
114
|
Mutex mu_;
|
|
103
115
|
absl::flat_hash_map<RefCountedPtr<ConnectivityFailureWatcher>, StateWatcher*>
|
|
@@ -107,9 +119,12 @@ class GrpcXdsTransportFactory::GrpcXdsTransport final
|
|
|
107
119
|
class GrpcXdsTransportFactory::GrpcXdsTransport::GrpcStreamingCall final
|
|
108
120
|
: public XdsTransportFactory::XdsTransport::StreamingCall {
|
|
109
121
|
public:
|
|
110
|
-
GrpcStreamingCall(
|
|
111
|
-
|
|
112
|
-
|
|
122
|
+
GrpcStreamingCall(
|
|
123
|
+
WeakRefCountedPtr<GrpcXdsTransportFactory> factory, Channel* channel,
|
|
124
|
+
const char* method,
|
|
125
|
+
std::unique_ptr<StreamingCall::EventHandler> event_handler,
|
|
126
|
+
const std::vector<std::pair<std::string, std::string>>& initial_metadata,
|
|
127
|
+
Duration timeout);
|
|
113
128
|
~GrpcStreamingCall() override;
|
|
114
129
|
|
|
115
130
|
void Orphan() override;
|
|
@@ -118,9 +133,12 @@ class GrpcXdsTransportFactory::GrpcXdsTransport::GrpcStreamingCall final
|
|
|
118
133
|
|
|
119
134
|
void StartRecvMessage() override;
|
|
120
135
|
|
|
136
|
+
void SendHalfClose() override;
|
|
137
|
+
|
|
121
138
|
private:
|
|
122
139
|
static void OnRecvInitialMetadata(void* arg, grpc_error_handle /*error*/);
|
|
123
140
|
static void OnRequestSent(void* arg, grpc_error_handle error);
|
|
141
|
+
static void OnHalfClosed(void* arg, grpc_error_handle error);
|
|
124
142
|
static void OnResponseReceived(void* arg, grpc_error_handle /*error*/);
|
|
125
143
|
static void OnStatusReceived(void* arg, grpc_error_handle /*error*/);
|
|
126
144
|
|
|
@@ -135,10 +153,16 @@ class GrpcXdsTransportFactory::GrpcXdsTransport::GrpcStreamingCall final
|
|
|
135
153
|
grpc_metadata_array initial_metadata_recv_;
|
|
136
154
|
grpc_closure on_recv_initial_metadata_;
|
|
137
155
|
|
|
156
|
+
// send_initial_metadata
|
|
157
|
+
std::vector<grpc_metadata> send_initial_metadata_;
|
|
158
|
+
|
|
138
159
|
// send_message
|
|
139
160
|
grpc_byte_buffer* send_message_payload_ = nullptr;
|
|
140
161
|
grpc_closure on_request_sent_;
|
|
141
162
|
|
|
163
|
+
// half_close
|
|
164
|
+
grpc_closure on_half_closed_;
|
|
165
|
+
|
|
142
166
|
// recv_message
|
|
143
167
|
grpc_byte_buffer* recv_message_payload_ = nullptr;
|
|
144
168
|
grpc_closure on_response_received_;
|