grpc 1.78.0 → 1.80.0.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +22 -8
  3. data/include/grpc/credentials.h +47 -37
  4. data/include/grpc/credentials_cpp.h +39 -0
  5. data/include/grpc/event_engine/event_engine.h +8 -3
  6. data/include/grpc/grpc.h +4 -0
  7. data/include/grpc/impl/call.h +9 -0
  8. data/include/grpc/impl/channel_arg_names.h +7 -0
  9. data/include/grpc/module.modulemap +2 -0
  10. data/include/grpc/private_key_signer.h +104 -0
  11. data/include/grpc/support/port_platform.h +6 -0
  12. data/src/core/call/call_filters.h +101 -78
  13. data/src/core/call/call_spine.h +91 -68
  14. data/src/core/call/call_state.h +60 -4
  15. data/src/core/call/client_call.cc +9 -9
  16. data/src/core/call/client_call.h +1 -1
  17. data/src/core/call/metadata_batch.cc +2 -0
  18. data/src/core/call/metadata_batch.h +48 -1
  19. data/src/core/call/metadata_info.cc +35 -0
  20. data/src/core/call/metadata_info.h +2 -0
  21. data/src/core/call/simple_slice_based_metadata.h +2 -1
  22. data/src/core/channelz/channelz.cc +9 -6
  23. data/src/core/channelz/channelz.h +7 -4
  24. data/src/core/channelz/property_list.h +5 -0
  25. data/src/core/channelz/v2tov1/convert.cc +1 -1
  26. data/src/core/channelz/v2tov1/legacy_api.cc +164 -307
  27. data/src/core/client_channel/buffered_call.cc +7 -3
  28. data/src/core/client_channel/buffered_call.h +11 -5
  29. data/src/core/client_channel/client_channel.cc +106 -44
  30. data/src/core/client_channel/client_channel.h +3 -6
  31. data/src/core/client_channel/client_channel_filter.cc +90 -64
  32. data/src/core/client_channel/client_channel_filter.h +3 -6
  33. data/src/core/client_channel/client_channel_internal.h +5 -0
  34. data/src/core/client_channel/config_selector.h +17 -12
  35. data/src/core/client_channel/dynamic_filters.cc +8 -7
  36. data/src/core/client_channel/dynamic_filters.h +7 -5
  37. data/src/core/client_channel/retry_filter.cc +1 -1
  38. data/src/core/client_channel/retry_filter.h +2 -2
  39. data/src/core/client_channel/subchannel.cc +1682 -266
  40. data/src/core/client_channel/subchannel.h +411 -134
  41. data/src/core/client_channel/subchannel_stream_client.cc +22 -18
  42. data/src/core/client_channel/subchannel_stream_client.h +8 -9
  43. data/src/core/client_channel/subchannel_stream_limiter.cc +76 -0
  44. data/src/core/client_channel/subchannel_stream_limiter.h +51 -0
  45. data/src/core/config/config_vars.cc +9 -1
  46. data/src/core/config/config_vars.h +6 -0
  47. data/src/core/credentials/call/call_creds_registry.h +51 -22
  48. data/src/core/credentials/call/call_creds_registry_init.cc +86 -2
  49. data/src/core/credentials/call/external/aws_external_account_credentials.cc +2 -2
  50. data/src/core/credentials/call/external/external_account_credentials.cc +11 -4
  51. data/src/core/credentials/call/external/file_external_account_credentials.cc +2 -2
  52. data/src/core/credentials/transport/channel_creds_registry.h +71 -20
  53. data/src/core/credentials/transport/channel_creds_registry_init.cc +338 -29
  54. data/src/core/credentials/transport/ssl/ssl_credentials.cc +43 -24
  55. data/src/core/credentials/transport/ssl/ssl_credentials.h +7 -1
  56. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +2 -8
  57. data/src/core/credentials/transport/ssl/ssl_security_connector.h +4 -3
  58. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +25 -5
  59. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +7 -5
  60. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +181 -109
  61. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +55 -42
  62. data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +28 -23
  63. data/src/core/credentials/transport/tls/grpc_tls_credentials_options.h +26 -23
  64. data/src/core/credentials/transport/tls/spiffe_utils.cc +2 -2
  65. data/src/core/credentials/transport/tls/ssl_utils.cc +18 -18
  66. data/src/core/credentials/transport/tls/ssl_utils.h +12 -10
  67. data/src/core/credentials/transport/tls/tls_security_connector.cc +106 -74
  68. data/src/core/credentials/transport/tls/tls_security_connector.h +12 -8
  69. data/src/core/credentials/transport/xds/xds_credentials.cc +76 -32
  70. data/src/core/credentials/transport/xds/xds_credentials.h +4 -2
  71. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +117 -35
  72. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +42 -4
  73. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +58 -29
  74. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +19 -11
  75. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +82 -25
  76. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +28 -3
  77. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +9 -7
  78. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +1 -1
  79. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +7 -1
  80. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +117 -67
  81. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +2 -0
  82. data/src/core/ext/transport/chttp2/transport/flow_control.h +11 -1
  83. data/src/core/ext/transport/chttp2/transport/frame.cc +2 -15
  84. data/src/core/ext/transport/chttp2/transport/frame.h +0 -4
  85. data/src/core/ext/transport/chttp2/transport/goaway.cc +17 -2
  86. data/src/core/ext/transport/chttp2/transport/goaway.h +27 -6
  87. data/src/core/ext/transport/chttp2/transport/header_assembler.h +8 -21
  88. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +101 -40
  89. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +95 -0
  90. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +923 -772
  91. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +406 -423
  92. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -0
  93. data/src/core/ext/transport/chttp2/transport/http2_settings.h +8 -1
  94. data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +25 -13
  95. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +71 -24
  96. data/src/core/ext/transport/chttp2/transport/http2_transport.h +25 -49
  97. data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +2 -2
  98. data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +29 -9
  99. data/src/core/ext/transport/chttp2/transport/internal.h +6 -2
  100. data/src/core/ext/transport/chttp2/transport/keepalive.cc +14 -20
  101. data/src/core/ext/transport/chttp2/transport/keepalive.h +9 -6
  102. data/src/core/ext/transport/chttp2/transport/parsing.cc +11 -0
  103. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +34 -74
  104. data/src/core/ext/transport/chttp2/transport/ping_promise.h +123 -79
  105. data/src/core/ext/transport/chttp2/transport/security_frame.h +233 -3
  106. data/src/core/ext/transport/chttp2/transport/stream.h +152 -73
  107. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +155 -85
  108. data/src/core/ext/transport/chttp2/transport/transport_common.h +0 -5
  109. data/src/core/ext/transport/chttp2/transport/writable_streams.h +8 -7
  110. data/src/core/ext/transport/chttp2/transport/write_cycle.cc +86 -0
  111. data/src/core/ext/transport/chttp2/transport/write_cycle.h +355 -0
  112. data/src/core/ext/transport/chttp2/transport/writing.cc +31 -29
  113. data/src/core/ext/upb-gen/cel/expr/checked.upb.h +1875 -0
  114. data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +409 -0
  115. data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h +56 -0
  116. data/src/core/ext/upb-gen/cel/expr/syntax.upb.h +2223 -0
  117. data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +489 -0
  118. data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h +60 -0
  119. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +2 -1
  120. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +130 -18
  121. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +18 -13
  122. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +70 -38
  123. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +20 -17
  124. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +26 -10
  125. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +8 -7
  126. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb.h +495 -0
  127. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +114 -0
  128. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.h +36 -0
  129. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +26 -10
  130. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +8 -7
  131. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb.h +121 -0
  132. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +54 -0
  133. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.h +32 -0
  134. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +143 -9
  135. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +18 -6
  136. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +112 -11
  137. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +22 -9
  138. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +276 -0
  139. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +60 -5
  140. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +4 -0
  141. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +72 -0
  142. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +23 -2
  143. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +2 -0
  144. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +129 -13
  145. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +36 -10
  146. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +2 -0
  147. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +30 -0
  148. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +5 -3
  149. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +16 -0
  150. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +4 -3
  151. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +31 -0
  152. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +5 -3
  153. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +2 -1
  154. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +63 -0
  155. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +12 -7
  156. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +97 -81
  157. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +40 -23
  158. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +604 -228
  159. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +146 -100
  160. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +30 -0
  161. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +5 -3
  162. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +35 -3
  163. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +7 -4
  164. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +66 -14
  165. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +22 -11
  166. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +87 -0
  167. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +29 -2
  168. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +2 -0
  169. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +0 -1
  170. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +0 -1
  171. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +20 -4
  172. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +5 -4
  173. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +239 -60
  174. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +59 -28
  175. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +2 -0
  176. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb.h +89 -0
  177. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +50 -0
  178. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.h +32 -0
  179. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb.h +135 -0
  180. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.c +53 -0
  181. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.h +32 -0
  182. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb.h +105 -0
  183. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.c +51 -0
  184. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.h +32 -0
  185. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +32 -0
  186. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +6 -3
  187. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +206 -0
  188. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +41 -8
  189. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +2 -0
  190. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +64 -0
  191. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +4 -3
  192. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +64 -0
  193. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +31 -5
  194. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +2 -0
  195. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +283 -14
  196. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +48 -11
  197. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +2 -0
  198. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +144 -6
  199. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +35 -7
  200. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +2 -0
  201. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +42 -21
  202. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +9 -8
  203. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +164 -1
  204. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +37 -6
  205. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +2 -0
  206. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +0 -1
  207. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +0 -1
  208. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +0 -1
  209. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +0 -1
  210. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +26 -11
  211. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +8 -8
  212. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +33 -0
  213. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +14 -3
  214. data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +90 -10
  215. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +18 -7
  216. data/src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c +248 -0
  217. data/src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h +97 -0
  218. data/src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c +283 -0
  219. data/src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h +107 -0
  220. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +213 -211
  221. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +635 -614
  222. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +1012 -1000
  223. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +276 -273
  224. data/src/core/ext/upbdefs-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upbdefs.c +152 -0
  225. data/src/core/ext/upbdefs-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upbdefs.h +47 -0
  226. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +149 -144
  227. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +367 -370
  228. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/cel.upbdefs.c +63 -0
  229. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/cel.upbdefs.h +37 -0
  230. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +297 -284
  231. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +492 -469
  232. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +74 -43
  233. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +10 -0
  234. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +60 -59
  235. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +202 -184
  236. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +5 -0
  237. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +354 -339
  238. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +5 -0
  239. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +28 -19
  240. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +30 -27
  241. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +71 -66
  242. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +94 -91
  243. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +386 -369
  244. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +60 -57
  245. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +1974 -1884
  246. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +119 -112
  247. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +62 -51
  248. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +109 -88
  249. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +54 -36
  250. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +5 -0
  251. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +78 -84
  252. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +48 -46
  253. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +1041 -984
  254. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -0
  255. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +304 -290
  256. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +94 -77
  257. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +5 -0
  258. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +246 -193
  259. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +5 -0
  260. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +37 -23
  261. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +5 -0
  262. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +5 -3
  263. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +4 -4
  264. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +4 -5
  265. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +113 -87
  266. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +5 -0
  267. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +5 -5
  268. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +6 -5
  269. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +5 -5
  270. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +5 -5
  271. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +5 -5
  272. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +25 -30
  273. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +14 -20
  274. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +180 -183
  275. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +56 -47
  276. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +69 -47
  277. data/src/core/filter/filter_chain.h +95 -0
  278. data/src/core/handshaker/http_connect/{http_connect_handshaker.cc → http_connect_client_handshaker.cc} +32 -31
  279. data/src/core/handshaker/http_connect/{http_connect_handshaker.h → http_connect_client_handshaker.h} +4 -4
  280. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +1 -1
  281. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +1 -1
  282. data/src/core/handshaker/security/pipelined_secure_endpoint.cc +14 -13
  283. data/src/core/handshaker/security/secure_endpoint.cc +282 -68
  284. data/src/core/handshaker/security/secure_endpoint.h +0 -7
  285. data/src/core/lib/channel/channel_args.h +1 -1
  286. data/src/core/lib/channel/promise_based_filter.cc +17 -4
  287. data/src/core/lib/channel/promise_based_filter.h +3 -2
  288. data/src/core/lib/debug/trace_flags.cc +2 -0
  289. data/src/core/lib/debug/trace_flags.h +1 -0
  290. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +35 -8
  291. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +1 -2
  292. data/src/core/lib/event_engine/event_engine.cc +9 -0
  293. data/src/core/lib/event_engine/extensions/tcp_trace.h +0 -3
  294. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +2 -2
  295. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +1 -1
  296. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +34 -9
  297. data/src/core/lib/event_engine/posix_engine/posix_engine.h +24 -2
  298. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +1 -3
  299. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +141 -14
  300. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +19 -2
  301. data/src/core/lib/event_engine/posix_engine/posix_interface.h +7 -0
  302. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +21 -3
  303. data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +16 -0
  304. data/src/core/lib/experiments/experiments.cc +309 -201
  305. data/src/core/lib/experiments/experiments.h +141 -80
  306. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
  307. data/src/core/lib/iomgr/resolve_address.h +0 -2
  308. data/src/core/lib/iomgr/resolved_address.h +0 -2
  309. data/src/core/lib/iomgr/tcp_posix.cc +13 -5
  310. data/src/core/lib/iomgr/tcp_server.cc +0 -5
  311. data/src/core/lib/iomgr/tcp_server.h +0 -7
  312. data/src/core/lib/iomgr/tcp_server_posix.cc +0 -17
  313. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -3
  314. data/src/core/lib/iomgr/tcp_server_windows.cc +12 -51
  315. data/src/core/lib/promise/all_ok.h +17 -12
  316. data/src/core/lib/promise/cancel_callback.h +12 -13
  317. data/src/core/lib/promise/detail/join_state.h +626 -0
  318. data/src/core/lib/promise/detail/promise_factory.h +14 -14
  319. data/src/core/lib/promise/for_each.h +32 -8
  320. data/src/core/lib/promise/if.h +9 -7
  321. data/src/core/lib/promise/loop.h +18 -16
  322. data/src/core/lib/promise/map.h +54 -47
  323. data/src/core/lib/promise/mpsc.h +11 -10
  324. data/src/core/lib/promise/observable.h +6 -6
  325. data/src/core/lib/promise/party.h +25 -19
  326. data/src/core/lib/promise/poll.h +5 -5
  327. data/src/core/lib/promise/prioritized_race.h +10 -7
  328. data/src/core/lib/promise/promise.h +16 -11
  329. data/src/core/lib/promise/race.h +6 -5
  330. data/src/core/lib/promise/seq.h +109 -74
  331. data/src/core/lib/promise/try_join.h +14 -6
  332. data/src/core/lib/promise/try_seq.h +76 -60
  333. data/src/core/lib/resource_quota/api.cc +7 -0
  334. data/src/core/lib/resource_quota/arena.h +1 -1
  335. data/src/core/lib/resource_quota/memory_quota.cc +4 -1
  336. data/src/core/lib/resource_quota/resource_quota.cc +2 -1
  337. data/src/core/lib/resource_quota/resource_quota.h +3 -0
  338. data/src/core/lib/resource_quota/stream_quota.cc +77 -1
  339. data/src/core/lib/resource_quota/stream_quota.h +64 -1
  340. data/src/core/lib/resource_quota/telemetry.h +1 -1
  341. data/src/core/lib/surface/call.cc +13 -0
  342. data/src/core/lib/surface/call_utils.h +58 -43
  343. data/src/core/lib/surface/channel.h +1 -4
  344. data/src/core/lib/surface/completion_queue.cc +13 -6
  345. data/src/core/lib/surface/validate_metadata.cc +20 -15
  346. data/src/core/lib/surface/validate_metadata.h +3 -1
  347. data/src/core/lib/surface/version.cc +2 -2
  348. data/src/core/lib/transport/promise_endpoint.cc +1 -1
  349. data/src/core/lib/transport/promise_endpoint.h +1 -1
  350. data/src/core/lib/transport/transport.h +5 -0
  351. data/src/core/load_balancing/health_check_client.cc +1 -15
  352. data/src/core/load_balancing/health_check_client_internal.h +0 -2
  353. data/src/core/load_balancing/oob_backend_metric.cc +1 -5
  354. data/src/core/load_balancing/oob_backend_metric_internal.h +0 -1
  355. data/src/core/load_balancing/xds/xds_cluster_impl.cc +12 -9
  356. data/src/core/plugin_registry/grpc_plugin_registry.cc +3 -2
  357. data/src/core/resolver/xds/xds_resolver.cc +162 -116
  358. data/src/core/server/server.cc +18 -1
  359. data/src/core/server/server.h +2 -0
  360. data/src/core/server/xds_server_config_fetcher.cc +4 -4
  361. data/src/core/telemetry/call_tracer.cc +87 -2
  362. data/src/core/telemetry/call_tracer.h +46 -8
  363. data/src/core/telemetry/instrument.cc +102 -40
  364. data/src/core/telemetry/instrument.h +246 -65
  365. data/src/core/tsi/fake_transport_security.cc +3 -1
  366. data/src/core/tsi/ssl_transport_security.cc +516 -137
  367. data/src/core/tsi/ssl_transport_security.h +28 -22
  368. data/src/core/tsi/ssl_transport_security_utils.cc +2 -2
  369. data/src/core/tsi/ssl_transport_security_utils.h +2 -2
  370. data/src/core/util/bitset.h +6 -0
  371. data/src/core/util/function_signature.h +3 -1
  372. data/src/core/util/http_client/httpcli_security_connector.cc +2 -1
  373. data/src/core/util/json/json_reader.cc +0 -4
  374. data/src/core/xds/grpc/certificate_provider_store.cc +2 -1
  375. data/src/core/xds/grpc/certificate_provider_store.h +3 -17
  376. data/src/core/xds/grpc/certificate_provider_store_interface.h +61 -0
  377. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +48 -0
  378. data/src/core/xds/grpc/xds_bootstrap_grpc.h +18 -0
  379. data/src/core/xds/grpc/xds_certificate_provider.cc +7 -2
  380. data/src/core/xds/grpc/xds_certificate_provider.h +13 -2
  381. data/src/core/xds/grpc/xds_client_grpc.cc +13 -6
  382. data/src/core/xds/grpc/xds_client_grpc.h +10 -7
  383. data/src/core/xds/grpc/xds_cluster.cc +18 -4
  384. data/src/core/xds/grpc/xds_cluster.h +17 -2
  385. data/src/core/xds/grpc/xds_cluster_parser.cc +36 -11
  386. data/src/core/xds/grpc/xds_common_types.cc +45 -0
  387. data/src/core/xds/grpc/xds_common_types.h +31 -0
  388. data/src/core/xds/grpc/xds_common_types_parser.cc +274 -16
  389. data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
  390. data/src/core/xds/grpc/xds_http_fault_filter.cc +128 -24
  391. data/src/core/xds/grpc/xds_http_fault_filter.h +19 -10
  392. data/src/core/xds/grpc/xds_http_filter.cc +38 -0
  393. data/src/core/xds/grpc/xds_http_filter.h +70 -47
  394. data/src/core/xds/grpc/xds_http_filter_registry.cc +48 -14
  395. data/src/core/xds/grpc/xds_http_filter_registry.h +29 -15
  396. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +88 -22
  397. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +22 -11
  398. data/src/core/xds/grpc/xds_http_rbac_filter.cc +36 -20
  399. data/src/core/xds/grpc/xds_http_rbac_filter.h +19 -10
  400. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +143 -26
  401. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +19 -10
  402. data/src/core/xds/grpc/xds_listener.cc +4 -1
  403. data/src/core/xds/grpc/xds_listener.h +10 -2
  404. data/src/core/xds/grpc/xds_listener_parser.cc +23 -18
  405. data/src/core/xds/grpc/xds_matcher.cc +40 -5
  406. data/src/core/xds/grpc/xds_matcher.h +13 -0
  407. data/src/core/xds/grpc/xds_matcher_action.h +1 -1
  408. data/src/core/xds/grpc/xds_matcher_parse.cc +60 -40
  409. data/src/core/xds/grpc/xds_matcher_parse.h +2 -1
  410. data/src/core/xds/grpc/xds_route_config.cc +12 -1
  411. data/src/core/xds/grpc/xds_route_config.h +15 -2
  412. data/src/core/xds/grpc/xds_route_config_parser.cc +11 -5
  413. data/src/core/xds/grpc/xds_routing.cc +181 -6
  414. data/src/core/xds/grpc/xds_routing.h +57 -0
  415. data/src/core/xds/grpc/xds_server_grpc.cc +55 -43
  416. data/src/core/xds/grpc/xds_server_grpc.h +13 -6
  417. data/src/core/xds/grpc/xds_server_grpc_interface.h +3 -2
  418. data/src/core/xds/grpc/xds_transport_grpc.cc +12 -6
  419. data/src/core/xds/grpc/xds_transport_grpc.h +5 -1
  420. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +12 -8
  421. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +18 -12
  422. data/src/ruby/lib/grpc/grpc.rb +7 -9
  423. data/src/ruby/lib/grpc/version.rb +1 -1
  424. data/src/ruby/pb/generate_proto_ruby.sh +1 -1
  425. data/src/ruby/spec/client_server_spec.rb +1 -1
  426. data/src/ruby/spec/generic/rpc_server_pool_spec.rb +1 -1
  427. data/src/ruby/spec/generic/rpc_server_spec.rb +3 -4
  428. data/src/ruby/spec/spec_helper.rb +1 -1
  429. metadata +64 -14
  430. data/src/core/ext/transport/chttp2/transport/security_frame.cc +0 -31
  431. data/src/core/handshaker/security/legacy_secure_endpoint.cc +0 -597
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b395eda61b4ddda55f3c3d58e5548efe3ff640508f358ee25ae7e95069807dd1
4
- data.tar.gz: a161ac1a66e518d01d1778726d29f245a2c098d65206c5699484e5a6d84addae
3
+ metadata.gz: c07293ac6e598f03bca8daf804e71b55661e5510893c94453e3cba3a277cb889
4
+ data.tar.gz: 459b8aedf9dd6afe0aaeeb8b5ad391c9ac355c9bb060037ebc2b77361e9821c1
5
5
  SHA512:
6
- metadata.gz: 2e861bbb78de2db510c14b98d0796adb0b421aa6aa8f5cdc8d38e5f4952a40f2c34a9b1e464f492cfcdd243c305262778b7045631db7bd95ba3abe28a71268a0
7
- data.tar.gz: 5535c1177757dbb861f1e26de3e7d645f148eb1a716a282ca8b041a5aee782b89085056d60fa3958045893d066bbd06f17d42dc08e4750b5a4a28c3dd426a09a
6
+ metadata.gz: cc6ea871354d656c29732774d6b589399ac3097cdfb7e35000b5d90728cdb53517339e97c72296d955666c88977126dce941452f6eb7ff69ebd5d4ad7e758c16
7
+ data.tar.gz: d1f14482b834f9f8897ce0f6a6744cc7acd9737c51c4447f3f11f508275a56b9fd03bfd45f26f3bb3b2fbb3670eaac137b46af959383b3f5f48ecf190149cb33
data/Makefile CHANGED
@@ -367,8 +367,8 @@ E = @echo
367
367
  Q = @
368
368
  endif
369
369
 
370
- CORE_VERSION = 52.0.0
371
- CPP_VERSION = 1.78.0
370
+ CORE_VERSION = 53.0.0
371
+ CPP_VERSION = 1.80.0-pre1
372
372
 
373
373
  CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
374
374
  CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
@@ -404,7 +404,7 @@ SHARED_EXT_CORE = dll
404
404
  SHARED_EXT_CPP = dll
405
405
 
406
406
  SHARED_PREFIX =
407
- SHARED_VERSION_CORE = -52
407
+ SHARED_VERSION_CORE = -53
408
408
  SHARED_VERSION_CPP = -1
409
409
  else ifeq ($(SYSTEM),Darwin)
410
410
  EXECUTABLE_SUFFIX =
@@ -710,6 +710,7 @@ LIBGRPC_SRC = \
710
710
  src/core/client_channel/subchannel.cc \
711
711
  src/core/client_channel/subchannel_pool_interface.cc \
712
712
  src/core/client_channel/subchannel_stream_client.cc \
713
+ src/core/client_channel/subchannel_stream_limiter.cc \
713
714
  src/core/config/config_vars.cc \
714
715
  src/core/config/config_vars_non_generated.cc \
715
716
  src/core/config/core_configuration.cc \
@@ -826,14 +827,16 @@ LIBGRPC_SRC = \
826
827
  src/core/ext/transport/chttp2/transport/ping_callbacks.cc \
827
828
  src/core/ext/transport/chttp2/transport/ping_promise.cc \
828
829
  src/core/ext/transport/chttp2/transport/ping_rate_policy.cc \
829
- src/core/ext/transport/chttp2/transport/security_frame.cc \
830
830
  src/core/ext/transport/chttp2/transport/stream_lists.cc \
831
831
  src/core/ext/transport/chttp2/transport/transport_common.cc \
832
832
  src/core/ext/transport/chttp2/transport/varint.cc \
833
+ src/core/ext/transport/chttp2/transport/write_cycle.cc \
833
834
  src/core/ext/transport/chttp2/transport/write_size_policy.cc \
834
835
  src/core/ext/transport/chttp2/transport/writing.cc \
835
836
  src/core/ext/transport/inproc/inproc_transport.cc \
836
837
  src/core/ext/transport/inproc/legacy_inproc_transport.cc \
838
+ src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c \
839
+ src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c \
837
840
  src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c \
838
841
  src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c \
839
842
  src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c \
@@ -854,9 +857,11 @@ LIBGRPC_SRC = \
854
857
  src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c \
855
858
  src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c \
856
859
  src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c \
860
+ src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c \
857
861
  src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c \
858
862
  src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c \
859
863
  src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c \
864
+ src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c \
860
865
  src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c \
861
866
  src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c \
862
867
  src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c \
@@ -907,6 +912,9 @@ LIBGRPC_SRC = \
907
912
  src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c \
908
913
  src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c \
909
914
  src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c \
915
+ src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c \
916
+ src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.c \
917
+ src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.c \
910
918
  src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c \
911
919
  src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c \
912
920
  src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c \
@@ -1006,6 +1014,8 @@ LIBGRPC_SRC = \
1006
1014
  src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c \
1007
1015
  src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c \
1008
1016
  src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c \
1017
+ src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c \
1018
+ src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c \
1009
1019
  src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c \
1010
1020
  src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c \
1011
1021
  src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c \
@@ -1026,9 +1036,11 @@ LIBGRPC_SRC = \
1026
1036
  src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c \
1027
1037
  src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c \
1028
1038
  src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c \
1039
+ src/core/ext/upbdefs-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upbdefs.c \
1029
1040
  src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c \
1030
1041
  src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c \
1031
1042
  src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c \
1043
+ src/core/ext/upbdefs-gen/envoy/config/core/v3/cel.upbdefs.c \
1032
1044
  src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c \
1033
1045
  src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c \
1034
1046
  src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c \
@@ -1172,11 +1184,10 @@ LIBGRPC_SRC = \
1172
1184
  src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc \
1173
1185
  src/core/handshaker/handshaker.cc \
1174
1186
  src/core/handshaker/handshaker_registry.cc \
1175
- src/core/handshaker/http_connect/http_connect_handshaker.cc \
1187
+ src/core/handshaker/http_connect/http_connect_client_handshaker.cc \
1176
1188
  src/core/handshaker/http_connect/http_proxy_mapper.cc \
1177
1189
  src/core/handshaker/http_connect/xds_http_proxy_mapper.cc \
1178
1190
  src/core/handshaker/proxy_mapper_registry.cc \
1179
- src/core/handshaker/security/legacy_secure_endpoint.cc \
1180
1191
  src/core/handshaker/security/pipelined_secure_endpoint.cc \
1181
1192
  src/core/handshaker/security/secure_endpoint.cc \
1182
1193
  src/core/handshaker/security/security_handshaker.cc \
@@ -1564,6 +1575,7 @@ LIBGRPC_SRC = \
1564
1575
  src/core/xds/grpc/xds_endpoint_parser.cc \
1565
1576
  src/core/xds/grpc/xds_health_status.cc \
1566
1577
  src/core/xds/grpc/xds_http_fault_filter.cc \
1578
+ src/core/xds/grpc/xds_http_filter.cc \
1567
1579
  src/core/xds/grpc/xds_http_filter_registry.cc \
1568
1580
  src/core/xds/grpc/xds_http_gcp_authn_filter.cc \
1569
1581
  src/core/xds/grpc/xds_http_rbac_filter.cc \
@@ -1814,6 +1826,7 @@ PUBLIC_HEADERS_C += \
1814
1826
  include/grpc/compression.h \
1815
1827
  include/grpc/create_channel_from_endpoint.h \
1816
1828
  include/grpc/credentials.h \
1829
+ include/grpc/credentials_cpp.h \
1817
1830
  include/grpc/event_engine/endpoint_config.h \
1818
1831
  include/grpc/event_engine/event_engine.h \
1819
1832
  include/grpc/event_engine/extensible.h \
@@ -1850,6 +1863,7 @@ PUBLIC_HEADERS_C += \
1850
1863
  include/grpc/impl/slice_type.h \
1851
1864
  include/grpc/load_reporting.h \
1852
1865
  include/grpc/passive_listener.h \
1866
+ include/grpc/private_key_signer.h \
1853
1867
  include/grpc/slice.h \
1854
1868
  include/grpc/slice_buffer.h \
1855
1869
  include/grpc/status.h \
@@ -1891,8 +1905,8 @@ $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_
1891
1905
  ifeq ($(SYSTEM),Darwin)
1892
1906
  $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libcares.a $(OPENSSL_MERGE_LIBS) $(ZLIB_MERGE_LIBS) $(LDLIBS_SECURE) $(LDLIBS)
1893
1907
  else
1894
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.52 -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libcares.a $(OPENSSL_MERGE_LIBS) $(ZLIB_MERGE_LIBS) $(LDLIBS_SECURE) $(LDLIBS)
1895
- $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so.52
1908
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.53 -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libcares.a $(OPENSSL_MERGE_LIBS) $(ZLIB_MERGE_LIBS) $(LDLIBS_SECURE) $(LDLIBS)
1909
+ $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so.53
1896
1910
  $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so
1897
1911
  endif
1898
1912
  endif
@@ -645,21 +645,6 @@ GRPCAPI void grpc_tls_identity_pairs_add_pair(grpc_tls_identity_pairs* pairs,
645
645
  */
646
646
  GRPCAPI void grpc_tls_identity_pairs_destroy(grpc_tls_identity_pairs* pairs);
647
647
 
648
- /**
649
- * EXPERIMENTAL API - Subject to change
650
- *
651
- * Creates a grpc_tls_certificate_provider that will load credential data from
652
- * static string during initialization. This provider will always return the
653
- * same cert data for all cert names.
654
- * root_certificate and pem_key_cert_pairs can be nullptr, indicating the
655
- * corresponding credential data is not needed.
656
- * This function will make a copy of |root_certificate|.
657
- * The ownership of |pem_key_cert_pairs| is transferred.
658
- */
659
- GRPCAPI grpc_tls_certificate_provider*
660
- grpc_tls_certificate_provider_static_data_create(
661
- const char* root_certificate, grpc_tls_identity_pairs* pem_key_cert_pairs);
662
-
663
648
  /**
664
649
  * EXPERIMENTAL API - Subject to change
665
650
  *
@@ -692,6 +677,46 @@ grpc_tls_certificate_provider_file_watcher_create(
692
677
  const char* root_cert_path, const char* spiffe_bundle_map_path,
693
678
  unsigned int refresh_interval_sec);
694
679
 
680
+ /**
681
+ * EXPERIMENTAL API - Subject to change
682
+ *
683
+ * Creates a grpc_tls_certificate_provider that will load credential data from
684
+ * memory during initialization. This provider allows updating the identity and
685
+ * root certificates independently.
686
+ */
687
+ GRPCAPI grpc_tls_certificate_provider*
688
+ grpc_tls_certificate_provider_in_memory_create();
689
+
690
+ /**
691
+ * EXPERIMENTAL API - Subject to change
692
+ *
693
+ * Update the root certificate of a grpc_tls_certificate_provider created with
694
+ * `grpc_tls_certificate_provider_in_memory_create`.
695
+ *
696
+ * root_certificate can be nullptr, indicating the corresponding credential data
697
+ * is not needed. This function will make a copy of |root_cert|.
698
+ *
699
+ * Returns true if the root certificate was successfully updated.
700
+ */
701
+ GRPCAPI bool grpc_tls_certificate_provider_in_memory_set_root_certificate(
702
+ grpc_tls_certificate_provider* provider, const char* root_cert);
703
+
704
+ /**
705
+ * EXPERIMENTAL API - Subject to change
706
+ *
707
+ * Update the identity certificate of a grpc_tls_certificate_provider created
708
+ * with `grpc_tls_certificate_provider_in_memory_create`.
709
+ *
710
+ * pem_key_cert_pairs can be nullptr, indicating the
711
+ * corresponding credential data is not needed.
712
+ * The ownership of |pem_key_cert_pairs| is transferred.
713
+ *
714
+ * Returns true if the identity certificate was successfully updated.
715
+ */
716
+ GRPCAPI bool grpc_tls_certificate_provider_in_memory_set_identity_certificate(
717
+ grpc_tls_certificate_provider* provider,
718
+ grpc_tls_identity_pairs* pem_key_cert_pairs);
719
+
695
720
  /**
696
721
  * EXPERIMENTAL API - Subject to change
697
722
  *
@@ -984,27 +1009,22 @@ typedef struct grpc_tls_certificate_provider grpc_tls_certificate_provider;
984
1009
  /**
985
1010
  * EXPERIMENTAL API - Subject to change
986
1011
  *
987
- * Sets the credential provider in the options.
1012
+ * Sets the identity certificate provider in the options.
988
1013
  * The |options| will implicitly take a new ref to the |provider|.
989
1014
  */
990
- GRPCAPI void grpc_tls_credentials_options_set_certificate_provider(
1015
+ GRPCAPI void grpc_tls_credentials_options_set_identity_certificate_provider(
991
1016
  grpc_tls_credentials_options* options,
992
1017
  grpc_tls_certificate_provider* provider);
993
1018
 
994
1019
  /**
995
1020
  * EXPERIMENTAL API - Subject to change
996
1021
  *
997
- * If set, gRPC stack will keep watching the root certificates with
998
- * name |root_cert_name|.
999
- * If this is not set on the client side, we will use the root certificates
1000
- * stored in the default system location, since client side must provide root
1001
- * certificates in TLS.
1002
- * If this is not set on the server side, we will not watch any root certificate
1003
- * updates, and assume no root certificates needed for the server(single-side
1004
- * TLS). Default root certs on the server side is not supported.
1022
+ * Sets the root certificate provider in the options.
1023
+ * The |options| will implicitly take a new ref to the |provider|.
1005
1024
  */
1006
- GRPCAPI void grpc_tls_credentials_options_watch_root_certs(
1007
- grpc_tls_credentials_options* options);
1025
+ GRPCAPI void grpc_tls_credentials_options_set_root_certificate_provider(
1026
+ grpc_tls_credentials_options* options,
1027
+ grpc_tls_certificate_provider* provider);
1008
1028
 
1009
1029
  /**
1010
1030
  * EXPERIMENTAL API - Subject to change
@@ -1015,16 +1035,6 @@ GRPCAPI void grpc_tls_credentials_options_watch_root_certs(
1015
1035
  GRPCAPI void grpc_tls_credentials_options_set_root_cert_name(
1016
1036
  grpc_tls_credentials_options* options, const char* root_cert_name);
1017
1037
 
1018
- /**
1019
- * EXPERIMENTAL API - Subject to change
1020
- *
1021
- * If set, gRPC stack will keep watching the identity key-cert pairs
1022
- * with name |identity_cert_name|.
1023
- * This is required on the server side, and optional on the client side.
1024
- */
1025
- GRPCAPI void grpc_tls_credentials_options_watch_identity_key_cert_pairs(
1026
- grpc_tls_credentials_options* options);
1027
-
1028
1038
  /**
1029
1039
  * EXPERIMENTAL API - Subject to change
1030
1040
  *
@@ -0,0 +1,39 @@
1
+ /*
2
+ *
3
+ * Copyright 2025 gRPC authors.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ *
17
+ */
18
+
19
+ #ifndef GRPC_CREDENTIALS_CPP_H
20
+ #define GRPC_CREDENTIALS_CPP_H
21
+
22
+ #include <grpc/credentials.h>
23
+ #include <grpc/support/port_platform.h>
24
+
25
+ #include <optional>
26
+ #include <string>
27
+
28
+ /**
29
+ * EXPERIMENTAL API - Subject to change
30
+ *
31
+ * Overrides the SNI that the client sends in the TLS handshake. nullopt
32
+ * indicates that SNI should not be overridden. An empty string value indicates
33
+ * that SNI should not be sent at all.
34
+ */
35
+ void grpc_tls_credentials_options_set_sni_override(
36
+ grpc_tls_credentials_options* options,
37
+ std::optional<std::string> sni_override);
38
+
39
+ #endif /* GRPC_CREDENTIALS_CPP_H */
@@ -20,6 +20,7 @@
20
20
  #include <grpc/event_engine/memory_allocator.h>
21
21
  #include <grpc/event_engine/port.h>
22
22
  #include <grpc/event_engine/slice_buffer.h>
23
+ #include <grpc/grpc.h>
23
24
  #include <grpc/support/port_platform.h>
24
25
 
25
26
  #include <bitset>
@@ -158,7 +159,7 @@ class EventEngine : public std::enable_shared_from_this<EventEngine>,
158
159
  /// * sockaddr_in6
159
160
  class ResolvedAddress {
160
161
  public:
161
- static constexpr socklen_t MAX_SIZE_BYTES = 128;
162
+ static constexpr socklen_t MAX_SIZE_BYTES = GRPC_MAX_SOCKADDR_SIZE;
162
163
 
163
164
  ResolvedAddress(const sockaddr* address, socklen_t size);
164
165
  ResolvedAddress() = default;
@@ -191,8 +192,8 @@ class EventEngine : public std::enable_shared_from_this<EventEngine>,
191
192
  class ReadArgs final {
192
193
  public:
193
194
  ReadArgs() = default;
194
- ReadArgs(const ReadArgs&) = delete;
195
- ReadArgs& operator=(const ReadArgs&) = delete;
195
+ ReadArgs(const ReadArgs&) = default;
196
+ ReadArgs& operator=(const ReadArgs&) = default;
196
197
  ReadArgs(ReadArgs&&) = default;
197
198
  ReadArgs& operator=(ReadArgs&&) = default;
198
199
 
@@ -733,6 +734,10 @@ void AbslStringify(Sink& out, const EventEngine::TaskHandle& handle) {
733
734
  out.Append(detail::FormatHandleString(handle.keys[0], handle.keys[1]));
734
735
  }
735
736
 
737
+ /** Fetch a vtable for a grpc_channel_arg that points to a grpc_event_engine
738
+ */
739
+ const grpc_arg_pointer_vtable* grpc_event_engine_arg_vtable(void);
740
+
736
741
  } // namespace experimental
737
742
  } // namespace grpc_event_engine
738
743
 
data/include/grpc/grpc.h CHANGED
@@ -529,6 +529,10 @@ GRPCAPI void grpc_resource_quota_resize(grpc_resource_quota* resource_quota,
529
529
  GRPCAPI void grpc_resource_quota_set_max_threads(
530
530
  grpc_resource_quota* resource_quota, int new_max_threads);
531
531
 
532
+ /** Update the size of the maximum number of streams allowed */
533
+ GRPCAPI void grpc_resource_quota_set_max_outstanding_streams(
534
+ grpc_resource_quota* resource_quota, int new_max_outstanding_streams);
535
+
532
536
  /** EXPERIMENTAL. Dumps xDS configs as a serialized ClientConfig proto.
533
537
  The full name of the proto is envoy.service.status.v3.ClientConfig. */
534
538
  GRPCAPI grpc_slice grpc_dump_xds_configs(void);
@@ -25,4 +25,13 @@
25
25
  void grpc_call_run_in_event_engine(const grpc_call* call,
26
26
  absl::AnyInvocable<void()> cb);
27
27
 
28
+ // Run a callback in the call's EventEngine creating a new ExecCtx for it. If
29
+ // UseCallEventEngineInCompletionQueueEnabled is enabled, this will run the
30
+ // callback in the call's EventEngine. Otherwise, it will run the callback
31
+ // inline since the completion queue has already scheduled this thread in an
32
+ // EventEngine.
33
+ // Internal-only
34
+ void grpc_call_run_cq_cb(const grpc_call* call,
35
+ absl::AnyInvocable<void()>&& cb);
36
+
28
37
  #endif /* GRPC_IMPL_CALL_H */
@@ -420,6 +420,11 @@
420
420
  * Defaults to 250ms. */
421
421
  #define GRPC_ARG_HAPPY_EYEBALLS_CONNECTION_ATTEMPT_DELAY_MS \
422
422
  "grpc.happy_eyeballs_connection_attempt_delay_ms"
423
+ /** If set, uses the provided EventEngine as the channel's event engine.
424
+ * TODO(aananthv): Remove GRPC_INTERNAL_ARG_EVENT_ENGINE once all usages are
425
+ * migrated to this arg.
426
+ */
427
+ #define GRPC_ARG_EVENT_ENGINE "grpc.experimental.event_engine"
423
428
  /** It accepts a MemoryAllocatorFactory as input and If specified, it forces
424
429
  * the default event engine to use memory allocators created using the provided
425
430
  * factory. */
@@ -434,5 +439,7 @@
434
439
  /** If non-zero, allow security frames to be sent and received. */
435
440
  #define GRPC_ARG_SECURITY_FRAME_ALLOWED "grpc.security_frame_allowed"
436
441
  /** \} */
442
+ /** If non-zero, enable TCP tracing and stats collection. */
443
+ #define GRPC_ARG_TCP_TRACING_ENABLED "grpc.tcp_tracing_enabled"
437
444
 
438
445
  #endif /* GRPC_IMPL_CHANNEL_ARG_NAMES_H */
@@ -8,6 +8,7 @@ header "byte_buffer.h"
8
8
  header "compression.h"
9
9
  header "create_channel_from_endpoint.h"
10
10
  header "credentials.h"
11
+ header "credentials_cpp.h"
11
12
  header "fork.h"
12
13
  header "grpc.h"
13
14
  header "grpc_audit_logging.h"
@@ -40,6 +41,7 @@ header "byte_buffer.h"
40
41
  header "impl/slice_type.h"
41
42
  header "load_reporting.h"
42
43
  header "passive_listener.h"
44
+ header "private_key_signer.h"
43
45
  header "slice.h"
44
46
  header "slice_buffer.h"
45
47
  header "status.h"
@@ -0,0 +1,104 @@
1
+ //
2
+ //
3
+ // Copyright 2025 gRPC authors.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+ //
17
+ //
18
+
19
+ #ifndef GRPC_PRIVATE_KEY_SIGNER_H
20
+ #define GRPC_PRIVATE_KEY_SIGNER_H
21
+
22
+ #include <grpc/credentials.h>
23
+
24
+ #include <memory>
25
+ #include <string>
26
+ #include <variant>
27
+
28
+ #include "absl/functional/any_invocable.h"
29
+ #include "absl/status/statusor.h"
30
+ #include "absl/strings/string_view.h"
31
+
32
+ namespace grpc_core {
33
+
34
+ // Implementations of this class must be thread-safe.
35
+ class PrivateKeySigner {
36
+ public:
37
+ // A handle for an asynchronous signing operation.
38
+ //
39
+ // When `PrivateKeySigner::Sign` is implemented asynchronously, it returns an
40
+ // instance of a concrete implementation of this class. This handle is used
41
+ // to manage the asynchronous signing operation and can be used to cancel the
42
+ // operation via `PrivateKeySigner::Cancel`.
43
+ //
44
+ // Users must provide their own concrete implementation of this class. The
45
+ // handle can store any state needed for the asynchronous operation.
46
+ class AsyncSigningHandle {
47
+ public:
48
+ virtual ~AsyncSigningHandle() = default;
49
+ };
50
+
51
+ // Enum class representing TLS signature algorithm identifiers from BoringSSL.
52
+ // The values correspond to the SSL_SIGN_* macros in <openssl/ssl.h>.
53
+ enum class SignatureAlgorithm {
54
+ kRsaPkcs1Sha256,
55
+ kRsaPkcs1Sha384,
56
+ kRsaPkcs1Sha512,
57
+ kEcdsaSecp256r1Sha256,
58
+ kEcdsaSecp384r1Sha384,
59
+ kEcdsaSecp521r1Sha512,
60
+ kRsaPssRsaeSha256,
61
+ kRsaPssRsaeSha384,
62
+ kRsaPssRsaeSha512,
63
+ };
64
+
65
+ // A callback that is invoked when an asynchronous signing operation is
66
+ // complete. The argument should contain the signed bytes on success, or a
67
+ // non-OK status on failure.
68
+ using OnSignComplete = absl::AnyInvocable<void(absl::StatusOr<std::string>)>;
69
+
70
+ virtual ~PrivateKeySigner() = default;
71
+
72
+ // Signs data_to_sign.
73
+ // May return either synchronously or asynchronously.
74
+ // For synchronous returns, directly returns either the signed bytes
75
+ // or a failed status, and the callback will never be invoked.
76
+ // For asynchronous implementations, returns a handle for the asynchronous
77
+ // signing operation. The function argument on_sign_complete must be called by
78
+ // the implementer when the async signing operation is complete.
79
+ // on_sign_complete must not be invoked synchronously within Sign().
80
+ virtual std::variant<absl::StatusOr<std::string>,
81
+ std::shared_ptr<AsyncSigningHandle>>
82
+ Sign(absl::string_view data_to_sign, SignatureAlgorithm signature_algorithm,
83
+ OnSignComplete on_sign_complete) = 0;
84
+
85
+ // Cancels an in-flight async signing operation using a handle returned
86
+ // from a previous call to Sign().
87
+ virtual void Cancel(std::shared_ptr<AsyncSigningHandle> handle) = 0;
88
+ };
89
+ } // namespace grpc_core
90
+
91
+ /**
92
+ * EXPERIMENTAL API - Subject to change
93
+ *
94
+ * Adds a identity key signer and a identity certificate chain to
95
+ * grpc_tls_identity_pairs. This implementation only works with gRPC Binaries
96
+ * built with BoringSSL.
97
+ * Returns OK if success, or a non-OK status on failure.
98
+ */
99
+ absl::Status grpc_tls_identity_pairs_add_pair_with_signer(
100
+ grpc_tls_identity_pairs* pairs,
101
+ std::shared_ptr<grpc_core::PrivateKeySigner> private_key_signer,
102
+ absl::string_view cert_chain);
103
+
104
+ #endif /* GRPC_PRIVATE_KEY_SIGNER_H */
@@ -891,4 +891,10 @@ extern void gpr_unreachable_code(const char* reason, const char* file,
891
891
  #endif
892
892
  #endif
893
893
 
894
+ #ifdef GPR_OPENBSD
895
+ #define GRPC_MAX_SOCKADDR_SIZE 256
896
+ #else
897
+ #define GRPC_MAX_SOCKADDR_SIZE 128
898
+ #endif
899
+
894
900
  #endif /* GRPC_SUPPORT_PORT_PLATFORM_H */