grpc 1.30.1 → 1.40.0
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 +1195 -18269
- data/etc/roots.pem +257 -573
- data/include/grpc/compression.h +1 -1
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +330 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +66 -0
- data/include/grpc/grpc.h +38 -9
- data/include/grpc/grpc_security.h +291 -186
- data/include/grpc/grpc_security_constants.h +18 -0
- data/include/grpc/impl/codegen/README.md +22 -0
- 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 +60 -31
- data/include/grpc/impl/codegen/log.h +0 -2
- data/include/grpc/impl/codegen/port_platform.h +75 -87
- data/include/grpc/impl/codegen/sync_windows.h +4 -0
- data/include/grpc/module.modulemap +14 -14
- 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 +14 -13
- data/src/core/ext/filters/client_channel/backup_poller.cc +6 -5
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +2112 -2959
- data/src/core/ext/filters/client_channel/client_channel.h +514 -62
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -4
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.cc +58 -0
- data/src/core/ext/filters/client_channel/config_selector.h +146 -0
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +190 -0
- data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +26 -122
- 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 +46 -35
- data/src/core/ext/filters/client_channel/health/health_check_client.h +34 -33
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +39 -37
- data/src/core/ext/filters/client_channel/http_proxy.cc +42 -24
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +48 -35
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -7
- 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/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +301 -267
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -13
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +0 -3
- 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 +3 -40
- 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/grpclb_client_stats.h +2 -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 +34 -37
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +102 -51
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +757 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +37 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +18 -24
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +15 -37
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +41 -34
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +472 -145
- 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/xds_cluster_impl.cc +787 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +700 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1372 -0
- data/src/core/ext/filters/client_channel/lb_policy.cc +11 -18
- data/src/core/ext/filters/client_channel/lb_policy.h +80 -53
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +16 -10
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- 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/dns/c_ares/dns_resolver_ares.cc +71 -78
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -33
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +11 -9
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +14 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +24 -20
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +495 -79
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +6 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +45 -36
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +40 -45
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +8 -6
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +384 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +38 -31
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +883 -71
- data/src/core/ext/filters/client_channel/{xds/xds_channel_args.h → resolver/xds/xds_resolver.h} +9 -7
- data/src/core/ext/filters/client_channel/resolver.cc +7 -5
- data/src/core/ext/filters/client_channel/resolver.h +7 -15
- data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
- data/src/core/ext/filters/client_channel/resolver_registry.cc +49 -49
- data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +50 -303
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +26 -54
- data/src/core/ext/filters/client_channel/retry_filter.cc +2611 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +316 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- 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 +129 -7
- data/src/core/ext/filters/client_channel/server_address.h +75 -21
- data/src/core/ext/filters/client_channel/service_config.cc +27 -21
- data/src/core/ext/filters/client_channel/service_config.h +11 -7
- data/src/core/ext/filters/client_channel/service_config_call_data.h +60 -2
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +143 -0
- data/src/core/ext/filters/client_channel/service_config_parser.cc +14 -12
- data/src/core/ext/filters/client_channel/service_config_parser.h +12 -6
- data/src/core/ext/filters/client_channel/subchannel.cc +188 -236
- data/src/core/ext/filters/client_channel/subchannel.h +88 -113
- data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -5
- 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 +18 -17
- data/src/core/ext/filters/deadline/deadline_filter.cc +94 -86
- data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +501 -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 +39 -29
- data/src/core/ext/filters/http/client_authority_filter.cc +9 -9
- data/src/core/ext/filters/http/http_filters_plugin.cc +8 -4
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +91 -50
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +3 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +30 -26
- data/src/core/ext/filters/max_age/max_age_filter.cc +50 -44
- data/src/core/ext/filters/message_size/message_size_filter.cc +72 -92
- data/src/core/ext/filters/message_size/message_size_filter.h +8 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +5 -4
- 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 +90 -34
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +22 -5
- 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 +23 -11
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +38 -50
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +803 -352
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +16 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +14 -5
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +22 -20
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +67 -24
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +66 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +457 -447
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +36 -33
- data/src/core/ext/transport/chttp2/transport/flow_control.h +34 -26
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +26 -25
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +21 -23
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -14
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +19 -20
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +8 -7
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +19 -24
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +681 -765
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +195 -74
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +17 -20
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +57 -30
- data/src/core/ext/transport/chttp2/transport/parsing.cc +181 -180
- data/src/core/ext/transport/chttp2/transport/varint.cc +6 -4
- data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
- data/src/core/ext/transport/inproc/inproc_transport.cc +154 -88
- 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 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +10 -4
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +243 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +865 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +371 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1452 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +253 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +461 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1850 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +77 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +364 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +124 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +428 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +370 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1126 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +103 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +388 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +78 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +149 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +241 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +839 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +170 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +767 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +239 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +982 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +27 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +65 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +121 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/socket_option.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +95 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +126 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +90 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +243 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +305 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +112 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +367 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +33 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +73 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +138 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +604 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +161 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +638 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +115 -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 +179 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +662 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +82 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +294 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +953 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +3862 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +159 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +49 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +122 -0
- 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 +79 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +285 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +117 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +404 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1671 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +19 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +35 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +116 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +475 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +73 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +219 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +146 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +621 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/rds.upb.c → service/cluster/v3/cds.upb.c} +6 -9
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +56 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/{v2 → v3}/ads.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +56 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +146 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +499 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/endpoint/v3}/eds.upb.c +6 -10
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +56 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/listener/v3}/lds.upb.c +6 -10
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +56 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +151 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/srds.upb.c → service/route/v3/rds.upb.c} +6 -7
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +56 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/cds.upb.c → service/route/v3/srds.upb.c} +6 -7
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +56 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +121 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +438 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +181 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +128 -0
- 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 +35 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +84 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +78 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +65 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +166 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +146 -0
- 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 +63 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +207 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +88 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +301 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +90 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +283 -0
- data/src/core/ext/upb-generated/envoy/type/{http.upb.c → v3/http.upb.c} +2 -2
- data/src/core/ext/upb-generated/envoy/type/{http.upb.h → v3/http.upb.h} +9 -9
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +40 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +99 -0
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +130 -0
- data/src/core/ext/upb-generated/envoy/type/{semantic_version.upb.c → v3/semantic_version.upb.c} +7 -6
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +68 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +242 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +830 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +251 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +871 -0
- data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/http.upb.h +52 -32
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +12 -6
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +106 -106
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +688 -499
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +12 -6
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +8 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +5 -5
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +55 -57
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +12 -6
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +82 -28
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +17 -10
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +5 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +40 -45
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +43 -43
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +236 -184
- 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 +29 -13
- 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 +19 -7
- 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 +122 -62
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +30 -12
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +31 -0
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +64 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +12 -6
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -0
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +60 -0
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +9 -9
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +48 -68
- 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 +133 -117
- data/src/core/ext/upb-generated/validate/validate.upb.h +881 -645
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +28 -0
- 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 +46 -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 +252 -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 +424 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +120 -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 +570 -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 +300 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +145 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +144 -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 +287 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +100 -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/resolver.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -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 +72 -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/core/v3/udp_socket_config.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.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 +205 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +201 -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/quic_config.upbdefs.c +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +67 -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 +115 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +964 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +295 -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 +123 -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 +79 -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 +571 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +125 -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 +178 -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 +163 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.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 +76 -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/{upb-generated/gogoproto/gogo.upb.h → upbdefs-generated/envoy/type/v3/http.upbdefs.h} +10 -10
- 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 +332 -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 +61 -0
- data/src/core/ext/xds/certificate_provider_registry.cc +103 -0
- data/src/core/ext/xds/certificate_provider_registry.h +57 -0
- data/src/core/ext/xds/certificate_provider_store.cc +87 -0
- data/src/core/ext/xds/certificate_provider_store.h +112 -0
- 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 +4124 -0
- data/src/core/ext/xds/xds_api.h +709 -0
- data/src/core/ext/xds/xds_bootstrap.cc +496 -0
- data/src/core/ext/xds/xds_bootstrap.h +115 -0
- 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_channel_args.h +32 -0
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.cc +1056 -884
- data/src/core/ext/xds/xds_client.h +375 -0
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.cc +63 -19
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.h +52 -23
- 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 +115 -0
- data/src/core/ext/xds/xds_http_filters.h +133 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +546 -0
- data/src/core/{ext/filters/client_channel → lib/address_utils}/parse_address.cc +129 -45
- data/src/core/lib/address_utils/parse_address.h +77 -0
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +138 -19
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +38 -7
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_args.cc +9 -8
- data/src/core/lib/channel/channel_args.h +0 -1
- data/src/core/lib/channel/channel_stack.cc +22 -9
- data/src/core/lib/channel/channel_stack.h +18 -10
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channel_trace.cc +6 -8
- data/src/core/lib/channel/channel_trace.h +1 -1
- data/src/core/lib/channel/channelz.cc +148 -99
- data/src/core/lib/channel/channelz.h +47 -24
- data/src/core/lib/channel/channelz_registry.cc +29 -12
- data/src/core/lib/channel/channelz_registry.h +3 -1
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/context.h +3 -0
- data/src/core/lib/channel/handshaker.cc +11 -52
- data/src/core/lib/channel/handshaker.h +8 -25
- data/src/core/lib/channel/status_util.cc +12 -2
- data/src/core/lib/channel/status_util.h +9 -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.h +1 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.cc +1 -3
- data/src/core/lib/compression/stream_compression_identity.h +1 -1
- data/src/core/lib/debug/stats.h +3 -3
- data/src/core/lib/debug/stats_data.cc +1 -0
- data/src/core/lib/debug/stats_data.h +13 -13
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- 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 +23 -9
- data/src/core/lib/gpr/log_posix.cc +19 -7
- data/src/core/lib/gpr/log_windows.cc +18 -4
- data/src/core/lib/gpr/murmur_hash.cc +5 -3
- data/src/core/lib/gpr/spinlock.h +10 -2
- data/src/core/lib/gpr/string.cc +33 -31
- data/src/core/lib/gpr/string.h +9 -8
- 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_posix.cc +2 -8
- 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 +5 -2
- data/src/core/lib/gpr/time_precise.h +6 -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/gpr/wrap_memcpy.cc +2 -1
- 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 +331 -0
- 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/global_config_env.cc +8 -6
- data/src/core/lib/gprpp/manual_constructor.h +2 -2
- data/src/core/lib/gprpp/mpscq.cc +2 -2
- data/src/core/lib/gprpp/orphanable.h +7 -11
- data/src/core/lib/gprpp/ref_counted.h +105 -68
- data/src/core/lib/gprpp/ref_counted_ptr.h +168 -7
- data/src/core/lib/gprpp/stat.h +38 -0
- 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/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/gprpp/sync.h +104 -43
- 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 +25 -22
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +19 -15
- data/src/core/lib/http/parser.cc +63 -43
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +8 -10
- data/src/core/lib/iomgr/buffer_list.h +5 -6
- data/src/core/lib/iomgr/call_combiner.cc +21 -15
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +6 -5
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +16 -13
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +6 -2
- data/src/core/lib/iomgr/endpoint.h +10 -6
- data/src/core/lib/iomgr/endpoint_cfstream.cc +46 -23
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +10 -10
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +185 -73
- data/src/core/lib/iomgr/error.h +218 -107
- data/src/core/lib/iomgr/error_cfstream.cc +12 -10
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +6 -2
- data/src/core/lib/iomgr/ev_apple.cc +16 -13
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +47 -41
- data/src/core/lib/iomgr/ev_epollex_linux.cc +92 -87
- data/src/core/lib/iomgr/ev_poll_posix.cc +41 -35
- data/src/core/lib/iomgr/ev_posix.cc +12 -11
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +192 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +263 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +19 -7
- data/src/core/lib/iomgr/exec_ctx.h +20 -17
- data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +6 -6
- data/src/core/lib/iomgr/executor.cc +10 -9
- data/src/core/lib/iomgr/executor.h +3 -3
- data/src/core/lib/iomgr/iomgr.cc +3 -3
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -13
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +14 -0
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +20 -15
- data/src/core/lib/iomgr/lockfree_event.h +2 -2
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_set_custom.cc +1 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +8 -26
- data/src/core/lib/iomgr/python_util.h +5 -5
- data/src/core/lib/iomgr/resolve_address.cc +12 -8
- data/src/core/lib/iomgr/resolve_address.h +12 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +23 -27
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +4 -8
- data/src/core/lib/iomgr/resolve_address_windows.cc +12 -12
- data/src/core/lib/iomgr/resource_quota.cc +48 -42
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_factory_posix.cc +3 -2
- data/src/core/lib/iomgr/socket_mutator.cc +18 -4
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +120 -77
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/socket_windows.cc +4 -5
- data/src/core/lib/iomgr/tcp_client.cc +3 -3
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +13 -15
- data/src/core/lib/iomgr/tcp_client_custom.cc +17 -20
- data/src/core/lib/iomgr/tcp_client_posix.cc +48 -54
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +16 -14
- data/src/core/lib/iomgr/tcp_custom.cc +67 -48
- data/src/core/lib/iomgr/tcp_custom.h +14 -13
- data/src/core/lib/iomgr/tcp_posix.cc +118 -94
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server.cc +9 -10
- data/src/core/lib/iomgr/tcp_server.h +19 -16
- data/src/core/lib/iomgr/tcp_server_custom.cc +57 -58
- data/src/core/lib/iomgr/tcp_server_posix.cc +62 -61
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +16 -16
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +26 -25
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +12 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +42 -41
- data/src/core/lib/iomgr/tcp_uv.cc +27 -25
- data/src/core/lib/iomgr/tcp_windows.cc +39 -23
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_custom.cc +7 -6
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +24 -23
- data/src/core/lib/iomgr/timer_manager.cc +4 -4
- data/src/core/lib/iomgr/udp_server.cc +46 -45
- data/src/core/lib/iomgr/udp_server.h +6 -4
- data/src/core/lib/iomgr/unix_sockets_posix.cc +36 -30
- data/src/core/lib/iomgr/unix_sockets_posix.h +9 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +20 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +6 -6
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +13 -3
- data/src/core/lib/json/json_reader.cc +33 -31
- data/src/core/lib/json/json_util.cc +58 -0
- data/src/core/lib/json/json_util.h +204 -0
- data/src/core/lib/json/json_writer.cc +2 -1
- data/src/core/lib/matchers/matchers.cc +327 -0
- data/src/core/lib/matchers/matchers.h +161 -0
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -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/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.cc +7 -7
- data/src/core/lib/security/credentials/credentials.h +12 -9
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +417 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +82 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +214 -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 +500 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.h +121 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +136 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +49 -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 +60 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +5 -4
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +8 -6
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +95 -65
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +64 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +5 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +10 -7
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +6 -5
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +12 -9
- 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 +78 -92
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +10 -9
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +12 -12
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +27 -6
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +12 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +347 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +213 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +454 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +145 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +82 -150
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +65 -185
- 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 +123 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +51 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +244 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.h +69 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +14 -4
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +33 -28
- 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 +97 -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.cc +1 -1
- 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 +25 -12
- data/src/core/lib/security/security_connector/security_connector.cc +6 -3
- data/src/core/lib/security/security_connector/security_connector.h +14 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +38 -21
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +5 -0
- data/src/core/lib/security/security_connector/ssl_utils.cc +82 -33
- data/src/core/lib/security/security_connector/ssl_utils.h +29 -25
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +380 -312
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +141 -79
- data/src/core/lib/security/transport/client_auth_filter.cc +28 -19
- data/src/core/lib/security/transport/secure_endpoint.cc +13 -7
- data/src/core/lib/security/transport/security_handshaker.cc +81 -44
- data/src/core/lib/security/transport/server_auth_filter.cc +19 -12
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +14 -15
- data/src/core/lib/security/util/json_util.h +2 -1
- data/src/core/lib/slice/slice.cc +57 -7
- 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 +4 -2
- data/src/core/lib/surface/call.cc +164 -136
- data/src/core/lib/surface/call.h +15 -3
- data/src/core/lib/surface/call_details.cc +8 -8
- data/src/core/lib/surface/channel.cc +55 -63
- data/src/core/lib/surface/channel.h +24 -7
- data/src/core/lib/surface/channel_init.cc +1 -1
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +96 -96
- data/src/core/lib/surface/completion_queue.h +18 -17
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +46 -32
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +51 -58
- data/src/core/lib/surface/lame_client.h +5 -0
- data/src/core/lib/surface/server.cc +1181 -1365
- data/src/core/lib/surface/server.h +463 -70
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +6 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/authority_override.cc +40 -0
- data/src/core/lib/transport/authority_override.h +37 -0
- data/src/core/lib/transport/bdp_estimator.cc +1 -1
- data/src/core/lib/transport/bdp_estimator.h +2 -1
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +11 -11
- data/src/core/lib/transport/connectivity_state.cc +19 -14
- data/src/core/lib/transport/connectivity_state.h +26 -12
- data/src/core/lib/transport/error_utils.cc +33 -9
- data/src/core/lib/transport/error_utils.h +15 -3
- data/src/core/lib/transport/metadata.cc +16 -2
- data/src/core/lib/transport/metadata.h +2 -2
- data/src/core/lib/transport/metadata_batch.cc +76 -38
- data/src/core/lib/transport/metadata_batch.h +43 -21
- data/src/core/lib/transport/static_metadata.cc +296 -277
- data/src/core/lib/transport/static_metadata.h +80 -73
- 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 +9 -6
- data/src/core/lib/transport/transport.h +26 -11
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/lib/uri/uri_parser.cc +135 -258
- data/src/core/lib/uri/uri_parser.h +58 -20
- data/src/core/plugin_registry/grpc_plugin_registry.cc +61 -20
- data/src/core/tsi/alts/crypt/gsec.cc +5 -4
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +47 -42
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +74 -53
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +3 -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 +199 -73
- data/src/core/tsi/ssl_transport_security.h +23 -12
- data/src/core/tsi/transport_security.cc +10 -8
- data/src/core/tsi/transport_security_interface.h +6 -1
- data/src/ruby/bin/math_services_pb.rb +5 -5
- data/src/ruby/ext/grpc/extconf.rb +17 -4
- data/src/ruby/ext/grpc/rb_call.c +3 -2
- data/src/ruby/ext/grpc/rb_call.h +4 -0
- data/src/ruby/ext/grpc/rb_call_credentials.c +54 -10
- data/src/ruby/ext/grpc/rb_channel.c +10 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +20 -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 +46 -18
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +87 -45
- 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 +5 -3
- data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +3 -3
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +40 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +50 -16
- data/src/ruby/spec/call_spec.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +42 -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 +21 -10
- 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/grpc/testing/package_options_import2.proto +23 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +2 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto +27 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto +29 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +27 -7
- data/src/ruby/spec/server_credentials_spec.rb +25 -0
- data/src/ruby/spec/server_spec.rb +22 -0
- data/src/ruby/spec/user_agent_spec.rb +74 -0
- data/third_party/abseil-cpp/absl/algorithm/container.h +1764 -0
- data/third_party/abseil-cpp/absl/base/attributes.h +122 -41
- data/third_party/abseil-cpp/absl/base/call_once.h +3 -10
- data/third_party/abseil-cpp/absl/base/casts.h +9 -6
- data/third_party/abseil-cpp/absl/base/config.h +97 -26
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +442 -335
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +169 -0
- data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +93 -0
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +130 -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 +620 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +31 -4
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +35 -33
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +17 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +36 -40
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +33 -30
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +11 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- 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/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- 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 +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +47 -109
- data/third_party/abseil-cpp/absl/base/optimization.h +69 -6
- 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/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +95 -40
- data/third_party/abseil-cpp/absl/container/fixed_array.h +532 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +38 -39
- data/third_party/abseil-cpp/absl/container/internal/common.h +206 -0
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +34 -9
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +460 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +161 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +208 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +274 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +322 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +31 -0
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +50 -0
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +743 -0
- 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.cc +61 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1903 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +139 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1949 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +382 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +134 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +199 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +134 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +80 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +108 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +253 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +93 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +346 -0
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +147 -0
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +173 -0
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +140 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +231 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +36 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1560 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +81 -0
- data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +139 -0
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +106 -0
- data/third_party/abseil-cpp/absl/hash/hash.h +325 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +349 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.h +78 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +70 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +1045 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +18 -10
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- 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/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +69 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +396 -0
- data/third_party/abseil-cpp/absl/status/status.cc +452 -0
- data/third_party/abseil-cpp/absl/status/status.h +878 -0
- data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +38 -0
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +51 -0
- 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 +7 -7
- data/third_party/abseil-cpp/absl/strings/cord.cc +1953 -0
- data/third_party/abseil-cpp/absl/strings/cord.h +1394 -0
- data/third_party/abseil-cpp/absl/strings/escaping.cc +13 -13
- 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 +8 -8
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +543 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +236 -136
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +150 -64
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +16 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +29 -21
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +21 -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 +1017 -87
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +17 -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 +22 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +27 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- 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_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/str_split.h +39 -4
- 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/barrier.cc +52 -0
- data/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +57 -0
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +99 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +140 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +60 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +698 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +156 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +115 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +428 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +155 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +2751 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +1082 -0
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +78 -0
- data/third_party/abseil-cpp/absl/synchronization/notification.h +123 -0
- data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +93 -61
- 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 +33 -27
- 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 +15 -8
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +2 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +41 -40
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +82 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1646 -0
- 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/types/variant.h +866 -0
- 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 +763 -721
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +15 -20
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +23 -11
- 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 +16 -22
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +35 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +1 -1
- 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 +40 -86
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +6 -17
- 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/cipher_extra.c +4 -0
- 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/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +101 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +120 -273
- 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/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- 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/dsa/dsa.c +9 -43
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +55 -4
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/is_fips.c → dsa/internal.h} +16 -11
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +12 -52
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -22
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +159 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +6 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +17 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +4 -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 +21 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +32 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +198 -37
- 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/digest/digest.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +2 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +13 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +24 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +20 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +122 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +56 -34
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +116 -60
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +231 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +584 -0
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +43 -15
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +131 -53
- 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 +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +110 -70
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +348 -423
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +217 -79
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +24 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +27 -21
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +52 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +67 -12
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +67 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +71 -59
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +98 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +13 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +21 -34
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +43 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +28 -40
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +21 -172
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +68 -9
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +5 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +12 -0
- 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 +32 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +4 -6
- 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 +42 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +1 -1
- 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_purp.c +127 -41
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +8 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +11 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +25 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +16 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +119 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +746 -561
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +0 -167
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +58 -10
- 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 +23 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +21 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +25 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +62 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +16 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +20 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +104 -51
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- 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/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +2 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +467 -125
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +28 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +43 -24
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1456 -780
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +595 -441
- data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +336 -25
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +97 -53
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +202 -109
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +174 -30
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +504 -162
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +55 -15
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +7 -12
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +8 -9
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +162 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +26 -73
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +6 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +12 -8
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +47 -28
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +1070 -566
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +66 -9
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +183 -76
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +169 -89
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +379 -140
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +5 -3
- data/third_party/re2/re2/bitmap256.h +117 -0
- data/third_party/re2/re2/bitstate.cc +385 -0
- data/third_party/re2/re2/compile.cc +1279 -0
- data/third_party/re2/re2/dfa.cc +2130 -0
- data/third_party/re2/re2/filtered_re2.cc +121 -0
- data/third_party/re2/re2/filtered_re2.h +109 -0
- data/third_party/re2/re2/mimics_pcre.cc +197 -0
- data/third_party/re2/re2/nfa.cc +713 -0
- data/third_party/re2/re2/onepass.cc +623 -0
- data/third_party/re2/re2/parse.cc +2464 -0
- data/third_party/re2/re2/perl_groups.cc +119 -0
- data/third_party/re2/re2/pod_array.h +55 -0
- data/third_party/re2/re2/prefilter.cc +710 -0
- data/third_party/re2/re2/prefilter.h +108 -0
- data/third_party/re2/re2/prefilter_tree.cc +407 -0
- data/third_party/re2/re2/prefilter_tree.h +139 -0
- data/third_party/re2/re2/prog.cc +988 -0
- data/third_party/re2/re2/prog.h +436 -0
- data/third_party/re2/re2/re2.cc +1362 -0
- data/third_party/re2/re2/re2.h +1002 -0
- data/third_party/re2/re2/regexp.cc +980 -0
- data/third_party/re2/re2/regexp.h +659 -0
- data/third_party/re2/re2/set.cc +154 -0
- data/third_party/re2/re2/set.h +80 -0
- data/third_party/re2/re2/simplify.cc +657 -0
- data/third_party/re2/re2/sparse_array.h +392 -0
- data/third_party/re2/re2/sparse_set.h +264 -0
- data/third_party/re2/re2/stringpiece.cc +65 -0
- data/third_party/re2/re2/stringpiece.h +210 -0
- data/third_party/re2/re2/tostring.cc +351 -0
- data/third_party/re2/re2/unicode_casefold.cc +582 -0
- data/third_party/re2/re2/unicode_casefold.h +78 -0
- data/third_party/re2/re2/unicode_groups.cc +6269 -0
- data/third_party/re2/re2/unicode_groups.h +67 -0
- data/third_party/re2/re2/walker-inl.h +246 -0
- data/third_party/re2/util/benchmark.h +156 -0
- data/third_party/re2/util/flags.h +26 -0
- data/third_party/re2/util/logging.h +109 -0
- data/third_party/re2/util/malloc_counter.h +19 -0
- data/third_party/re2/util/mix.h +41 -0
- data/third_party/re2/util/mutex.h +148 -0
- data/third_party/re2/util/pcre.cc +1025 -0
- data/third_party/re2/util/pcre.h +681 -0
- data/third_party/re2/util/rune.cc +260 -0
- data/third_party/re2/util/strutil.cc +149 -0
- data/third_party/re2/util/strutil.h +21 -0
- data/third_party/re2/util/test.h +50 -0
- data/third_party/re2/util/utf.h +44 -0
- data/third_party/re2/util/util.h +42 -0
- data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
- data/third_party/upb/upb/decode.c +604 -511
- 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 +311 -211
- data/third_party/upb/upb/encode.h +27 -2
- data/third_party/upb/upb/msg.c +215 -70
- data/third_party/upb/upb/msg.h +558 -14
- data/third_party/upb/upb/port_def.inc +105 -63
- data/third_party/upb/upb/port_undef.inc +10 -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 +73 -269
- data/third_party/upb/upb/table.int.h +25 -57
- 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 +138 -135
- data/third_party/upb/upb/upb.h +119 -146
- data/third_party/upb/upb/upb.hpp +88 -0
- data/third_party/upb/upb/upb.int.h +29 -0
- data/third_party/xxhash/xxhash.h +5325 -0
- metadata +698 -181
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -938
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +0 -528
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +0 -834
- data/src/core/ext/filters/client_channel/parse_address.h +0 -53
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -484
- 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 -348
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -123
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +0 -1906
- data/src/core/ext/filters/client_channel/xds/xds_api.h +0 -280
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +0 -342
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +0 -88
- data/src/core/ext/filters/client_channel/xds/xds_channel.h +0 -46
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +0 -106
- data/src/core/ext/filters/client_channel/xds/xds_client.h +0 -309
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +0 -21
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -35
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +0 -114
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +0 -418
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +0 -72
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +0 -197
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +0 -105
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +0 -378
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +0 -74
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +0 -218
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +0 -35
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +0 -69
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +0 -55
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +0 -305
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +0 -403
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +0 -1447
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +0 -328
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +0 -35
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +0 -78
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +0 -313
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +0 -897
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +0 -96
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +0 -322
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +0 -34
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +0 -72
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +0 -197
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +0 -642
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +0 -172
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +0 -673
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +0 -36
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +0 -80
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +0 -152
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +0 -518
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +0 -89
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +0 -129
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +0 -392
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -33
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +0 -91
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +0 -266
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +0 -324
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +0 -92
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +0 -240
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -33
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +0 -145
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +0 -527
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +0 -43
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +0 -109
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +0 -399
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -33
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +0 -815
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +0 -3032
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +0 -199
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +0 -59
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +0 -134
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +0 -228
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +0 -725
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +0 -316
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +0 -1132
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +0 -33
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +0 -65
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +0 -51
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +0 -125
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +0 -50
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +0 -54
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +0 -134
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +0 -144
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +0 -53
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +0 -133
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +0 -88
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +0 -258
- data/src/core/ext/upb-generated/envoy/type/percent.upb.c +0 -39
- data/src/core/ext/upb-generated/envoy/type/percent.upb.h +0 -87
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +0 -50
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +0 -112
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +0 -62
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +0 -89
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +0 -249
- data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +0 -17
- data/src/core/lib/gpr/arena.h +0 -47
- data/src/core/lib/gprpp/map.h +0 -53
- data/src/core/lib/iomgr/iomgr_posix.h +0 -26
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -87
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/src/core/lib/security/transport/target_authority_table.cc +0 -75
- data/src/core/lib/security/transport/target_authority_table.h +0 -40
- data/src/core/lib/slice/slice_hash_table.h +0 -199
- data/src/core/lib/slice/slice_weak_hash_table.h +0 -102
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -218
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pku.c +0 -110
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_sxnet.c +0 -274
- data/third_party/upb/upb/generated_util.h +0 -105
- data/third_party/upb/upb/port.c +0 -26
@@ -65,8 +65,12 @@
|
|
65
65
|
#include <string.h>
|
66
66
|
|
67
67
|
#include "absl/container/inlined_vector.h"
|
68
|
+
#include "absl/strings/str_cat.h"
|
68
69
|
#include "absl/strings/str_format.h"
|
69
70
|
#include "absl/strings/str_join.h"
|
71
|
+
#include "absl/strings/strip.h"
|
72
|
+
|
73
|
+
#include "upb/upb.hpp"
|
70
74
|
|
71
75
|
#include <grpc/byte_buffer_reader.h>
|
72
76
|
#include <grpc/grpc.h>
|
@@ -84,9 +88,10 @@
|
|
84
88
|
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h"
|
85
89
|
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
|
86
90
|
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
87
|
-
#include "src/core/ext/filters/client_channel/parse_address.h"
|
88
91
|
#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h"
|
89
92
|
#include "src/core/ext/filters/client_channel/server_address.h"
|
93
|
+
#include "src/core/lib/address_utils/parse_address.h"
|
94
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
90
95
|
#include "src/core/lib/backoff/backoff.h"
|
91
96
|
#include "src/core/lib/channel/channel_args.h"
|
92
97
|
#include "src/core/lib/channel/channel_stack.h"
|
@@ -96,9 +101,7 @@
|
|
96
101
|
#include "src/core/lib/gprpp/orphanable.h"
|
97
102
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
98
103
|
#include "src/core/lib/iomgr/sockaddr.h"
|
99
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
100
104
|
#include "src/core/lib/iomgr/timer.h"
|
101
|
-
#include "src/core/lib/slice/slice_hash_table.h"
|
102
105
|
#include "src/core/lib/slice/slice_internal.h"
|
103
106
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
104
107
|
#include "src/core/lib/surface/call.h"
|
@@ -122,22 +125,29 @@ TraceFlag grpc_lb_glb_trace(false, "glb");
|
|
122
125
|
const char kGrpcLbClientStatsMetadataKey[] = "grpclb_client_stats";
|
123
126
|
const char kGrpcLbLbTokenMetadataKey[] = "lb-token";
|
124
127
|
|
128
|
+
const char kGrpcLbAddressAttributeKey[] = "grpclb";
|
129
|
+
|
125
130
|
namespace {
|
126
131
|
|
127
132
|
constexpr char kGrpclb[] = "grpclb";
|
128
133
|
|
129
134
|
class GrpcLbConfig : public LoadBalancingPolicy::Config {
|
130
135
|
public:
|
131
|
-
|
132
|
-
|
136
|
+
GrpcLbConfig(RefCountedPtr<LoadBalancingPolicy::Config> child_policy,
|
137
|
+
std::string service_name)
|
138
|
+
: child_policy_(std::move(child_policy)),
|
139
|
+
service_name_(std::move(service_name)) {}
|
133
140
|
const char* name() const override { return kGrpclb; }
|
134
141
|
|
135
142
|
RefCountedPtr<LoadBalancingPolicy::Config> child_policy() const {
|
136
143
|
return child_policy_;
|
137
144
|
}
|
138
145
|
|
146
|
+
const std::string& service_name() const { return service_name_; }
|
147
|
+
|
139
148
|
private:
|
140
149
|
RefCountedPtr<LoadBalancingPolicy::Config> child_policy_;
|
150
|
+
std::string service_name_;
|
141
151
|
};
|
142
152
|
|
143
153
|
class GrpcLb : public LoadBalancingPolicy {
|
@@ -155,7 +165,7 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
155
165
|
public:
|
156
166
|
explicit BalancerCallState(
|
157
167
|
RefCountedPtr<LoadBalancingPolicy> parent_grpclb_policy);
|
158
|
-
~BalancerCallState();
|
168
|
+
~BalancerCallState() override;
|
159
169
|
|
160
170
|
// It's the caller's responsibility to ensure that Orphan() is called from
|
161
171
|
// inside the combiner.
|
@@ -176,17 +186,17 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
176
186
|
void ScheduleNextClientLoadReportLocked();
|
177
187
|
void SendClientLoadReportLocked();
|
178
188
|
|
179
|
-
static void MaybeSendClientLoadReport(void* arg,
|
180
|
-
static void ClientLoadReportDone(void* arg,
|
181
|
-
static void OnInitialRequestSent(void* arg,
|
182
|
-
static void OnBalancerMessageReceived(void* arg,
|
183
|
-
static void OnBalancerStatusReceived(void* arg,
|
189
|
+
static void MaybeSendClientLoadReport(void* arg, grpc_error_handle error);
|
190
|
+
static void ClientLoadReportDone(void* arg, grpc_error_handle error);
|
191
|
+
static void OnInitialRequestSent(void* arg, grpc_error_handle error);
|
192
|
+
static void OnBalancerMessageReceived(void* arg, grpc_error_handle error);
|
193
|
+
static void OnBalancerStatusReceived(void* arg, grpc_error_handle error);
|
184
194
|
|
185
|
-
void MaybeSendClientLoadReportLocked(
|
186
|
-
void ClientLoadReportDoneLocked(
|
195
|
+
void MaybeSendClientLoadReportLocked(grpc_error_handle error);
|
196
|
+
void ClientLoadReportDoneLocked(grpc_error_handle error);
|
187
197
|
void OnInitialRequestSentLocked();
|
188
198
|
void OnBalancerMessageReceivedLocked();
|
189
|
-
void OnBalancerStatusReceivedLocked(
|
199
|
+
void OnBalancerStatusReceivedLocked(grpc_error_handle error);
|
190
200
|
|
191
201
|
// The owning LB policy.
|
192
202
|
RefCountedPtr<LoadBalancingPolicy> grpclb_policy_;
|
@@ -226,6 +236,59 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
226
236
|
grpc_closure client_load_report_closure_;
|
227
237
|
};
|
228
238
|
|
239
|
+
class SubchannelWrapper : public DelegatingSubchannel {
|
240
|
+
public:
|
241
|
+
SubchannelWrapper(RefCountedPtr<SubchannelInterface> subchannel,
|
242
|
+
std::string lb_token,
|
243
|
+
RefCountedPtr<GrpcLbClientStats> client_stats)
|
244
|
+
: DelegatingSubchannel(std::move(subchannel)),
|
245
|
+
lb_token_(std::move(lb_token)),
|
246
|
+
client_stats_(std::move(client_stats)) {}
|
247
|
+
|
248
|
+
const std::string& lb_token() const { return lb_token_; }
|
249
|
+
GrpcLbClientStats* client_stats() const { return client_stats_.get(); }
|
250
|
+
|
251
|
+
private:
|
252
|
+
std::string lb_token_;
|
253
|
+
RefCountedPtr<GrpcLbClientStats> client_stats_;
|
254
|
+
};
|
255
|
+
|
256
|
+
class TokenAndClientStatsAttribute
|
257
|
+
: public ServerAddress::AttributeInterface {
|
258
|
+
public:
|
259
|
+
TokenAndClientStatsAttribute(std::string lb_token,
|
260
|
+
RefCountedPtr<GrpcLbClientStats> client_stats)
|
261
|
+
: lb_token_(std::move(lb_token)),
|
262
|
+
client_stats_(std::move(client_stats)) {}
|
263
|
+
|
264
|
+
std::unique_ptr<AttributeInterface> Copy() const override {
|
265
|
+
return absl::make_unique<TokenAndClientStatsAttribute>(lb_token_,
|
266
|
+
client_stats_);
|
267
|
+
}
|
268
|
+
|
269
|
+
int Cmp(const AttributeInterface* other_base) const override {
|
270
|
+
const TokenAndClientStatsAttribute* other =
|
271
|
+
static_cast<const TokenAndClientStatsAttribute*>(other_base);
|
272
|
+
int r = lb_token_.compare(other->lb_token_);
|
273
|
+
if (r != 0) return r;
|
274
|
+
return GPR_ICMP(client_stats_.get(), other->client_stats_.get());
|
275
|
+
}
|
276
|
+
|
277
|
+
std::string ToString() const override {
|
278
|
+
return absl::StrFormat("lb_token=\"%s\" client_stats=%p", lb_token_,
|
279
|
+
client_stats_.get());
|
280
|
+
}
|
281
|
+
|
282
|
+
const std::string& lb_token() const { return lb_token_; }
|
283
|
+
RefCountedPtr<GrpcLbClientStats> client_stats() const {
|
284
|
+
return client_stats_;
|
285
|
+
}
|
286
|
+
|
287
|
+
private:
|
288
|
+
std::string lb_token_;
|
289
|
+
RefCountedPtr<GrpcLbClientStats> client_stats_;
|
290
|
+
};
|
291
|
+
|
229
292
|
class Serverlist : public RefCounted<Serverlist> {
|
230
293
|
public:
|
231
294
|
// Takes ownership of serverlist.
|
@@ -267,21 +330,16 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
267
330
|
|
268
331
|
class Picker : public SubchannelPicker {
|
269
332
|
public:
|
270
|
-
Picker(
|
333
|
+
Picker(RefCountedPtr<Serverlist> serverlist,
|
271
334
|
std::unique_ptr<SubchannelPicker> child_picker,
|
272
335
|
RefCountedPtr<GrpcLbClientStats> client_stats)
|
273
|
-
:
|
274
|
-
serverlist_(std::move(serverlist)),
|
336
|
+
: serverlist_(std::move(serverlist)),
|
275
337
|
child_picker_(std::move(child_picker)),
|
276
338
|
client_stats_(std::move(client_stats)) {}
|
277
339
|
|
278
340
|
PickResult Pick(PickArgs args) override;
|
279
341
|
|
280
342
|
private:
|
281
|
-
// Storing the address for logging, but not holding a ref.
|
282
|
-
// DO NOT DEFERENCE!
|
283
|
-
GrpcLb* parent_;
|
284
|
-
|
285
343
|
// Serverlist to be used for determining drops.
|
286
344
|
RefCountedPtr<Serverlist> serverlist_;
|
287
345
|
|
@@ -295,8 +353,8 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
295
353
|
: parent_(std::move(parent)) {}
|
296
354
|
|
297
355
|
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
298
|
-
const grpc_channel_args& args) override;
|
299
|
-
void UpdateState(grpc_connectivity_state state,
|
356
|
+
ServerAddress address, const grpc_channel_args& args) override;
|
357
|
+
void UpdateState(grpc_connectivity_state state, const absl::Status& status,
|
300
358
|
std::unique_ptr<SubchannelPicker> picker) override;
|
301
359
|
void RequestReresolution() override;
|
302
360
|
void AddTraceEvent(TraceSeverity severity,
|
@@ -312,18 +370,19 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
312
370
|
: AsyncConnectivityStateWatcherInterface(parent->work_serializer()),
|
313
371
|
parent_(std::move(parent)) {}
|
314
372
|
|
315
|
-
~StateWatcher() { parent_.reset(DEBUG_LOCATION, "StateWatcher"); }
|
373
|
+
~StateWatcher() override { parent_.reset(DEBUG_LOCATION, "StateWatcher"); }
|
316
374
|
|
317
375
|
private:
|
318
|
-
void OnConnectivityStateChange(grpc_connectivity_state new_state
|
376
|
+
void OnConnectivityStateChange(grpc_connectivity_state new_state,
|
377
|
+
const absl::Status& status) override {
|
319
378
|
if (parent_->fallback_at_startup_checks_pending_ &&
|
320
379
|
new_state == GRPC_CHANNEL_TRANSIENT_FAILURE) {
|
321
380
|
// In TRANSIENT_FAILURE. Cancel the fallback timer and go into
|
322
381
|
// fallback mode immediately.
|
323
382
|
gpr_log(GPR_INFO,
|
324
|
-
"[grpclb %p] balancer channel in state
|
383
|
+
"[grpclb %p] balancer channel in state:TRANSIENT_FAILURE (%s); "
|
325
384
|
"entering fallback mode",
|
326
|
-
parent_.get());
|
385
|
+
parent_.get(), status.ToString().c_str());
|
327
386
|
parent_->fallback_at_startup_checks_pending_ = false;
|
328
387
|
grpc_timer_cancel(&parent_->lb_fallback_timer_);
|
329
388
|
parent_->fallback_mode_ = true;
|
@@ -337,26 +396,28 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
337
396
|
RefCountedPtr<GrpcLb> parent_;
|
338
397
|
};
|
339
398
|
|
340
|
-
~GrpcLb();
|
399
|
+
~GrpcLb() override;
|
341
400
|
|
342
401
|
void ShutdownLocked() override;
|
343
402
|
|
344
403
|
// Helper functions used in UpdateLocked().
|
345
404
|
void ProcessAddressesAndChannelArgsLocked(const ServerAddressList& addresses,
|
346
405
|
const grpc_channel_args& args);
|
406
|
+
static ServerAddressList AddNullLbTokenToAddresses(
|
407
|
+
const ServerAddressList& addresses);
|
347
408
|
|
348
409
|
void CancelBalancerChannelConnectivityWatchLocked();
|
349
410
|
|
350
411
|
// Methods for dealing with fallback state.
|
351
412
|
void MaybeEnterFallbackModeAfterStartup();
|
352
|
-
static void OnFallbackTimer(void* arg,
|
353
|
-
void OnFallbackTimerLocked(
|
413
|
+
static void OnFallbackTimer(void* arg, grpc_error_handle error);
|
414
|
+
void OnFallbackTimerLocked(grpc_error_handle error);
|
354
415
|
|
355
416
|
// Methods for dealing with the balancer call.
|
356
417
|
void StartBalancerCallLocked();
|
357
418
|
void StartBalancerCallRetryTimerLocked();
|
358
|
-
static void OnBalancerCallRetryTimer(void* arg,
|
359
|
-
void OnBalancerCallRetryTimerLocked(
|
419
|
+
static void OnBalancerCallRetryTimer(void* arg, grpc_error_handle error);
|
420
|
+
void OnBalancerCallRetryTimerLocked(grpc_error_handle error);
|
360
421
|
|
361
422
|
// Methods for dealing with the child policy.
|
362
423
|
grpc_channel_args* CreateChildPolicyArgsLocked(
|
@@ -366,7 +427,9 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
366
427
|
void CreateOrUpdateChildPolicyLocked();
|
367
428
|
|
368
429
|
// Who the client is trying to communicate with.
|
369
|
-
|
430
|
+
std::string server_name_;
|
431
|
+
// Configurations for the policy.
|
432
|
+
RefCountedPtr<GrpcLbConfig> config_;
|
370
433
|
|
371
434
|
// Current channel args from the resolver.
|
372
435
|
grpc_channel_args* args_ = nullptr;
|
@@ -379,6 +442,8 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
379
442
|
StateWatcher* watcher_ = nullptr;
|
380
443
|
// Response generator to inject address updates into lb_channel_.
|
381
444
|
RefCountedPtr<FakeResolverResponseGenerator> response_generator_;
|
445
|
+
// Parent channelz node.
|
446
|
+
RefCountedPtr<channelz::ChannelNode> parent_channelz_node_;
|
382
447
|
|
383
448
|
// The data associated with the current LB call. It holds a ref to this LB
|
384
449
|
// policy. It's initialized every time we query for backends. It's reset to
|
@@ -412,8 +477,6 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
412
477
|
|
413
478
|
// The child policy to use for the backends.
|
414
479
|
OrphanablePtr<LoadBalancingPolicy> child_policy_;
|
415
|
-
// The child policy config.
|
416
|
-
RefCountedPtr<LoadBalancingPolicy::Config> child_policy_config_;
|
417
480
|
// Child policy in state READY.
|
418
481
|
bool child_policy_ready_ = false;
|
419
482
|
};
|
@@ -429,7 +492,7 @@ bool GrpcLb::Serverlist::operator==(const Serverlist& other) const {
|
|
429
492
|
void ParseServer(const GrpcLbServer& server, grpc_resolved_address* addr) {
|
430
493
|
memset(addr, 0, sizeof(*addr));
|
431
494
|
if (server.drop) return;
|
432
|
-
const uint16_t netorder_port = grpc_htons((
|
495
|
+
const uint16_t netorder_port = grpc_htons(static_cast<uint16_t>(server.port));
|
433
496
|
/* the addresses are given in binary format (a in(6)_addr struct) in
|
434
497
|
* server->ip_address.bytes. */
|
435
498
|
if (server.ip_size == 4) {
|
@@ -440,7 +503,8 @@ void ParseServer(const GrpcLbServer& server, grpc_resolved_address* addr) {
|
|
440
503
|
addr4->sin_port = netorder_port;
|
441
504
|
} else if (server.ip_size == 16) {
|
442
505
|
addr->len = static_cast<socklen_t>(sizeof(grpc_sockaddr_in6));
|
443
|
-
grpc_sockaddr_in6* addr6 =
|
506
|
+
grpc_sockaddr_in6* addr6 =
|
507
|
+
reinterpret_cast<grpc_sockaddr_in6*>(&addr->addr);
|
444
508
|
addr6->sin6_family = GRPC_AF_INET6;
|
445
509
|
memcpy(&addr6->sin6_addr, server.ip_addr, server.ip_size);
|
446
510
|
addr6->sin6_port = netorder_port;
|
@@ -465,60 +529,23 @@ std::string GrpcLb::Serverlist::AsText() const {
|
|
465
529
|
return absl::StrJoin(entries, "");
|
466
530
|
}
|
467
531
|
|
468
|
-
// vtables for channel args for LB token and client stats.
|
469
|
-
void* lb_token_copy(void* token) {
|
470
|
-
return gpr_strdup(static_cast<char*>(token));
|
471
|
-
}
|
472
|
-
void lb_token_destroy(void* token) { gpr_free(token); }
|
473
|
-
void* client_stats_copy(void* p) {
|
474
|
-
GrpcLbClientStats* client_stats = static_cast<GrpcLbClientStats*>(p);
|
475
|
-
client_stats->Ref().release();
|
476
|
-
return p;
|
477
|
-
}
|
478
|
-
void client_stats_destroy(void* p) {
|
479
|
-
GrpcLbClientStats* client_stats = static_cast<GrpcLbClientStats*>(p);
|
480
|
-
client_stats->Unref();
|
481
|
-
}
|
482
|
-
int equal_cmp(void* /*p1*/, void* /*p2*/) {
|
483
|
-
// Always indicate a match, since we don't want this channel arg to
|
484
|
-
// affect the subchannel's key in the index.
|
485
|
-
// TODO(roth): Is this right? This does prevent us from needlessly
|
486
|
-
// recreating the subchannel whenever the LB token or client stats
|
487
|
-
// changes (i.e., when the balancer call is terminated and reestablished).
|
488
|
-
// However, it means that we don't actually recreate the subchannel,
|
489
|
-
// which means that we won't ever switch over to using the new LB
|
490
|
-
// token or client stats. A better approach might be to find somewhere
|
491
|
-
// other than the subchannel args to store the LB token and client
|
492
|
-
// stats. They could be stored in a map and then looked up for each
|
493
|
-
// call. Or we could do something more complicated whereby
|
494
|
-
// we create our own subchannel wrapper to store them, although that would
|
495
|
-
// involve a lot of refcounting overhead.
|
496
|
-
// Given that we're trying to move from grpclb to xds at this point,
|
497
|
-
// and that no one has actually reported any problems with this, we
|
498
|
-
// probably won't bother fixing this at this point.
|
499
|
-
return 0;
|
500
|
-
}
|
501
|
-
const grpc_arg_pointer_vtable lb_token_arg_vtable = {
|
502
|
-
lb_token_copy, lb_token_destroy, equal_cmp};
|
503
|
-
const grpc_arg_pointer_vtable client_stats_arg_vtable = {
|
504
|
-
client_stats_copy, client_stats_destroy, equal_cmp};
|
505
|
-
|
506
532
|
bool IsServerValid(const GrpcLbServer& server, size_t idx, bool log) {
|
507
533
|
if (server.drop) return false;
|
508
534
|
if (GPR_UNLIKELY(server.port >> 16 != 0)) {
|
509
535
|
if (log) {
|
510
536
|
gpr_log(GPR_ERROR,
|
511
|
-
"Invalid port '%d' at index %
|
512
|
-
|
537
|
+
"Invalid port '%d' at index %" PRIuPTR
|
538
|
+
" of serverlist. Ignoring.",
|
539
|
+
server.port, idx);
|
513
540
|
}
|
514
541
|
return false;
|
515
542
|
}
|
516
543
|
if (GPR_UNLIKELY(server.ip_size != 4 && server.ip_size != 16)) {
|
517
544
|
if (log) {
|
518
545
|
gpr_log(GPR_ERROR,
|
519
|
-
"Expected IP to be 4 or 16 bytes, got %d at index %
|
520
|
-
"serverlist. Ignoring",
|
521
|
-
server.ip_size,
|
546
|
+
"Expected IP to be 4 or 16 bytes, got %d at index %" PRIuPTR
|
547
|
+
" of serverlist. Ignoring",
|
548
|
+
server.ip_size, idx);
|
522
549
|
}
|
523
550
|
return false;
|
524
551
|
}
|
@@ -528,6 +555,8 @@ bool IsServerValid(const GrpcLbServer& server, size_t idx, bool log) {
|
|
528
555
|
// Returns addresses extracted from the serverlist.
|
529
556
|
ServerAddressList GrpcLb::Serverlist::GetServerAddressList(
|
530
557
|
GrpcLbClientStats* client_stats) const {
|
558
|
+
RefCountedPtr<GrpcLbClientStats> stats;
|
559
|
+
if (client_stats != nullptr) stats = client_stats->Ref();
|
531
560
|
ServerAddressList addresses;
|
532
561
|
for (size_t i = 0; i < serverlist_.size(); ++i) {
|
533
562
|
const GrpcLbServer& server = serverlist_[i];
|
@@ -536,36 +565,23 @@ ServerAddressList GrpcLb::Serverlist::GetServerAddressList(
|
|
536
565
|
grpc_resolved_address addr;
|
537
566
|
ParseServer(server, &addr);
|
538
567
|
// LB token processing.
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
const size_t lb_token_length =
|
544
|
-
strnlen(server.load_balance_token, lb_token_max_length);
|
545
|
-
memcpy(lb_token, server.load_balance_token, lb_token_length);
|
546
|
-
lb_token[lb_token_length] = '\0';
|
547
|
-
} else {
|
548
|
-
char* uri = grpc_sockaddr_to_uri(&addr);
|
568
|
+
const size_t lb_token_length = strnlen(
|
569
|
+
server.load_balance_token, GPR_ARRAY_SIZE(server.load_balance_token));
|
570
|
+
std::string lb_token(server.load_balance_token, lb_token_length);
|
571
|
+
if (lb_token.empty()) {
|
549
572
|
gpr_log(GPR_INFO,
|
550
573
|
"Missing LB token for backend address '%s'. The empty token will "
|
551
574
|
"be used instead",
|
552
|
-
|
553
|
-
gpr_free(uri);
|
554
|
-
lb_token[0] = '\0';
|
575
|
+
grpc_sockaddr_to_uri(&addr).c_str());
|
555
576
|
}
|
577
|
+
// Attach attribute to address containing LB token and stats object.
|
578
|
+
std::map<const char*, std::unique_ptr<ServerAddress::AttributeInterface>>
|
579
|
+
attributes;
|
580
|
+
attributes[kGrpcLbAddressAttributeKey] =
|
581
|
+
absl::make_unique<TokenAndClientStatsAttribute>(std::move(lb_token),
|
582
|
+
stats);
|
556
583
|
// Add address.
|
557
|
-
|
558
|
-
args_to_add.emplace_back(grpc_channel_arg_pointer_create(
|
559
|
-
const_cast<char*>(GRPC_ARG_GRPCLB_ADDRESS_LB_TOKEN), lb_token,
|
560
|
-
&lb_token_arg_vtable));
|
561
|
-
if (client_stats != nullptr) {
|
562
|
-
args_to_add.emplace_back(grpc_channel_arg_pointer_create(
|
563
|
-
const_cast<char*>(GRPC_ARG_GRPCLB_ADDRESS_CLIENT_STATS), client_stats,
|
564
|
-
&client_stats_arg_vtable));
|
565
|
-
}
|
566
|
-
grpc_channel_args* args = grpc_channel_args_copy_and_add(
|
567
|
-
nullptr, args_to_add.data(), args_to_add.size());
|
568
|
-
addresses.emplace_back(addr, args);
|
584
|
+
addresses.emplace_back(addr, /*args=*/nullptr, std::move(attributes));
|
569
585
|
}
|
570
586
|
return addresses;
|
571
587
|
}
|
@@ -590,9 +606,9 @@ const char* GrpcLb::Serverlist::ShouldDrop() {
|
|
590
606
|
//
|
591
607
|
|
592
608
|
GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
593
|
-
PickResult result;
|
594
609
|
// Check if we should drop the call.
|
595
|
-
const char* drop_token =
|
610
|
+
const char* drop_token =
|
611
|
+
serverlist_ == nullptr ? nullptr : serverlist_->ShouldDrop();
|
596
612
|
if (drop_token != nullptr) {
|
597
613
|
// Update client load reporting stats to indicate the number of
|
598
614
|
// dropped calls. Note that we have to do this here instead of in
|
@@ -602,23 +618,20 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
602
618
|
if (client_stats_ != nullptr) {
|
603
619
|
client_stats_->AddCallDropped(drop_token);
|
604
620
|
}
|
605
|
-
|
606
|
-
|
621
|
+
return PickResult::Drop(
|
622
|
+
absl::UnavailableError("drop directed by grpclb balancer"));
|
607
623
|
}
|
608
624
|
// Forward pick to child policy.
|
609
|
-
result = child_picker_->Pick(args);
|
625
|
+
PickResult result = child_picker_->Pick(args);
|
610
626
|
// If pick succeeded, add LB token to initial metadata.
|
611
|
-
|
612
|
-
|
627
|
+
auto* complete_pick = absl::get_if<PickResult::Complete>(&result.result);
|
628
|
+
if (complete_pick != nullptr) {
|
629
|
+
const SubchannelWrapper* subchannel_wrapper =
|
630
|
+
static_cast<SubchannelWrapper*>(complete_pick->subchannel.get());
|
613
631
|
// Encode client stats object into metadata for use by
|
614
632
|
// client_load_reporting filter.
|
615
|
-
|
616
|
-
|
617
|
-
GRPC_ARG_GRPCLB_ADDRESS_CLIENT_STATS);
|
618
|
-
if (arg != nullptr && arg->type == GRPC_ARG_POINTER &&
|
619
|
-
arg->value.pointer.p != nullptr) {
|
620
|
-
GrpcLbClientStats* client_stats =
|
621
|
-
static_cast<GrpcLbClientStats*>(arg->value.pointer.p);
|
633
|
+
GrpcLbClientStats* client_stats = subchannel_wrapper->client_stats();
|
634
|
+
if (client_stats != nullptr) {
|
622
635
|
client_stats->Ref().release(); // Ref passed via metadata.
|
623
636
|
// The metadata value is a hack: we pretend the pointer points to
|
624
637
|
// a string and rely on the client_load_reporting filter to know
|
@@ -630,15 +643,17 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
630
643
|
client_stats->AddCallStarted();
|
631
644
|
}
|
632
645
|
// Encode the LB token in metadata.
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
646
|
+
// Create a new copy on the call arena, since the subchannel list
|
647
|
+
// may get refreshed between when we return this pick and when the
|
648
|
+
// initial metadata goes out on the wire.
|
649
|
+
if (!subchannel_wrapper->lb_token().empty()) {
|
650
|
+
char* lb_token = static_cast<char*>(
|
651
|
+
args.call_state->Alloc(subchannel_wrapper->lb_token().size() + 1));
|
652
|
+
strcpy(lb_token, subchannel_wrapper->lb_token().c_str());
|
653
|
+
args.initial_metadata->Add(kGrpcLbLbTokenMetadataKey, lb_token);
|
639
654
|
}
|
640
|
-
|
641
|
-
|
655
|
+
// Unwrap subchannel to pass up to the channel.
|
656
|
+
complete_pick->subchannel = subchannel_wrapper->wrapped_subchannel();
|
642
657
|
}
|
643
658
|
return result;
|
644
659
|
}
|
@@ -648,62 +663,64 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
648
663
|
//
|
649
664
|
|
650
665
|
RefCountedPtr<SubchannelInterface> GrpcLb::Helper::CreateSubchannel(
|
651
|
-
const grpc_channel_args& args) {
|
666
|
+
ServerAddress address, const grpc_channel_args& args) {
|
652
667
|
if (parent_->shutting_down_) return nullptr;
|
653
|
-
|
668
|
+
const TokenAndClientStatsAttribute* attribute =
|
669
|
+
static_cast<const TokenAndClientStatsAttribute*>(
|
670
|
+
address.GetAttribute(kGrpcLbAddressAttributeKey));
|
671
|
+
if (attribute == nullptr) {
|
672
|
+
gpr_log(GPR_ERROR,
|
673
|
+
"[grpclb %p] no TokenAndClientStatsAttribute for address %p",
|
674
|
+
parent_.get(), address.ToString().c_str());
|
675
|
+
abort();
|
676
|
+
}
|
677
|
+
std::string lb_token = attribute->lb_token();
|
678
|
+
RefCountedPtr<GrpcLbClientStats> client_stats = attribute->client_stats();
|
679
|
+
return MakeRefCounted<SubchannelWrapper>(
|
680
|
+
parent_->channel_control_helper()->CreateSubchannel(std::move(address),
|
681
|
+
args),
|
682
|
+
std::move(lb_token), std::move(client_stats));
|
654
683
|
}
|
655
684
|
|
656
685
|
void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
|
686
|
+
const absl::Status& status,
|
657
687
|
std::unique_ptr<SubchannelPicker> picker) {
|
658
688
|
if (parent_->shutting_down_) return;
|
659
689
|
// Record whether child policy reports READY.
|
660
690
|
parent_->child_policy_ready_ = state == GRPC_CHANNEL_READY;
|
661
691
|
// Enter fallback mode if needed.
|
662
692
|
parent_->MaybeEnterFallbackModeAfterStartup();
|
663
|
-
//
|
664
|
-
//
|
665
|
-
//
|
666
|
-
//
|
667
|
-
//
|
668
|
-
//
|
669
|
-
//
|
670
|
-
//
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
// to process drops for picks that yield a QUEUE result; this would
|
677
|
-
// result in dropping too many calls, since we will see the
|
678
|
-
// queued picks multiple times, and we'd consider each one a
|
679
|
-
// separate call for the drop calculation.
|
680
|
-
//
|
681
|
-
// Cases 1 and 3b: return picker from the child policy as-is.
|
682
|
-
if (parent_->serverlist_ == nullptr ||
|
683
|
-
(!parent_->serverlist_->ContainsAllDropEntries() &&
|
684
|
-
state != GRPC_CHANNEL_READY)) {
|
685
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
686
|
-
gpr_log(GPR_INFO,
|
687
|
-
"[grpclb %p helper %p] state=%s passing child picker %p as-is",
|
688
|
-
parent_.get(), this, ConnectivityStateName(state), picker.get());
|
689
|
-
}
|
690
|
-
parent_->channel_control_helper()->UpdateState(state, std::move(picker));
|
691
|
-
return;
|
692
|
-
}
|
693
|
-
// Cases 2 and 3a: wrap picker from the child in our own picker.
|
694
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
695
|
-
gpr_log(GPR_INFO, "[grpclb %p helper %p] state=%s wrapping child picker %p",
|
696
|
-
parent_.get(), this, ConnectivityStateName(state), picker.get());
|
693
|
+
// We pass the serverlist to the picker so that it can handle drops.
|
694
|
+
// However, we don't want to handle drops in the case where the child
|
695
|
+
// policy is reporting a state other than READY (unless we are
|
696
|
+
// dropping *all* calls), because we don't want to process drops for picks
|
697
|
+
// that yield a QUEUE result; this would result in dropping too many calls,
|
698
|
+
// since we will see the queued picks multiple times, and we'd consider each
|
699
|
+
// one a separate call for the drop calculation. So in this case, we pass
|
700
|
+
// a null serverlist to the picker, which tells it not to do drops.
|
701
|
+
RefCountedPtr<Serverlist> serverlist;
|
702
|
+
if (state == GRPC_CHANNEL_READY ||
|
703
|
+
(parent_->serverlist_ != nullptr &&
|
704
|
+
parent_->serverlist_->ContainsAllDropEntries())) {
|
705
|
+
serverlist = parent_->serverlist_;
|
697
706
|
}
|
698
707
|
RefCountedPtr<GrpcLbClientStats> client_stats;
|
699
708
|
if (parent_->lb_calld_ != nullptr &&
|
700
709
|
parent_->lb_calld_->client_stats() != nullptr) {
|
701
710
|
client_stats = parent_->lb_calld_->client_stats()->Ref();
|
702
711
|
}
|
712
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
713
|
+
gpr_log(GPR_INFO,
|
714
|
+
"[grpclb %p helper %p] state=%s (%s) wrapping child "
|
715
|
+
"picker %p (serverlist=%p, client_stats=%p)",
|
716
|
+
parent_.get(), this, ConnectivityStateName(state),
|
717
|
+
status.ToString().c_str(), picker.get(), serverlist.get(),
|
718
|
+
client_stats.get());
|
719
|
+
}
|
703
720
|
parent_->channel_control_helper()->UpdateState(
|
704
|
-
state,
|
705
|
-
absl::make_unique<Picker>(
|
706
|
-
std::move(
|
721
|
+
state, status,
|
722
|
+
absl::make_unique<Picker>(std::move(serverlist), std::move(picker),
|
723
|
+
std::move(client_stats)));
|
707
724
|
}
|
708
725
|
|
709
726
|
void GrpcLb::Helper::RequestReresolution() {
|
@@ -730,15 +747,16 @@ void GrpcLb::Helper::AddTraceEvent(TraceSeverity severity,
|
|
730
747
|
|
731
748
|
GrpcLb::BalancerCallState::BalancerCallState(
|
732
749
|
RefCountedPtr<LoadBalancingPolicy> parent_grpclb_policy)
|
733
|
-
: InternallyRefCounted<BalancerCallState>(
|
750
|
+
: InternallyRefCounted<BalancerCallState>(
|
751
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace) ? "BalancerCallState"
|
752
|
+
: nullptr),
|
734
753
|
grpclb_policy_(std::move(parent_grpclb_policy)) {
|
735
754
|
GPR_ASSERT(grpclb_policy_ != nullptr);
|
736
755
|
GPR_ASSERT(!grpclb_policy()->shutting_down_);
|
737
756
|
// Init the LB call. Note that the LB call will progress every time there's
|
738
757
|
// activity in grpclb_policy_->interested_parties(), which is comprised of
|
739
758
|
// the polling entities from client_channel.
|
740
|
-
GPR_ASSERT(grpclb_policy()->server_name_
|
741
|
-
GPR_ASSERT(grpclb_policy()->server_name_[0] != '\0');
|
759
|
+
GPR_ASSERT(!grpclb_policy()->server_name_.empty());
|
742
760
|
// Closure Initialization
|
743
761
|
GRPC_CLOSURE_INIT(&lb_on_initial_request_sent_, OnInitialRequestSent, this,
|
744
762
|
grpc_schedule_on_exec_ctx);
|
@@ -759,8 +777,11 @@ GrpcLb::BalancerCallState::BalancerCallState(
|
|
759
777
|
nullptr, deadline, nullptr);
|
760
778
|
// Init the LB call request payload.
|
761
779
|
upb::Arena arena;
|
762
|
-
grpc_slice request_payload_slice =
|
763
|
-
|
780
|
+
grpc_slice request_payload_slice = GrpcLbRequestCreate(
|
781
|
+
grpclb_policy()->config_->service_name().empty()
|
782
|
+
? grpclb_policy()->server_name_.c_str()
|
783
|
+
: grpclb_policy()->config_->service_name().c_str(),
|
784
|
+
arena.ptr());
|
764
785
|
send_message_payload_ =
|
765
786
|
grpc_raw_byte_buffer_create(&request_payload_slice, 1);
|
766
787
|
grpc_slice_unref_internal(request_payload_slice);
|
@@ -785,7 +806,7 @@ void GrpcLb::BalancerCallState::Orphan() {
|
|
785
806
|
// lb_on_balancer_status_received_ will complete the cancellation and clean
|
786
807
|
// up. Otherwise, we are here because grpclb_policy has to orphan a failed
|
787
808
|
// call, then the following cancellation will be a no-op.
|
788
|
-
|
809
|
+
grpc_call_cancel_internal(lb_call_);
|
789
810
|
if (client_load_report_timer_callback_pending_) {
|
790
811
|
grpc_timer_cancel(&client_load_report_timer_);
|
791
812
|
}
|
@@ -824,8 +845,9 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
824
845
|
// with the callback.
|
825
846
|
auto self = Ref(DEBUG_LOCATION, "on_initial_request_sent");
|
826
847
|
self.release();
|
827
|
-
call_error = grpc_call_start_batch_and_execute(
|
828
|
-
|
848
|
+
call_error = grpc_call_start_batch_and_execute(lb_call_, ops,
|
849
|
+
static_cast<size_t>(op - ops),
|
850
|
+
&lb_on_initial_request_sent_);
|
829
851
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
830
852
|
// Op: recv initial metadata.
|
831
853
|
op = ops;
|
@@ -847,7 +869,8 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
847
869
|
self = Ref(DEBUG_LOCATION, "on_message_received");
|
848
870
|
self.release();
|
849
871
|
call_error = grpc_call_start_batch_and_execute(
|
850
|
-
lb_call_, ops,
|
872
|
+
lb_call_, ops, static_cast<size_t>(op - ops),
|
873
|
+
&lb_on_balancer_message_received_);
|
851
874
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
852
875
|
// Op: recv server status.
|
853
876
|
op = ops;
|
@@ -863,11 +886,16 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
863
886
|
// ref instead of a new ref. When it's invoked, it's the initial ref that is
|
864
887
|
// unreffed.
|
865
888
|
call_error = grpc_call_start_batch_and_execute(
|
866
|
-
lb_call_, ops,
|
889
|
+
lb_call_, ops, static_cast<size_t>(op - ops),
|
890
|
+
&lb_on_balancer_status_received_);
|
867
891
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
868
892
|
}
|
869
893
|
|
870
894
|
void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
|
895
|
+
// InvalidateNow to avoid getting stuck re-initializing this timer
|
896
|
+
// in a loop while draining the currently-held WorkSerializer.
|
897
|
+
// Also see https://github.com/grpc/grpc/issues/26079.
|
898
|
+
ExecCtx::Get()->InvalidateNow();
|
871
899
|
const grpc_millis next_client_load_report_time =
|
872
900
|
ExecCtx::Get()->Now() + client_stats_report_interval_;
|
873
901
|
GRPC_CLOSURE_INIT(&client_load_report_closure_, MaybeSendClientLoadReport,
|
@@ -877,8 +905,8 @@ void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
|
|
877
905
|
client_load_report_timer_callback_pending_ = true;
|
878
906
|
}
|
879
907
|
|
880
|
-
void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(
|
881
|
-
|
908
|
+
void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(
|
909
|
+
void* arg, grpc_error_handle error) {
|
882
910
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
883
911
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
884
912
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
@@ -887,7 +915,7 @@ void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(void* arg,
|
|
887
915
|
}
|
888
916
|
|
889
917
|
void GrpcLb::BalancerCallState::MaybeSendClientLoadReportLocked(
|
890
|
-
|
918
|
+
grpc_error_handle error) {
|
891
919
|
client_load_report_timer_callback_pending_ = false;
|
892
920
|
if (error != GRPC_ERROR_NONE || this != grpclb_policy()->lb_calld_.get()) {
|
893
921
|
Unref(DEBUG_LOCATION, "client_load_report");
|
@@ -921,7 +949,7 @@ void GrpcLb::BalancerCallState::SendClientLoadReportLocked() {
|
|
921
949
|
if (num_calls_started == 0 && num_calls_finished == 0 &&
|
922
950
|
num_calls_finished_with_client_failed_to_send == 0 &&
|
923
951
|
num_calls_finished_known_received == 0 &&
|
924
|
-
(drop_token_counts == nullptr || drop_token_counts->
|
952
|
+
(drop_token_counts == nullptr || drop_token_counts->empty())) {
|
925
953
|
if (last_client_load_report_counters_were_zero_) {
|
926
954
|
ScheduleNextClientLoadReportLocked();
|
927
955
|
return;
|
@@ -957,7 +985,7 @@ void GrpcLb::BalancerCallState::SendClientLoadReportLocked() {
|
|
957
985
|
}
|
958
986
|
|
959
987
|
void GrpcLb::BalancerCallState::ClientLoadReportDone(void* arg,
|
960
|
-
|
988
|
+
grpc_error_handle error) {
|
961
989
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
962
990
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
963
991
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
@@ -965,7 +993,8 @@ void GrpcLb::BalancerCallState::ClientLoadReportDone(void* arg,
|
|
965
993
|
DEBUG_LOCATION);
|
966
994
|
}
|
967
995
|
|
968
|
-
void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(
|
996
|
+
void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(
|
997
|
+
grpc_error_handle error) {
|
969
998
|
grpc_byte_buffer_destroy(send_message_payload_);
|
970
999
|
send_message_payload_ = nullptr;
|
971
1000
|
if (error != GRPC_ERROR_NONE || this != grpclb_policy()->lb_calld_.get()) {
|
@@ -976,8 +1005,8 @@ void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(grpc_error* error) {
|
|
976
1005
|
ScheduleNextClientLoadReportLocked();
|
977
1006
|
}
|
978
1007
|
|
979
|
-
void GrpcLb::BalancerCallState::OnInitialRequestSent(
|
980
|
-
|
1008
|
+
void GrpcLb::BalancerCallState::OnInitialRequestSent(
|
1009
|
+
void* arg, grpc_error_handle /*error*/) {
|
981
1010
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
982
1011
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
983
1012
|
[lb_calld]() { lb_calld->OnInitialRequestSentLocked(); }, DEBUG_LOCATION);
|
@@ -996,7 +1025,7 @@ void GrpcLb::BalancerCallState::OnInitialRequestSentLocked() {
|
|
996
1025
|
}
|
997
1026
|
|
998
1027
|
void GrpcLb::BalancerCallState::OnBalancerMessageReceived(
|
999
|
-
void* arg,
|
1028
|
+
void* arg, grpc_error_handle /*error*/) {
|
1000
1029
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1001
1030
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
1002
1031
|
[lb_calld]() { lb_calld->OnBalancerMessageReceivedLocked(); },
|
@@ -1158,8 +1187,8 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked() {
|
|
1158
1187
|
}
|
1159
1188
|
}
|
1160
1189
|
|
1161
|
-
void GrpcLb::BalancerCallState::OnBalancerStatusReceived(
|
1162
|
-
|
1190
|
+
void GrpcLb::BalancerCallState::OnBalancerStatusReceived(
|
1191
|
+
void* arg, grpc_error_handle error) {
|
1163
1192
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1164
1193
|
GRPC_ERROR_REF(error); // owned by lambda
|
1165
1194
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
@@ -1168,7 +1197,7 @@ void GrpcLb::BalancerCallState::OnBalancerStatusReceived(void* arg,
|
|
1168
1197
|
}
|
1169
1198
|
|
1170
1199
|
void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
|
1171
|
-
|
1200
|
+
grpc_error_handle error) {
|
1172
1201
|
GPR_ASSERT(lb_call_ != nullptr);
|
1173
1202
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
1174
1203
|
char* status_details = grpc_slice_to_c_string(lb_call_status_details_);
|
@@ -1176,7 +1205,7 @@ void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
|
|
1176
1205
|
"[grpclb %p] lb_calld=%p: Status from LB server received. "
|
1177
1206
|
"Status = %d, details = '%s', (lb_call: %p), error '%s'",
|
1178
1207
|
grpclb_policy(), this, lb_call_status_, status_details, lb_call_,
|
1179
|
-
|
1208
|
+
grpc_error_std_string(error).c_str());
|
1180
1209
|
gpr_free(status_details);
|
1181
1210
|
}
|
1182
1211
|
GRPC_ERROR_UNREF(error);
|
@@ -1234,12 +1263,10 @@ ServerAddressList ExtractBalancerAddresses(const grpc_channel_args& args) {
|
|
1234
1263
|
* stream for the reception of load balancing updates.
|
1235
1264
|
*
|
1236
1265
|
* Inputs:
|
1237
|
-
* - \a addresses: corresponding to the balancers.
|
1238
1266
|
* - \a response_generator: in order to propagate updates from the resolver
|
1239
1267
|
* above the grpclb policy.
|
1240
1268
|
* - \a args: other args inherited from the grpclb policy. */
|
1241
1269
|
grpc_channel_args* BuildBalancerChannelArgs(
|
1242
|
-
const ServerAddressList& addresses,
|
1243
1270
|
FakeResolverResponseGenerator* response_generator,
|
1244
1271
|
const grpc_channel_args* args) {
|
1245
1272
|
// Channel args to remove.
|
@@ -1271,31 +1298,24 @@ grpc_channel_args* BuildBalancerChannelArgs(
|
|
1271
1298
|
GRPC_ARG_CHANNELZ_CHANNEL_NODE,
|
1272
1299
|
};
|
1273
1300
|
// Channel args to add.
|
1274
|
-
absl::InlinedVector<grpc_arg, 3> args_to_add
|
1275
|
-
|
1276
|
-
|
1277
|
-
args_to_add.emplace_back(
|
1301
|
+
absl::InlinedVector<grpc_arg, 3> args_to_add = {
|
1302
|
+
// The fake resolver response generator, which we use to inject
|
1303
|
+
// address updates into the LB channel.
|
1278
1304
|
grpc_core::FakeResolverResponseGenerator::MakeChannelArg(
|
1279
|
-
response_generator)
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1287
|
-
if (arg != nullptr && arg->type == GRPC_ARG_POINTER &&
|
1288
|
-
arg->value.pointer.p != nullptr) {
|
1289
|
-
channelz_node = static_cast<channelz::ChannelNode*>(arg->value.pointer.p);
|
1290
|
-
args_to_add.emplace_back(
|
1291
|
-
channelz::MakeParentUuidArg(channelz_node->uuid()));
|
1292
|
-
}
|
1305
|
+
response_generator),
|
1306
|
+
// A channel arg indicating the target is a grpclb load balancer.
|
1307
|
+
grpc_channel_arg_integer_create(
|
1308
|
+
const_cast<char*>(GRPC_ARG_ADDRESS_IS_GRPCLB_LOAD_BALANCER), 1),
|
1309
|
+
// Tells channelz that this is an internal channel.
|
1310
|
+
grpc_channel_arg_integer_create(
|
1311
|
+
const_cast<char*>(GRPC_ARG_CHANNELZ_IS_INTERNAL_CHANNEL), 1),
|
1312
|
+
};
|
1293
1313
|
// Construct channel args.
|
1294
1314
|
grpc_channel_args* new_args = grpc_channel_args_copy_and_add_and_remove(
|
1295
1315
|
args, args_to_remove, GPR_ARRAY_SIZE(args_to_remove), args_to_add.data(),
|
1296
1316
|
args_to_add.size());
|
1297
1317
|
// Make any necessary modifications for security.
|
1298
|
-
return ModifyGrpclbBalancerChannelArgs(
|
1318
|
+
return ModifyGrpclbBalancerChannelArgs(new_args);
|
1299
1319
|
}
|
1300
1320
|
|
1301
1321
|
//
|
@@ -1322,15 +1342,14 @@ GrpcLb::GrpcLb(Args args)
|
|
1322
1342
|
const grpc_arg* arg = grpc_channel_args_find(args.args, GRPC_ARG_SERVER_URI);
|
1323
1343
|
const char* server_uri = grpc_channel_arg_get_string(arg);
|
1324
1344
|
GPR_ASSERT(server_uri != nullptr);
|
1325
|
-
|
1326
|
-
GPR_ASSERT(uri->path
|
1327
|
-
server_name_ =
|
1345
|
+
absl::StatusOr<URI> uri = URI::Parse(server_uri);
|
1346
|
+
GPR_ASSERT(uri.ok() && !uri->path().empty());
|
1347
|
+
server_name_ = std::string(absl::StripPrefix(uri->path(), "/"));
|
1328
1348
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
1329
1349
|
gpr_log(GPR_INFO,
|
1330
1350
|
"[grpclb %p] Will use '%s' as the server name for LB request.",
|
1331
|
-
this, server_name_);
|
1351
|
+
this, server_name_.c_str());
|
1332
1352
|
}
|
1333
|
-
grpc_uri_destroy(uri);
|
1334
1353
|
// Record LB call timeout.
|
1335
1354
|
arg = grpc_channel_args_find(args.args, GRPC_ARG_GRPCLB_CALL_TIMEOUT_MS);
|
1336
1355
|
lb_call_timeout_ms_ = grpc_channel_arg_get_integer(arg, {0, 0, INT_MAX});
|
@@ -1340,10 +1359,7 @@ GrpcLb::GrpcLb(Args args)
|
|
1340
1359
|
arg, {GRPC_GRPCLB_DEFAULT_FALLBACK_TIMEOUT_MS, 0, INT_MAX});
|
1341
1360
|
}
|
1342
1361
|
|
1343
|
-
GrpcLb::~GrpcLb() {
|
1344
|
-
gpr_free((void*)server_name_);
|
1345
|
-
grpc_channel_args_destroy(args_);
|
1346
|
-
}
|
1362
|
+
GrpcLb::~GrpcLb() { grpc_channel_args_destroy(args_); }
|
1347
1363
|
|
1348
1364
|
void GrpcLb::ShutdownLocked() {
|
1349
1365
|
shutting_down_ = true;
|
@@ -1366,6 +1382,12 @@ void GrpcLb::ShutdownLocked() {
|
|
1366
1382
|
// OnBalancerChannelConnectivityChangedLocked(), and we need to be
|
1367
1383
|
// alive when that callback is invoked.
|
1368
1384
|
if (lb_channel_ != nullptr) {
|
1385
|
+
if (parent_channelz_node_ != nullptr) {
|
1386
|
+
channelz::ChannelNode* child_channelz_node =
|
1387
|
+
grpc_channel_get_channelz_node(lb_channel_);
|
1388
|
+
GPR_ASSERT(child_channelz_node != nullptr);
|
1389
|
+
parent_channelz_node_->RemoveChildChannel(child_channelz_node->uuid());
|
1390
|
+
}
|
1369
1391
|
grpc_channel_destroy(lb_channel_);
|
1370
1392
|
lb_channel_ = nullptr;
|
1371
1393
|
}
|
@@ -1386,12 +1408,8 @@ void GrpcLb::ResetBackoffLocked() {
|
|
1386
1408
|
|
1387
1409
|
void GrpcLb::UpdateLocked(UpdateArgs args) {
|
1388
1410
|
const bool is_initial_update = lb_channel_ == nullptr;
|
1389
|
-
|
1390
|
-
|
1391
|
-
child_policy_config_ = grpclb_config->child_policy();
|
1392
|
-
} else {
|
1393
|
-
child_policy_config_ = nullptr;
|
1394
|
-
}
|
1411
|
+
config_ = args.config;
|
1412
|
+
GPR_ASSERT(config_ != nullptr);
|
1395
1413
|
ProcessAddressesAndChannelArgsLocked(args.addresses, *args.args);
|
1396
1414
|
// Update the existing child policy.
|
1397
1415
|
if (child_policy_ != nullptr) CreateOrUpdateChildPolicyLocked();
|
@@ -1406,13 +1424,12 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1406
1424
|
// Start watching the channel's connectivity state. If the channel
|
1407
1425
|
// goes into state TRANSIENT_FAILURE before the timer fires, we go into
|
1408
1426
|
// fallback mode even if the fallback timeout has not elapsed.
|
1409
|
-
|
1410
|
-
|
1411
|
-
GPR_ASSERT(client_channel_elem->filter == &grpc_client_channel_filter);
|
1427
|
+
ClientChannel* client_channel = ClientChannel::GetFromChannel(lb_channel_);
|
1428
|
+
GPR_ASSERT(client_channel != nullptr);
|
1412
1429
|
// Ref held by callback.
|
1413
1430
|
watcher_ = new StateWatcher(Ref(DEBUG_LOCATION, "StateWatcher"));
|
1414
|
-
|
1415
|
-
|
1431
|
+
client_channel->AddConnectivityWatcher(
|
1432
|
+
GRPC_CHANNEL_IDLE,
|
1416
1433
|
OrphanablePtr<AsyncConnectivityStateWatcherInterface>(watcher_));
|
1417
1434
|
// Start balancer call.
|
1418
1435
|
StartBalancerCallLocked();
|
@@ -1423,17 +1440,13 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1423
1440
|
// helpers for UpdateLocked()
|
1424
1441
|
//
|
1425
1442
|
|
1426
|
-
ServerAddressList AddNullLbTokenToAddresses(
|
1443
|
+
ServerAddressList GrpcLb::AddNullLbTokenToAddresses(
|
1427
1444
|
const ServerAddressList& addresses) {
|
1428
|
-
static const char* lb_token = "";
|
1429
|
-
grpc_arg arg = grpc_channel_arg_pointer_create(
|
1430
|
-
const_cast<char*>(GRPC_ARG_GRPCLB_ADDRESS_LB_TOKEN),
|
1431
|
-
const_cast<char*>(lb_token), &lb_token_arg_vtable);
|
1432
1445
|
ServerAddressList addresses_out;
|
1433
|
-
for (
|
1434
|
-
addresses_out.emplace_back(
|
1435
|
-
|
1436
|
-
|
1446
|
+
for (const ServerAddress& address : addresses) {
|
1447
|
+
addresses_out.emplace_back(address.WithAttribute(
|
1448
|
+
kGrpcLbAddressAttributeKey,
|
1449
|
+
absl::make_unique<TokenAndClientStatsAttribute>("", nullptr)));
|
1437
1450
|
}
|
1438
1451
|
return addresses_out;
|
1439
1452
|
}
|
@@ -1446,21 +1459,30 @@ void GrpcLb::ProcessAddressesAndChannelArgsLocked(
|
|
1446
1459
|
// since we use this to trigger the client_load_reporting filter.
|
1447
1460
|
static const char* args_to_remove[] = {GRPC_ARG_LB_POLICY_NAME};
|
1448
1461
|
grpc_arg new_arg = grpc_channel_arg_string_create(
|
1449
|
-
(
|
1462
|
+
const_cast<char*>(GRPC_ARG_LB_POLICY_NAME), const_cast<char*>("grpclb"));
|
1450
1463
|
grpc_channel_args_destroy(args_);
|
1451
1464
|
args_ = grpc_channel_args_copy_and_add_and_remove(
|
1452
1465
|
&args, args_to_remove, GPR_ARRAY_SIZE(args_to_remove), &new_arg, 1);
|
1453
1466
|
// Construct args for balancer channel.
|
1454
1467
|
ServerAddressList balancer_addresses = ExtractBalancerAddresses(args);
|
1455
|
-
grpc_channel_args* lb_channel_args =
|
1456
|
-
|
1468
|
+
grpc_channel_args* lb_channel_args =
|
1469
|
+
BuildBalancerChannelArgs(response_generator_.get(), &args);
|
1457
1470
|
// Create balancer channel if needed.
|
1458
1471
|
if (lb_channel_ == nullptr) {
|
1459
|
-
|
1460
|
-
|
1461
|
-
|
1472
|
+
std::string uri_str = absl::StrCat("fake:///", server_name_);
|
1473
|
+
lb_channel_ =
|
1474
|
+
CreateGrpclbBalancerChannel(uri_str.c_str(), *lb_channel_args);
|
1462
1475
|
GPR_ASSERT(lb_channel_ != nullptr);
|
1463
|
-
|
1476
|
+
// Set up channelz linkage.
|
1477
|
+
channelz::ChannelNode* child_channelz_node =
|
1478
|
+
grpc_channel_get_channelz_node(lb_channel_);
|
1479
|
+
channelz::ChannelNode* parent_channelz_node =
|
1480
|
+
grpc_channel_args_find_pointer<channelz::ChannelNode>(
|
1481
|
+
&args, GRPC_ARG_CHANNELZ_CHANNEL_NODE);
|
1482
|
+
if (child_channelz_node != nullptr && parent_channelz_node != nullptr) {
|
1483
|
+
parent_channelz_node->AddChildChannel(child_channelz_node->uuid());
|
1484
|
+
parent_channelz_node_ = parent_channelz_node->Ref();
|
1485
|
+
}
|
1464
1486
|
}
|
1465
1487
|
// Propagate updates to the LB channel (pick_first) through the fake
|
1466
1488
|
// resolver.
|
@@ -1471,10 +1493,9 @@ void GrpcLb::ProcessAddressesAndChannelArgsLocked(
|
|
1471
1493
|
}
|
1472
1494
|
|
1473
1495
|
void GrpcLb::CancelBalancerChannelConnectivityWatchLocked() {
|
1474
|
-
|
1475
|
-
|
1476
|
-
|
1477
|
-
grpc_client_channel_stop_connectivity_watch(client_channel_elem, watcher_);
|
1496
|
+
ClientChannel* client_channel = ClientChannel::GetFromChannel(lb_channel_);
|
1497
|
+
GPR_ASSERT(client_channel != nullptr);
|
1498
|
+
client_channel->RemoveConnectivityWatcher(watcher_);
|
1478
1499
|
}
|
1479
1500
|
|
1480
1501
|
//
|
@@ -1517,7 +1538,7 @@ void GrpcLb::StartBalancerCallRetryTimerLocked() {
|
|
1517
1538
|
grpc_timer_init(&lb_call_retry_timer_, next_try, &lb_on_call_retry_);
|
1518
1539
|
}
|
1519
1540
|
|
1520
|
-
void GrpcLb::OnBalancerCallRetryTimer(void* arg,
|
1541
|
+
void GrpcLb::OnBalancerCallRetryTimer(void* arg, grpc_error_handle error) {
|
1521
1542
|
GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
|
1522
1543
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
1523
1544
|
grpclb_policy->work_serializer()->Run(
|
@@ -1527,7 +1548,7 @@ void GrpcLb::OnBalancerCallRetryTimer(void* arg, grpc_error* error) {
|
|
1527
1548
|
DEBUG_LOCATION);
|
1528
1549
|
}
|
1529
1550
|
|
1530
|
-
void GrpcLb::OnBalancerCallRetryTimerLocked(
|
1551
|
+
void GrpcLb::OnBalancerCallRetryTimerLocked(grpc_error_handle error) {
|
1531
1552
|
retry_timer_callback_pending_ = false;
|
1532
1553
|
if (!shutting_down_ && error == GRPC_ERROR_NONE && lb_calld_ == nullptr) {
|
1533
1554
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
@@ -1561,7 +1582,7 @@ void GrpcLb::MaybeEnterFallbackModeAfterStartup() {
|
|
1561
1582
|
}
|
1562
1583
|
}
|
1563
1584
|
|
1564
|
-
void GrpcLb::OnFallbackTimer(void* arg,
|
1585
|
+
void GrpcLb::OnFallbackTimer(void* arg, grpc_error_handle error) {
|
1565
1586
|
GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
|
1566
1587
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
1567
1588
|
grpclb_policy->work_serializer()->Run(
|
@@ -1569,7 +1590,7 @@ void GrpcLb::OnFallbackTimer(void* arg, grpc_error* error) {
|
|
1569
1590
|
DEBUG_LOCATION);
|
1570
1591
|
}
|
1571
1592
|
|
1572
|
-
void GrpcLb::OnFallbackTimerLocked(
|
1593
|
+
void GrpcLb::OnFallbackTimerLocked(grpc_error_handle error) {
|
1573
1594
|
// If we receive a serverlist after the timer fires but before this callback
|
1574
1595
|
// actually runs, don't fall back.
|
1575
1596
|
if (fallback_at_startup_checks_pending_ && !shutting_down_ &&
|
@@ -1646,7 +1667,7 @@ void GrpcLb::CreateOrUpdateChildPolicyLocked() {
|
|
1646
1667
|
update_args.args =
|
1647
1668
|
CreateChildPolicyArgsLocked(is_backend_from_grpclb_load_balancer);
|
1648
1669
|
GPR_ASSERT(update_args.args != nullptr);
|
1649
|
-
update_args.config =
|
1670
|
+
update_args.config = config_->child_policy();
|
1650
1671
|
// Create child policy if needed.
|
1651
1672
|
if (child_policy_ == nullptr) {
|
1652
1673
|
child_policy_ = CreateChildPolicyLocked(update_args.args);
|
@@ -1673,15 +1694,26 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1673
1694
|
const char* name() const override { return kGrpclb; }
|
1674
1695
|
|
1675
1696
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
1676
|
-
const Json& json,
|
1697
|
+
const Json& json, grpc_error_handle* error) const override {
|
1677
1698
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
1678
1699
|
if (json.type() == Json::Type::JSON_NULL) {
|
1679
|
-
return MakeRefCounted<GrpcLbConfig>(nullptr);
|
1700
|
+
return MakeRefCounted<GrpcLbConfig>(nullptr, "");
|
1680
1701
|
}
|
1681
|
-
std::vector<
|
1702
|
+
std::vector<grpc_error_handle> error_list;
|
1682
1703
|
Json child_policy_config_json_tmp;
|
1683
1704
|
const Json* child_policy_config_json;
|
1684
|
-
|
1705
|
+
std::string service_name;
|
1706
|
+
auto it = json.object_value().find("serviceName");
|
1707
|
+
if (it != json.object_value().end()) {
|
1708
|
+
const Json& service_name_json = it->second;
|
1709
|
+
if (service_name_json.type() != Json::Type::STRING) {
|
1710
|
+
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1711
|
+
"field:serviceName error:type should be string"));
|
1712
|
+
} else {
|
1713
|
+
service_name = service_name_json.string_value();
|
1714
|
+
}
|
1715
|
+
}
|
1716
|
+
it = json.object_value().find("childPolicy");
|
1685
1717
|
if (it == json.object_value().end()) {
|
1686
1718
|
child_policy_config_json_tmp = Json::Array{Json::Object{
|
1687
1719
|
{"round_robin", Json::Object()},
|
@@ -1690,18 +1722,19 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1690
1722
|
} else {
|
1691
1723
|
child_policy_config_json = &it->second;
|
1692
1724
|
}
|
1693
|
-
|
1725
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
1694
1726
|
RefCountedPtr<LoadBalancingPolicy::Config> child_policy_config =
|
1695
1727
|
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
1696
1728
|
*child_policy_config_json, &parse_error);
|
1697
1729
|
if (parse_error != GRPC_ERROR_NONE) {
|
1698
|
-
std::vector<
|
1730
|
+
std::vector<grpc_error_handle> child_errors;
|
1699
1731
|
child_errors.push_back(parse_error);
|
1700
1732
|
error_list.push_back(
|
1701
1733
|
GRPC_ERROR_CREATE_FROM_VECTOR("field:childPolicy", &child_errors));
|
1702
1734
|
}
|
1703
1735
|
if (error_list.empty()) {
|
1704
|
-
return MakeRefCounted<GrpcLbConfig>(std::move(child_policy_config)
|
1736
|
+
return MakeRefCounted<GrpcLbConfig>(std::move(child_policy_config),
|
1737
|
+
std::move(service_name));
|
1705
1738
|
} else {
|
1706
1739
|
*error = GRPC_ERROR_CREATE_FROM_VECTOR("GrpcLb Parser", &error_list);
|
1707
1740
|
return nullptr;
|
@@ -1734,7 +1767,8 @@ bool maybe_add_client_load_reporting_filter(grpc_channel_stack_builder* builder,
|
|
1734
1767
|
// will minimize the number of metadata elements that the filter
|
1735
1768
|
// needs to iterate through to find the ClientStats object.
|
1736
1769
|
return grpc_channel_stack_builder_prepend_filter(
|
1737
|
-
builder,
|
1770
|
+
builder, static_cast<const grpc_channel_filter*>(arg), nullptr,
|
1771
|
+
nullptr);
|
1738
1772
|
}
|
1739
1773
|
return true;
|
1740
1774
|
}
|
@@ -1745,10 +1779,10 @@ void grpc_lb_policy_grpclb_init() {
|
|
1745
1779
|
grpc_core::LoadBalancingPolicyRegistry::Builder::
|
1746
1780
|
RegisterLoadBalancingPolicyFactory(
|
1747
1781
|
absl::make_unique<grpc_core::GrpcLbFactory>());
|
1748
|
-
grpc_channel_init_register_stage(
|
1749
|
-
|
1750
|
-
|
1751
|
-
|
1782
|
+
grpc_channel_init_register_stage(
|
1783
|
+
GRPC_CLIENT_SUBCHANNEL, GRPC_CHANNEL_INIT_BUILTIN_PRIORITY,
|
1784
|
+
maybe_add_client_load_reporting_filter,
|
1785
|
+
const_cast<grpc_channel_filter*>(&grpc_client_load_reporting_filter));
|
1752
1786
|
}
|
1753
1787
|
|
1754
1788
|
void grpc_lb_policy_grpclb_shutdown() {}
|