grpc 1.33.0.pre1 → 1.37.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +1075 -2814
- data/etc/roots.pem +257 -573
- data/include/grpc/compression.h +1 -1
- data/include/grpc/grpc.h +29 -2
- data/include/grpc/grpc_security.h +215 -175
- data/include/grpc/impl/codegen/atm_windows.h +4 -0
- data/include/grpc/impl/codegen/byte_buffer.h +1 -1
- data/include/grpc/impl/codegen/grpc_types.h +10 -3
- data/include/grpc/impl/codegen/log.h +0 -2
- data/include/grpc/impl/codegen/port_platform.h +24 -55
- data/include/grpc/impl/codegen/sync_windows.h +4 -0
- data/include/grpc/slice_buffer.h +3 -3
- data/include/grpc/support/sync.h +3 -3
- data/include/grpc/support/time.h +7 -7
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +2829 -1588
- data/src/core/ext/filters/client_channel/client_channel.h +0 -6
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/ext/filters/client_channel/config_selector.h +15 -4
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +191 -0
- data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +10 -7
- data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -4
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +7 -8
- data/src/core/ext/filters/client_channel/http_proxy.cc +21 -20
- data/src/core/ext/filters/client_channel/lb_policy.cc +9 -2
- data/src/core/ext/filters/client_channel/lb_policy.h +5 -6
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +115 -106
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +55 -23
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +23 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +27 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +8 -5
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +370 -109
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +52 -24
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +29 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/{eds_drop.cc → xds_cluster_impl.cc} +332 -108
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +22 -27
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1384 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
- data/src/core/ext/filters/client_channel/resolver.cc +7 -5
- data/src/core/ext/filters/client_channel/resolver.h +5 -13
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +42 -58
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -32
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +3 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +444 -22
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +22 -23
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +21 -18
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +377 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +37 -30
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +342 -133
- data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
- data/src/core/ext/filters/client_channel/resolver_registry.cc +40 -39
- data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +24 -38
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +8 -8
- data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -3
- data/src/core/ext/filters/client_channel/retry_throttle.h +4 -2
- data/src/core/ext/filters/client_channel/server_address.cc +9 -0
- data/src/core/ext/filters/client_channel/server_address.h +31 -4
- data/src/core/ext/filters/client_channel/service_config.cc +3 -1
- data/src/core/ext/filters/client_channel/service_config.h +1 -1
- data/src/core/ext/filters/client_channel/service_config_call_data.h +19 -1
- data/src/core/ext/filters/client_channel/subchannel.cc +117 -207
- data/src/core/ext/filters/client_channel/subchannel.h +75 -113
- data/src/core/ext/filters/client_channel/subchannel_interface.h +7 -15
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -10
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +1 -1
- data/src/core/ext/filters/deadline/deadline_filter.cc +87 -79
- data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +495 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
- data/src/core/ext/filters/http/client/http_client_filter.cc +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +6 -6
- data/src/core/ext/filters/http/http_filters_plugin.cc +6 -3
- data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
- data/src/core/ext/filters/max_age/max_age_filter.cc +36 -33
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +1 -1
- data/src/core/ext/filters/workarounds/workaround_utils.cc +1 -1
- data/src/core/ext/transport/chttp2/client/authority.cc +3 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -2
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +1 -1
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +23 -10
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +21 -10
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +29 -16
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +629 -211
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +11 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -5
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +62 -18
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +50 -39
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +5 -1
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -8
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
- data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/writing.cc +2 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +42 -8
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +27 -28
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +139 -40
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +350 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1348 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +44 -17
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +119 -124
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +450 -284
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +24 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +62 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +21 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +88 -39
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +15 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +69 -45
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +275 -78
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +19 -19
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +80 -43
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +27 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +30 -30
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +136 -49
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +41 -41
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +172 -89
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +17 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +53 -47
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +188 -78
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +9 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +48 -7
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +13 -14
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +59 -36
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +61 -29
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +26 -26
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +101 -66
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +34 -32
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +151 -61
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +33 -29
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +138 -54
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +2 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +13 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +81 -35
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +70 -37
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +257 -216
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +995 -495
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +26 -6
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +3 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +17 -3
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +67 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +78 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +281 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +96 -98
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +378 -226
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +28 -25
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +124 -53
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +9 -12
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +29 -24
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +32 -33
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +118 -67
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +51 -44
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +179 -129
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +1 -4
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +1 -4
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +7 -8
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +31 -16
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +1 -3
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +93 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +323 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +29 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +2 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +16 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +19 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +46 -3
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +41 -8
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +19 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +7 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +34 -34
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +149 -72
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +54 -37
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +171 -59
- data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/http.upb.h +25 -6
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +90 -90
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +455 -292
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +22 -3
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +55 -0
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +10 -3
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +4 -4
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -3
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +41 -41
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +149 -76
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -6
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +13 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +17 -17
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +82 -25
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +19 -0
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +9 -2
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +64 -64
- data/src/core/ext/upb-generated/validate/validate.upb.h +296 -157
- data/src/core/ext/upb-generated/{udpa/core/v1 → xds/core/v3}/authority.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +60 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +143 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +84 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +94 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +166 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +251 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +383 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +543 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +145 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +136 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +272 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +135 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +143 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +233 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +231 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +68 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +107 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +113 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +195 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +193 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +101 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +944 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +290 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +120 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +76 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +505 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +170 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +97 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +246 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +142 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +73 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +80 -0
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +80 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +130 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +73 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +70 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +33 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +310 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +62 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +67 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
- data/src/core/ext/xds/certificate_provider_factory.h +7 -5
- data/src/core/ext/xds/certificate_provider_store.cc +87 -0
- data/src/core/ext/xds/certificate_provider_store.h +70 -8
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +144 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +69 -0
- data/src/core/ext/xds/xds_api.cc +2378 -1183
- data/src/core/ext/xds/xds_api.h +373 -99
- data/src/core/ext/xds/xds_bootstrap.cc +250 -68
- data/src/core/ext/xds/xds_bootstrap.h +40 -13
- data/src/core/ext/xds/xds_certificate_provider.cc +405 -0
- data/src/core/ext/xds/xds_certificate_provider.h +151 -0
- data/src/core/ext/xds/xds_client.cc +364 -182
- data/src/core/ext/xds/xds_client.h +47 -12
- data/src/core/ext/xds/xds_client_stats.cc +43 -5
- data/src/core/ext/xds/xds_client_stats.h +4 -4
- data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
- data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
- data/src/core/ext/xds/xds_http_filters.cc +114 -0
- data/src/core/ext/xds/xds_http_filters.h +130 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +532 -0
- data/src/core/lib/channel/channel_args.cc +9 -8
- data/src/core/lib/channel/channel_stack.cc +12 -0
- data/src/core/lib/channel/channel_stack.h +7 -0
- data/src/core/lib/channel/channel_trace.cc +4 -2
- data/src/core/lib/channel/channel_trace.h +1 -1
- data/src/core/lib/channel/channelz.cc +105 -18
- data/src/core/lib/channel/channelz.h +32 -4
- data/src/core/lib/channel/channelz_registry.cc +14 -0
- data/src/core/lib/channel/channelz_registry.h +0 -1
- data/src/core/lib/channel/handshaker.cc +4 -46
- data/src/core/lib/channel/handshaker.h +3 -20
- data/src/core/lib/channel/status_util.cc +12 -2
- data/src/core/lib/channel/status_util.h +5 -0
- data/src/core/lib/compression/compression.cc +8 -4
- data/src/core/lib/compression/compression_args.cc +3 -2
- data/src/core/lib/compression/compression_internal.cc +10 -5
- data/src/core/lib/compression/compression_internal.h +2 -1
- data/src/core/lib/compression/stream_compression_identity.cc +1 -3
- data/src/core/lib/debug/stats.h +2 -2
- data/src/core/lib/debug/stats_data.cc +1 -0
- data/src/core/lib/debug/stats_data.h +13 -13
- data/src/core/lib/gpr/alloc.cc +3 -2
- data/src/core/lib/gpr/cpu_iphone.cc +10 -2
- data/src/core/lib/gpr/log.cc +59 -17
- data/src/core/lib/gpr/log_linux.cc +19 -3
- data/src/core/lib/gpr/log_posix.cc +15 -1
- data/src/core/lib/gpr/log_windows.cc +18 -4
- data/src/core/lib/gpr/murmur_hash.cc +1 -1
- data/src/core/lib/gpr/spinlock.h +10 -2
- data/src/core/lib/gpr/string.cc +23 -22
- data/src/core/lib/gpr/string.h +5 -6
- data/src/core/lib/gpr/sync.cc +4 -4
- data/src/core/lib/gpr/sync_abseil.cc +3 -6
- data/src/core/lib/gpr/sync_windows.cc +2 -2
- data/src/core/lib/gpr/time.cc +12 -12
- data/src/core/lib/gpr/time_precise.cc +3 -2
- data/src/core/lib/gpr/tls.h +4 -0
- data/src/core/lib/gpr/tls_msvc.h +2 -0
- data/src/core/lib/gpr/tls_stdcpp.h +48 -0
- data/src/core/lib/gpr/useful.h +5 -4
- data/src/core/lib/gprpp/arena.h +3 -2
- data/src/core/lib/gprpp/atomic.h +3 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +46 -51
- data/src/core/lib/gprpp/examine_stack.cc +43 -0
- data/src/core/lib/gprpp/examine_stack.h +46 -0
- data/src/core/lib/gprpp/fork.cc +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +1 -1
- data/src/core/lib/gprpp/mpscq.cc +2 -2
- data/src/core/lib/gprpp/orphanable.h +4 -8
- data/src/core/lib/gprpp/ref_counted.h +42 -48
- data/src/core/lib/gprpp/ref_counted_ptr.h +20 -12
- data/src/core/lib/{security/authorization/mock_cel/statusor.h → gprpp/stat.h} +13 -25
- data/src/core/lib/gprpp/stat_posix.cc +49 -0
- data/src/core/lib/gprpp/stat_windows.cc +48 -0
- data/src/core/lib/gprpp/sync.h +129 -40
- data/src/core/lib/gprpp/thd.h +3 -3
- data/src/core/lib/gprpp/thd_posix.cc +42 -37
- data/src/core/lib/gprpp/thd_windows.cc +3 -1
- data/src/core/lib/gprpp/time_util.cc +77 -0
- data/src/core/lib/gprpp/time_util.h +42 -0
- data/src/core/lib/http/httpcli.cc +1 -1
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +3 -3
- data/src/core/lib/http/parser.cc +47 -27
- data/src/core/lib/iomgr/buffer_list.h +1 -1
- data/src/core/lib/iomgr/call_combiner.cc +8 -5
- data/src/core/lib/iomgr/cfstream_handle.cc +2 -2
- data/src/core/lib/iomgr/combiner.cc +2 -1
- data/src/core/lib/iomgr/endpoint.h +1 -1
- data/src/core/lib/iomgr/error.cc +17 -12
- data/src/core/lib/iomgr/error.h +1 -1
- data/src/core/lib/iomgr/error_internal.h +1 -1
- data/src/core/lib/iomgr/ev_apple.cc +11 -8
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +23 -16
- data/src/core/lib/iomgr/ev_epollex_linux.cc +29 -21
- data/src/core/lib/iomgr/ev_poll_posix.cc +9 -7
- data/src/core/lib/iomgr/ev_posix.cc +3 -3
- data/src/core/lib/iomgr/exec_ctx.cc +7 -3
- data/src/core/lib/iomgr/exec_ctx.h +6 -4
- data/src/core/lib/iomgr/executor.cc +2 -1
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
- data/src/core/lib/iomgr/executor/threadpool.h +4 -4
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/iomgr_posix.cc +0 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +0 -1
- data/src/core/lib/iomgr/load_file.h +1 -1
- data/src/core/lib/iomgr/lockfree_event.cc +19 -14
- data/src/core/lib/iomgr/lockfree_event.h +2 -2
- data/src/core/lib/iomgr/parse_address.cc +127 -43
- data/src/core/lib/iomgr/parse_address.h +32 -8
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +2 -1
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +1 -1
- data/src/core/lib/iomgr/pollset_set_custom.cc +1 -1
- data/src/core/lib/iomgr/python_util.h +4 -4
- data/src/core/lib/iomgr/resolve_address.cc +4 -4
- data/src/core/lib/iomgr/resolve_address_posix.cc +1 -5
- data/src/core/lib/iomgr/resource_quota.cc +5 -5
- data/src/core/lib/iomgr/sockaddr_utils.cc +131 -11
- data/src/core/lib/iomgr/sockaddr_utils.h +26 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +3 -2
- data/src/core/lib/iomgr/socket_mutator.cc +3 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
- data/src/core/lib/iomgr/tcp_client.cc +3 -3
- data/src/core/lib/iomgr/tcp_client_custom.cc +7 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +1 -1
- data/src/core/lib/iomgr/tcp_custom.cc +22 -17
- data/src/core/lib/iomgr/tcp_posix.cc +17 -16
- data/src/core/lib/iomgr/tcp_server_custom.cc +28 -22
- data/src/core/lib/iomgr/tcp_uv.cc +2 -2
- data/src/core/lib/iomgr/timer_custom.cc +5 -5
- data/src/core/lib/iomgr/timer_generic.cc +5 -5
- data/src/core/lib/iomgr/timer_manager.cc +3 -3
- data/src/core/lib/iomgr/udp_server.cc +1 -2
- data/src/core/lib/iomgr/udp_server.h +1 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +32 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +5 -0
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +7 -0
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
- data/src/core/lib/json/json.h +12 -2
- data/src/core/lib/json/json_reader.cc +8 -4
- data/src/core/lib/json/json_util.h +167 -0
- data/src/core/lib/json/json_writer.cc +2 -1
- data/src/core/lib/matchers/matchers.cc +339 -0
- data/src/core/lib/matchers/matchers.h +160 -0
- data/src/core/lib/security/context/security_context.cc +4 -3
- data/src/core/lib/security/context/security_context.h +3 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
- data/src/core/lib/security/credentials/credentials.cc +7 -7
- data/src/core/lib/security/credentials/credentials.h +5 -4
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +413 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +80 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +213 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.h +72 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +497 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.h +120 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +135 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +48 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +213 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +58 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +25 -18
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +64 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +4 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -4
- data/src/core/lib/security/credentials/local/local_credentials.cc +2 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +39 -46
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +1 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +7 -6
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +30 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +13 -14
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +399 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +138 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +78 -150
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +57 -187
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +18 -13
- data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -3
- data/src/core/lib/security/credentials/tls/tls_utils.cc +91 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +38 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +209 -10
- data/src/core/lib/security/credentials/xds/xds_credentials.h +27 -9
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +3 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +121 -0
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +87 -0
- data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
- data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +3 -3
- data/src/core/lib/security/security_connector/security_connector.cc +4 -3
- data/src/core/lib/security/security_connector/security_connector.h +4 -2
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -4
- data/src/core/lib/security/security_connector/ssl_utils.cc +11 -6
- data/src/core/lib/security/security_connector/ssl_utils.h +16 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +360 -279
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +105 -61
- data/src/core/lib/security/transport/secure_endpoint.cc +2 -2
- data/src/core/lib/security/transport/security_handshaker.cc +36 -8
- data/src/core/lib/security/transport/server_auth_filter.cc +2 -1
- data/src/core/lib/security/util/json_util.h +1 -0
- data/src/core/lib/slice/slice.cc +7 -4
- data/src/core/lib/slice/slice_buffer.cc +2 -1
- data/src/core/lib/slice/slice_intern.cc +11 -13
- data/src/core/lib/slice/slice_internal.h +2 -2
- data/src/core/lib/surface/call.cc +41 -32
- data/src/core/lib/surface/call_details.cc +8 -8
- data/src/core/lib/surface/channel.cc +16 -10
- data/src/core/lib/surface/channel.h +6 -5
- data/src/core/lib/surface/channel_init.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +31 -25
- data/src/core/lib/surface/completion_queue.h +16 -16
- data/src/core/lib/surface/init.cc +19 -20
- data/src/core/lib/surface/lame_client.cc +47 -54
- data/src/core/lib/surface/lame_client.h +5 -0
- data/src/core/lib/surface/server.cc +106 -53
- data/src/core/lib/surface/server.h +114 -20
- data/src/core/lib/surface/validate_metadata.h +3 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/authority_override.cc +6 -4
- data/src/core/lib/transport/authority_override.h +7 -2
- data/src/core/lib/transport/bdp_estimator.cc +1 -1
- data/src/core/lib/transport/byte_stream.h +3 -3
- data/src/core/lib/transport/connectivity_state.h +9 -7
- data/src/core/lib/transport/error_utils.h +1 -1
- data/src/core/lib/transport/metadata.cc +6 -2
- data/src/core/lib/transport/metadata.h +2 -2
- data/src/core/lib/transport/metadata_batch.cc +27 -0
- data/src/core/lib/transport/metadata_batch.h +18 -4
- data/src/core/lib/transport/static_metadata.cc +1 -1
- data/src/core/lib/transport/status_metadata.cc +4 -3
- data/src/core/lib/transport/timeout_encoding.cc +4 -4
- data/src/core/lib/transport/transport.cc +5 -3
- data/src/core/lib/transport/transport.h +8 -8
- data/src/core/lib/uri/uri_parser.cc +131 -249
- data/src/core/lib/uri/uri_parser.h +57 -21
- data/src/core/plugin_registry/grpc_plugin_registry.cc +26 -8
- data/src/core/tsi/alts/crypt/gsec.cc +5 -4
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +19 -25
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +43 -47
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -4
- data/src/core/tsi/fake_transport_security.cc +17 -5
- data/src/core/tsi/local_transport_security.cc +5 -1
- data/src/core/tsi/local_transport_security.h +6 -7
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -2
- data/src/core/tsi/ssl_transport_security.cc +73 -56
- data/src/core/tsi/ssl_transport_security.h +6 -6
- data/src/core/tsi/transport_security.cc +10 -8
- data/src/core/tsi/transport_security_interface.h +1 -1
- data/src/ruby/ext/grpc/extconf.rb +10 -2
- data/src/ruby/ext/grpc/rb_channel.c +10 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +11 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +36 -14
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +70 -37
- data/src/ruby/ext/grpc/rb_server.c +13 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +35 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +18 -0
- data/src/ruby/spec/call_spec.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +32 -0
- data/src/ruby/spec/channel_spec.rb +17 -6
- data/src/ruby/spec/client_auth_spec.rb +27 -1
- data/src/ruby/spec/errors_spec.rb +1 -1
- data/src/ruby/spec/generic/active_call_spec.rb +2 -2
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
- data/src/ruby/spec/server_credentials_spec.rb +25 -0
- data/src/ruby/spec/server_spec.rb +22 -0
- data/third_party/abseil-cpp/absl/algorithm/container.h +59 -22
- data/third_party/abseil-cpp/absl/base/attributes.h +99 -38
- data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
- data/third_party/abseil-cpp/absl/base/casts.h +9 -6
- data/third_party/abseil-cpp/absl/base/config.h +60 -17
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +428 -335
- data/third_party/abseil-cpp/absl/base/internal/bits.h +17 -16
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +5 -0
- data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +29 -1
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +7 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +25 -38
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +19 -25
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +8 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
- data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +2 -2
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
- data/third_party/abseil-cpp/absl/base/macros.h +36 -109
- data/third_party/abseil-cpp/absl/base/optimization.h +61 -1
- data/third_party/abseil-cpp/absl/base/options.h +31 -4
- data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +94 -39
- data/third_party/abseil-cpp/absl/container/fixed_array.h +42 -25
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +33 -36
- data/third_party/abseil-cpp/absl/container/internal/common.h +6 -2
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +33 -8
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +49 -29
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +15 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +24 -7
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +35 -11
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +10 -9
- data/third_party/abseil-cpp/absl/container/internal/layout.h +7 -5
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +55 -34
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +5 -4
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +66 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +4 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +13 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +43 -24
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +12 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +10 -2
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +22 -1
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +0 -21
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +12 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +100 -20
- data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +1 -1
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
- data/third_party/abseil-cpp/absl/hash/hash.h +6 -5
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +73 -65
- data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +2 -8
- data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
- data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +51 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +399 -0
- data/third_party/abseil-cpp/absl/status/status.cc +4 -6
- data/third_party/abseil-cpp/absl/status/status.h +502 -113
- data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +5 -10
- data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
- data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
- data/third_party/abseil-cpp/absl/strings/charconv.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +91 -112
- data/third_party/abseil-cpp/absl/strings/cord.h +360 -205
- data/third_party/abseil-cpp/absl/strings/escaping.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +45 -23
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +222 -136
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +136 -64
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +14 -21
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -14
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +999 -87
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +4 -12
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +8 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +13 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -2
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
- data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/str_split.h +1 -0
- data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +4 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +28 -28
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +4 -16
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +8 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -2
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -64
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +15 -6
- data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
- data/third_party/abseil-cpp/absl/time/clock.cc +3 -3
- data/third_party/abseil-cpp/absl/time/duration.cc +90 -59
- data/third_party/abseil-cpp/absl/time/format.cc +43 -36
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +26 -16
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +4 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +136 -129
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +8 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -6
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
- data/third_party/abseil-cpp/absl/time/time.h +15 -16
- data/third_party/abseil-cpp/absl/types/internal/variant.h +4 -4
- data/third_party/abseil-cpp/absl/types/optional.h +9 -9
- data/third_party/abseil-cpp/absl/types/span.h +49 -36
- data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
- data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
- data/third_party/boringssl-with-bazel/err_data.c +728 -722
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +3 -10
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +15 -14
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +30 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +28 -79
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +39 -85
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +5 -16
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -61
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +158 -0
- data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +8 -9
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +60 -45
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +87 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/params.c +179 -0
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +21 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +173 -35
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/dh.c +136 -213
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +28 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +135 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +0 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +97 -39
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +155 -2
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +18 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +13 -4
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +90 -63
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +60 -60
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +179 -47
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +1 -29
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_r2x.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +29 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +22 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +39 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +25 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +25 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +40 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +25 -36
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +6 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +24 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +10 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +652 -545
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +0 -167
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +14 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +22 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +19 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +56 -26
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +15 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +12 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +202 -134
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +2 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +122 -34
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +31 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +31 -23
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +287 -99
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +546 -402
- data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +35 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +11 -20
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +10 -5
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +73 -17
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +49 -9
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +87 -14
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +18 -22
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +570 -53
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +55 -13
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +48 -15
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +192 -56
- data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
- data/third_party/upb/upb/decode.c +248 -167
- data/third_party/upb/upb/decode.h +20 -1
- data/third_party/upb/upb/decode.int.h +163 -0
- data/third_party/upb/upb/decode_fast.c +1040 -0
- data/third_party/upb/upb/decode_fast.h +126 -0
- data/third_party/upb/upb/def.c +2178 -0
- data/third_party/upb/upb/def.h +315 -0
- data/third_party/upb/upb/def.hpp +439 -0
- data/third_party/upb/upb/encode.c +227 -169
- data/third_party/upb/upb/encode.h +27 -2
- data/third_party/upb/upb/msg.c +167 -88
- data/third_party/upb/upb/msg.h +174 -34
- data/third_party/upb/upb/port_def.inc +74 -61
- data/third_party/upb/upb/port_undef.inc +3 -7
- data/third_party/upb/upb/reflection.c +408 -0
- data/third_party/upb/upb/reflection.h +168 -0
- data/third_party/upb/upb/table.c +34 -197
- data/third_party/upb/upb/table.int.h +14 -5
- data/third_party/upb/upb/text_encode.c +421 -0
- data/third_party/upb/upb/text_encode.h +38 -0
- data/third_party/upb/upb/upb.c +18 -41
- data/third_party/upb/upb/upb.h +36 -7
- data/third_party/upb/upb/upb.hpp +4 -4
- data/third_party/upb/upb/upb.int.h +29 -0
- data/third_party/xxhash/xxhash.h +5443 -0
- metadata +335 -75
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -1136
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -355
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -138
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +0 -53
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +0 -52
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +0 -129
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +0 -42
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +0 -77
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +0 -36
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +0 -85
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +0 -54
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +0 -160
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +0 -36
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +0 -84
- data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.cc +0 -377
- data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.h +0 -102
- data/src/core/lib/gprpp/map.h +0 -53
- data/src/core/lib/iomgr/iomgr_posix.h +0 -26
- data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
- data/src/core/lib/security/authorization/authorization_engine.h +0 -84
- data/src/core/lib/security/authorization/evaluate_args.cc +0 -153
- data/src/core/lib/security/authorization/evaluate_args.h +0 -59
- data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -42
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -68
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -93
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -56
- data/src/core/lib/security/certificate_provider.h +0 -60
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -503
- data/third_party/upb/upb/port.c +0 -26
@@ -35,14 +35,15 @@
|
|
35
35
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
36
36
|
#include "src/core/ext/filters/client_channel/service_config.h"
|
37
37
|
#include "src/core/ext/xds/xds_api.h"
|
38
|
+
#include "src/core/ext/xds/xds_bootstrap.h"
|
38
39
|
#include "src/core/ext/xds/xds_channel_args.h"
|
39
40
|
#include "src/core/ext/xds/xds_client.h"
|
40
41
|
#include "src/core/ext/xds/xds_client_stats.h"
|
42
|
+
#include "src/core/ext/xds/xds_http_filters.h"
|
41
43
|
#include "src/core/lib/backoff/backoff.h"
|
42
44
|
#include "src/core/lib/channel/channel_args.h"
|
43
45
|
#include "src/core/lib/channel/channel_stack.h"
|
44
46
|
#include "src/core/lib/gpr/string.h"
|
45
|
-
#include "src/core/lib/gprpp/map.h"
|
46
47
|
#include "src/core/lib/gprpp/memory.h"
|
47
48
|
#include "src/core/lib/gprpp/orphanable.h"
|
48
49
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
@@ -50,8 +51,6 @@
|
|
50
51
|
#include "src/core/lib/iomgr/sockaddr.h"
|
51
52
|
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
52
53
|
#include "src/core/lib/iomgr/timer.h"
|
53
|
-
#include "src/core/lib/security/credentials/credentials.h"
|
54
|
-
#include "src/core/lib/security/credentials/fake/fake_credentials.h"
|
55
54
|
#include "src/core/lib/slice/slice_internal.h"
|
56
55
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
57
56
|
#include "src/core/lib/surface/call.h"
|
@@ -68,12 +67,14 @@
|
|
68
67
|
namespace grpc_core {
|
69
68
|
|
70
69
|
TraceFlag grpc_xds_client_trace(false, "xds_client");
|
70
|
+
TraceFlag grpc_xds_client_refcount_trace(false, "xds_client_refcount");
|
71
71
|
|
72
72
|
namespace {
|
73
73
|
|
74
74
|
Mutex* g_mu = nullptr;
|
75
75
|
const grpc_channel_args* g_channel_args = nullptr;
|
76
76
|
XdsClient* g_xds_client = nullptr;
|
77
|
+
char* g_fallback_bootstrap_config = nullptr;
|
77
78
|
|
78
79
|
} // namespace
|
79
80
|
|
@@ -143,8 +144,11 @@ class XdsClient::ChannelState::AdsCallState
|
|
143
144
|
private:
|
144
145
|
class ResourceState : public InternallyRefCounted<ResourceState> {
|
145
146
|
public:
|
146
|
-
ResourceState(const std::string& type_url, const std::string& name
|
147
|
-
|
147
|
+
ResourceState(const std::string& type_url, const std::string& name,
|
148
|
+
bool sent_initial_request)
|
149
|
+
: type_url_(type_url),
|
150
|
+
name_(name),
|
151
|
+
sent_initial_request_(sent_initial_request) {
|
148
152
|
GRPC_CLOSURE_INIT(&timer_callback_, OnTimer, this,
|
149
153
|
grpc_schedule_on_exec_ctx);
|
150
154
|
}
|
@@ -155,8 +159,8 @@ class XdsClient::ChannelState::AdsCallState
|
|
155
159
|
}
|
156
160
|
|
157
161
|
void Start(RefCountedPtr<AdsCallState> ads_calld) {
|
158
|
-
if (
|
159
|
-
|
162
|
+
if (sent_initial_request_) return;
|
163
|
+
sent_initial_request_ = true;
|
160
164
|
ads_calld_ = std::move(ads_calld);
|
161
165
|
Ref(DEBUG_LOCATION, "timer").release();
|
162
166
|
timer_pending_ = true;
|
@@ -192,28 +196,34 @@ class XdsClient::ChannelState::AdsCallState
|
|
192
196
|
"timeout obtaining resource {type=%s name=%s} from xds server",
|
193
197
|
type_url_, name_)
|
194
198
|
.c_str());
|
199
|
+
watcher_error = grpc_error_set_int(
|
200
|
+
watcher_error, GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
195
201
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
196
202
|
gpr_log(GPR_INFO, "[xds_client %p] %s", ads_calld_->xds_client(),
|
197
203
|
grpc_error_string(watcher_error));
|
198
204
|
}
|
199
205
|
if (type_url_ == XdsApi::kLdsTypeUrl) {
|
200
206
|
ListenerState& state = ads_calld_->xds_client()->listener_map_[name_];
|
207
|
+
state.meta.client_status = XdsApi::ResourceMetadata::DOES_NOT_EXIST;
|
201
208
|
for (const auto& p : state.watchers) {
|
202
209
|
p.first->OnError(GRPC_ERROR_REF(watcher_error));
|
203
210
|
}
|
204
211
|
} else if (type_url_ == XdsApi::kRdsTypeUrl) {
|
205
212
|
RouteConfigState& state =
|
206
213
|
ads_calld_->xds_client()->route_config_map_[name_];
|
214
|
+
state.meta.client_status = XdsApi::ResourceMetadata::DOES_NOT_EXIST;
|
207
215
|
for (const auto& p : state.watchers) {
|
208
216
|
p.first->OnError(GRPC_ERROR_REF(watcher_error));
|
209
217
|
}
|
210
218
|
} else if (type_url_ == XdsApi::kCdsTypeUrl) {
|
211
219
|
ClusterState& state = ads_calld_->xds_client()->cluster_map_[name_];
|
220
|
+
state.meta.client_status = XdsApi::ResourceMetadata::DOES_NOT_EXIST;
|
212
221
|
for (const auto& p : state.watchers) {
|
213
222
|
p.first->OnError(GRPC_ERROR_REF(watcher_error));
|
214
223
|
}
|
215
224
|
} else if (type_url_ == XdsApi::kEdsTypeUrl) {
|
216
225
|
EndpointState& state = ads_calld_->xds_client()->endpoint_map_[name_];
|
226
|
+
state.meta.client_status = XdsApi::ResourceMetadata::DOES_NOT_EXIST;
|
217
227
|
for (const auto& p : state.watchers) {
|
218
228
|
p.first->OnError(GRPC_ERROR_REF(watcher_error));
|
219
229
|
}
|
@@ -229,7 +239,7 @@ class XdsClient::ChannelState::AdsCallState
|
|
229
239
|
const std::string name_;
|
230
240
|
|
231
241
|
RefCountedPtr<AdsCallState> ads_calld_;
|
232
|
-
bool
|
242
|
+
bool sent_initial_request_;
|
233
243
|
bool timer_pending_ = false;
|
234
244
|
grpc_timer timer_;
|
235
245
|
grpc_closure timer_callback_;
|
@@ -238,8 +248,7 @@ class XdsClient::ChannelState::AdsCallState
|
|
238
248
|
struct ResourceTypeState {
|
239
249
|
~ResourceTypeState() { GRPC_ERROR_UNREF(error); }
|
240
250
|
|
241
|
-
//
|
242
|
-
std::string version;
|
251
|
+
// Nonce and error for this resource type.
|
243
252
|
std::string nonce;
|
244
253
|
grpc_error* error = GRPC_ERROR_NONE;
|
245
254
|
|
@@ -250,10 +259,14 @@ class XdsClient::ChannelState::AdsCallState
|
|
250
259
|
|
251
260
|
void SendMessageLocked(const std::string& type_url);
|
252
261
|
|
253
|
-
void AcceptLdsUpdate(
|
254
|
-
|
255
|
-
void
|
256
|
-
|
262
|
+
void AcceptLdsUpdate(std::string version, grpc_millis update_time,
|
263
|
+
XdsApi::LdsUpdateMap lds_update_map);
|
264
|
+
void AcceptRdsUpdate(std::string version, grpc_millis update_time,
|
265
|
+
XdsApi::RdsUpdateMap rds_update_map);
|
266
|
+
void AcceptCdsUpdate(std::string version, grpc_millis update_time,
|
267
|
+
XdsApi::CdsUpdateMap cds_update_map);
|
268
|
+
void AcceptEdsUpdate(std::string version, grpc_millis update_time,
|
269
|
+
XdsApi::EdsUpdateMap eds_update_map);
|
257
270
|
|
258
271
|
static void OnRequestSent(void* arg, grpc_error* error);
|
259
272
|
void OnRequestSentLocked(grpc_error* error);
|
@@ -336,7 +349,7 @@ class XdsClient::ChannelState::LrsCallState
|
|
336
349
|
void ScheduleNextReportLocked();
|
337
350
|
static void OnNextReportTimer(void* arg, grpc_error* error);
|
338
351
|
bool OnNextReportTimerLocked(grpc_error* error);
|
339
|
-
|
352
|
+
bool SendReportLocked();
|
340
353
|
static void OnReportDone(void* arg, grpc_error* error);
|
341
354
|
bool OnReportDoneLocked(grpc_error* error);
|
342
355
|
|
@@ -431,11 +444,45 @@ class XdsClient::ChannelState::StateWatcher
|
|
431
444
|
// XdsClient::ChannelState
|
432
445
|
//
|
433
446
|
|
447
|
+
namespace {
|
448
|
+
|
449
|
+
grpc_channel* CreateXdsChannel(const XdsBootstrap::XdsServer& server) {
|
450
|
+
// Build channel args.
|
451
|
+
absl::InlinedVector<grpc_arg, 2> args_to_add = {
|
452
|
+
grpc_channel_arg_integer_create(
|
453
|
+
const_cast<char*>(GRPC_ARG_KEEPALIVE_TIME_MS),
|
454
|
+
5 * 60 * GPR_MS_PER_SEC),
|
455
|
+
grpc_channel_arg_integer_create(
|
456
|
+
const_cast<char*>(GRPC_ARG_CHANNELZ_IS_INTERNAL_CHANNEL), 1),
|
457
|
+
};
|
458
|
+
grpc_channel_args* new_args = grpc_channel_args_copy_and_add(
|
459
|
+
g_channel_args, args_to_add.data(), args_to_add.size());
|
460
|
+
// Create channel creds.
|
461
|
+
RefCountedPtr<grpc_channel_credentials> channel_creds =
|
462
|
+
XdsChannelCredsRegistry::MakeChannelCreds(server.channel_creds_type,
|
463
|
+
server.channel_creds_config);
|
464
|
+
// Create channel.
|
465
|
+
grpc_channel* channel = grpc_secure_channel_create(
|
466
|
+
channel_creds.get(), server.server_uri.c_str(), new_args, nullptr);
|
467
|
+
grpc_channel_args_destroy(new_args);
|
468
|
+
return channel;
|
469
|
+
}
|
470
|
+
|
471
|
+
} // namespace
|
472
|
+
|
434
473
|
XdsClient::ChannelState::ChannelState(WeakRefCountedPtr<XdsClient> xds_client,
|
435
|
-
|
436
|
-
: InternallyRefCounted<ChannelState>(
|
474
|
+
const XdsBootstrap::XdsServer& server)
|
475
|
+
: InternallyRefCounted<ChannelState>(
|
476
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_refcount_trace)
|
477
|
+
? "ChannelState"
|
478
|
+
: nullptr),
|
437
479
|
xds_client_(std::move(xds_client)),
|
438
|
-
|
480
|
+
server_(server) {
|
481
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
482
|
+
gpr_log(GPR_INFO, "[xds_client %p] creating channel to %s",
|
483
|
+
xds_client_.get(), server.server_uri.c_str());
|
484
|
+
}
|
485
|
+
channel_ = CreateXdsChannel(server);
|
439
486
|
GPR_ASSERT(channel_ != nullptr);
|
440
487
|
StartConnectivityWatchLocked();
|
441
488
|
}
|
@@ -468,7 +515,7 @@ XdsClient::ChannelState::LrsCallState* XdsClient::ChannelState::lrs_calld()
|
|
468
515
|
}
|
469
516
|
|
470
517
|
bool XdsClient::ChannelState::HasActiveAdsCall() const {
|
471
|
-
return ads_calld_->calld() != nullptr;
|
518
|
+
return ads_calld_ != nullptr && ads_calld_->calld() != nullptr;
|
472
519
|
}
|
473
520
|
|
474
521
|
void XdsClient::ChannelState::MaybeStartLrsCall() {
|
@@ -634,7 +681,10 @@ void XdsClient::ChannelState::RetryableCall<T>::OnRetryTimerLocked(
|
|
634
681
|
|
635
682
|
XdsClient::ChannelState::AdsCallState::AdsCallState(
|
636
683
|
RefCountedPtr<RetryableCall<AdsCallState>> parent)
|
637
|
-
: InternallyRefCounted<AdsCallState>(
|
684
|
+
: InternallyRefCounted<AdsCallState>(
|
685
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_refcount_trace)
|
686
|
+
? "AdsCallState"
|
687
|
+
: nullptr),
|
638
688
|
parent_(std::move(parent)) {
|
639
689
|
// Init the ADS call. Note that the call will progress every time there's
|
640
690
|
// activity in xds_client()->interested_parties_, which is comprised of
|
@@ -642,7 +692,7 @@ XdsClient::ChannelState::AdsCallState::AdsCallState(
|
|
642
692
|
GPR_ASSERT(xds_client() != nullptr);
|
643
693
|
// Create a call with the specified method name.
|
644
694
|
const auto& method =
|
645
|
-
|
695
|
+
chand()->server_.ShouldUseV3()
|
646
696
|
? GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_DISCOVERY_DOT_V3_DOT_AGGREGATEDDISCOVERYSERVICE_SLASH_STREAMAGGREGATEDRESOURCES
|
647
697
|
: GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_DISCOVERY_DOT_V2_DOT_AGGREGATEDDISCOVERYSERVICE_SLASH_STREAMAGGREGATEDRESOURCES;
|
648
698
|
call_ = grpc_channel_create_pollset_set_call(
|
@@ -672,8 +722,8 @@ XdsClient::ChannelState::AdsCallState::AdsCallState(
|
|
672
722
|
GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET;
|
673
723
|
op->reserved = nullptr;
|
674
724
|
op++;
|
675
|
-
call_error = grpc_call_start_batch_and_execute(
|
676
|
-
|
725
|
+
call_error = grpc_call_start_batch_and_execute(
|
726
|
+
call_, ops, static_cast<size_t>(op - ops), nullptr);
|
677
727
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
678
728
|
// Op: send request message.
|
679
729
|
GRPC_CLOSURE_INIT(&on_request_sent_, OnRequestSent, this,
|
@@ -707,8 +757,8 @@ XdsClient::ChannelState::AdsCallState::AdsCallState(
|
|
707
757
|
Ref(DEBUG_LOCATION, "ADS+OnResponseReceivedLocked").release();
|
708
758
|
GRPC_CLOSURE_INIT(&on_response_received_, OnResponseReceived, this,
|
709
759
|
grpc_schedule_on_exec_ctx);
|
710
|
-
call_error = grpc_call_start_batch_and_execute(
|
711
|
-
|
760
|
+
call_error = grpc_call_start_batch_and_execute(
|
761
|
+
call_, ops, static_cast<size_t>(op - ops), &on_response_received_);
|
712
762
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
713
763
|
// Op: recv server status.
|
714
764
|
op = ops;
|
@@ -724,8 +774,8 @@ XdsClient::ChannelState::AdsCallState::AdsCallState(
|
|
724
774
|
// unreffed.
|
725
775
|
GRPC_CLOSURE_INIT(&on_status_received_, OnStatusReceived, this,
|
726
776
|
grpc_schedule_on_exec_ctx);
|
727
|
-
call_error = grpc_call_start_batch_and_execute(
|
728
|
-
|
777
|
+
call_error = grpc_call_start_batch_and_execute(
|
778
|
+
call_, ops, static_cast<size_t>(op - ops), &on_status_received_);
|
729
779
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
730
780
|
}
|
731
781
|
|
@@ -763,7 +813,8 @@ void XdsClient::ChannelState::AdsCallState::SendMessageLocked(
|
|
763
813
|
std::set<absl::string_view> resource_names =
|
764
814
|
ResourceNamesForRequest(type_url);
|
765
815
|
request_payload_slice = xds_client()->api_.CreateAdsRequest(
|
766
|
-
type_url, resource_names,
|
816
|
+
chand()->server_, type_url, resource_names,
|
817
|
+
xds_client()->resource_version_map_[type_url], state.nonce,
|
767
818
|
GRPC_ERROR_REF(state.error), !sent_initial_message_);
|
768
819
|
if (type_url != XdsApi::kLdsTypeUrl && type_url != XdsApi::kRdsTypeUrl &&
|
769
820
|
type_url != XdsApi::kCdsTypeUrl && type_url != XdsApi::kEdsTypeUrl) {
|
@@ -774,7 +825,8 @@ void XdsClient::ChannelState::AdsCallState::SendMessageLocked(
|
|
774
825
|
gpr_log(GPR_INFO,
|
775
826
|
"[xds_client %p] sending ADS request: type=%s version=%s nonce=%s "
|
776
827
|
"error=%s resources=%s",
|
777
|
-
xds_client(), type_url.c_str(),
|
828
|
+
xds_client(), type_url.c_str(),
|
829
|
+
xds_client()->resource_version_map_[type_url].c_str(),
|
778
830
|
state.nonce.c_str(), grpc_error_string(state.error),
|
779
831
|
absl::StrJoin(resource_names, " ").c_str());
|
780
832
|
}
|
@@ -806,7 +858,8 @@ void XdsClient::ChannelState::AdsCallState::Subscribe(
|
|
806
858
|
const std::string& type_url, const std::string& name) {
|
807
859
|
auto& state = state_map_[type_url].subscribed_resources[name];
|
808
860
|
if (state == nullptr) {
|
809
|
-
state = MakeOrphanable<ResourceState>(
|
861
|
+
state = MakeOrphanable<ResourceState>(
|
862
|
+
type_url, name, !xds_client()->resource_version_map_[type_url].empty());
|
810
863
|
SendMessageLocked(type_url);
|
811
864
|
}
|
812
865
|
}
|
@@ -825,7 +878,24 @@ bool XdsClient::ChannelState::AdsCallState::HasSubscribedResources() const {
|
|
825
878
|
return false;
|
826
879
|
}
|
827
880
|
|
881
|
+
namespace {
|
882
|
+
|
883
|
+
// Build a resource metadata struct for ADS result accepting methods and CSDS.
|
884
|
+
XdsApi::ResourceMetadata CreateResourceMetadataAcked(
|
885
|
+
std::string serialized_proto, std::string version,
|
886
|
+
grpc_millis update_time) {
|
887
|
+
XdsApi::ResourceMetadata resource_metadata;
|
888
|
+
resource_metadata.serialized_proto = std::move(serialized_proto);
|
889
|
+
resource_metadata.update_time = update_time;
|
890
|
+
resource_metadata.version = std::move(version);
|
891
|
+
resource_metadata.client_status = XdsApi::ResourceMetadata::ACKED;
|
892
|
+
return resource_metadata;
|
893
|
+
}
|
894
|
+
|
895
|
+
} // namespace
|
896
|
+
|
828
897
|
void XdsClient::ChannelState::AdsCallState::AcceptLdsUpdate(
|
898
|
+
std::string version, grpc_millis update_time,
|
829
899
|
XdsApi::LdsUpdateMap lds_update_map) {
|
830
900
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
831
901
|
gpr_log(GPR_INFO,
|
@@ -837,23 +907,17 @@ void XdsClient::ChannelState::AdsCallState::AcceptLdsUpdate(
|
|
837
907
|
std::set<std::string> rds_resource_names_seen;
|
838
908
|
for (auto& p : lds_update_map) {
|
839
909
|
const std::string& listener_name = p.first;
|
840
|
-
XdsApi::LdsUpdate& lds_update = p.second;
|
910
|
+
XdsApi::LdsUpdate& lds_update = p.second.resource;
|
841
911
|
auto& state = lds_state.subscribed_resources[listener_name];
|
842
912
|
if (state != nullptr) state->Finish();
|
843
913
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
844
|
-
gpr_log(GPR_INFO, "[xds_client %p] LDS resource %s:
|
845
|
-
|
846
|
-
(!lds_update.route_config_name.empty()
|
847
|
-
? lds_update.route_config_name.c_str()
|
848
|
-
: "<inlined>"));
|
849
|
-
if (lds_update.rds_update.has_value()) {
|
850
|
-
gpr_log(GPR_INFO, "RouteConfiguration: %s",
|
851
|
-
lds_update.rds_update->ToString().c_str());
|
852
|
-
}
|
914
|
+
gpr_log(GPR_INFO, "[xds_client %p] LDS resource %s: %s", xds_client(),
|
915
|
+
listener_name.c_str(), lds_update.ToString().c_str());
|
853
916
|
}
|
854
917
|
// Record the RDS resource names seen.
|
855
|
-
if (!lds_update.route_config_name.empty()) {
|
856
|
-
rds_resource_names_seen.insert(
|
918
|
+
if (!lds_update.http_connection_manager.route_config_name.empty()) {
|
919
|
+
rds_resource_names_seen.insert(
|
920
|
+
lds_update.http_connection_manager.route_config_name);
|
857
921
|
}
|
858
922
|
// Ignore identical update.
|
859
923
|
ListenerState& listener_state = xds_client()->listener_map_[listener_name];
|
@@ -869,6 +933,8 @@ void XdsClient::ChannelState::AdsCallState::AcceptLdsUpdate(
|
|
869
933
|
}
|
870
934
|
// Update the listener state.
|
871
935
|
listener_state.update = std::move(lds_update);
|
936
|
+
listener_state.meta = CreateResourceMetadataAcked(
|
937
|
+
std::move(p.second.serialized_proto), version, update_time);
|
872
938
|
// Notify watchers.
|
873
939
|
for (const auto& p : listener_state.watchers) {
|
874
940
|
p.first->OnListenerChanged(*listener_state.update);
|
@@ -913,6 +979,7 @@ void XdsClient::ChannelState::AdsCallState::AcceptLdsUpdate(
|
|
913
979
|
}
|
914
980
|
|
915
981
|
void XdsClient::ChannelState::AdsCallState::AcceptRdsUpdate(
|
982
|
+
std::string version, grpc_millis update_time,
|
916
983
|
XdsApi::RdsUpdateMap rds_update_map) {
|
917
984
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
918
985
|
gpr_log(GPR_INFO,
|
@@ -923,7 +990,7 @@ void XdsClient::ChannelState::AdsCallState::AcceptRdsUpdate(
|
|
923
990
|
auto& rds_state = state_map_[XdsApi::kRdsTypeUrl];
|
924
991
|
for (auto& p : rds_update_map) {
|
925
992
|
const std::string& route_config_name = p.first;
|
926
|
-
XdsApi::RdsUpdate& rds_update = p.second;
|
993
|
+
XdsApi::RdsUpdate& rds_update = p.second.resource;
|
927
994
|
auto& state = rds_state.subscribed_resources[route_config_name];
|
928
995
|
if (state != nullptr) state->Finish();
|
929
996
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
@@ -944,6 +1011,8 @@ void XdsClient::ChannelState::AdsCallState::AcceptRdsUpdate(
|
|
944
1011
|
}
|
945
1012
|
// Update the cache.
|
946
1013
|
route_config_state.update = std::move(rds_update);
|
1014
|
+
route_config_state.meta = CreateResourceMetadataAcked(
|
1015
|
+
std::move(p.second.serialized_proto), version, update_time);
|
947
1016
|
// Notify all watchers.
|
948
1017
|
for (const auto& p : route_config_state.watchers) {
|
949
1018
|
p.first->OnRouteConfigChanged(*route_config_state.update);
|
@@ -952,6 +1021,7 @@ void XdsClient::ChannelState::AdsCallState::AcceptRdsUpdate(
|
|
952
1021
|
}
|
953
1022
|
|
954
1023
|
void XdsClient::ChannelState::AdsCallState::AcceptCdsUpdate(
|
1024
|
+
std::string version, grpc_millis update_time,
|
955
1025
|
XdsApi::CdsUpdateMap cds_update_map) {
|
956
1026
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
957
1027
|
gpr_log(GPR_INFO,
|
@@ -963,17 +1033,12 @@ void XdsClient::ChannelState::AdsCallState::AcceptCdsUpdate(
|
|
963
1033
|
std::set<std::string> eds_resource_names_seen;
|
964
1034
|
for (auto& p : cds_update_map) {
|
965
1035
|
const char* cluster_name = p.first.c_str();
|
966
|
-
XdsApi::CdsUpdate& cds_update = p.second;
|
1036
|
+
XdsApi::CdsUpdate& cds_update = p.second.resource;
|
967
1037
|
auto& state = cds_state.subscribed_resources[cluster_name];
|
968
1038
|
if (state != nullptr) state->Finish();
|
969
1039
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
970
|
-
gpr_log(GPR_INFO,
|
971
|
-
|
972
|
-
"lrs_load_reporting_server_name=%s",
|
973
|
-
xds_client(), cluster_name, cds_update.eds_service_name.c_str(),
|
974
|
-
cds_update.lrs_load_reporting_server_name.has_value()
|
975
|
-
? cds_update.lrs_load_reporting_server_name.value().c_str()
|
976
|
-
: "(N/A)");
|
1040
|
+
gpr_log(GPR_INFO, "[xds_client %p] cluster=%s: %s", xds_client(),
|
1041
|
+
cluster_name, cds_update.ToString().c_str());
|
977
1042
|
}
|
978
1043
|
// Record the EDS resource names seen.
|
979
1044
|
eds_resource_names_seen.insert(cds_update.eds_service_name.empty()
|
@@ -992,6 +1057,8 @@ void XdsClient::ChannelState::AdsCallState::AcceptCdsUpdate(
|
|
992
1057
|
}
|
993
1058
|
// Update the cluster state.
|
994
1059
|
cluster_state.update = std::move(cds_update);
|
1060
|
+
cluster_state.meta = CreateResourceMetadataAcked(
|
1061
|
+
std::move(p.second.serialized_proto), version, update_time);
|
995
1062
|
// Notify all watchers.
|
996
1063
|
for (const auto& p : cluster_state.watchers) {
|
997
1064
|
p.first->OnClusterChanged(cluster_state.update.value());
|
@@ -1035,6 +1102,7 @@ void XdsClient::ChannelState::AdsCallState::AcceptCdsUpdate(
|
|
1035
1102
|
}
|
1036
1103
|
|
1037
1104
|
void XdsClient::ChannelState::AdsCallState::AcceptEdsUpdate(
|
1105
|
+
std::string version, grpc_millis update_time,
|
1038
1106
|
XdsApi::EdsUpdateMap eds_update_map) {
|
1039
1107
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
1040
1108
|
gpr_log(GPR_INFO,
|
@@ -1045,7 +1113,7 @@ void XdsClient::ChannelState::AdsCallState::AcceptEdsUpdate(
|
|
1045
1113
|
auto& eds_state = state_map_[XdsApi::kEdsTypeUrl];
|
1046
1114
|
for (auto& p : eds_update_map) {
|
1047
1115
|
const char* eds_service_name = p.first.c_str();
|
1048
|
-
XdsApi::EdsUpdate& eds_update = p.second;
|
1116
|
+
XdsApi::EdsUpdate& eds_update = p.second.resource;
|
1049
1117
|
auto& state = eds_state.subscribed_resources[eds_service_name];
|
1050
1118
|
if (state != nullptr) state->Finish();
|
1051
1119
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
@@ -1066,6 +1134,8 @@ void XdsClient::ChannelState::AdsCallState::AcceptEdsUpdate(
|
|
1066
1134
|
}
|
1067
1135
|
// Update the cluster state.
|
1068
1136
|
endpoint_state.update = std::move(eds_update);
|
1137
|
+
endpoint_state.meta = CreateResourceMetadataAcked(
|
1138
|
+
std::move(p.second.serialized_proto), version, update_time);
|
1069
1139
|
// Notify all watchers.
|
1070
1140
|
for (const auto& p : endpoint_state.watchers) {
|
1071
1141
|
p.first->OnEndpointChanged(endpoint_state.update.value());
|
@@ -1132,7 +1202,8 @@ bool XdsClient::ChannelState::AdsCallState::OnResponseReceivedLocked() {
|
|
1132
1202
|
recv_message_payload_ = nullptr;
|
1133
1203
|
// Parse and validate the response.
|
1134
1204
|
XdsApi::AdsParseResult result = xds_client()->api_.ParseAdsResponse(
|
1135
|
-
|
1205
|
+
chand()->server_, response_slice,
|
1206
|
+
ResourceNamesForRequest(XdsApi::kLdsTypeUrl),
|
1136
1207
|
ResourceNamesForRequest(XdsApi::kRdsTypeUrl),
|
1137
1208
|
ResourceNamesForRequest(XdsApi::kCdsTypeUrl),
|
1138
1209
|
ResourceNamesForRequest(XdsApi::kEdsTypeUrl));
|
@@ -1144,11 +1215,14 @@ bool XdsClient::ChannelState::AdsCallState::OnResponseReceivedLocked() {
|
|
1144
1215
|
xds_client(), grpc_error_string(result.parse_error));
|
1145
1216
|
GRPC_ERROR_UNREF(result.parse_error);
|
1146
1217
|
} else {
|
1218
|
+
grpc_millis update_time = grpc_core::ExecCtx::Get()->Now();
|
1147
1219
|
// Update nonce.
|
1148
1220
|
auto& state = state_map_[result.type_url];
|
1149
1221
|
state.nonce = std::move(result.nonce);
|
1150
1222
|
// NACK or ACK the response.
|
1151
1223
|
if (result.parse_error != GRPC_ERROR_NONE) {
|
1224
|
+
xds_client()->UpdateResourceMetadataWithFailedParseResult(update_time,
|
1225
|
+
result);
|
1152
1226
|
GRPC_ERROR_UNREF(state.error);
|
1153
1227
|
state.error = result.parse_error;
|
1154
1228
|
// NACK unacceptable update.
|
@@ -1162,15 +1236,20 @@ bool XdsClient::ChannelState::AdsCallState::OnResponseReceivedLocked() {
|
|
1162
1236
|
seen_response_ = true;
|
1163
1237
|
// Accept the ADS response according to the type_url.
|
1164
1238
|
if (result.type_url == XdsApi::kLdsTypeUrl) {
|
1165
|
-
AcceptLdsUpdate(
|
1239
|
+
AcceptLdsUpdate(result.version, update_time,
|
1240
|
+
std::move(result.lds_update_map));
|
1166
1241
|
} else if (result.type_url == XdsApi::kRdsTypeUrl) {
|
1167
|
-
AcceptRdsUpdate(
|
1242
|
+
AcceptRdsUpdate(result.version, update_time,
|
1243
|
+
std::move(result.rds_update_map));
|
1168
1244
|
} else if (result.type_url == XdsApi::kCdsTypeUrl) {
|
1169
|
-
AcceptCdsUpdate(
|
1245
|
+
AcceptCdsUpdate(result.version, update_time,
|
1246
|
+
std::move(result.cds_update_map));
|
1170
1247
|
} else if (result.type_url == XdsApi::kEdsTypeUrl) {
|
1171
|
-
AcceptEdsUpdate(
|
1248
|
+
AcceptEdsUpdate(result.version, update_time,
|
1249
|
+
std::move(result.eds_update_map));
|
1172
1250
|
}
|
1173
|
-
|
1251
|
+
xds_client()->resource_version_map_[result.type_url] =
|
1252
|
+
std::move(result.version);
|
1174
1253
|
// ACK the update.
|
1175
1254
|
SendMessageLocked(result.type_url);
|
1176
1255
|
// Start load reporting if needed.
|
@@ -1287,8 +1366,7 @@ bool XdsClient::ChannelState::LrsCallState::Reporter::OnNextReportTimerLocked(
|
|
1287
1366
|
GRPC_ERROR_UNREF(error);
|
1288
1367
|
return true;
|
1289
1368
|
}
|
1290
|
-
SendReportLocked();
|
1291
|
-
return false;
|
1369
|
+
return SendReportLocked();
|
1292
1370
|
}
|
1293
1371
|
|
1294
1372
|
namespace {
|
@@ -1307,7 +1385,7 @@ bool LoadReportCountersAreZero(const XdsApi::ClusterLoadReportMap& snapshot) {
|
|
1307
1385
|
|
1308
1386
|
} // namespace
|
1309
1387
|
|
1310
|
-
|
1388
|
+
bool XdsClient::ChannelState::LrsCallState::Reporter::SendReportLocked() {
|
1311
1389
|
// Construct snapshot from all reported stats.
|
1312
1390
|
XdsApi::ClusterLoadReportMap snapshot =
|
1313
1391
|
xds_client()->BuildLoadReportSnapshotLocked(parent_->send_all_clusters_,
|
@@ -1317,8 +1395,12 @@ void XdsClient::ChannelState::LrsCallState::Reporter::SendReportLocked() {
|
|
1317
1395
|
const bool old_val = last_report_counters_were_zero_;
|
1318
1396
|
last_report_counters_were_zero_ = LoadReportCountersAreZero(snapshot);
|
1319
1397
|
if (old_val && last_report_counters_were_zero_) {
|
1398
|
+
if (xds_client()->load_report_map_.empty()) {
|
1399
|
+
parent_->chand()->StopLrsCall();
|
1400
|
+
return true;
|
1401
|
+
}
|
1320
1402
|
ScheduleNextReportLocked();
|
1321
|
-
return;
|
1403
|
+
return false;
|
1322
1404
|
}
|
1323
1405
|
// Create a request that contains the snapshot.
|
1324
1406
|
grpc_slice request_payload_slice =
|
@@ -1339,6 +1421,7 @@ void XdsClient::ChannelState::LrsCallState::Reporter::SendReportLocked() {
|
|
1339
1421
|
xds_client(), this, call_error);
|
1340
1422
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
1341
1423
|
}
|
1424
|
+
return false;
|
1342
1425
|
}
|
1343
1426
|
|
1344
1427
|
void XdsClient::ChannelState::LrsCallState::Reporter::OnReportDone(
|
@@ -1381,14 +1464,17 @@ bool XdsClient::ChannelState::LrsCallState::Reporter::OnReportDoneLocked(
|
|
1381
1464
|
|
1382
1465
|
XdsClient::ChannelState::LrsCallState::LrsCallState(
|
1383
1466
|
RefCountedPtr<RetryableCall<LrsCallState>> parent)
|
1384
|
-
: InternallyRefCounted<LrsCallState>(
|
1467
|
+
: InternallyRefCounted<LrsCallState>(
|
1468
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_refcount_trace)
|
1469
|
+
? "LrsCallState"
|
1470
|
+
: nullptr),
|
1385
1471
|
parent_(std::move(parent)) {
|
1386
1472
|
// Init the LRS call. Note that the call will progress every time there's
|
1387
1473
|
// activity in xds_client()->interested_parties_, which is comprised of
|
1388
1474
|
// the polling entities from client_channel.
|
1389
1475
|
GPR_ASSERT(xds_client() != nullptr);
|
1390
1476
|
const auto& method =
|
1391
|
-
|
1477
|
+
chand()->server_.ShouldUseV3()
|
1392
1478
|
? GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_LOAD_STATS_DOT_V3_DOT_LOADREPORTINGSERVICE_SLASH_STREAMLOADSTATS
|
1393
1479
|
: GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_LOAD_STATS_DOT_V2_DOT_LOADREPORTINGSERVICE_SLASH_STREAMLOADSTATS;
|
1394
1480
|
call_ = grpc_channel_create_pollset_set_call(
|
@@ -1398,7 +1484,7 @@ XdsClient::ChannelState::LrsCallState::LrsCallState(
|
|
1398
1484
|
GPR_ASSERT(call_ != nullptr);
|
1399
1485
|
// Init the request payload.
|
1400
1486
|
grpc_slice request_payload_slice =
|
1401
|
-
xds_client()->api_.CreateLrsInitialRequest();
|
1487
|
+
xds_client()->api_.CreateLrsInitialRequest(chand()->server_);
|
1402
1488
|
send_message_payload_ =
|
1403
1489
|
grpc_raw_byte_buffer_create(&request_payload_slice, 1);
|
1404
1490
|
grpc_slice_unref_internal(request_payload_slice);
|
@@ -1434,8 +1520,8 @@ XdsClient::ChannelState::LrsCallState::LrsCallState(
|
|
1434
1520
|
Ref(DEBUG_LOCATION, "LRS+OnInitialRequestSentLocked").release();
|
1435
1521
|
GRPC_CLOSURE_INIT(&on_initial_request_sent_, OnInitialRequestSent, this,
|
1436
1522
|
grpc_schedule_on_exec_ctx);
|
1437
|
-
call_error = grpc_call_start_batch_and_execute(
|
1438
|
-
|
1523
|
+
call_error = grpc_call_start_batch_and_execute(
|
1524
|
+
call_, ops, static_cast<size_t>(op - ops), &on_initial_request_sent_);
|
1439
1525
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
1440
1526
|
// Op: recv initial metadata.
|
1441
1527
|
op = ops;
|
@@ -1454,8 +1540,8 @@ XdsClient::ChannelState::LrsCallState::LrsCallState(
|
|
1454
1540
|
Ref(DEBUG_LOCATION, "LRS+OnResponseReceivedLocked").release();
|
1455
1541
|
GRPC_CLOSURE_INIT(&on_response_received_, OnResponseReceived, this,
|
1456
1542
|
grpc_schedule_on_exec_ctx);
|
1457
|
-
call_error = grpc_call_start_batch_and_execute(
|
1458
|
-
|
1543
|
+
call_error = grpc_call_start_batch_and_execute(
|
1544
|
+
call_, ops, static_cast<size_t>(op - ops), &on_response_received_);
|
1459
1545
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
1460
1546
|
// Op: recv server status.
|
1461
1547
|
op = ops;
|
@@ -1471,8 +1557,8 @@ XdsClient::ChannelState::LrsCallState::LrsCallState(
|
|
1471
1557
|
// unreffed.
|
1472
1558
|
GRPC_CLOSURE_INIT(&on_status_received_, OnStatusReceived, this,
|
1473
1559
|
grpc_schedule_on_exec_ctx);
|
1474
|
-
call_error = grpc_call_start_batch_and_execute(
|
1475
|
-
|
1560
|
+
call_error = grpc_call_start_batch_and_execute(
|
1561
|
+
call_, ops, static_cast<size_t>(op - ops), &on_status_received_);
|
1476
1562
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
1477
1563
|
}
|
1478
1564
|
|
@@ -1689,56 +1775,22 @@ grpc_millis GetRequestTimeout() {
|
|
1689
1775
|
{15000, 0, INT_MAX});
|
1690
1776
|
}
|
1691
1777
|
|
1692
|
-
grpc_channel* CreateXdsChannel(const XdsBootstrap& bootstrap,
|
1693
|
-
grpc_error** error) {
|
1694
|
-
// Build channel args.
|
1695
|
-
absl::InlinedVector<grpc_arg, 2> args_to_add = {
|
1696
|
-
grpc_channel_arg_integer_create(
|
1697
|
-
const_cast<char*>(GRPC_ARG_KEEPALIVE_TIME_MS),
|
1698
|
-
5 * 60 * GPR_MS_PER_SEC),
|
1699
|
-
grpc_channel_arg_integer_create(
|
1700
|
-
const_cast<char*>(GRPC_ARG_CHANNELZ_IS_INTERNAL_CHANNEL), 1),
|
1701
|
-
};
|
1702
|
-
grpc_channel_args* new_args = grpc_channel_args_copy_and_add(
|
1703
|
-
g_channel_args, args_to_add.data(), args_to_add.size());
|
1704
|
-
// Find credentials and create channel.
|
1705
|
-
RefCountedPtr<grpc_channel_credentials> creds;
|
1706
|
-
for (const auto& channel_creds : bootstrap.server().channel_creds) {
|
1707
|
-
if (channel_creds.type == "google_default") {
|
1708
|
-
creds.reset(grpc_google_default_credentials_create(nullptr));
|
1709
|
-
break;
|
1710
|
-
}
|
1711
|
-
if (channel_creds.type == "insecure") {
|
1712
|
-
grpc_channel* channel = grpc_insecure_channel_create(
|
1713
|
-
bootstrap.server().server_uri.c_str(), new_args, nullptr);
|
1714
|
-
grpc_channel_args_destroy(new_args);
|
1715
|
-
return channel;
|
1716
|
-
}
|
1717
|
-
if (channel_creds.type == "fake") {
|
1718
|
-
creds.reset(grpc_fake_transport_security_credentials_create());
|
1719
|
-
break;
|
1720
|
-
}
|
1721
|
-
}
|
1722
|
-
if (creds == nullptr) {
|
1723
|
-
*error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1724
|
-
"no supported credential types found");
|
1725
|
-
return nullptr;
|
1726
|
-
}
|
1727
|
-
grpc_channel* channel = grpc_secure_channel_create(
|
1728
|
-
creds.get(), bootstrap.server().server_uri.c_str(), new_args, nullptr);
|
1729
|
-
grpc_channel_args_destroy(new_args);
|
1730
|
-
return channel;
|
1731
|
-
}
|
1732
|
-
|
1733
1778
|
} // namespace
|
1734
1779
|
|
1735
1780
|
XdsClient::XdsClient(grpc_error** error)
|
1736
|
-
: DualRefCounted<XdsClient>(
|
1781
|
+
: DualRefCounted<XdsClient>(
|
1782
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_refcount_trace) ? "XdsClient"
|
1783
|
+
: nullptr),
|
1737
1784
|
request_timeout_(GetRequestTimeout()),
|
1738
1785
|
interested_parties_(grpc_pollset_set_create()),
|
1739
|
-
bootstrap_(
|
1740
|
-
|
1741
|
-
|
1786
|
+
bootstrap_(XdsBootstrap::Create(this, &grpc_xds_client_trace,
|
1787
|
+
g_fallback_bootstrap_config, error)),
|
1788
|
+
certificate_provider_store_(MakeOrphanable<CertificateProviderStore>(
|
1789
|
+
bootstrap_ == nullptr
|
1790
|
+
? CertificateProviderStore::PluginDefinitionMap()
|
1791
|
+
: bootstrap_->certificate_providers())),
|
1792
|
+
api_(this, &grpc_xds_client_trace,
|
1793
|
+
bootstrap_ == nullptr ? nullptr : bootstrap_->node()) {
|
1742
1794
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
1743
1795
|
gpr_log(GPR_INFO, "[xds_client %p] creating xds client", this);
|
1744
1796
|
}
|
@@ -1747,19 +1799,9 @@ XdsClient::XdsClient(grpc_error** error)
|
|
1747
1799
|
this, grpc_error_string(*error));
|
1748
1800
|
return;
|
1749
1801
|
}
|
1750
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
1751
|
-
gpr_log(GPR_INFO, "[xds_client %p] creating channel to %s", this,
|
1752
|
-
bootstrap_->server().server_uri.c_str());
|
1753
|
-
}
|
1754
|
-
grpc_channel* channel = CreateXdsChannel(*bootstrap_, error);
|
1755
|
-
if (*error != GRPC_ERROR_NONE) {
|
1756
|
-
gpr_log(GPR_ERROR, "[xds_client %p] failed to create xds channel: %s", this,
|
1757
|
-
grpc_error_string(*error));
|
1758
|
-
return;
|
1759
|
-
}
|
1760
1802
|
// Create ChannelState object.
|
1761
1803
|
chand_ = MakeOrphanable<ChannelState>(
|
1762
|
-
WeakRef(DEBUG_LOCATION, "XdsClient+ChannelState"),
|
1804
|
+
WeakRef(DEBUG_LOCATION, "XdsClient+ChannelState"), bootstrap_->server());
|
1763
1805
|
}
|
1764
1806
|
|
1765
1807
|
XdsClient::~XdsClient() {
|
@@ -1982,10 +2024,22 @@ RefCountedPtr<XdsClusterDropStats> XdsClient::AddClusterDropStats(
|
|
1982
2024
|
auto it = load_report_map_
|
1983
2025
|
.emplace(std::make_pair(std::move(key), LoadReportState()))
|
1984
2026
|
.first;
|
1985
|
-
|
1986
|
-
|
1987
|
-
|
1988
|
-
|
2027
|
+
LoadReportState& load_report_state = it->second;
|
2028
|
+
RefCountedPtr<XdsClusterDropStats> cluster_drop_stats;
|
2029
|
+
if (load_report_state.drop_stats != nullptr) {
|
2030
|
+
cluster_drop_stats = load_report_state.drop_stats->RefIfNonZero();
|
2031
|
+
}
|
2032
|
+
if (cluster_drop_stats == nullptr) {
|
2033
|
+
if (load_report_state.drop_stats != nullptr) {
|
2034
|
+
load_report_state.deleted_drop_stats +=
|
2035
|
+
load_report_state.drop_stats->GetSnapshotAndReset();
|
2036
|
+
}
|
2037
|
+
cluster_drop_stats = MakeRefCounted<XdsClusterDropStats>(
|
2038
|
+
Ref(DEBUG_LOCATION, "DropStats"), lrs_server,
|
2039
|
+
it->first.first /*cluster_name*/,
|
2040
|
+
it->first.second /*eds_service_name*/);
|
2041
|
+
load_report_state.drop_stats = cluster_drop_stats.get();
|
2042
|
+
}
|
1989
2043
|
chand_->MaybeStartLrsCall();
|
1990
2044
|
return cluster_drop_stats;
|
1991
2045
|
}
|
@@ -1995,19 +2049,18 @@ void XdsClient::RemoveClusterDropStats(
|
|
1995
2049
|
absl::string_view eds_service_name,
|
1996
2050
|
XdsClusterDropStats* cluster_drop_stats) {
|
1997
2051
|
MutexLock lock(&mu_);
|
1998
|
-
auto load_report_it = load_report_map_.find(
|
1999
|
-
std::make_pair(std::string(cluster_name), std::string(eds_service_name)));
|
2000
|
-
if (load_report_it == load_report_map_.end()) return;
|
2001
|
-
LoadReportState& load_report_state = load_report_it->second;
|
2002
2052
|
// TODO(roth): When we add support for direct federation, use the
|
2003
2053
|
// server name specified in lrs_server.
|
2004
|
-
auto it =
|
2005
|
-
|
2006
|
-
|
2054
|
+
auto it = load_report_map_.find(
|
2055
|
+
std::make_pair(std::string(cluster_name), std::string(eds_service_name)));
|
2056
|
+
if (it == load_report_map_.end()) return;
|
2057
|
+
LoadReportState& load_report_state = it->second;
|
2058
|
+
if (load_report_state.drop_stats == cluster_drop_stats) {
|
2059
|
+
// Record final snapshot in deleted_drop_stats, which will be
|
2007
2060
|
// added to the next load report.
|
2008
|
-
|
2009
|
-
|
2010
|
-
load_report_state.drop_stats
|
2061
|
+
load_report_state.deleted_drop_stats +=
|
2062
|
+
load_report_state.drop_stats->GetSnapshotAndReset();
|
2063
|
+
load_report_state.drop_stats = nullptr;
|
2011
2064
|
}
|
2012
2065
|
}
|
2013
2066
|
|
@@ -2026,12 +2079,24 @@ RefCountedPtr<XdsClusterLocalityStats> XdsClient::AddClusterLocalityStats(
|
|
2026
2079
|
auto it = load_report_map_
|
2027
2080
|
.emplace(std::make_pair(std::move(key), LoadReportState()))
|
2028
2081
|
.first;
|
2029
|
-
|
2030
|
-
|
2031
|
-
|
2032
|
-
|
2033
|
-
|
2034
|
-
|
2082
|
+
LoadReportState& load_report_state = it->second;
|
2083
|
+
LoadReportState::LocalityState& locality_state =
|
2084
|
+
load_report_state.locality_stats[locality];
|
2085
|
+
RefCountedPtr<XdsClusterLocalityStats> cluster_locality_stats;
|
2086
|
+
if (locality_state.locality_stats != nullptr) {
|
2087
|
+
cluster_locality_stats = locality_state.locality_stats->RefIfNonZero();
|
2088
|
+
}
|
2089
|
+
if (cluster_locality_stats == nullptr) {
|
2090
|
+
if (locality_state.locality_stats != nullptr) {
|
2091
|
+
locality_state.deleted_locality_stats +=
|
2092
|
+
locality_state.locality_stats->GetSnapshotAndReset();
|
2093
|
+
}
|
2094
|
+
cluster_locality_stats = MakeRefCounted<XdsClusterLocalityStats>(
|
2095
|
+
Ref(DEBUG_LOCATION, "LocalityStats"), lrs_server,
|
2096
|
+
it->first.first /*cluster_name*/, it->first.second /*eds_service_name*/,
|
2097
|
+
std::move(locality));
|
2098
|
+
locality_state.locality_stats = cluster_locality_stats.get();
|
2099
|
+
}
|
2035
2100
|
chand_->MaybeStartLrsCall();
|
2036
2101
|
return cluster_locality_stats;
|
2037
2102
|
}
|
@@ -2042,22 +2107,21 @@ void XdsClient::RemoveClusterLocalityStats(
|
|
2042
2107
|
const RefCountedPtr<XdsLocalityName>& locality,
|
2043
2108
|
XdsClusterLocalityStats* cluster_locality_stats) {
|
2044
2109
|
MutexLock lock(&mu_);
|
2045
|
-
auto load_report_it = load_report_map_.find(
|
2046
|
-
std::make_pair(std::string(cluster_name), std::string(eds_service_name)));
|
2047
|
-
if (load_report_it == load_report_map_.end()) return;
|
2048
|
-
LoadReportState& load_report_state = load_report_it->second;
|
2049
2110
|
// TODO(roth): When we add support for direct federation, use the
|
2050
2111
|
// server name specified in lrs_server.
|
2112
|
+
auto it = load_report_map_.find(
|
2113
|
+
std::make_pair(std::string(cluster_name), std::string(eds_service_name)));
|
2114
|
+
if (it == load_report_map_.end()) return;
|
2115
|
+
LoadReportState& load_report_state = it->second;
|
2051
2116
|
auto locality_it = load_report_state.locality_stats.find(locality);
|
2052
2117
|
if (locality_it == load_report_state.locality_stats.end()) return;
|
2053
|
-
|
2054
|
-
|
2055
|
-
if (it != locality_set.end()) {
|
2118
|
+
LoadReportState::LocalityState& locality_state = locality_it->second;
|
2119
|
+
if (locality_state.locality_stats == cluster_locality_stats) {
|
2056
2120
|
// Record final snapshot in deleted_locality_stats, which will be
|
2057
2121
|
// added to the next load report.
|
2058
|
-
|
2059
|
-
|
2060
|
-
|
2122
|
+
locality_state.deleted_locality_stats +=
|
2123
|
+
locality_state.locality_stats->GetSnapshotAndReset();
|
2124
|
+
locality_state.locality_stats = nullptr;
|
2061
2125
|
}
|
2062
2126
|
}
|
2063
2127
|
|
@@ -2098,6 +2162,9 @@ void XdsClient::NotifyOnErrorLocked(grpc_error* error) {
|
|
2098
2162
|
|
2099
2163
|
XdsApi::ClusterLoadReportMap XdsClient::BuildLoadReportSnapshotLocked(
|
2100
2164
|
bool send_all_clusters, const std::set<std::string>& clusters) {
|
2165
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
2166
|
+
gpr_log(GPR_INFO, "[xds_client %p] start building load report", this);
|
2167
|
+
}
|
2101
2168
|
XdsApi::ClusterLoadReportMap snapshot_map;
|
2102
2169
|
for (auto load_report_it = load_report_map_.begin();
|
2103
2170
|
load_report_it != load_report_map_.end();) {
|
@@ -2116,9 +2183,15 @@ XdsApi::ClusterLoadReportMap XdsClient::BuildLoadReportSnapshotLocked(
|
|
2116
2183
|
XdsApi::ClusterLoadReport snapshot;
|
2117
2184
|
// Aggregate drop stats.
|
2118
2185
|
snapshot.dropped_requests = std::move(load_report.deleted_drop_stats);
|
2119
|
-
|
2120
|
-
|
2121
|
-
|
2186
|
+
if (load_report.drop_stats != nullptr) {
|
2187
|
+
snapshot.dropped_requests +=
|
2188
|
+
load_report.drop_stats->GetSnapshotAndReset();
|
2189
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
2190
|
+
gpr_log(GPR_INFO,
|
2191
|
+
"[xds_client %p] cluster=%s eds_service_name=%s drop_stats=%p",
|
2192
|
+
this, cluster_key.first.c_str(), cluster_key.second.c_str(),
|
2193
|
+
load_report.drop_stats);
|
2194
|
+
}
|
2122
2195
|
}
|
2123
2196
|
// Aggregate locality stats.
|
2124
2197
|
for (auto it = load_report.locality_stats.begin();
|
@@ -2127,34 +2200,39 @@ XdsApi::ClusterLoadReportMap XdsClient::BuildLoadReportSnapshotLocked(
|
|
2127
2200
|
auto& locality_state = it->second;
|
2128
2201
|
XdsClusterLocalityStats::Snapshot& locality_snapshot =
|
2129
2202
|
snapshot.locality_stats[locality_name];
|
2130
|
-
|
2131
|
-
|
2132
|
-
|
2133
|
-
|
2134
|
-
|
2135
|
-
|
2136
|
-
|
2203
|
+
locality_snapshot = std::move(locality_state.deleted_locality_stats);
|
2204
|
+
if (locality_state.locality_stats != nullptr) {
|
2205
|
+
locality_snapshot +=
|
2206
|
+
locality_state.locality_stats->GetSnapshotAndReset();
|
2207
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
|
2208
|
+
gpr_log(GPR_INFO,
|
2209
|
+
"[xds_client %p] cluster=%s eds_service_name=%s "
|
2210
|
+
"locality=%s locality_stats=%p",
|
2211
|
+
this, cluster_key.first.c_str(), cluster_key.second.c_str(),
|
2212
|
+
locality_name->AsHumanReadableString().c_str(),
|
2213
|
+
locality_state.locality_stats);
|
2214
|
+
}
|
2137
2215
|
}
|
2138
|
-
locality_state.deleted_locality_stats.clear();
|
2139
2216
|
// If the only thing left in this entry was final snapshots from
|
2140
2217
|
// deleted locality stats objects, remove the entry.
|
2141
|
-
if (locality_state.locality_stats
|
2218
|
+
if (locality_state.locality_stats == nullptr) {
|
2142
2219
|
it = load_report.locality_stats.erase(it);
|
2143
2220
|
} else {
|
2144
2221
|
++it;
|
2145
2222
|
}
|
2146
2223
|
}
|
2224
|
+
// Compute load report interval.
|
2225
|
+
const grpc_millis now = ExecCtx::Get()->Now();
|
2226
|
+
snapshot.load_report_interval = now - load_report.last_report_time;
|
2227
|
+
load_report.last_report_time = now;
|
2228
|
+
// Record snapshot.
|
2147
2229
|
if (record_stats) {
|
2148
|
-
// Compute load report interval.
|
2149
|
-
const grpc_millis now = ExecCtx::Get()->Now();
|
2150
|
-
snapshot.load_report_interval = now - load_report.last_report_time;
|
2151
|
-
load_report.last_report_time = now;
|
2152
|
-
// Record snapshot.
|
2153
2230
|
snapshot_map[cluster_key] = std::move(snapshot);
|
2154
2231
|
}
|
2155
2232
|
// If the only thing left in this entry was final snapshots from
|
2156
2233
|
// deleted stats objects, remove the entry.
|
2157
|
-
if (load_report.locality_stats.empty() &&
|
2234
|
+
if (load_report.locality_stats.empty() &&
|
2235
|
+
load_report.drop_stats == nullptr) {
|
2158
2236
|
load_report_it = load_report_map_.erase(load_report_it);
|
2159
2237
|
} else {
|
2160
2238
|
++load_report_it;
|
@@ -2163,25 +2241,109 @@ XdsApi::ClusterLoadReportMap XdsClient::BuildLoadReportSnapshotLocked(
|
|
2163
2241
|
return snapshot_map;
|
2164
2242
|
}
|
2165
2243
|
|
2244
|
+
void XdsClient::UpdateResourceMetadataWithFailedParseResult(
|
2245
|
+
grpc_millis update_time, const XdsApi::AdsParseResult& result) {
|
2246
|
+
// ADS update is rejected and the resource names in the failed update is
|
2247
|
+
// available.
|
2248
|
+
absl::string_view details = grpc_error_string(result.parse_error);
|
2249
|
+
for (auto& name : result.resource_names_failed) {
|
2250
|
+
XdsApi::ResourceMetadata* resource_metadata = nullptr;
|
2251
|
+
if (result.type_url == XdsApi::kLdsTypeUrl) {
|
2252
|
+
auto it = listener_map_.find(name);
|
2253
|
+
if (it != listener_map_.end()) {
|
2254
|
+
resource_metadata = &it->second.meta;
|
2255
|
+
}
|
2256
|
+
} else if (result.type_url == XdsApi::kRdsTypeUrl) {
|
2257
|
+
auto it = route_config_map_.find(name);
|
2258
|
+
if (route_config_map_.find(name) != route_config_map_.end()) {
|
2259
|
+
resource_metadata = &it->second.meta;
|
2260
|
+
}
|
2261
|
+
} else if (result.type_url == XdsApi::kCdsTypeUrl) {
|
2262
|
+
auto it = cluster_map_.find(name);
|
2263
|
+
if (cluster_map_.find(name) != cluster_map_.end()) {
|
2264
|
+
resource_metadata = &it->second.meta;
|
2265
|
+
}
|
2266
|
+
} else if (result.type_url == XdsApi::kEdsTypeUrl) {
|
2267
|
+
auto it = endpoint_map_.find(name);
|
2268
|
+
if (endpoint_map_.find(name) != endpoint_map_.end()) {
|
2269
|
+
resource_metadata = &it->second.meta;
|
2270
|
+
}
|
2271
|
+
}
|
2272
|
+
if (resource_metadata == nullptr) {
|
2273
|
+
return;
|
2274
|
+
}
|
2275
|
+
resource_metadata->client_status = XdsApi::ResourceMetadata::NACKED;
|
2276
|
+
resource_metadata->failed_version = result.version;
|
2277
|
+
resource_metadata->failed_details = std::string(details);
|
2278
|
+
resource_metadata->failed_update_time = update_time;
|
2279
|
+
}
|
2280
|
+
}
|
2281
|
+
|
2282
|
+
std::string XdsClient::DumpClientConfigBinary() {
|
2283
|
+
MutexLock lock(&mu_);
|
2284
|
+
XdsApi::ResourceTypeMetadataMap resource_type_metadata_map;
|
2285
|
+
// Update per-xds-type version if available, this version corresponding to the
|
2286
|
+
// last successful ADS update version.
|
2287
|
+
for (auto& p : resource_version_map_) {
|
2288
|
+
resource_type_metadata_map[p.first].version = p.second;
|
2289
|
+
}
|
2290
|
+
// Collect resource metadata from listeners
|
2291
|
+
auto& lds_map =
|
2292
|
+
resource_type_metadata_map[XdsApi::kLdsTypeUrl].resource_metadata_map;
|
2293
|
+
for (auto& p : listener_map_) {
|
2294
|
+
lds_map[p.first] = &p.second.meta;
|
2295
|
+
}
|
2296
|
+
// Collect resource metadata from route configs
|
2297
|
+
auto& rds_map =
|
2298
|
+
resource_type_metadata_map[XdsApi::kRdsTypeUrl].resource_metadata_map;
|
2299
|
+
for (auto& p : route_config_map_) {
|
2300
|
+
rds_map[p.first] = &p.second.meta;
|
2301
|
+
}
|
2302
|
+
// Collect resource metadata from clusters
|
2303
|
+
auto& cds_map =
|
2304
|
+
resource_type_metadata_map[XdsApi::kCdsTypeUrl].resource_metadata_map;
|
2305
|
+
for (auto& p : cluster_map_) {
|
2306
|
+
cds_map[p.first] = &p.second.meta;
|
2307
|
+
}
|
2308
|
+
// Collect resource metadata from endpoints
|
2309
|
+
auto& eds_map =
|
2310
|
+
resource_type_metadata_map[XdsApi::kEdsTypeUrl].resource_metadata_map;
|
2311
|
+
for (auto& p : endpoint_map_) {
|
2312
|
+
eds_map[p.first] = &p.second.meta;
|
2313
|
+
}
|
2314
|
+
// Assemble config dump messages
|
2315
|
+
return api_.AssembleClientConfig(resource_type_metadata_map);
|
2316
|
+
}
|
2317
|
+
|
2166
2318
|
//
|
2167
2319
|
// accessors for global state
|
2168
2320
|
//
|
2169
2321
|
|
2170
|
-
void XdsClientGlobalInit() {
|
2322
|
+
void XdsClientGlobalInit() {
|
2323
|
+
g_mu = new Mutex;
|
2324
|
+
XdsHttpFilterRegistry::Init();
|
2325
|
+
}
|
2171
2326
|
|
2172
2327
|
void XdsClientGlobalShutdown() {
|
2173
2328
|
delete g_mu;
|
2174
2329
|
g_mu = nullptr;
|
2330
|
+
gpr_free(g_fallback_bootstrap_config);
|
2331
|
+
g_fallback_bootstrap_config = nullptr;
|
2332
|
+
XdsHttpFilterRegistry::Shutdown();
|
2175
2333
|
}
|
2176
2334
|
|
2177
2335
|
RefCountedPtr<XdsClient> XdsClient::GetOrCreate(grpc_error** error) {
|
2178
|
-
|
2179
|
-
|
2180
|
-
|
2181
|
-
if (
|
2336
|
+
RefCountedPtr<XdsClient> xds_client;
|
2337
|
+
{
|
2338
|
+
MutexLock lock(g_mu);
|
2339
|
+
if (g_xds_client != nullptr) {
|
2340
|
+
auto xds_client = g_xds_client->RefIfNonZero();
|
2341
|
+
if (xds_client != nullptr) return xds_client;
|
2342
|
+
}
|
2343
|
+
xds_client = MakeRefCounted<XdsClient>(error);
|
2344
|
+
if (*error != GRPC_ERROR_NONE) return nullptr;
|
2345
|
+
g_xds_client = xds_client.get();
|
2182
2346
|
}
|
2183
|
-
auto xds_client = MakeRefCounted<XdsClient>(error);
|
2184
|
-
g_xds_client = xds_client.get();
|
2185
2347
|
return xds_client;
|
2186
2348
|
}
|
2187
2349
|
|
@@ -2197,6 +2359,26 @@ void UnsetGlobalXdsClientForTest() {
|
|
2197
2359
|
g_xds_client = nullptr;
|
2198
2360
|
}
|
2199
2361
|
|
2362
|
+
void SetXdsFallbackBootstrapConfig(const char* config) {
|
2363
|
+
MutexLock lock(g_mu);
|
2364
|
+
gpr_free(g_fallback_bootstrap_config);
|
2365
|
+
g_fallback_bootstrap_config = gpr_strdup(config);
|
2366
|
+
}
|
2367
|
+
|
2200
2368
|
} // namespace internal
|
2201
2369
|
|
2202
2370
|
} // namespace grpc_core
|
2371
|
+
|
2372
|
+
// The returned bytes may contain NULL(0), so we can't use c-string.
|
2373
|
+
grpc_slice grpc_dump_xds_configs() {
|
2374
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
2375
|
+
grpc_core::ExecCtx exec_ctx;
|
2376
|
+
grpc_error* error = GRPC_ERROR_NONE;
|
2377
|
+
auto xds_client = grpc_core::XdsClient::GetOrCreate(&error);
|
2378
|
+
if (error != GRPC_ERROR_NONE) {
|
2379
|
+
// If we isn't using xDS, just return an empty string.
|
2380
|
+
GRPC_ERROR_UNREF(error);
|
2381
|
+
return grpc_empty_slice();
|
2382
|
+
}
|
2383
|
+
return grpc_slice_from_cpp_string(xds_client->DumpClientConfigBinary());
|
2384
|
+
}
|