grpc 1.51.0 → 1.52.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 +91 -23
- data/include/grpc/byte_buffer.h +76 -1
- data/include/grpc/byte_buffer_reader.h +19 -1
- data/include/grpc/compression.h +2 -2
- data/include/grpc/event_engine/event_engine.h +17 -3
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +1 -1
- data/include/grpc/event_engine/internal/slice_cast.h +67 -0
- data/include/grpc/event_engine/memory_allocator.h +1 -1
- data/include/grpc/event_engine/slice.h +24 -4
- data/include/grpc/event_engine/slice_buffer.h +14 -2
- data/include/grpc/fork.h +25 -1
- data/include/grpc/grpc.h +3 -3
- data/include/grpc/grpc_posix.h +1 -1
- data/include/grpc/impl/codegen/atm.h +3 -71
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +3 -58
- data/include/grpc/impl/codegen/atm_gcc_sync.h +3 -59
- data/include/grpc/impl/codegen/atm_windows.h +3 -106
- data/include/grpc/impl/codegen/byte_buffer.h +4 -78
- data/include/grpc/impl/codegen/byte_buffer_reader.h +4 -19
- data/include/grpc/impl/codegen/compression_types.h +3 -82
- data/include/grpc/impl/codegen/connectivity_state.h +3 -20
- data/include/grpc/impl/codegen/fork.h +4 -25
- data/include/grpc/impl/codegen/gpr_types.h +2 -34
- data/include/grpc/impl/codegen/grpc_types.h +3 -787
- data/include/grpc/impl/codegen/log.h +3 -86
- data/include/grpc/impl/codegen/port_platform.h +3 -755
- data/include/grpc/impl/codegen/propagation_bits.h +3 -28
- data/include/grpc/impl/codegen/slice.h +3 -106
- data/include/grpc/impl/codegen/status.h +4 -131
- data/include/grpc/impl/codegen/sync.h +3 -42
- data/include/grpc/impl/codegen/sync_abseil.h +3 -12
- data/include/grpc/impl/codegen/sync_custom.h +3 -14
- data/include/grpc/impl/codegen/sync_generic.h +3 -25
- data/include/grpc/impl/codegen/sync_posix.h +3 -28
- data/include/grpc/impl/codegen/sync_windows.h +3 -16
- data/include/grpc/impl/compression_types.h +109 -0
- data/include/grpc/impl/connectivity_state.h +47 -0
- data/include/grpc/impl/grpc_types.h +824 -0
- data/include/grpc/impl/propagation_bits.h +54 -0
- data/include/grpc/impl/slice_type.h +112 -0
- data/include/grpc/load_reporting.h +1 -1
- data/include/grpc/module.modulemap +5 -1
- data/include/grpc/slice.h +1 -1
- data/include/grpc/status.h +131 -1
- data/include/grpc/support/atm.h +70 -1
- data/include/grpc/support/atm_gcc_atomic.h +59 -1
- data/include/grpc/support/atm_gcc_sync.h +58 -1
- data/include/grpc/support/atm_windows.h +105 -1
- data/include/grpc/support/log.h +87 -1
- data/include/grpc/support/log_windows.h +1 -1
- data/include/grpc/support/port_platform.h +767 -1
- data/include/grpc/support/string_util.h +1 -1
- data/include/grpc/support/sync.h +35 -2
- data/include/grpc/support/sync_abseil.h +11 -1
- data/include/grpc/support/sync_custom.h +13 -1
- data/include/grpc/support/sync_generic.h +24 -1
- data/include/grpc/support/sync_posix.h +27 -1
- data/include/grpc/support/sync_windows.h +15 -1
- data/include/grpc/support/time.h +25 -2
- data/src/core/ext/filters/census/grpc_context.cc +17 -18
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +9 -9
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +1 -1
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +1 -1
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +21 -21
- data/src/core/ext/filters/client_channel/backup_poller.h +21 -21
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +45 -24
- data/src/core/ext/filters/client_channel/client_channel.cc +40 -31
- data/src/core/ext/filters/client_channel/client_channel.h +7 -6
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +17 -17
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +19 -19
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +17 -17
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +17 -17
- data/src/core/ext/filters/client_channel/config_selector.h +16 -20
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +8 -8
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +18 -18
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +1 -1
- data/src/core/ext/filters/client_channel/http_proxy.cc +39 -39
- data/src/core/ext/filters/client_channel/http_proxy.h +18 -18
- data/src/core/ext/filters/client_channel/lb_call_state_internal.h +39 -0
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +17 -17
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +58 -130
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +37 -21
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +102 -116
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +24 -25
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +2 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +17 -17
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +18 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +18 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +18 -19
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +173 -196
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +10 -19
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +66 -97
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +14 -13
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +98 -84
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -8
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +30 -16
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +21 -35
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +45 -39
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +11 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +16 -49
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +31 -21
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +651 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +60 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +4 -4
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +18 -18
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +0 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +40 -41
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +21 -21
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +60 -59
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +67 -66
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +50 -51
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +18 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +18 -18
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +18 -19
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +0 -1
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +44 -33
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +8 -10
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +59 -73
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +1 -1
- data/src/core/ext/filters/client_channel/retry_filter.cc +1 -1
- data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +19 -21
- data/src/core/ext/filters/client_channel/retry_throttle.h +18 -18
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +1 -1
- data/src/core/ext/filters/client_channel/subchannel.cc +139 -155
- data/src/core/ext/filters/client_channel/subchannel.h +15 -38
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +18 -18
- data/src/core/ext/filters/deadline/deadline_filter.cc +21 -3
- data/src/core/ext/filters/deadline/deadline_filter.h +1 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +2 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +20 -21
- data/src/core/ext/filters/http/client/http_client_filter.h +17 -17
- data/src/core/ext/filters/http/client_authority_filter.cc +18 -18
- data/src/core/ext/filters/http/client_authority_filter.h +18 -18
- data/src/core/ext/filters/http/http_filters_plugin.cc +35 -51
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +315 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.h +132 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +18 -18
- data/src/core/ext/filters/http/server/http_server_filter.h +18 -18
- data/src/core/ext/filters/message_size/message_size_filter.cc +6 -6
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +6 -8
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +3 -4
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +229 -0
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +66 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +82 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +93 -0
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +18 -18
- data/src/core/ext/transport/chttp2/alpn/alpn.h +22 -22
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +54 -44
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +28 -22
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +24 -25
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +18 -18
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +17 -17
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +30 -30
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +29 -29
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +27 -27
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +66 -35
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +18 -19
- data/src/core/ext/transport/chttp2/transport/context_list.cc +19 -19
- data/src/core/ext/transport/chttp2/transport/context_list.h +25 -25
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +0 -36
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +35 -82
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +75 -38
- data/src/core/ext/transport/chttp2/transport/flow_control.h +56 -31
- data/src/core/ext/transport/chttp2/transport/frame.h +19 -19
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +17 -17
- data/src/core/ext/transport/chttp2/transport/frame_data.h +22 -22
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +23 -23
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -18
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +21 -21
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +19 -19
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +18 -18
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +18 -18
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +20 -20
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +17 -17
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +18 -18
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +129 -176
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +39 -58
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +69 -111
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +20 -20
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +19 -20
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +18 -18
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -19
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +36 -34
- data/src/core/ext/transport/chttp2/transport/http_trace.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/http_trace.h +24 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.cc +20 -20
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +19 -19
- data/src/core/ext/transport/chttp2/transport/internal.h +170 -163
- data/src/core/ext/transport/chttp2/transport/parsing.cc +96 -28
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +19 -19
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +23 -23
- data/src/core/ext/transport/chttp2/transport/stream_map.h +31 -31
- data/src/core/ext/transport/chttp2/transport/varint.cc +17 -17
- data/src/core/ext/transport/chttp2/transport/varint.h +24 -24
- data/src/core/ext/transport/chttp2/transport/writing.cc +45 -41
- data/src/core/ext/transport/inproc/inproc_plugin.cc +17 -17
- data/src/core/ext/transport/inproc/inproc_transport.cc +25 -25
- data/src/core/ext/transport/inproc/inproc_transport.h +19 -19
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +179 -0
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +98 -0
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +47 -0
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +107 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +3 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +9 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +0 -1
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +98 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +62 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +174 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +74 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +65 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +191 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +127 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +474 -0
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +67 -0
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +214 -0
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +64 -0
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +208 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +0 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +9 -9
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +4 -7
- data/src/core/ext/xds/xds_api.cc +5 -27
- data/src/core/ext/xds/xds_api.h +2 -1
- data/src/core/ext/xds/xds_certificate_provider.h +1 -1
- data/src/core/ext/xds/xds_channel_args.h +1 -1
- data/src/core/ext/xds/xds_channel_stack_modifier.h +2 -2
- data/src/core/ext/xds/xds_client.cc +14 -6
- data/src/core/ext/xds/xds_client.h +6 -3
- data/src/core/ext/xds/xds_client_grpc.cc +26 -0
- data/src/core/ext/xds/xds_client_grpc.h +1 -1
- data/src/core/ext/xds/xds_client_stats.cc +17 -17
- data/src/core/ext/xds/xds_client_stats.h +18 -18
- data/src/core/ext/xds/xds_cluster.cc +94 -46
- data/src/core/ext/xds/xds_cluster.h +44 -23
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +30 -50
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +14 -9
- data/src/core/ext/xds/xds_common_types.cc +4 -3
- data/src/core/ext/xds/xds_endpoint.cc +8 -2
- data/src/core/ext/xds/xds_health_status.cc +80 -0
- data/src/core/ext/xds/xds_health_status.h +82 -0
- data/src/core/ext/xds/xds_http_fault_filter.cc +7 -6
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
- data/src/core/ext/xds/xds_http_filters.cc +11 -6
- data/src/core/ext/xds/xds_http_filters.h +5 -5
- data/src/core/ext/xds/xds_http_rbac_filter.cc +7 -6
- data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +218 -0
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +58 -0
- data/src/core/ext/xds/xds_lb_policy_registry.cc +0 -4
- data/src/core/ext/xds/xds_listener.cc +14 -28
- data/src/core/ext/xds/xds_listener.h +2 -0
- data/src/core/ext/xds/xds_resource_type_impl.h +8 -6
- data/src/core/ext/xds/xds_route_config.cc +501 -529
- data/src/core/ext/xds/xds_route_config.h +29 -18
- data/src/core/ext/xds/xds_server_config_fetcher.cc +12 -24
- data/src/core/ext/xds/xds_transport_grpc.cc +2 -2
- data/src/core/ext/xds/xds_transport_grpc.h +1 -1
- data/src/core/lib/address_utils/parse_address.cc +19 -19
- data/src/core/lib/address_utils/parse_address.h +32 -32
- data/src/core/lib/address_utils/sockaddr_utils.cc +29 -28
- data/src/core/lib/address_utils/sockaddr_utils.h +33 -33
- data/src/core/lib/avl/avl.h +4 -4
- data/src/core/lib/backoff/backoff.cc +17 -17
- data/src/core/lib/backoff/backoff.h +18 -18
- data/src/core/lib/channel/call_tracer.h +10 -1
- data/src/core/lib/channel/channel_args.cc +19 -20
- data/src/core/lib/channel/channel_args.h +43 -42
- data/src/core/lib/channel/channel_args_preconditioning.h +1 -1
- data/src/core/lib/channel/channel_stack.cc +39 -38
- data/src/core/lib/channel/channel_stack.h +127 -127
- data/src/core/lib/channel/channel_stack_builder.cc +17 -17
- data/src/core/lib/channel/channel_stack_builder_impl.cc +18 -18
- data/src/core/lib/channel/channel_trace.cc +17 -17
- data/src/core/lib/channel/channel_trace.h +19 -19
- data/src/core/lib/channel/channelz.cc +17 -18
- data/src/core/lib/channel/channelz.h +26 -26
- data/src/core/lib/channel/channelz_registry.cc +17 -17
- data/src/core/lib/channel/channelz_registry.h +18 -18
- data/src/core/lib/channel/connected_channel.cc +43 -34
- data/src/core/lib/channel/connected_channel.h +18 -18
- data/src/core/lib/channel/context.h +18 -18
- data/src/core/lib/channel/promise_based_filter.cc +191 -68
- data/src/core/lib/channel/promise_based_filter.h +10 -1
- data/src/core/lib/channel/status_util.cc +35 -17
- data/src/core/lib/channel/status_util.h +26 -19
- data/src/core/lib/compression/compression.cc +19 -19
- data/src/core/lib/compression/compression_internal.cc +41 -48
- data/src/core/lib/compression/compression_internal.h +22 -22
- data/src/core/lib/compression/message_compress.cc +21 -21
- data/src/core/lib/compression/message_compress.h +25 -25
- data/src/core/lib/config/core_configuration.h +1 -1
- data/src/core/lib/debug/stats.cc +17 -17
- data/src/core/lib/debug/stats.h +17 -17
- data/src/core/lib/debug/trace.cc +18 -18
- data/src/core/lib/debug/trace.h +19 -19
- data/src/core/lib/event_engine/executor/executor.h +1 -1
- data/src/core/lib/event_engine/forkable.h +1 -1
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +27 -31
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +2 -2
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +36 -37
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +3 -3
- data/src/core/lib/event_engine/posix_engine/event_poller.h +3 -3
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +2 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +46 -46
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +10 -12
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +2 -2
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +79 -41
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +11 -9
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +33 -40
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +14 -14
- data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +2 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +236 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +228 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +380 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +91 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +55 -283
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +4 -49
- data/src/core/lib/event_engine/posix_engine/timer.cc +49 -49
- data/src/core/lib/event_engine/posix_engine/timer.h +87 -87
- data/src/core/lib/event_engine/posix_engine/timer_heap.cc +27 -27
- data/src/core/lib/event_engine/posix_engine/timer_heap.h +21 -21
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +19 -20
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +20 -20
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +39 -8
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +46 -40
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +8 -7
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +6 -7
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +28 -28
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +4 -4
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -3
- data/src/core/lib/event_engine/socket_notifier.h +1 -1
- data/src/core/lib/event_engine/tcp_socket_utils.cc +373 -0
- data/src/core/lib/event_engine/tcp_socket_utils.h +85 -0
- data/src/core/lib/event_engine/thread_pool.cc +19 -18
- data/src/core/lib/event_engine/thread_pool.h +17 -17
- data/src/core/lib/event_engine/time_util.h +1 -1
- data/src/core/lib/event_engine/windows/iocp.cc +13 -12
- data/src/core/lib/event_engine/windows/iocp.h +1 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +2 -2
- data/src/core/lib/event_engine/windows/windows_engine.cc +8 -8
- data/src/core/lib/event_engine/windows/windows_engine.h +1 -1
- data/src/core/lib/experiments/experiments.cc +5 -16
- data/src/core/lib/experiments/experiments.h +7 -12
- data/src/core/lib/gpr/alloc.cc +19 -17
- data/src/core/lib/gpr/alloc.h +18 -18
- data/src/core/lib/gpr/atm.cc +17 -17
- data/src/core/lib/gpr/cpu_iphone.cc +24 -24
- data/src/core/lib/gpr/cpu_linux.cc +22 -21
- data/src/core/lib/gpr/cpu_posix.cc +23 -22
- data/src/core/lib/gpr/cpu_windows.cc +20 -18
- data/src/core/lib/gpr/log.cc +27 -19
- data/src/core/lib/gpr/log_android.cc +22 -20
- data/src/core/lib/gpr/log_linux.cc +21 -20
- data/src/core/lib/gpr/log_posix.cc +20 -19
- data/src/core/lib/gpr/log_windows.cc +25 -24
- data/src/core/lib/gpr/spinlock.h +18 -18
- data/src/core/lib/gpr/string.cc +25 -24
- data/src/core/lib/gpr/string.h +57 -57
- data/src/core/lib/gpr/string_posix.cc +24 -24
- data/src/core/lib/gpr/string_util_windows.cc +22 -22
- data/src/core/lib/gpr/string_windows.cc +24 -24
- data/src/core/lib/gpr/sync.cc +25 -25
- data/src/core/lib/gpr/sync_abseil.cc +22 -20
- data/src/core/lib/gpr/sync_posix.cc +23 -21
- data/src/core/lib/gpr/sync_windows.cc +29 -27
- data/src/core/lib/gpr/time.cc +23 -21
- data/src/core/lib/gpr/time_posix.cc +35 -30
- data/src/core/lib/gpr/time_precise.cc +22 -22
- data/src/core/lib/gpr/time_precise.h +18 -19
- data/src/core/lib/gpr/time_windows.cc +25 -22
- data/src/core/lib/gpr/tmpfile.h +22 -22
- data/src/core/lib/gpr/tmpfile_msys.cc +21 -20
- data/src/core/lib/gpr/tmpfile_posix.cc +19 -18
- data/src/core/lib/gpr/tmpfile_windows.cc +23 -22
- data/src/core/lib/gpr/useful.h +40 -27
- data/src/core/lib/gpr/wrap_memcpy.cc +23 -23
- data/src/core/lib/gprpp/atomic_utils.h +18 -18
- data/src/core/lib/gprpp/bitset.h +24 -0
- data/src/core/{ext/filters/http/message_compress/message_decompress_filter.h → lib/gprpp/crash.cc} +15 -14
- data/src/core/lib/gprpp/crash.h +34 -0
- data/src/core/lib/gprpp/debug_location.h +18 -18
- data/src/core/lib/gprpp/dual_ref_counted.h +1 -1
- data/src/core/lib/gprpp/env.h +20 -20
- data/src/core/lib/gprpp/env_linux.cc +21 -21
- data/src/core/lib/gprpp/env_posix.cc +18 -18
- data/src/core/lib/gprpp/env_windows.cc +18 -18
- data/src/core/lib/gprpp/examine_stack.cc +17 -17
- data/src/core/lib/gprpp/examine_stack.h +18 -18
- data/src/core/lib/gprpp/fork.cc +21 -22
- data/src/core/lib/gprpp/fork.h +22 -22
- data/src/core/lib/gprpp/global_config.h +18 -18
- data/src/core/lib/gprpp/global_config_custom.h +18 -18
- data/src/core/lib/gprpp/global_config_env.cc +17 -17
- data/src/core/lib/gprpp/global_config_env.h +23 -23
- data/src/core/lib/gprpp/global_config_generic.h +18 -18
- data/src/core/lib/gprpp/host_port.cc +26 -26
- data/src/core/lib/gprpp/host_port.h +29 -28
- data/src/core/lib/gprpp/manual_constructor.h +18 -17
- data/src/core/lib/gprpp/memory.h +18 -18
- data/src/core/lib/gprpp/mpscq.cc +17 -17
- data/src/core/lib/gprpp/mpscq.h +18 -18
- data/src/core/lib/gprpp/no_destruct.h +1 -0
- data/src/core/lib/gprpp/orphanable.h +18 -18
- data/src/core/lib/gprpp/ref_counted.h +18 -18
- data/src/core/lib/gprpp/ref_counted_ptr.h +19 -18
- data/src/core/lib/gprpp/stat_windows.cc +1 -0
- data/src/core/lib/gprpp/status_helper.cc +4 -3
- data/src/core/lib/gprpp/sync.h +20 -20
- data/src/core/lib/gprpp/table.h +1 -0
- data/src/core/lib/gprpp/thd.h +19 -19
- data/src/core/lib/gprpp/thd_posix.cc +30 -31
- data/src/core/lib/gprpp/thd_windows.cc +25 -24
- data/src/core/lib/gprpp/time.cc +13 -7
- data/src/core/lib/gprpp/time.h +0 -1
- data/src/core/lib/gprpp/time_averaged_stats.cc +20 -20
- data/src/core/lib/gprpp/time_averaged_stats.h +48 -48
- data/src/core/lib/gprpp/time_util.h +1 -1
- data/src/core/lib/gprpp/unique_type_name.h +18 -18
- data/src/core/lib/handshaker/proxy_mapper.h +18 -18
- data/src/core/lib/handshaker/proxy_mapper_registry.cc +17 -17
- data/src/core/lib/handshaker/proxy_mapper_registry.h +18 -18
- data/src/core/lib/http/format_request.cc +18 -18
- data/src/core/lib/http/format_request.h +18 -18
- data/src/core/lib/http/httpcli.cc +17 -17
- data/src/core/lib/http/httpcli.h +20 -21
- data/src/core/lib/http/httpcli_security_connector.cc +18 -19
- data/src/core/lib/http/parser.cc +22 -22
- data/src/core/lib/http/parser.h +32 -32
- data/src/core/lib/iomgr/block_annotate.h +21 -21
- data/src/core/lib/iomgr/buffer_list.cc +52 -21
- data/src/core/lib/iomgr/buffer_list.h +63 -57
- data/src/core/lib/iomgr/call_combiner.cc +18 -17
- data/src/core/lib/iomgr/call_combiner.h +18 -18
- data/src/core/lib/iomgr/cfstream_handle.cc +20 -20
- data/src/core/lib/iomgr/cfstream_handle.h +22 -22
- data/src/core/lib/iomgr/closure.h +42 -41
- data/src/core/lib/iomgr/combiner.cc +18 -17
- data/src/core/lib/iomgr/combiner.h +18 -18
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +21 -21
- data/src/core/lib/iomgr/dynamic_annotations.h +20 -20
- data/src/core/lib/iomgr/endpoint.cc +17 -17
- data/src/core/lib/iomgr/endpoint.h +46 -46
- data/src/core/lib/iomgr/endpoint_cfstream.cc +18 -18
- data/src/core/lib/iomgr/endpoint_cfstream.h +27 -27
- data/src/core/lib/iomgr/endpoint_pair.h +18 -18
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +18 -17
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +18 -17
- data/src/core/lib/iomgr/error.cc +22 -19
- data/src/core/lib/iomgr/error.h +20 -21
- data/src/core/lib/iomgr/error_cfstream.cc +18 -18
- data/src/core/lib/iomgr/error_cfstream.h +19 -19
- data/src/core/lib/iomgr/ev_apple.cc +17 -17
- data/src/core/lib/iomgr/ev_apple.h +17 -17
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +182 -170
- data/src/core/lib/iomgr/ev_epoll1_linux.h +18 -18
- data/src/core/lib/iomgr/ev_poll_posix.cc +185 -174
- data/src/core/lib/iomgr/ev_poll_posix.h +18 -18
- data/src/core/lib/iomgr/ev_posix.cc +36 -28
- data/src/core/lib/iomgr/ev_posix.h +85 -81
- data/src/core/lib/iomgr/ev_windows.cc +18 -18
- data/src/core/lib/iomgr/exec_ctx.cc +31 -30
- data/src/core/lib/iomgr/exec_ctx.h +139 -138
- data/src/core/lib/iomgr/executor.cc +20 -19
- data/src/core/lib/iomgr/executor.h +24 -24
- data/src/core/lib/iomgr/fork_posix.cc +24 -22
- data/src/core/lib/iomgr/fork_windows.cc +21 -21
- data/src/core/lib/iomgr/gethostname.h +18 -18
- data/src/core/lib/iomgr/gethostname_fallback.cc +17 -17
- data/src/core/lib/iomgr/gethostname_host_name_max.cc +17 -17
- data/src/core/lib/iomgr/gethostname_sysconf.cc +17 -17
- data/src/core/lib/iomgr/grpc_if_nametoindex.h +20 -20
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +20 -19
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +20 -19
- data/src/core/lib/iomgr/internal_errqueue.cc +1 -1
- data/src/core/lib/iomgr/internal_errqueue.h +80 -80
- data/src/core/lib/iomgr/iocp_windows.cc +21 -21
- data/src/core/lib/iomgr/iocp_windows.h +18 -18
- data/src/core/lib/iomgr/iomgr.cc +19 -18
- data/src/core/lib/iomgr/iomgr.h +32 -32
- data/src/core/lib/iomgr/iomgr_internal.cc +17 -17
- data/src/core/lib/iomgr/iomgr_internal.h +25 -25
- data/src/core/lib/iomgr/iomgr_posix.cc +18 -18
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +18 -18
- data/src/core/lib/iomgr/iomgr_windows.cc +22 -21
- data/src/core/lib/iomgr/load_file.cc +19 -18
- data/src/core/lib/iomgr/load_file.h +20 -20
- data/src/core/lib/iomgr/lockfree_event.cc +104 -104
- data/src/core/lib/iomgr/lockfree_event.h +19 -19
- data/src/core/lib/iomgr/nameser.h +84 -84
- data/src/core/lib/iomgr/polling_entity.cc +25 -21
- data/src/core/lib/iomgr/polling_entity.h +27 -27
- data/src/core/lib/iomgr/pollset.cc +17 -17
- data/src/core/lib/iomgr/pollset.h +51 -51
- data/src/core/lib/iomgr/pollset_set.cc +17 -17
- data/src/core/lib/iomgr/pollset_set.h +22 -22
- data/src/core/lib/iomgr/pollset_set_windows.cc +18 -18
- data/src/core/lib/iomgr/pollset_set_windows.h +18 -18
- data/src/core/lib/iomgr/pollset_windows.cc +26 -25
- data/src/core/lib/iomgr/pollset_windows.h +22 -22
- data/src/core/lib/iomgr/port.h +29 -29
- data/src/core/lib/iomgr/python_util.h +18 -18
- data/src/core/lib/iomgr/resolve_address.cc +18 -17
- data/src/core/lib/iomgr/resolve_address.h +18 -18
- data/src/core/lib/iomgr/resolve_address_impl.h +1 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +21 -20
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -3
- data/src/core/lib/iomgr/resolved_address.h +1 -1
- data/src/core/lib/iomgr/sockaddr.h +21 -21
- data/src/core/lib/iomgr/sockaddr_posix.h +18 -18
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +18 -17
- data/src/core/lib/iomgr/sockaddr_windows.h +18 -18
- data/src/core/lib/iomgr/socket_factory_posix.cc +18 -18
- data/src/core/lib/iomgr/socket_factory_posix.h +30 -30
- data/src/core/lib/iomgr/socket_mutator.cc +19 -18
- data/src/core/lib/iomgr/socket_mutator.h +37 -37
- data/src/core/lib/iomgr/socket_utils.h +24 -24
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +38 -37
- data/src/core/lib/iomgr/socket_utils_linux.cc +18 -17
- data/src/core/lib/iomgr/socket_utils_posix.cc +21 -20
- data/src/core/lib/iomgr/socket_utils_posix.h +76 -76
- data/src/core/lib/iomgr/socket_utils_windows.cc +20 -19
- data/src/core/lib/iomgr/socket_windows.cc +35 -34
- data/src/core/lib/iomgr/socket_windows.h +56 -56
- data/src/core/lib/iomgr/systemd_utils.cc +116 -0
- data/src/core/lib/iomgr/systemd_utils.h +33 -0
- data/src/core/lib/iomgr/tcp_client.cc +17 -17
- data/src/core/lib/iomgr/tcp_client.h +26 -26
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +19 -18
- data/src/core/lib/iomgr/tcp_client_posix.cc +39 -38
- data/src/core/lib/iomgr/tcp_client_posix.h +43 -43
- data/src/core/lib/iomgr/tcp_client_windows.cc +28 -27
- data/src/core/lib/iomgr/tcp_posix.cc +136 -134
- data/src/core/lib/iomgr/tcp_posix.h +27 -27
- data/src/core/lib/iomgr/tcp_server.cc +30 -22
- data/src/core/lib/iomgr/tcp_server.h +68 -62
- data/src/core/lib/iomgr/tcp_server_posix.cc +91 -61
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +54 -51
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +72 -34
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +28 -27
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +18 -18
- data/src/core/lib/iomgr/tcp_server_windows.cc +71 -75
- data/src/core/lib/iomgr/tcp_windows.cc +83 -60
- data/src/core/lib/iomgr/tcp_windows.h +29 -29
- data/src/core/lib/iomgr/timer.cc +17 -17
- data/src/core/lib/iomgr/timer.h +65 -65
- data/src/core/lib/iomgr/timer_generic.cc +106 -107
- data/src/core/lib/iomgr/timer_generic.h +19 -19
- data/src/core/lib/iomgr/timer_heap.cc +25 -25
- data/src/core/lib/iomgr/timer_heap.h +19 -19
- data/src/core/lib/iomgr/timer_manager.cc +30 -29
- data/src/core/lib/iomgr/timer_manager.h +25 -25
- data/src/core/lib/iomgr/unix_sockets_posix.cc +18 -17
- data/src/core/lib/iomgr/unix_sockets_posix.h +18 -18
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +19 -17
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +19 -18
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +23 -23
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +19 -18
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +18 -18
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +18 -18
- data/src/core/lib/iomgr/wakeup_fd_posix.h +50 -50
- data/src/core/lib/json/json_object_loader.cc +10 -0
- data/src/core/lib/json/json_object_loader.h +15 -1
- data/src/core/lib/json/json_reader.cc +28 -28
- data/src/core/lib/json/json_writer.cc +56 -56
- data/src/core/lib/load_balancing/lb_policy.cc +17 -17
- data/src/core/lib/load_balancing/lb_policy.h +3 -4
- data/src/core/lib/load_balancing/subchannel_interface.h +1 -1
- data/src/core/lib/matchers/matchers.cc +3 -1
- data/src/core/lib/matchers/matchers.h +1 -1
- data/src/core/lib/promise/activity.h +20 -12
- data/src/core/lib/promise/arena_promise.h +2 -1
- data/src/core/lib/promise/context.h +1 -0
- data/src/core/lib/promise/detail/promise_factory.h +1 -0
- data/src/core/lib/promise/detail/switch.h +18 -18
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +18 -12
- data/src/core/lib/promise/for_each.h +68 -42
- data/src/core/lib/promise/latch.h +13 -19
- data/src/core/lib/promise/map.h +1 -0
- data/src/core/lib/promise/map_pipe.h +1 -0
- data/src/core/lib/promise/poll.h +6 -0
- data/src/core/lib/promise/seq.h +1 -0
- data/src/core/lib/promise/try_concurrently.h +1 -0
- data/src/core/lib/promise/try_seq.h +1 -0
- data/src/core/lib/resolver/resolver.cc +17 -17
- data/src/core/lib/resolver/server_address.cc +17 -17
- data/src/core/lib/resolver/server_address.h +18 -18
- data/src/core/lib/resource_quota/api.h +1 -1
- data/src/core/lib/resource_quota/arena.cc +17 -17
- data/src/core/lib/resource_quota/arena.h +18 -18
- data/src/core/lib/resource_quota/memory_quota.cc +139 -43
- data/src/core/lib/resource_quota/memory_quota.h +85 -23
- data/src/core/lib/resource_quota/resource_quota.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +0 -1
- data/src/core/lib/security/authorization/rbac_policy.h +1 -1
- data/src/core/lib/security/context/security_context.cc +22 -23
- data/src/core/lib/security/context/security_context.h +30 -30
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +17 -17
- data/src/core/lib/security/credentials/alts/alts_credentials.h +50 -50
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +19 -19
- data/src/core/lib/security/credentials/alts/check_gcp_environment.h +41 -41
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +17 -17
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +18 -17
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +18 -17
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +19 -19
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +18 -18
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +36 -37
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +18 -18
- data/src/core/lib/security/credentials/call_creds_util.h +1 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +21 -21
- data/src/core/lib/security/credentials/composite/composite_credentials.h +20 -21
- data/src/core/lib/security/credentials/credentials.cc +19 -18
- data/src/core/lib/security/credentials/credentials.h +34 -33
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +19 -19
- data/src/core/lib/security/credentials/fake/fake_credentials.h +34 -35
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +17 -17
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +48 -49
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +18 -19
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +17 -17
- data/src/core/lib/security/credentials/iam/iam_credentials.h +18 -18
- data/src/core/lib/security/credentials/jwt/json_token.cc +23 -23
- data/src/core/lib/security/credentials/jwt/json_token.h +32 -32
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +17 -17
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +18 -19
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +70 -70
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +43 -43
- data/src/core/lib/security/credentials/local/local_credentials.cc +17 -17
- data/src/core/lib/security/credentials/local/local_credentials.h +20 -20
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +28 -29
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +19 -19
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +18 -18
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +19 -19
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +19 -20
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +18 -18
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +1 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +18 -18
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +18 -19
- data/src/core/lib/security/credentials/tls/tls_credentials.h +18 -18
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -2
- data/src/core/lib/security/credentials/xds/xds_credentials.h +1 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +26 -27
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +41 -42
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +24 -26
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +20 -21
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +1 -2
- data/src/core/lib/security/security_connector/load_system_roots.h +18 -18
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +18 -18
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +18 -18
- data/src/core/lib/security/security_connector/load_system_roots_supported.h +19 -20
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +23 -23
- data/src/core/lib/security/security_connector/local/local_security_connector.h +40 -41
- data/src/core/lib/security/security_connector/security_connector.cc +17 -17
- data/src/core/lib/security/security_connector/security_connector.h +32 -33
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +25 -25
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +38 -39
- data/src/core/lib/security/security_connector/ssl_utils.cc +32 -32
- data/src/core/lib/security/security_connector/ssl_utils.h +31 -31
- data/src/core/lib/security/security_connector/ssl_utils_config.cc +22 -22
- data/src/core/lib/security/security_connector/ssl_utils_config.h +18 -19
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +21 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +17 -17
- data/src/core/lib/security/transport/auth_filters.h +18 -18
- data/src/core/lib/security/transport/client_auth_filter.cc +20 -20
- data/src/core/lib/security/transport/secure_endpoint.cc +28 -28
- data/src/core/lib/security/transport/secure_endpoint.h +22 -22
- data/src/core/lib/security/transport/security_handshaker.cc +17 -17
- data/src/core/lib/security/transport/security_handshaker.h +19 -19
- data/src/core/lib/security/transport/server_auth_filter.cc +22 -23
- data/src/core/lib/security/transport/tsi_error.cc +17 -17
- data/src/core/lib/security/transport/tsi_error.h +18 -18
- data/src/core/lib/security/util/json_util.cc +17 -17
- data/src/core/lib/security/util/json_util.h +18 -18
- data/src/core/lib/service_config/service_config.h +1 -1
- data/src/core/lib/service_config/service_config_call_data.h +7 -1
- data/src/core/lib/slice/b64.cc +24 -24
- data/src/core/lib/slice/b64.h +29 -29
- data/src/core/lib/slice/percent_encoding.cc +17 -17
- data/src/core/lib/slice/percent_encoding.h +24 -24
- data/src/core/lib/slice/slice.cc +37 -37
- data/src/core/lib/slice/slice.h +38 -5
- data/src/core/lib/slice/slice_buffer.cc +50 -45
- data/src/core/lib/slice/slice_buffer.h +27 -2
- data/src/core/lib/slice/slice_internal.h +18 -18
- data/src/core/lib/slice/slice_string_helpers.cc +17 -17
- data/src/core/lib/slice/slice_string_helpers.h +19 -19
- data/src/core/lib/surface/api_trace.cc +17 -17
- data/src/core/lib/surface/api_trace.h +22 -22
- data/src/core/lib/surface/byte_buffer.cc +19 -19
- data/src/core/lib/surface/byte_buffer_reader.cc +19 -19
- data/src/core/lib/surface/call.cc +163 -104
- data/src/core/lib/surface/call.h +42 -39
- data/src/core/lib/surface/call_details.cc +17 -18
- data/src/core/lib/surface/call_log_batch.cc +18 -18
- data/src/core/lib/surface/call_test_only.h +30 -30
- data/src/core/lib/surface/call_trace.cc +5 -5
- data/src/core/lib/surface/channel.cc +18 -18
- data/src/core/lib/surface/channel.h +31 -31
- data/src/core/lib/surface/channel_init.cc +17 -17
- data/src/core/lib/surface/channel_init.h +18 -18
- data/src/core/lib/surface/channel_ping.cc +18 -18
- data/src/core/lib/surface/channel_stack_type.cc +17 -17
- data/src/core/lib/surface/channel_stack_type.h +18 -18
- data/src/core/lib/surface/completion_queue.cc +136 -140
- data/src/core/lib/surface/completion_queue.h +32 -32
- data/src/core/lib/surface/completion_queue_factory.cc +28 -28
- data/src/core/lib/surface/completion_queue_factory.h +20 -20
- data/src/core/lib/surface/event_string.cc +17 -17
- data/src/core/lib/surface/event_string.h +20 -20
- data/src/core/lib/surface/init.cc +21 -19
- data/src/core/lib/surface/init.h +18 -18
- data/src/core/lib/surface/init_internally.cc +1 -0
- data/src/core/lib/surface/init_internally.h +1 -0
- data/src/core/lib/surface/lame_client.cc +18 -18
- data/src/core/lib/surface/lame_client.h +19 -19
- data/src/core/lib/surface/metadata_array.cc +17 -18
- data/src/core/lib/surface/server.cc +15 -15
- data/src/core/lib/surface/server.h +2 -3
- data/src/core/lib/surface/validate_metadata.cc +17 -17
- data/src/core/lib/surface/validate_metadata.h +18 -18
- data/src/core/lib/surface/version.cc +21 -21
- data/src/core/lib/transport/bdp_estimator.cc +17 -17
- data/src/core/lib/transport/bdp_estimator.h +18 -19
- data/src/core/lib/transport/connectivity_state.cc +17 -17
- data/src/core/lib/transport/connectivity_state.h +19 -19
- data/src/core/lib/transport/error_utils.cc +17 -17
- data/src/core/lib/transport/error_utils.h +18 -18
- data/src/core/lib/transport/handshaker.cc +37 -34
- data/src/core/lib/transport/handshaker.h +42 -37
- data/src/core/lib/transport/handshaker_factory.h +18 -18
- data/src/core/lib/transport/handshaker_registry.cc +17 -17
- data/src/core/lib/transport/handshaker_registry.h +18 -18
- data/src/core/lib/transport/http2_errors.h +20 -20
- data/src/core/lib/transport/http_connect_handshaker.cc +17 -17
- data/src/core/lib/transport/http_connect_handshaker.h +18 -18
- data/src/core/lib/transport/metadata_batch.cc +4 -1
- data/src/core/lib/transport/metadata_batch.h +30 -20
- data/src/core/lib/transport/parsed_metadata.h +1 -0
- data/src/core/lib/transport/pid_controller.cc +20 -20
- data/src/core/lib/transport/pid_controller.h +24 -24
- data/src/core/lib/transport/status_conversion.cc +22 -22
- data/src/core/lib/transport/status_conversion.h +20 -20
- data/src/core/lib/transport/tcp_connect_handshaker.h +1 -1
- data/src/core/lib/transport/timeout_encoding.cc +22 -22
- data/src/core/lib/transport/timeout_encoding.h +18 -18
- data/src/core/lib/transport/transport.cc +25 -24
- data/src/core/lib/transport/transport.h +134 -132
- data/src/core/lib/transport/transport_impl.h +41 -41
- data/src/core/lib/transport/transport_op_string.cc +19 -19
- data/src/core/plugin_registry/grpc_plugin_registry.cc +21 -19
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +5 -0
- data/src/core/tsi/alts/crypt/aes_gcm.cc +20 -20
- data/src/core/tsi/alts/crypt/gsec.cc +26 -26
- data/src/core/tsi/alts/crypt/gsec.h +334 -334
- data/src/core/tsi/alts/frame_protector/alts_counter.cc +23 -23
- data/src/core/tsi/alts/frame_protector/alts_counter.h +66 -66
- data/src/core/tsi/alts/frame_protector/alts_crypter.cc +19 -19
- data/src/core/tsi/alts/frame_protector/alts_crypter.h +206 -206
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +72 -71
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +38 -38
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +18 -18
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +80 -81
- data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +22 -22
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +22 -22
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +26 -25
- data/src/core/tsi/alts/frame_protector/frame_handler.h +166 -166
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +68 -67
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +99 -99
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +18 -17
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +41 -42
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +29 -28
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +58 -58
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +20 -20
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +19 -19
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +36 -36
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +19 -19
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +102 -101
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +38 -37
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +38 -39
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +31 -30
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +33 -34
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +65 -66
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +31 -30
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +53 -54
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +54 -53
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +138 -139
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +53 -52
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +41 -42
- data/src/core/tsi/fake_transport_security.cc +77 -76
- data/src/core/tsi/fake_transport_security.h +30 -30
- data/src/core/tsi/local_transport_security.cc +34 -33
- data/src/core/tsi/local_transport_security.h +31 -31
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +1 -0
- data/src/core/tsi/ssl/session_cache/ssl_session.h +18 -18
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +18 -18
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +18 -17
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +19 -19
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +19 -18
- data/src/core/tsi/ssl_transport_security.cc +139 -323
- data/src/core/tsi/ssl_transport_security.h +201 -200
- data/src/core/tsi/ssl_transport_security_utils.cc +250 -0
- data/src/core/tsi/ssl_transport_security_utils.h +147 -0
- data/src/core/tsi/ssl_types.h +25 -25
- data/src/core/tsi/transport_security.cc +26 -26
- data/src/core/tsi/transport_security.h +45 -45
- data/src/core/tsi/transport_security_grpc.cc +20 -20
- data/src/core/tsi/transport_security_grpc.h +39 -39
- data/src/core/tsi/transport_security_interface.h +330 -330
- data/src/ruby/ext/grpc/{ext-export-truffleruby.clang → ext-export-truffleruby-with-ruby-abi-version.clang} +0 -0
- data/src/ruby/ext/grpc/{ext-export-truffleruby.gcc → ext-export-truffleruby-with-ruby-abi-version.gcc} +0 -0
- data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export.clang +0 -1
- data/src/ruby/ext/grpc/ext-export.gcc +1 -2
- data/src/ruby/ext/grpc/extconf.rb +47 -2
- data/src/ruby/ext/grpc/rb_call.c +1 -0
- data/src/ruby/ext/grpc/rb_channel.c +1 -0
- data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +38 -36
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +59 -56
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +20 -8
- data/third_party/re2/re2/bitstate.cc +3 -3
- data/third_party/re2/re2/dfa.cc +13 -13
- data/third_party/re2/re2/nfa.cc +4 -4
- data/third_party/re2/re2/onepass.cc +2 -2
- data/third_party/re2/re2/prefilter_tree.cc +27 -59
- data/third_party/re2/re2/prefilter_tree.h +3 -2
- data/third_party/re2/re2/prog.cc +11 -2
- data/third_party/re2/re2/prog.h +17 -5
- data/third_party/re2/re2/re2.cc +6 -11
- data/third_party/re2/re2/re2.h +1 -1
- data/third_party/re2/re2/regexp.cc +1 -2
- data/third_party/re2/re2/stringpiece.h +10 -7
- data/third_party/re2/re2/unicode_casefold.cc +25 -11
- data/third_party/re2/re2/unicode_groups.cc +319 -151
- data/third_party/re2/re2/walker-inl.h +3 -2
- data/third_party/re2/util/mutex.h +4 -4
- metadata +93 -24
- data/include/grpc/impl/codegen/gpr_slice.h +0 -71
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +0 -332
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -52
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -322
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +0 -62
@@ -28,10 +28,10 @@
|
|
28
28
|
#ifdef GRPC_LINUX_ERRQUEUE
|
29
29
|
#include <linux/errqueue.h> // IWYU pragma: keep
|
30
30
|
#include <sys/socket.h>
|
31
|
-
#endif
|
31
|
+
#endif // GRPC_LINUX_ERRQUEUE
|
32
32
|
|
33
33
|
namespace grpc_event_engine {
|
34
|
-
namespace
|
34
|
+
namespace experimental {
|
35
35
|
|
36
36
|
#ifdef GRPC_LINUX_ERRQUEUE
|
37
37
|
|
@@ -72,31 +72,31 @@ constexpr uint32_t kTimestampingRecordingOptions =
|
|
72
72
|
// Netlink attribute types used for TCP opt stats.
|
73
73
|
enum TCPOptStats {
|
74
74
|
TCP_NLA_PAD,
|
75
|
-
TCP_NLA_BUSY,
|
76
|
-
TCP_NLA_RWND_LIMITED,
|
77
|
-
TCP_NLA_SNDBUF_LIMITED,
|
78
|
-
TCP_NLA_DATA_SEGS_OUT,
|
79
|
-
TCP_NLA_TOTAL_RETRANS,
|
80
|
-
TCP_NLA_PACING_RATE,
|
81
|
-
TCP_NLA_DELIVERY_RATE,
|
82
|
-
TCP_NLA_SND_CWND,
|
83
|
-
TCP_NLA_REORDERING,
|
84
|
-
TCP_NLA_MIN_RTT,
|
85
|
-
TCP_NLA_RECUR_RETRANS,
|
86
|
-
TCP_NLA_DELIVERY_RATE_APP_LMT,
|
87
|
-
TCP_NLA_SNDQ_SIZE,
|
88
|
-
TCP_NLA_CA_STATE,
|
89
|
-
TCP_NLA_SND_SSTHRESH,
|
90
|
-
TCP_NLA_DELIVERED,
|
91
|
-
TCP_NLA_DELIVERED_CE,
|
92
|
-
TCP_NLA_BYTES_SENT,
|
93
|
-
TCP_NLA_BYTES_RETRANS,
|
94
|
-
TCP_NLA_DSACK_DUPS,
|
95
|
-
TCP_NLA_REORD_SEEN,
|
96
|
-
TCP_NLA_SRTT,
|
75
|
+
TCP_NLA_BUSY, // Time (usec) busy sending data.
|
76
|
+
TCP_NLA_RWND_LIMITED, // Time (usec) limited by receive window.
|
77
|
+
TCP_NLA_SNDBUF_LIMITED, // Time (usec) limited by send buffer.
|
78
|
+
TCP_NLA_DATA_SEGS_OUT, // Data pkts sent including retransmission.
|
79
|
+
TCP_NLA_TOTAL_RETRANS, // Data pkts retransmitted.
|
80
|
+
TCP_NLA_PACING_RATE, // Pacing rate in Bps.
|
81
|
+
TCP_NLA_DELIVERY_RATE, // Delivery rate in Bps.
|
82
|
+
TCP_NLA_SND_CWND, // Sending congestion window.
|
83
|
+
TCP_NLA_REORDERING, // Reordering metric.
|
84
|
+
TCP_NLA_MIN_RTT, // minimum RTT.
|
85
|
+
TCP_NLA_RECUR_RETRANS, // Recurring retransmits for the current pkt.
|
86
|
+
TCP_NLA_DELIVERY_RATE_APP_LMT, // Delivery rate application limited?
|
87
|
+
TCP_NLA_SNDQ_SIZE, // Data (bytes) pending in send queue
|
88
|
+
TCP_NLA_CA_STATE, // ca_state of socket
|
89
|
+
TCP_NLA_SND_SSTHRESH, // Slow start size threshold
|
90
|
+
TCP_NLA_DELIVERED, // Data pkts delivered incl. out-of-order
|
91
|
+
TCP_NLA_DELIVERED_CE, // Like above but only ones w/ CE marks
|
92
|
+
TCP_NLA_BYTES_SENT, // Data bytes sent including retransmission
|
93
|
+
TCP_NLA_BYTES_RETRANS, // Data bytes retransmitted
|
94
|
+
TCP_NLA_DSACK_DUPS, // DSACK blocks received
|
95
|
+
TCP_NLA_REORD_SEEN, // reordering events seen
|
96
|
+
TCP_NLA_SRTT, // smoothed RTT in usecs
|
97
97
|
};
|
98
98
|
|
99
|
-
|
99
|
+
// tcp_info from from linux/tcp.h
|
100
100
|
struct tcp_info {
|
101
101
|
uint8_t tcpi_state;
|
102
102
|
uint8_t tcpi_ca_state;
|
@@ -115,12 +115,12 @@ struct tcp_info {
|
|
115
115
|
uint32_t tcpi_lost;
|
116
116
|
uint32_t tcpi_retrans;
|
117
117
|
uint32_t tcpi_fackets;
|
118
|
-
|
118
|
+
// Times.
|
119
119
|
uint32_t tcpi_last_data_sent;
|
120
|
-
uint32_t tcpi_last_ack_sent;
|
120
|
+
uint32_t tcpi_last_ack_sent; // Not remembered, sorry.
|
121
121
|
uint32_t tcpi_last_data_recv;
|
122
122
|
uint32_t tcpi_last_ack_recv;
|
123
|
-
|
123
|
+
// Metrics.
|
124
124
|
uint32_t tcpi_pmtu;
|
125
125
|
uint32_t tcpi_rcv_ssthresh;
|
126
126
|
uint32_t tcpi_rtt;
|
@@ -134,29 +134,29 @@ struct tcp_info {
|
|
134
134
|
uint32_t tcpi_total_retrans;
|
135
135
|
uint64_t tcpi_pacing_rate;
|
136
136
|
uint64_t tcpi_max_pacing_rate;
|
137
|
-
uint64_t tcpi_bytes_acked;
|
138
|
-
uint64_t tcpi_bytes_received;
|
137
|
+
uint64_t tcpi_bytes_acked; // RFC4898 tcpEStatsAppHCThruOctetsAcked
|
138
|
+
uint64_t tcpi_bytes_received; // RFC4898 tcpEStatsAppHCThruOctetsReceived
|
139
139
|
|
140
|
-
uint32_t tcpi_segs_out;
|
141
|
-
uint32_t tcpi_segs_in;
|
140
|
+
uint32_t tcpi_segs_out; // RFC4898 tcpEStatsPerfSegsOut
|
141
|
+
uint32_t tcpi_segs_in; // RFC4898 tcpEStatsPerfSegsIn
|
142
142
|
uint32_t tcpi_notsent_bytes;
|
143
143
|
uint32_t tcpi_min_rtt;
|
144
144
|
|
145
|
-
uint32_t tcpi_data_segs_in;
|
146
|
-
uint32_t tcpi_data_segs_out;
|
145
|
+
uint32_t tcpi_data_segs_in; // RFC4898 tcpEStatsDataSegsIn
|
146
|
+
uint32_t tcpi_data_segs_out; // RFC4898 tcpEStatsDataSegsOut
|
147
147
|
|
148
148
|
uint64_t tcpi_delivery_rate;
|
149
|
-
uint64_t tcpi_busy_time;
|
150
|
-
uint64_t tcpi_rwnd_limited;
|
151
|
-
uint64_t tcpi_sndbuf_limited;
|
149
|
+
uint64_t tcpi_busy_time; // Time (usec) busy sending data
|
150
|
+
uint64_t tcpi_rwnd_limited; // Time (usec) limited by receive window
|
151
|
+
uint64_t tcpi_sndbuf_limited; // Time (usec) limited by send buffer
|
152
152
|
|
153
153
|
uint32_t tcpi_delivered;
|
154
154
|
uint32_t tcpi_delivered_ce;
|
155
|
-
uint64_t tcpi_bytes_sent;
|
156
|
-
uint64_t tcpi_bytes_retrans;
|
157
|
-
uint32_t tcpi_dsack_dups;
|
158
|
-
uint32_t tcpi_reord_seen;
|
159
|
-
socklen_t length;
|
155
|
+
uint64_t tcpi_bytes_sent; // RFC4898 tcpEStatsPerfHCDataOctetsOut
|
156
|
+
uint64_t tcpi_bytes_retrans; // RFC4898 tcpEStatsPerfOctetsRetrans
|
157
|
+
uint32_t tcpi_dsack_dups; // RFC4898 tcpEStatsStackDSACKDups
|
158
|
+
uint32_t tcpi_reord_seen; // reordering events seen
|
159
|
+
socklen_t length; // Length of struct returned by kernel
|
160
160
|
};
|
161
161
|
|
162
162
|
#ifndef TCP_INFO
|
@@ -165,15 +165,15 @@ struct tcp_info {
|
|
165
165
|
|
166
166
|
int GetSocketTcpInfo(tcp_info* info, int fd);
|
167
167
|
|
168
|
-
#endif
|
168
|
+
#endif // GRPC_LINUX_ERRQUEUE
|
169
169
|
|
170
170
|
// Returns true if kernel is capable of supporting errqueue and timestamping.
|
171
171
|
// Currently allowing only linux kernels above 4.0.0
|
172
172
|
bool KernelSupportsErrqueue();
|
173
173
|
|
174
|
-
} // namespace
|
174
|
+
} // namespace experimental
|
175
175
|
} // namespace grpc_event_engine
|
176
176
|
|
177
|
-
#endif
|
177
|
+
#endif // GRPC_POSIX_SOCKET_TCP
|
178
178
|
|
179
|
-
#endif
|
179
|
+
#endif // GRPC_CORE_LIB_EVENT_ENGINE_POSIX_ENGINE_INTERNAL_ERRQUEUE_H
|
@@ -15,8 +15,6 @@
|
|
15
15
|
|
16
16
|
#include "src/core/lib/event_engine/posix_engine/lockfree_event.h"
|
17
17
|
|
18
|
-
#include <stdlib.h>
|
19
|
-
|
20
18
|
#include <atomic>
|
21
19
|
#include <cstdint>
|
22
20
|
|
@@ -27,6 +25,7 @@
|
|
27
25
|
|
28
26
|
#include "src/core/lib/event_engine/posix_engine/event_poller.h"
|
29
27
|
#include "src/core/lib/event_engine/posix_engine/posix_engine_closure.h"
|
28
|
+
#include "src/core/lib/gprpp/crash.h"
|
30
29
|
#include "src/core/lib/gprpp/status_helper.h"
|
31
30
|
|
32
31
|
// 'state' holds the to call when the fd is readable or writable respectively.
|
@@ -61,7 +60,7 @@
|
|
61
60
|
// For 5,6,7: See SetShutdown() function
|
62
61
|
|
63
62
|
namespace grpc_event_engine {
|
64
|
-
namespace
|
63
|
+
namespace experimental {
|
65
64
|
|
66
65
|
void LockfreeEvent::InitEvent() {
|
67
66
|
// Perform an atomic store to start the state machine.
|
@@ -86,7 +85,7 @@ void LockfreeEvent::DestroyEvent() {
|
|
86
85
|
// with post-deletion (see the note in the constructor) we want the bit
|
87
86
|
// pattern to prevent error retention in a deleted object
|
88
87
|
} while (!state_.compare_exchange_strong(curr, kShutdownBit,
|
89
|
-
std::
|
88
|
+
std::memory_order_acq_rel,
|
90
89
|
std::memory_order_relaxed));
|
91
90
|
}
|
92
91
|
|
@@ -111,7 +110,7 @@ void LockfreeEvent::NotifyOn(PosixEngineClosure* closure) {
|
|
111
110
|
// barrier.
|
112
111
|
if (state_.compare_exchange_strong(
|
113
112
|
curr, reinterpret_cast<intptr_t>(closure),
|
114
|
-
std::
|
113
|
+
std::memory_order_acq_rel, std::memory_order_relaxed)) {
|
115
114
|
return; // Successful. Return
|
116
115
|
}
|
117
116
|
|
@@ -128,7 +127,7 @@ void LockfreeEvent::NotifyOn(PosixEngineClosure* closure) {
|
|
128
127
|
// closure when transitioning out of CLOSURE_NO_READY state (i.e there
|
129
128
|
// is no other code that needs to 'happen-after' this)
|
130
129
|
if (state_.compare_exchange_strong(curr, kClosureNotReady,
|
131
|
-
std::
|
130
|
+
std::memory_order_acq_rel,
|
132
131
|
std::memory_order_relaxed)) {
|
133
132
|
scheduler_->Run(closure);
|
134
133
|
return; // Successful. Return.
|
@@ -149,10 +148,9 @@ void LockfreeEvent::NotifyOn(PosixEngineClosure* closure) {
|
|
149
148
|
}
|
150
149
|
|
151
150
|
// There is already a closure!. This indicates a bug in the code.
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
abort();
|
151
|
+
grpc_core::Crash(
|
152
|
+
"LockfreeEvent::NotifyOn: notify_on called with a previous "
|
153
|
+
"callback still pending");
|
156
154
|
}
|
157
155
|
}
|
158
156
|
}
|
@@ -230,7 +228,7 @@ void LockfreeEvent::SetReady() {
|
|
230
228
|
// No barrier required as we're transitioning to a state that does not
|
231
229
|
// involve a closure
|
232
230
|
if (state_.compare_exchange_strong(curr, kClosureReady,
|
233
|
-
std::
|
231
|
+
std::memory_order_acq_rel,
|
234
232
|
std::memory_order_relaxed)) {
|
235
233
|
return; // early out
|
236
234
|
}
|
@@ -263,5 +261,5 @@ void LockfreeEvent::SetReady() {
|
|
263
261
|
}
|
264
262
|
}
|
265
263
|
|
266
|
-
} // namespace
|
264
|
+
} // namespace experimental
|
267
265
|
} // namespace grpc_event_engine
|
@@ -24,7 +24,7 @@
|
|
24
24
|
#include "src/core/lib/event_engine/posix_engine/posix_engine_closure.h"
|
25
25
|
|
26
26
|
namespace grpc_event_engine {
|
27
|
-
namespace
|
27
|
+
namespace experimental {
|
28
28
|
|
29
29
|
class Scheduler;
|
30
30
|
|
@@ -67,7 +67,7 @@ class LockfreeEvent {
|
|
67
67
|
Scheduler* scheduler_;
|
68
68
|
};
|
69
69
|
|
70
|
-
} // namespace
|
70
|
+
} // namespace experimental
|
71
71
|
} // namespace grpc_event_engine
|
72
72
|
|
73
73
|
#endif // GRPC_CORE_LIB_EVENT_ENGINE_POSIX_ENGINE_LOCKFREE_EVENT_H
|
@@ -23,9 +23,9 @@
|
|
23
23
|
#include <cctype>
|
24
24
|
#include <cstdint>
|
25
25
|
#include <cstdlib>
|
26
|
-
#include <cstring>
|
27
26
|
#include <memory>
|
28
27
|
#include <string>
|
28
|
+
#include <type_traits>
|
29
29
|
|
30
30
|
#include "absl/functional/any_invocable.h"
|
31
31
|
#include "absl/status/status.h"
|
@@ -33,18 +33,22 @@
|
|
33
33
|
#include "absl/strings/str_cat.h"
|
34
34
|
#include "absl/types/optional.h"
|
35
35
|
|
36
|
+
#include <grpc/event_engine/internal/slice_cast.h>
|
36
37
|
#include <grpc/event_engine/memory_request.h>
|
37
38
|
#include <grpc/event_engine/slice.h>
|
38
39
|
#include <grpc/event_engine/slice_buffer.h>
|
40
|
+
#include <grpc/status.h>
|
39
41
|
#include <grpc/support/log.h>
|
40
42
|
|
41
43
|
#include "src/core/lib/event_engine/posix_engine/event_poller.h"
|
42
44
|
#include "src/core/lib/event_engine/posix_engine/internal_errqueue.h"
|
43
45
|
#include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
|
46
|
+
#include "src/core/lib/event_engine/tcp_socket_utils.h"
|
44
47
|
#include "src/core/lib/experiments/experiments.h"
|
45
48
|
#include "src/core/lib/gpr/useful.h"
|
46
49
|
#include "src/core/lib/gprpp/load_file.h"
|
47
50
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
51
|
+
#include "src/core/lib/gprpp/status_helper.h"
|
48
52
|
#include "src/core/lib/gprpp/strerror.h"
|
49
53
|
#include "src/core/lib/gprpp/time.h"
|
50
54
|
#include "src/core/lib/resource_quota/resource_quota.h"
|
@@ -88,15 +92,10 @@
|
|
88
92
|
#define MAX_READ_IOVEC 64
|
89
93
|
|
90
94
|
namespace grpc_event_engine {
|
91
|
-
namespace
|
95
|
+
namespace experimental {
|
92
96
|
|
93
97
|
namespace {
|
94
98
|
|
95
|
-
using ::grpc_event_engine::experimental::EventEngine;
|
96
|
-
using ::grpc_event_engine::experimental::MemoryAllocator;
|
97
|
-
using ::grpc_event_engine::experimental::Slice;
|
98
|
-
using ::grpc_event_engine::experimental::SliceBuffer;
|
99
|
-
|
100
99
|
// A wrapper around sendmsg. It sends \a msg over \a fd and returns the number
|
101
100
|
// of bytes sent.
|
102
101
|
ssize_t TcpSend(int fd, const struct msghdr* msg, int* saved_errno,
|
@@ -210,6 +209,16 @@ bool CmsgIsZeroCopy(const cmsghdr& cmsg) {
|
|
210
209
|
}
|
211
210
|
#endif // GRPC_LINUX_ERRQUEUE
|
212
211
|
|
212
|
+
absl::Status PosixOSError(int error_no, const char* call_name) {
|
213
|
+
absl::Status s = absl::UnknownError(grpc_core::StrError(error_no));
|
214
|
+
grpc_core::StatusSetInt(&s, grpc_core::StatusIntProperty::kErrorNo, error_no);
|
215
|
+
grpc_core::StatusSetStr(&s, grpc_core::StatusStrProperty::kOsError,
|
216
|
+
grpc_core::StrError(error_no));
|
217
|
+
grpc_core::StatusSetStr(&s, grpc_core::StatusStrProperty::kSyscall,
|
218
|
+
call_name);
|
219
|
+
return s;
|
220
|
+
}
|
221
|
+
|
213
222
|
} // namespace
|
214
223
|
|
215
224
|
#if defined(IOV_MAX) && IOV_MAX < 260
|
@@ -227,9 +236,9 @@ msg_iovlen_type TcpZerocopySendRecord::PopulateIovs(size_t* unwind_slice_idx,
|
|
227
236
|
for (iov_size = 0;
|
228
237
|
out_offset_.slice_idx != buf_.Count() && iov_size != MAX_WRITE_IOVEC;
|
229
238
|
iov_size++) {
|
230
|
-
|
231
|
-
|
232
|
-
|
239
|
+
MutableSlice& slice = internal::SliceCast<MutableSlice>(
|
240
|
+
buf_.MutableSliceAt(out_offset_.slice_idx));
|
241
|
+
iov[iov_size].iov_base = slice.begin();
|
233
242
|
iov[iov_size].iov_len = slice.length() - out_offset_.byte_idx;
|
234
243
|
*sending_length += iov[iov_size].iov_len;
|
235
244
|
++(out_offset_.slice_idx);
|
@@ -270,6 +279,19 @@ void PosixEndpointImpl::FinishEstimate() {
|
|
270
279
|
bytes_read_this_round_ = 0;
|
271
280
|
}
|
272
281
|
|
282
|
+
absl::Status PosixEndpointImpl::TcpAnnotateError(absl::Status src_error) {
|
283
|
+
auto peer_string = ResolvedAddressToNormalizedString(peer_address_);
|
284
|
+
|
285
|
+
grpc_core::StatusSetStr(&src_error,
|
286
|
+
grpc_core::StatusStrProperty::kTargetAddress,
|
287
|
+
peer_string.ok() ? *peer_string : "");
|
288
|
+
grpc_core::StatusSetInt(&src_error, grpc_core::StatusIntProperty::kFd,
|
289
|
+
handle_->WrappedFd());
|
290
|
+
grpc_core::StatusSetInt(&src_error, grpc_core::StatusIntProperty::kRpcStatus,
|
291
|
+
GRPC_STATUS_UNAVAILABLE);
|
292
|
+
return src_error;
|
293
|
+
}
|
294
|
+
|
273
295
|
// Returns true if data available to read or error other than EAGAIN.
|
274
296
|
bool PosixEndpointImpl::TcpDoRead(absl::Status& status) {
|
275
297
|
struct msghdr msg;
|
@@ -285,8 +307,9 @@ bool PosixEndpointImpl::TcpDoRead(absl::Status& status) {
|
|
285
307
|
#endif // GRPC_LINUX_ERRQUEUE
|
286
308
|
char cmsgbuf[cmsg_alloc_space];
|
287
309
|
for (size_t i = 0; i < iov_len; i++) {
|
288
|
-
|
289
|
-
|
310
|
+
MutableSlice& slice =
|
311
|
+
internal::SliceCast<MutableSlice>(incoming_buffer_->MutableSliceAt(i));
|
312
|
+
iov[i].iov_base = slice.begin();
|
290
313
|
iov[i].iov_len = slice.length();
|
291
314
|
}
|
292
315
|
|
@@ -338,10 +361,10 @@ bool PosixEndpointImpl::TcpDoRead(absl::Status& status) {
|
|
338
361
|
// 0 read size ==> end of stream
|
339
362
|
incoming_buffer_->Clear();
|
340
363
|
if (read_bytes == 0) {
|
341
|
-
status = absl::InternalError("Socket closed");
|
364
|
+
status = TcpAnnotateError(absl::InternalError("Socket closed"));
|
342
365
|
} else {
|
343
|
-
status = absl::InternalError(
|
344
|
-
absl::StrCat("recvmsg:", grpc_core::StrError(errno)));
|
366
|
+
status = TcpAnnotateError(absl::InternalError(
|
367
|
+
absl::StrCat("recvmsg:", grpc_core::StrError(errno))));
|
345
368
|
}
|
346
369
|
return true;
|
347
370
|
}
|
@@ -426,7 +449,6 @@ bool PosixEndpointImpl::TcpDoRead(absl::Status& status) {
|
|
426
449
|
if (total_read_bytes < incoming_buffer_->Length()) {
|
427
450
|
incoming_buffer_->MoveLastNBytesIntoSliceBuffer(
|
428
451
|
incoming_buffer_->Length() - total_read_bytes, last_read_buffer_);
|
429
|
-
// last_read_buffer_.Clear();
|
430
452
|
}
|
431
453
|
return true;
|
432
454
|
}
|
@@ -551,6 +573,7 @@ void PosixEndpointImpl::HandleRead(absl::Status status) {
|
|
551
573
|
if (status.ok()) {
|
552
574
|
MaybeMakeReadSlices();
|
553
575
|
if (!TcpDoRead(status)) {
|
576
|
+
UpdateRcvLowat();
|
554
577
|
// We've consumed the edge, request a new one.
|
555
578
|
read_mu_.Unlock();
|
556
579
|
handle_->NotifyOnRead(on_read_);
|
@@ -571,29 +594,33 @@ void PosixEndpointImpl::HandleRead(absl::Status status) {
|
|
571
594
|
void PosixEndpointImpl::Read(absl::AnyInvocable<void(absl::Status)> on_read,
|
572
595
|
SliceBuffer* buffer,
|
573
596
|
const EventEngine::Endpoint::ReadArgs* args) {
|
574
|
-
read_mu_
|
597
|
+
grpc_core::ReleasableMutexLock lock(&read_mu_);
|
575
598
|
GPR_ASSERT(read_cb_ == nullptr);
|
576
599
|
read_cb_ = std::move(on_read);
|
577
600
|
incoming_buffer_ = buffer;
|
578
601
|
incoming_buffer_->Clear();
|
579
602
|
incoming_buffer_->Swap(last_read_buffer_);
|
580
|
-
read_mu_.Unlock();
|
581
603
|
if (args != nullptr && grpc_core::IsTcpFrameSizeTuningEnabled()) {
|
582
|
-
min_progress_size_ = args->read_hint_bytes;
|
604
|
+
min_progress_size_ = std::max(static_cast<int>(args->read_hint_bytes), 1);
|
583
605
|
} else {
|
584
606
|
min_progress_size_ = 1;
|
585
607
|
}
|
586
608
|
Ref().release();
|
587
609
|
if (is_first_read_) {
|
610
|
+
UpdateRcvLowat();
|
588
611
|
// Endpoint read called for the very first time. Register read callback
|
589
612
|
// with the polling engine.
|
590
613
|
is_first_read_ = false;
|
614
|
+
lock.Release();
|
591
615
|
handle_->NotifyOnRead(on_read_);
|
592
616
|
} else if (inq_ == 0) {
|
617
|
+
UpdateRcvLowat();
|
618
|
+
lock.Release();
|
593
619
|
// Upper layer asked to read more but we know there is no pending data to
|
594
620
|
// read from previous reads. So, wait for POLLIN.
|
595
621
|
handle_->NotifyOnRead(on_read_);
|
596
622
|
} else {
|
623
|
+
lock.Release();
|
597
624
|
on_read_->SetStatus(absl::OkStatus());
|
598
625
|
engine_->Run(on_read_);
|
599
626
|
}
|
@@ -829,7 +856,7 @@ TcpZerocopySendRecord* PosixEndpointImpl::TcpGetSendZerocopyRecord(
|
|
829
856
|
}
|
830
857
|
|
831
858
|
void PosixEndpointImpl::HandleError(absl::Status /*status*/) {
|
832
|
-
|
859
|
+
grpc_core::Crash("Error handling not supported on this platform");
|
833
860
|
}
|
834
861
|
|
835
862
|
void PosixEndpointImpl::ZerocopyDisableAndWaitForRemaining() {}
|
@@ -839,7 +866,7 @@ bool PosixEndpointImpl::WriteWithTimestamps(struct msghdr* /*msg*/,
|
|
839
866
|
ssize_t* /*sent_length*/,
|
840
867
|
int* /*saved_errno*/,
|
841
868
|
int /*additional_flags*/) {
|
842
|
-
|
869
|
+
grpc_core::Crash("Write with timestamps not supported for this platform");
|
843
870
|
}
|
844
871
|
#endif // GRPC_LINUX_ERRQUEUE
|
845
872
|
|
@@ -944,8 +971,7 @@ bool PosixEndpointImpl::DoFlushZerocopy(TcpZerocopySendRecord* record,
|
|
944
971
|
record->UnwindIfThrottled(unwind_slice_idx, unwind_byte_idx);
|
945
972
|
return false;
|
946
973
|
} else {
|
947
|
-
status =
|
948
|
-
absl::StrCat("sendmsg", std::strerror(saved_errno)));
|
974
|
+
status = TcpAnnotateError(PosixOSError(saved_errno, "sendmsg"));
|
949
975
|
TcpShutdownTracedBufferList();
|
950
976
|
return true;
|
951
977
|
}
|
@@ -993,10 +1019,11 @@ bool PosixEndpointImpl::TcpFlush(absl::Status& status) {
|
|
993
1019
|
for (iov_size = 0; outgoing_slice_idx != outgoing_buffer_->Count() &&
|
994
1020
|
iov_size != MAX_WRITE_IOVEC;
|
995
1021
|
iov_size++) {
|
996
|
-
|
997
|
-
|
998
|
-
|
1022
|
+
MutableSlice& slice = internal::SliceCast<MutableSlice>(
|
1023
|
+
outgoing_buffer_->MutableSliceAt(outgoing_slice_idx));
|
1024
|
+
iov[iov_size].iov_base = slice.begin() + outgoing_byte_idx_;
|
999
1025
|
iov[iov_size].iov_len = slice.length() - outgoing_byte_idx_;
|
1026
|
+
|
1000
1027
|
sending_length += iov[iov_size].iov_len;
|
1001
1028
|
outgoing_slice_idx++;
|
1002
1029
|
outgoing_byte_idx_ = 0;
|
@@ -1037,8 +1064,7 @@ bool PosixEndpointImpl::TcpFlush(absl::Status& status) {
|
|
1037
1064
|
}
|
1038
1065
|
return false;
|
1039
1066
|
} else {
|
1040
|
-
status =
|
1041
|
-
absl::StrCat("sendmsg", std::strerror(saved_errno)));
|
1067
|
+
status = TcpAnnotateError(PosixOSError(saved_errno, "sendmsg"));
|
1042
1068
|
outgoing_buffer_->Clear();
|
1043
1069
|
TcpShutdownTracedBufferList();
|
1044
1070
|
return true;
|
@@ -1104,8 +1130,9 @@ void PosixEndpointImpl::Write(
|
|
1104
1130
|
GPR_DEBUG_ASSERT(data != nullptr);
|
1105
1131
|
|
1106
1132
|
if (data->Length() == 0) {
|
1107
|
-
on_writable(handle_->IsHandleShutdown()
|
1108
|
-
|
1133
|
+
on_writable(handle_->IsHandleShutdown()
|
1134
|
+
? TcpAnnotateError(absl::InternalError("EOF"))
|
1135
|
+
: status);
|
1109
1136
|
TcpShutdownTracedBufferList();
|
1110
1137
|
return;
|
1111
1138
|
}
|
@@ -1132,7 +1159,12 @@ void PosixEndpointImpl::Write(
|
|
1132
1159
|
current_zerocopy_send_ = zerocopy_send_record;
|
1133
1160
|
handle_->NotifyOnWrite(on_write_);
|
1134
1161
|
} else {
|
1135
|
-
|
1162
|
+
// TODO(vigneshbabu): Consider eventually running this callback inline to
|
1163
|
+
// avoid a thread hop. At the time of submission, it causes deadlocks which
|
1164
|
+
// should be reolved after ExecCtx removal.
|
1165
|
+
engine_->Run([on_writable = std::move(on_writable), status]() mutable {
|
1166
|
+
on_writable(status);
|
1167
|
+
});
|
1136
1168
|
}
|
1137
1169
|
}
|
1138
1170
|
|
@@ -1142,6 +1174,8 @@ void PosixEndpointImpl::MaybeShutdown(absl::Status why) {
|
|
1142
1174
|
stop_error_notification_.store(true, std::memory_order_release);
|
1143
1175
|
handle_->SetHasError();
|
1144
1176
|
}
|
1177
|
+
grpc_core::StatusSetInt(&why, grpc_core::StatusIntProperty::kRpcStatus,
|
1178
|
+
GRPC_STATUS_UNAVAILABLE);
|
1145
1179
|
handle_->ShutdownHandle(why);
|
1146
1180
|
Unref();
|
1147
1181
|
}
|
@@ -1167,11 +1201,18 @@ PosixEndpointImpl::PosixEndpointImpl(EventHandle* handle,
|
|
1167
1201
|
PosixSocketWrapper sock(handle->WrappedFd());
|
1168
1202
|
fd_ = handle_->WrappedFd();
|
1169
1203
|
GPR_ASSERT(options.resource_quota != nullptr);
|
1204
|
+
auto peer_addr_string = sock.PeerAddressString();
|
1170
1205
|
memory_owner_ = options.resource_quota->memory_quota()->CreateMemoryOwner(
|
1171
|
-
|
1206
|
+
peer_addr_string.ok() ? *peer_addr_string : "");
|
1172
1207
|
self_reservation_ = memory_owner_.MakeReservation(sizeof(PosixEndpointImpl));
|
1173
|
-
|
1174
|
-
|
1208
|
+
auto local_address = sock.LocalAddress();
|
1209
|
+
if (local_address.ok()) {
|
1210
|
+
local_address_ = *local_address;
|
1211
|
+
}
|
1212
|
+
auto peer_address = sock.PeerAddress();
|
1213
|
+
if (peer_address.ok()) {
|
1214
|
+
peer_address_ = *peer_address;
|
1215
|
+
}
|
1175
1216
|
target_length_ = static_cast<double>(options.tcp_read_chunk_size);
|
1176
1217
|
bytes_read_this_round_ = 0;
|
1177
1218
|
min_read_chunk_size_ = options.tcp_min_read_chunk_size;
|
@@ -1246,25 +1287,22 @@ std::unique_ptr<PosixEndpoint> CreatePosixEndpoint(
|
|
1246
1287
|
std::move(allocator), options);
|
1247
1288
|
}
|
1248
1289
|
|
1249
|
-
} // namespace
|
1290
|
+
} // namespace experimental
|
1250
1291
|
} // namespace grpc_event_engine
|
1251
1292
|
|
1252
1293
|
#else // GRPC_POSIX_SOCKET_TCP
|
1253
1294
|
|
1254
1295
|
namespace grpc_event_engine {
|
1255
|
-
namespace
|
1256
|
-
|
1257
|
-
using ::grpc_event_engine::experimental::EndpointConfig;
|
1258
|
-
using ::grpc_event_engine::experimental::EventEngine;
|
1296
|
+
namespace experimental {
|
1259
1297
|
|
1260
1298
|
std::unique_ptr<PosixEndpoint> CreatePosixEndpoint(
|
1261
1299
|
EventHandle* /*handle*/, PosixEngineClosure* /*on_shutdown*/,
|
1262
1300
|
std::shared_ptr<EventEngine> /*engine*/,
|
1263
1301
|
const PosixTcpOptions& /*options*/) {
|
1264
|
-
|
1302
|
+
grpc_core::Crash("Cannot create PosixEndpoint on this platform");
|
1265
1303
|
}
|
1266
1304
|
|
1267
|
-
} // namespace
|
1305
|
+
} // namespace experimental
|
1268
1306
|
} // namespace grpc_event_engine
|
1269
1307
|
|
1270
1308
|
#endif // GRPC_POSIX_SOCKET_TCP
|
@@ -42,6 +42,7 @@
|
|
42
42
|
#include "src/core/lib/event_engine/posix_engine/posix_engine_closure.h"
|
43
43
|
#include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
|
44
44
|
#include "src/core/lib/event_engine/posix_engine/traced_buffer_list.h"
|
45
|
+
#include "src/core/lib/gprpp/crash.h"
|
45
46
|
#include "src/core/lib/gprpp/ref_counted.h"
|
46
47
|
#include "src/core/lib/gprpp/sync.h"
|
47
48
|
#include "src/core/lib/iomgr/port.h"
|
@@ -61,7 +62,7 @@ typedef size_t msg_iovlen_type;
|
|
61
62
|
#endif // GRPC_POSIX_SOCKET_TCP
|
62
63
|
|
63
64
|
namespace grpc_event_engine {
|
64
|
-
namespace
|
65
|
+
namespace experimental {
|
65
66
|
|
66
67
|
#ifdef GRPC_POSIX_SOCKET_TCP
|
67
68
|
|
@@ -344,7 +345,7 @@ class TcpZerocopySendCtx {
|
|
344
345
|
// state was CHECK and is_in_write is false. This means that after the
|
345
346
|
// previous sendmsg returned and set is_in_write to false, it did
|
346
347
|
// not update the z-copy change from CHECK to OPEN.
|
347
|
-
|
348
|
+
grpc_core::Crash("OMem state error!");
|
348
349
|
}
|
349
350
|
}
|
350
351
|
|
@@ -513,6 +514,7 @@ class PosixEndpointImpl : public grpc_core::RefCounted<PosixEndpointImpl> {
|
|
513
514
|
bool WriteWithTimestamps(struct msghdr* msg, size_t sending_length,
|
514
515
|
ssize_t* sent_length, int* saved_errno,
|
515
516
|
int additional_flags);
|
517
|
+
absl::Status TcpAnnotateError(absl::Status src_error);
|
516
518
|
#ifdef GRPC_LINUX_ERRQUEUE
|
517
519
|
bool ProcessErrors();
|
518
520
|
// Reads a cmsg to process zerocopy control messages.
|
@@ -640,25 +642,25 @@ class PosixEndpoint
|
|
640
642
|
grpc_event_engine::experimental::SliceBuffer* /*buffer*/,
|
641
643
|
const grpc_event_engine::experimental::EventEngine::Endpoint::
|
642
644
|
ReadArgs* /*args*/) override {
|
643
|
-
|
645
|
+
grpc_core::Crash("PosixEndpoint::Read not supported on this platform");
|
644
646
|
}
|
645
647
|
|
646
648
|
void Write(absl::AnyInvocable<void(absl::Status)> /*on_writable*/,
|
647
649
|
grpc_event_engine::experimental::SliceBuffer* /*data*/,
|
648
650
|
const grpc_event_engine::experimental::EventEngine::Endpoint::
|
649
651
|
WriteArgs* /*args*/) override {
|
650
|
-
|
652
|
+
grpc_core::Crash("PosixEndpoint::Write not supported on this platform");
|
651
653
|
}
|
652
654
|
|
653
655
|
const grpc_event_engine::experimental::EventEngine::ResolvedAddress&
|
654
656
|
GetPeerAddress() const override {
|
655
|
-
|
656
|
-
|
657
|
+
grpc_core::Crash(
|
658
|
+
"PosixEndpoint::GetPeerAddress not supported on this platform");
|
657
659
|
}
|
658
660
|
const grpc_event_engine::experimental::EventEngine::ResolvedAddress&
|
659
661
|
GetLocalAddress() const override {
|
660
|
-
|
661
|
-
|
662
|
+
grpc_core::Crash(
|
663
|
+
"PosixEndpoint::GetLocalAddress not supported on this platform");
|
662
664
|
}
|
663
665
|
|
664
666
|
~PosixEndpoint() override = default;
|
@@ -676,7 +678,7 @@ std::unique_ptr<PosixEndpoint> CreatePosixEndpoint(
|
|
676
678
|
grpc_event_engine::experimental::MemoryAllocator&& allocator,
|
677
679
|
const PosixTcpOptions& options);
|
678
680
|
|
679
|
-
} // namespace
|
681
|
+
} // namespace experimental
|
680
682
|
} // namespace grpc_event_engine
|
681
683
|
|
682
684
|
#endif // GRPC_CORE_LIB_EVENT_ENGINE_POSIX_ENGINE_POSIX_ENDPOINT_H
|