grpc 1.81.1 → 1.82.0.pre2

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 (861) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +12 -9
  3. data/include/grpc/grpc.h +6 -7
  4. data/include/grpc/impl/channel_arg_names.h +3 -1
  5. data/src/core/call/call_filters.h +2 -2
  6. data/src/core/call/client_call.cc +1 -1
  7. data/src/core/call/interception_chain.h +6 -9
  8. data/src/core/call/metadata.h +1 -1
  9. data/src/core/call/metadata_batch.cc +1 -1
  10. data/src/core/call/metadata_batch.h +17 -1
  11. data/src/core/call/parsed_metadata.h +7 -2
  12. data/src/core/call/server_call.cc +4 -2
  13. data/src/core/call/server_call.h +9 -2
  14. data/src/core/call/status_util.cc +0 -4
  15. data/src/core/call/status_util.h +0 -3
  16. data/src/core/channelz/channel_trace.cc +3 -1
  17. data/src/core/client_channel/backup_poller.cc +1 -1
  18. data/src/core/client_channel/client_channel.cc +6 -14
  19. data/src/core/client_channel/client_channel.h +2 -2
  20. data/src/core/client_channel/client_channel_filter.cc +8 -17
  21. data/src/core/client_channel/client_channel_filter.h +2 -2
  22. data/src/core/client_channel/client_channel_plugin.cc +1 -1
  23. data/src/core/client_channel/config_selector.h +2 -7
  24. data/src/core/client_channel/dynamic_filters.cc +4 -7
  25. data/src/core/client_channel/dynamic_filters.h +1 -3
  26. data/src/core/client_channel/retry_filter.cc +2 -25
  27. data/src/core/client_channel/retry_filter.h +3 -7
  28. data/src/core/client_channel/retry_filter_legacy_call_data.cc +1 -1
  29. data/src/core/client_channel/retry_filter_legacy_call_data.h +2 -2
  30. data/src/core/client_channel/retry_interceptor.cc +7 -35
  31. data/src/core/client_channel/retry_interceptor.h +11 -14
  32. data/src/core/client_channel/retry_service_config.cc +0 -2
  33. data/src/core/client_channel/retry_service_config.h +0 -2
  34. data/src/core/client_channel/retry_throttle.cc +19 -7
  35. data/src/core/client_channel/retry_throttle.h +24 -7
  36. data/src/core/client_channel/subchannel.cc +1 -1
  37. data/src/core/credentials/call/external/external_account_credentials.cc +125 -12
  38. data/src/core/credentials/call/external/external_account_credentials.h +6 -1
  39. data/src/core/credentials/call/jwt/jwt_credentials.cc +11 -1
  40. data/src/core/credentials/call/jwt/jwt_credentials.h +3 -0
  41. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +64 -11
  42. data/src/core/credentials/call/oauth2/oauth2_credentials.h +0 -1
  43. data/src/core/credentials/call/regional_access_boundary_fetcher.cc +411 -0
  44. data/src/core/credentials/call/regional_access_boundary_fetcher.h +158 -0
  45. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +1 -1
  46. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +7 -1
  47. data/src/core/credentials/transport/insecure/insecure_security_connector.h +1 -1
  48. data/src/core/credentials/transport/local/local_security_connector.cc +1 -1
  49. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +6 -0
  50. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +28 -66
  51. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +0 -8
  52. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +24 -58
  53. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +24 -19
  54. data/src/core/ext/filters/message_size/message_size_filter.cc +1 -81
  55. data/src/core/ext/filters/message_size/message_size_filter.h +1 -50
  56. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +13 -56
  57. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +0 -14
  58. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
  59. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +175 -51
  60. data/src/core/ext/transport/chttp2/server/chttp2_server.h +10 -1
  61. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +73 -6
  62. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
  63. data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -1
  64. data/src/core/ext/transport/chttp2/transport/flow_control.h +11 -0
  65. data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +2 -4
  66. data/src/core/ext/transport/chttp2/transport/frame.cc +63 -13
  67. data/src/core/ext/transport/chttp2/transport/frame.h +45 -10
  68. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -1
  69. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +11 -3
  70. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -1
  71. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
  72. data/src/core/ext/transport/chttp2/transport/header_assembler.h +54 -22
  73. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +53 -5
  74. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +22 -0
  75. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +20 -0
  76. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +33 -1
  77. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -1
  78. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +118 -157
  79. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +6 -13
  80. data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +2187 -0
  81. data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +748 -0
  82. data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -4
  83. data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +0 -2
  84. data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +50 -17
  85. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +13 -15
  86. data/src/core/ext/transport/chttp2/transport/http2_transport.h +16 -48
  87. data/src/core/ext/transport/chttp2/transport/internal.h +14 -0
  88. data/src/core/ext/transport/chttp2/transport/message_assembler.h +1 -2
  89. data/src/core/ext/transport/chttp2/transport/parsing.cc +82 -24
  90. data/src/core/ext/transport/chttp2/transport/read_context.h +452 -0
  91. data/src/core/ext/transport/chttp2/transport/security_frame.h +12 -3
  92. data/src/core/ext/transport/chttp2/transport/stream.h +25 -26
  93. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +6 -4
  94. data/src/core/ext/transport/chttp2/transport/write_cycle.h +9 -1
  95. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +16 -2
  96. data/src/core/ext/upb-gen/cel/expr/checked.upb.h +621 -432
  97. data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +264 -166
  98. data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h +0 -13
  99. data/src/core/ext/upb-gen/cel/expr/syntax.upb.h +708 -497
  100. data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +294 -176
  101. data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h +0 -15
  102. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +262 -181
  103. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +84 -58
  104. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +0 -5
  105. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +254 -190
  106. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +107 -53
  107. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +0 -4
  108. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +271 -190
  109. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +88 -64
  110. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +0 -5
  111. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +1035 -730
  112. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +384 -260
  113. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +0 -19
  114. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +87 -56
  115. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +26 -16
  116. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +0 -2
  117. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +105 -71
  118. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +30 -22
  119. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +0 -2
  120. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +31 -29
  121. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +19 -7
  122. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +0 -1
  123. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +25 -23
  124. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +15 -7
  125. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +0 -1
  126. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +25 -23
  127. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +15 -7
  128. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +0 -1
  129. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +201 -165
  130. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +79 -31
  131. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +0 -2
  132. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +29 -26
  133. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +17 -11
  134. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +0 -1
  135. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +46 -29
  136. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +37 -19
  137. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +4 -4
  138. data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +34 -27
  139. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +34 -13
  140. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +1 -2
  141. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +617 -452
  142. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +221 -163
  143. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +0 -16
  144. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +1339 -970
  145. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +484 -324
  146. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +0 -23
  147. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +181 -135
  148. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +59 -43
  149. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +0 -3
  150. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +1353 -1028
  151. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +535 -361
  152. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +0 -25
  153. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +37 -33
  154. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +19 -13
  155. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +0 -1
  156. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +234 -196
  157. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +77 -57
  158. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +0 -1
  159. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +695 -502
  160. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +246 -186
  161. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +0 -15
  162. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb.h +140 -116
  163. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +53 -43
  164. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.h +0 -3
  165. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +363 -269
  166. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +131 -89
  167. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +0 -8
  168. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +35 -31
  169. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +15 -13
  170. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +0 -1
  171. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +1073 -769
  172. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +515 -293
  173. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +0 -30
  174. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb.h +25 -23
  175. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +15 -7
  176. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.h +0 -1
  177. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +375 -267
  178. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +142 -86
  179. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +0 -7
  180. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +32 -27
  181. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +13 -11
  182. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +0 -1
  183. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +29 -26
  184. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +17 -11
  185. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +0 -1
  186. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +87 -56
  187. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +26 -16
  188. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +0 -2
  189. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +634 -468
  190. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +255 -161
  191. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +0 -14
  192. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +672 -474
  193. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +228 -130
  194. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +0 -9
  195. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +56 -40
  196. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +15 -13
  197. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +0 -1
  198. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +34 -29
  199. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +19 -11
  200. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +0 -1
  201. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +811 -635
  202. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +347 -221
  203. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +0 -16
  204. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +174 -118
  205. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +62 -38
  206. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +0 -4
  207. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +78 -57
  208. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +28 -18
  209. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +0 -2
  210. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +37 -33
  211. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +22 -14
  212. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +0 -1
  213. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +159 -119
  214. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +47 -35
  215. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +0 -5
  216. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +101 -76
  217. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +41 -23
  218. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +0 -2
  219. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +35 -31
  220. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +15 -13
  221. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +0 -1
  222. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +189 -127
  223. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +79 -49
  224. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +0 -4
  225. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +378 -283
  226. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +156 -98
  227. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +0 -8
  228. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +354 -255
  229. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +125 -69
  230. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +0 -6
  231. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +27 -24
  232. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +13 -11
  233. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +0 -1
  234. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +611 -451
  235. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +159 -119
  236. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +0 -11
  237. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +468 -321
  238. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +157 -99
  239. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +0 -6
  240. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +146 -119
  241. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +55 -35
  242. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +0 -1
  243. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +61 -51
  244. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +16 -16
  245. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +0 -2
  246. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +43 -39
  247. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +25 -13
  248. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +0 -1
  249. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +341 -247
  250. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +130 -84
  251. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +0 -8
  252. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +452 -313
  253. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +144 -100
  254. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +0 -10
  255. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +666 -493
  256. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +251 -181
  257. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +0 -12
  258. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +327 -197
  259. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +92 -48
  260. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +0 -3
  261. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +3583 -2532
  262. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +1340 -816
  263. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +0 -60
  264. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +111 -82
  265. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +48 -28
  266. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +0 -3
  267. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +548 -410
  268. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +214 -148
  269. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +0 -12
  270. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +59 -50
  271. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +30 -20
  272. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +0 -2
  273. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +29 -26
  274. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +17 -11
  275. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +0 -1
  276. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +60 -49
  277. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +28 -20
  278. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +0 -2
  279. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +50 -36
  280. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +19 -11
  281. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +0 -1
  282. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +82 -63
  283. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +27 -19
  284. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +0 -1
  285. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +27 -24
  286. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +13 -11
  287. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +0 -1
  288. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +70 -58
  289. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +32 -22
  290. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +0 -2
  291. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +2 -5
  292. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +1 -1
  293. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +73 -62
  294. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +39 -25
  295. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +0 -2
  296. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +49 -45
  297. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +33 -13
  298. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +0 -1
  299. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +771 -588
  300. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +383 -185
  301. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +0 -16
  302. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +66 -47
  303. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +31 -17
  304. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +0 -2
  305. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb.h +69 -58
  306. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.c +27 -23
  307. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.h +0 -2
  308. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +151 -119
  309. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +45 -39
  310. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +0 -5
  311. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb.h +19 -17
  312. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.c +1 -3
  313. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.h +0 -1
  314. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb.h +144 -109
  315. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.c +46 -38
  316. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.h +0 -4
  317. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +184 -139
  318. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +65 -35
  319. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +0 -3
  320. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +129 -106
  321. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +69 -41
  322. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +0 -4
  323. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +83 -71
  324. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +40 -26
  325. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +0 -2
  326. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +148 -101
  327. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +45 -27
  328. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +0 -2
  329. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +62 -51
  330. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +35 -21
  331. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +0 -2
  332. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1362 -1024
  333. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +508 -336
  334. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +0 -22
  335. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb.h +21 -19
  336. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +13 -7
  337. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.h +0 -1
  338. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb.h +35 -31
  339. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.c +15 -13
  340. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.h +0 -1
  341. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb.h +27 -24
  342. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.c +13 -11
  343. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.h +0 -1
  344. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +27 -24
  345. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +13 -11
  346. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +0 -1
  347. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +94 -74
  348. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +35 -23
  349. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.h +0 -1
  350. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +231 -179
  351. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +88 -66
  352. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +0 -6
  353. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +21 -19
  354. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +13 -7
  355. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +0 -1
  356. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +63 -56
  357. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +31 -19
  358. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +0 -1
  359. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +27 -24
  360. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +13 -11
  361. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +0 -1
  362. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +27 -24
  363. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +13 -11
  364. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +0 -1
  365. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -5
  366. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +1 -1
  367. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +538 -364
  368. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +157 -95
  369. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +0 -8
  370. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -110
  371. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +69 -49
  372. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +0 -4
  373. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +517 -389
  374. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +182 -116
  375. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +0 -7
  376. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +84 -62
  377. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +30 -22
  378. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +0 -2
  379. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +340 -256
  380. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +92 -82
  381. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +0 -5
  382. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +19 -17
  383. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +1 -3
  384. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +0 -1
  385. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +857 -566
  386. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +288 -182
  387. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +0 -15
  388. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +105 -72
  389. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +36 -22
  390. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +0 -2
  391. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +312 -226
  392. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +132 -78
  393. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +0 -5
  394. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +82 -61
  395. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +35 -19
  396. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +0 -2
  397. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +123 -89
  398. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +25 -25
  399. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +0 -4
  400. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h +48 -33
  401. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +13 -11
  402. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h +0 -1
  403. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +42 -36
  404. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +19 -13
  405. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +0 -1
  406. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +101 -79
  407. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +61 -31
  408. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +0 -5
  409. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +83 -60
  410. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +37 -19
  411. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +0 -2
  412. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +56 -40
  413. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +15 -13
  414. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +0 -1
  415. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +34 -29
  416. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +13 -11
  417. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +0 -1
  418. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +32 -27
  419. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +13 -11
  420. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +0 -1
  421. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +88 -71
  422. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +48 -30
  423. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +0 -3
  424. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +37 -30
  425. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +1 -5
  426. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +0 -2
  427. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +95 -71
  428. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +36 -22
  429. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +0 -2
  430. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +79 -56
  431. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +26 -18
  432. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +0 -2
  433. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +164 -124
  434. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +54 -40
  435. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +0 -4
  436. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +200 -147
  437. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +47 -41
  438. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +0 -7
  439. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +160 -130
  440. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +89 -47
  441. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +0 -5
  442. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +78 -62
  443. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +26 -20
  444. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +0 -3
  445. data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +2 -5
  446. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +1 -1
  447. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +21 -19
  448. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +13 -7
  449. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +0 -1
  450. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +43 -36
  451. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +22 -12
  452. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +0 -2
  453. data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +67 -55
  454. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +36 -18
  455. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +0 -3
  456. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +62 -51
  457. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +33 -19
  458. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +0 -2
  459. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +2 -5
  460. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +1 -1
  461. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +25 -23
  462. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +15 -7
  463. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +0 -1
  464. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +37 -33
  465. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +19 -13
  466. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +0 -1
  467. data/src/core/ext/upb-gen/google/api/annotations.upb.h +15 -13
  468. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +22 -7
  469. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +1 -1
  470. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +619 -430
  471. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +260 -168
  472. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +0 -13
  473. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +734 -518
  474. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +312 -182
  475. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +0 -16
  476. data/src/core/ext/upb-gen/google/api/http.upb.h +146 -105
  477. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +65 -29
  478. data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +0 -3
  479. data/src/core/ext/upb-gen/google/api/httpbody.upb.h +52 -37
  480. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +19 -11
  481. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +0 -1
  482. data/src/core/ext/upb-gen/google/protobuf/any.upb.h +23 -21
  483. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +15 -7
  484. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +0 -1
  485. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +2236 -1514
  486. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +824 -406
  487. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +0 -34
  488. data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +23 -21
  489. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +15 -7
  490. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +0 -1
  491. data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +19 -17
  492. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +1 -3
  493. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +0 -1
  494. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +149 -100
  495. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +59 -43
  496. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +0 -4
  497. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +23 -21
  498. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +15 -7
  499. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +0 -1
  500. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +181 -139
  501. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +99 -53
  502. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +0 -9
  503. data/src/core/ext/upb-gen/google/rpc/status.upb.h +52 -37
  504. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +19 -11
  505. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +0 -1
  506. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h +1553 -1157
  507. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +712 -410
  508. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h +0 -39
  509. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +189 -125
  510. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +59 -35
  511. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +0 -3
  512. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +454 -343
  513. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +204 -130
  514. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +0 -11
  515. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +369 -243
  516. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +109 -79
  517. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +0 -7
  518. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +256 -175
  519. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +122 -68
  520. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +0 -8
  521. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +71 -51
  522. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +39 -19
  523. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +0 -2
  524. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +583 -407
  525. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +259 -145
  526. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +0 -12
  527. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +114 -84
  528. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +52 -30
  529. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +0 -4
  530. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +41 -34
  531. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +25 -13
  532. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +0 -2
  533. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +309 -230
  534. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +123 -79
  535. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +0 -9
  536. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +98 -63
  537. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +51 -23
  538. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +0 -3
  539. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +505 -312
  540. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +159 -87
  541. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +0 -9
  542. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +128 -91
  543. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +82 -41
  544. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +5 -8
  545. data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +36 -29
  546. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +36 -13
  547. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +1 -2
  548. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +13 -11
  549. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +22 -7
  550. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +1 -1
  551. data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +36 -29
  552. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +36 -13
  553. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +1 -2
  554. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +34 -27
  555. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +34 -13
  556. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +1 -2
  557. data/src/core/ext/upb-gen/validate/validate.upb.h +1682 -1130
  558. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +587 -247
  559. data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +4 -27
  560. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +128 -91
  561. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +82 -41
  562. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +5 -8
  563. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +36 -29
  564. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +36 -13
  565. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +1 -2
  566. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +13 -11
  567. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +22 -7
  568. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +1 -1
  569. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +122 -90
  570. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +82 -39
  571. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +3 -7
  572. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +34 -27
  573. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +34 -13
  574. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +1 -2
  575. data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +21 -19
  576. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +13 -7
  577. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +0 -1
  578. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +29 -26
  579. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +17 -11
  580. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +0 -1
  581. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +70 -58
  582. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +32 -22
  583. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +0 -2
  584. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +53 -34
  585. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +26 -16
  586. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +0 -2
  587. data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +29 -26
  588. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +17 -11
  589. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +0 -1
  590. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +37 -33
  591. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +22 -14
  592. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +0 -1
  593. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +102 -76
  594. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +43 -23
  595. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +0 -2
  596. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +33 -30
  597. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +19 -11
  598. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +0 -1
  599. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +136 -83
  600. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +41 -33
  601. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +0 -4
  602. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +46 -32
  603. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +20 -12
  604. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +0 -1
  605. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +29 -26
  606. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +20 -12
  607. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +0 -1
  608. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +93 -61
  609. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +28 -20
  610. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +0 -2
  611. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +19 -17
  612. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +1 -3
  613. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +0 -1
  614. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +105 -71
  615. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +32 -22
  616. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +0 -2
  617. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +430 -314
  618. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +153 -123
  619. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +0 -10
  620. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +307 -199
  621. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +74 -62
  622. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +0 -6
  623. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +52 -42
  624. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +19 -13
  625. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +0 -2
  626. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +95 -71
  627. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +36 -22
  628. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +0 -2
  629. data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +92 -77
  630. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +42 -28
  631. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +0 -2
  632. data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +67 -55
  633. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +36 -18
  634. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +0 -3
  635. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +29 -26
  636. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +17 -11
  637. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +0 -1
  638. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +885 -855
  639. data/src/core/filter/composite/composite_filter.cc +10 -3
  640. data/src/core/filter/composite/composite_filter.h +11 -1
  641. data/src/core/filter/filter_args.h +4 -22
  642. data/src/core/handshaker/handshaker.cc +10 -2
  643. data/src/core/handshaker/security/secure_endpoint.cc +73 -5
  644. data/src/core/lib/channel/channel_args.h +12 -6
  645. data/src/core/lib/channel/channel_stack.cc +1 -2
  646. data/src/core/lib/channel/channel_stack.h +1 -7
  647. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
  648. data/src/core/lib/channel/channel_stack_builder_impl.h +0 -7
  649. data/src/core/lib/channel/promise_based_filter.cc +13 -1
  650. data/src/core/lib/channel/promise_based_filter.h +4 -5
  651. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +0 -13
  652. data/src/core/lib/event_engine/extensions/receive_coalescing_extension.h +48 -0
  653. data/src/core/lib/event_engine/posix.h +2 -0
  654. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +2 -1
  655. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +11 -8
  656. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +7 -6
  657. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +1 -1
  658. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +2 -1
  659. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +10 -10
  660. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +1 -1
  661. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +1 -1
  662. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +5 -4
  663. data/src/core/lib/experiments/experiments.cc +258 -87
  664. data/src/core/lib/experiments/experiments.h +130 -32
  665. data/src/core/lib/iomgr/buffer_list.h +1 -1
  666. data/src/core/lib/iomgr/ev_epoll1_linux.cc +1 -1
  667. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
  668. data/src/core/lib/iomgr/tcp_posix.cc +2 -1
  669. data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
  670. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
  671. data/src/core/lib/promise/detail/promise_factory.h +8 -8
  672. data/src/core/lib/promise/interceptor_list.h +1 -1
  673. data/src/core/lib/promise/try_seq.h +2 -2
  674. data/src/core/lib/resource_quota/telemetry.cc +54 -0
  675. data/src/core/lib/resource_quota/telemetry.h +5 -23
  676. data/src/core/lib/surface/call.cc +6 -1
  677. data/src/core/lib/surface/call.h +9 -0
  678. data/src/core/lib/surface/version.cc +2 -2
  679. data/src/core/lib/transport/promise_endpoint.h +7 -5
  680. data/src/core/lib/transport/transport.h +31 -4
  681. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +146 -74
  682. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.h +88 -0
  683. data/src/core/mitigation_engine/mitigation_engine.h +81 -0
  684. data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
  685. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -5
  686. data/src/core/resolver/xds/xds_resolver.cc +23 -133
  687. data/src/core/server/server.cc +40 -18
  688. data/src/core/server/server.h +25 -14
  689. data/src/core/server/server_config_selector_filter.cc +122 -0
  690. data/src/core/server/server_config_selector_filter.h +1 -0
  691. data/src/core/server/xds_server_config_fetcher.cc +6 -0
  692. data/src/core/server/xds_server_config_fetcher_legacy.cc +1333 -0
  693. data/src/core/telemetry/histogram.h +10 -89
  694. data/src/core/telemetry/instrument.h +42 -28
  695. data/src/core/transport/message_size_service_config.cc +123 -0
  696. data/src/core/transport/message_size_service_config.h +85 -0
  697. data/src/core/transport/session_endpoint.cc +29 -4
  698. data/src/core/transport/session_endpoint.h +4 -0
  699. data/src/core/tsi/alts/crypt/gsec.h +4 -2
  700. data/src/core/tsi/ssl_transport_security.cc +6 -4
  701. data/src/core/util/http_client/parser.cc +1 -1
  702. data/src/core/util/lru_cache.h +2 -0
  703. data/src/core/util/ref_counted_string.h +1 -1
  704. data/src/core/util/tchar.cc +13 -7
  705. data/src/core/util/trie_lookup.h +1 -1
  706. data/src/core/xds/grpc/blackboard.cc +58 -0
  707. data/src/core/{filter → xds/grpc}/blackboard.h +30 -11
  708. data/src/core/xds/grpc/xds_common_types.cc +40 -0
  709. data/src/core/xds/grpc/xds_common_types.h +13 -0
  710. data/src/core/xds/grpc/xds_common_types_parser.cc +37 -34
  711. data/src/core/xds/grpc/xds_endpoint_parser.cc +1 -1
  712. data/src/core/xds/grpc/xds_http_composite_filter.cc +34 -18
  713. data/src/core/xds/grpc/xds_http_composite_filter.h +6 -3
  714. data/src/core/xds/grpc/xds_http_fault_filter.cc +0 -149
  715. data/src/core/xds/grpc/xds_http_fault_filter.h +19 -8
  716. data/src/core/xds/grpc/xds_http_filter.cc +2 -1
  717. data/src/core/xds/grpc/xds_http_filter.h +6 -16
  718. data/src/core/xds/grpc/xds_http_filter_registry.cc +0 -2
  719. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +25 -119
  720. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +27 -15
  721. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +0 -149
  722. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +19 -8
  723. data/src/core/xds/grpc/xds_lb_policy_registry.cc +18 -0
  724. data/src/core/xds/grpc/xds_listener_parser.cc +13 -9
  725. data/src/core/xds/grpc/xds_route_config.h +1 -1
  726. data/src/core/xds/grpc/xds_route_config_parser.cc +3 -5
  727. data/src/core/xds/grpc/xds_routing.cc +5 -11
  728. data/src/core/xds/grpc/xds_routing.h +2 -3
  729. data/src/core/xds/xds_client/lrs_client.cc +2 -2
  730. data/src/ruby/ext/grpc/rb_byte_buffer.c +1 -0
  731. data/src/ruby/ext/grpc/rb_call.c +3 -0
  732. data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
  733. data/src/ruby/ext/grpc/rb_channel.c +1 -0
  734. data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
  735. data/src/ruby/ext/grpc/rb_channel_credentials.c +1 -0
  736. data/src/ruby/ext/grpc/rb_completion_queue.c +1 -0
  737. data/src/ruby/ext/grpc/rb_compression_options.c +1 -0
  738. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -4
  739. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -6
  740. data/src/ruby/ext/grpc/rb_server.c +1 -0
  741. data/src/ruby/ext/grpc/rb_server_credentials.c +1 -0
  742. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +1 -0
  743. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +1 -0
  744. data/src/ruby/lib/grpc/core/call_credentials.rb +86 -0
  745. data/src/ruby/lib/grpc/core/channel_credentials.rb +69 -0
  746. data/src/ruby/lib/grpc/core/credentials_helper.rb +126 -0
  747. data/src/ruby/lib/grpc/generic/client_stub.rb +86 -73
  748. data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
  749. data/src/ruby/lib/grpc/version.rb +1 -1
  750. data/src/ruby/lib/grpc.rb +25 -0
  751. data/src/ruby/spec/call_credentials_spec.rb +52 -2
  752. data/src/ruby/spec/credentials_helper_spec.rb +80 -0
  753. data/src/ruby/spec/generic/client_stub_spec.rb +27 -4
  754. data/src/ruby/spec/generic/server_interceptors_spec.rb +17 -3
  755. data/third_party/upb/upb/base/error_handler.h +79 -0
  756. data/third_party/upb/upb/base/internal/log2.h +29 -5
  757. data/third_party/upb/upb/generated_code_support.h +1 -0
  758. data/third_party/upb/upb/hash/common.c +129 -14
  759. data/third_party/upb/upb/hash/common.h +1 -1
  760. data/third_party/upb/upb/hash/ext_table.h +65 -0
  761. data/third_party/upb/upb/lex/strtod.c +14 -5
  762. data/third_party/upb/upb/mem/arena.c +113 -95
  763. data/third_party/upb/upb/mem/internal/arena.h +13 -8
  764. data/third_party/upb/upb/message/accessors.c +2 -3
  765. data/third_party/upb/upb/message/accessors.h +32 -12
  766. data/third_party/upb/upb/message/array.c +51 -2
  767. data/third_party/upb/upb/message/array.h +10 -0
  768. data/third_party/upb/upb/message/copy.c +18 -34
  769. data/third_party/upb/upb/message/internal/accessors.h +15 -49
  770. data/third_party/upb/upb/message/internal/array.h +1 -1
  771. data/third_party/upb/upb/message/internal/map.h +1 -1
  772. data/third_party/upb/upb/message/internal/message.c +8 -1
  773. data/third_party/upb/upb/message/internal/message.h +40 -10
  774. data/third_party/upb/upb/message/message.c +3 -2
  775. data/third_party/upb/upb/message/value.h +0 -6
  776. data/third_party/upb/upb/mini_descriptor/decode.c +78 -59
  777. data/third_party/upb/upb/mini_descriptor/link.c +8 -6
  778. data/third_party/upb/upb/mini_table/extension_registry.c +17 -49
  779. data/third_party/upb/upb/mini_table/extension_registry.h +5 -17
  780. data/third_party/upb/upb/mini_table/generated_registry.c +180 -0
  781. data/third_party/upb/upb/mini_table/generated_registry.h +66 -0
  782. data/third_party/upb/upb/mini_table/internal/extension.h +5 -3
  783. data/third_party/upb/upb/mini_table/internal/field.h +7 -5
  784. data/third_party/upb/upb/mini_table/internal/generated_registry.h +37 -0
  785. data/third_party/upb/upb/mini_table/internal/message.c +0 -18
  786. data/third_party/upb/upb/mini_table/internal/message.h +24 -41
  787. data/third_party/upb/upb/mini_table/internal/size_log2.h +2 -1
  788. data/third_party/upb/upb/mini_table/internal/sub.h +2 -5
  789. data/third_party/upb/upb/mini_table/message.h +34 -13
  790. data/third_party/upb/upb/port/atomic.h +180 -74
  791. data/third_party/upb/upb/port/def.inc +194 -29
  792. data/third_party/upb/upb/port/sanitizers.h +15 -0
  793. data/third_party/upb/upb/port/undef.inc +6 -2
  794. data/third_party/upb/upb/reflection/common.h +0 -6
  795. data/third_party/upb/upb/reflection/def.hpp +8 -12
  796. data/third_party/upb/upb/reflection/def_pool.c +85 -33
  797. data/third_party/upb/upb/reflection/def_pool.h +38 -8
  798. data/third_party/upb/upb/reflection/def_type.h +3 -0
  799. data/third_party/upb/upb/reflection/enum_def.c +45 -33
  800. data/third_party/upb/upb/reflection/enum_def.h +8 -4
  801. data/third_party/upb/upb/reflection/enum_reserved_range.c +7 -3
  802. data/third_party/upb/upb/reflection/enum_value_def.c +14 -29
  803. data/third_party/upb/upb/reflection/enum_value_def.h +5 -4
  804. data/third_party/upb/upb/reflection/extension_range.c +15 -14
  805. data/third_party/upb/upb/reflection/extension_range.h +7 -4
  806. data/third_party/upb/upb/reflection/field_def.c +114 -96
  807. data/third_party/upb/upb/reflection/field_def.h +3 -3
  808. data/third_party/upb/upb/reflection/file_def.c +71 -65
  809. data/third_party/upb/upb/reflection/file_def.h +4 -5
  810. data/third_party/upb/upb/reflection/internal/def_builder.c +22 -14
  811. data/third_party/upb/upb/reflection/internal/def_builder.h +44 -38
  812. data/third_party/upb/upb/reflection/internal/def_pool.h +5 -1
  813. data/third_party/upb/upb/reflection/internal/enum_def.h +6 -4
  814. data/third_party/upb/upb/reflection/internal/enum_reserved_range.h +3 -2
  815. data/third_party/upb/upb/reflection/internal/enum_value_def.h +7 -4
  816. data/third_party/upb/upb/reflection/internal/extension_range.h +4 -3
  817. data/third_party/upb/upb/reflection/internal/field_def.h +15 -12
  818. data/third_party/upb/upb/reflection/internal/file_def.h +8 -1
  819. data/third_party/upb/upb/reflection/internal/message_def.h +10 -7
  820. data/third_party/upb/upb/reflection/internal/message_reserved_range.h +3 -1
  821. data/third_party/upb/upb/reflection/internal/method_def.h +6 -6
  822. data/third_party/upb/upb/reflection/internal/oneof_def.h +6 -6
  823. data/third_party/upb/upb/reflection/internal/service_def.h +9 -6
  824. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  825. data/third_party/upb/upb/reflection/message_def.c +46 -53
  826. data/third_party/upb/upb/reflection/message_def.h +6 -7
  827. data/third_party/upb/upb/reflection/message_reserved_range.c +7 -6
  828. data/third_party/upb/upb/reflection/method_def.c +22 -20
  829. data/third_party/upb/upb/reflection/method_def.h +4 -4
  830. data/third_party/upb/upb/reflection/oneof_def.c +17 -15
  831. data/third_party/upb/upb/reflection/oneof_def.h +6 -3
  832. data/third_party/upb/upb/reflection/service_def.c +50 -23
  833. data/third_party/upb/upb/reflection/service_def.h +7 -4
  834. data/third_party/upb/upb/text/internal/encode.c +7 -10
  835. data/third_party/upb/upb/wire/decode.c +269 -430
  836. data/third_party/upb/upb/wire/decode.h +6 -45
  837. data/third_party/upb/upb/wire/decode_fast/combinations.h +7 -3
  838. data/third_party/upb/upb/wire/decode_fast/select.c +7 -2
  839. data/third_party/upb/upb/wire/encode.c +144 -106
  840. data/third_party/upb/upb/wire/encode.h +6 -2
  841. data/third_party/upb/upb/wire/eps_copy_input_stream.c +36 -7
  842. data/third_party/upb/upb/wire/eps_copy_input_stream.h +94 -380
  843. data/third_party/upb/upb/wire/internal/decoder.c +1 -14
  844. data/third_party/upb/upb/wire/internal/decoder.h +84 -24
  845. data/third_party/upb/upb/wire/internal/eps_copy_input_stream.h +339 -0
  846. data/third_party/upb/upb/wire/internal/reader.h +29 -12
  847. data/third_party/upb/upb/wire/reader.c +35 -22
  848. data/third_party/upb/upb/wire/reader.h +11 -18
  849. data/third_party/utf8_range/utf8_range.c +1 -1
  850. data/third_party/utf8_range/utf8_range.h +2 -1
  851. metadata +27 -13
  852. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +0 -117
  853. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +0 -109
  854. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +0 -80
  855. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +0 -86
  856. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +0 -83
  857. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +0 -91
  858. data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +0 -217
  859. data/src/core/filter/blackboard.cc +0 -33
  860. data/third_party/upb/upb/message/internal/tagged_ptr.h +0 -56
  861. data/third_party/upb/upb/message/tagged_ptr.h +0 -48
@@ -102,10 +102,17 @@ CompositeFilter::CompositeFilter(const ChannelArgs& args,
102
102
  if (action.type() != ExecuteFilterAction::Type()) return;
103
103
  const auto& execute_filter_action =
104
104
  DownCast<const ExecuteFilterAction&>(action);
105
- InterceptionChainBuilder builder(args, filter_args.blackboard());
105
+ auto it = config_->merged_config_map.find(&action);
106
+ GRPC_CHECK(it != config_->merged_config_map.end());
107
+ auto& merged_configs = it->second;
108
+ GRPC_CHECK_EQ(merged_configs.size(),
109
+ execute_filter_action.filter_chain().size());
110
+ InterceptionChainBuilder builder(args);
106
111
  InterceptionChainBuilderWrapper builder_wrapper(builder);
107
- for (const auto& [filter_impl, filter_config] :
108
- execute_filter_action.filter_chain()) {
112
+ for (size_t i = 0; i < merged_configs.size(); ++i) {
113
+ const auto* filter_impl =
114
+ execute_filter_action.filter_chain()[i].filter_impl;
115
+ const auto& filter_config = merged_configs[i];
109
116
  // TODO(roth): Currently, this code assumes that it is always
110
117
  // running on the client side, so we'll need to remove this
111
118
  // assumption in order to make this filter work on the server
@@ -116,7 +116,17 @@ class CompositeFilter final : public V3InterceptorToV2Bridge<CompositeFilter> {
116
116
  return matcher->ToString();
117
117
  }
118
118
 
119
- std::unique_ptr<XdsMatcher> matcher;
119
+ std::shared_ptr<const XdsMatcher> matcher;
120
+
121
+ // For each action, contains the list of merged filter configs to
122
+ // use. This is basically the same as the filter configs in the
123
+ // matcher actions, except that the configs may include fields set
124
+ // from the blackboard.
125
+ // Note: This is not actually part of the identity of the config
126
+ // (i.e., does not matter for Equals()).
127
+ absl::flat_hash_map<const XdsMatcher::Action*,
128
+ std::vector<RefCountedPtr<const FilterConfig>>>
129
+ merged_config_map;
120
130
  };
121
131
 
122
132
  static const grpc_channel_filter kFilterVtable;
@@ -17,7 +17,6 @@
17
17
 
18
18
  #include <memory>
19
19
 
20
- #include "src/core/filter/blackboard.h"
21
20
  #include "src/core/lib/channel/channel_fwd.h"
22
21
  #include "src/core/util/match.h"
23
22
  #include "src/core/util/ref_counted.h"
@@ -58,12 +57,10 @@ class FilterArgs {
58
57
  grpc_channel_element* channel_element,
59
58
  size_t (*channel_stack_filter_instance_number)(
60
59
  grpc_channel_stack*, grpc_channel_element*),
61
- RefCountedPtr<const FilterConfig> config = nullptr,
62
- const Blackboard* blackboard = nullptr)
60
+ RefCountedPtr<const FilterConfig> config = nullptr)
63
61
  : impl_(ChannelStackBased{channel_stack, channel_element,
64
62
  channel_stack_filter_instance_number}),
65
- config_(std::move(config)),
66
- blackboard_(blackboard) {}
63
+ config_(std::move(config)) {}
67
64
  // While we're moving to call-v3 we need to have access to
68
65
  // grpc_channel_stack & friends here. That means that we can't rely on this
69
66
  // type signature from interception_chain.h, which means that we need a way
@@ -71,11 +68,8 @@ class FilterArgs {
71
68
  // TODO(ctiller): remove this once we're fully on call-v3
72
69
  // NOLINTNEXTLINE(google-explicit-constructor)
73
70
  FilterArgs(size_t instance_id,
74
- RefCountedPtr<const FilterConfig> config = nullptr,
75
- const Blackboard* blackboard = nullptr)
76
- : impl_(V3Based{instance_id}),
77
- config_(std::move(config)),
78
- blackboard_(blackboard) {}
71
+ RefCountedPtr<const FilterConfig> config = nullptr)
72
+ : impl_(V3Based{instance_id}), config_(std::move(config)) {}
79
73
 
80
74
  ABSL_DEPRECATED("Direct access to channel stack is deprecated")
81
75
  grpc_channel_stack* channel_stack() const {
@@ -103,17 +97,6 @@ class FilterArgs {
103
97
 
104
98
  RefCountedPtr<const FilterConfig> config() const { return config_; }
105
99
 
106
- // Gets the filter state associated with a particular type and key.
107
- template <typename T>
108
- RefCountedPtr<T> GetState(const std::string& key) const {
109
- if (blackboard_ == nullptr) return nullptr;
110
- return blackboard_->Get<T>(key);
111
- }
112
-
113
- // Do not use unless you know what you're doing -- prefer to use
114
- // GetState() instead!
115
- const Blackboard* blackboard() const { return blackboard_; }
116
-
117
100
  private:
118
101
  friend class ChannelFilter;
119
102
 
@@ -132,7 +115,6 @@ class FilterArgs {
132
115
  Impl impl_;
133
116
 
134
117
  const RefCountedPtr<const FilterConfig> config_;
135
- const Blackboard* blackboard_ = nullptr;
136
118
  };
137
119
 
138
120
  } // namespace grpc_core
@@ -139,9 +139,14 @@ void HandshakeManager::Shutdown(absl::Status error) {
139
139
  is_shutdown_ = true;
140
140
  // Shutdown the handshaker that's currently in progress, if any.
141
141
  if (index_ > 0) {
142
+ auto& handshaker = *handshakers_[index_ - 1];
142
143
  GRPC_CHANNELZ_LOG(args_.trace_node)
143
- << "Shutting down handshaker at index " << (index_ - 1);
144
- handshakers_[index_ - 1]->Shutdown(std::move(error));
144
+ << "Shutting down handshaker " << handshaker.name() << " at index "
145
+ << (index_ - 1);
146
+ if (IsVerboseChannelzConnectionLoggingEnabled()) {
147
+ args_.trace_node.Commit();
148
+ }
149
+ handshaker.Shutdown(std::move(error));
145
150
  }
146
151
  }
147
152
  }
@@ -187,6 +192,9 @@ void HandshakeManager::CallNextHandshakerLocked(absl::Status error) {
187
192
  auto handshaker = handshakers_[index_];
188
193
  GRPC_CHANNELZ_LOG(args_.trace_node)
189
194
  << " calling handshaker " << handshaker->name() << " at index " << index_;
195
+ if (IsVerboseChannelzConnectionLoggingEnabled()) {
196
+ args_.trace_node.Commit();
197
+ }
190
198
  ++index_;
191
199
  handshaker->DoHandshake(&args_, [self = Ref()](absl::Status error) mutable {
192
200
  MutexLock lock(&self->mu_);
@@ -39,6 +39,8 @@
39
39
  #include <vector>
40
40
 
41
41
  #include "src/core/lib/debug/trace.h"
42
+ #include "src/core/lib/event_engine/extensions/receive_coalescing_extension.h"
43
+ #include "src/core/lib/event_engine/query_extensions.h"
42
44
  #include "src/core/lib/experiments/experiments.h"
43
45
  #include "src/core/lib/iomgr/closure.h"
44
46
  #include "src/core/lib/iomgr/endpoint.h"
@@ -575,6 +577,17 @@ class FrameProtector : public RefCounted<FrameProtector> {
575
577
  }
576
578
  }
577
579
 
580
+ // Resets the read staging buffer.
581
+ // Per the contract of EnableRpcReceiveCoalescing(), this is only
582
+ // called when there are no outstanding Read() operations on the endpoint.
583
+ // Therefore, any valid plaintext has already been fully delivered, and
584
+ // read_staging_buffer_ contains only unused, leftover memory capacity.
585
+ void ResetReadStagingBuffer() {
586
+ MutexLock lock(&read_mu_);
587
+ CSliceUnref(read_staging_buffer_);
588
+ read_staging_buffer_ = grpc_empty_slice();
589
+ }
590
+
578
591
  private:
579
592
  struct tsi_frame_protector* const protector_;
580
593
  struct tsi_zero_copy_grpc_protector* const zero_copy_protector_;
@@ -821,7 +834,8 @@ static const grpc_endpoint_vtable vtable = {endpoint_read,
821
834
  namespace grpc_event_engine::experimental {
822
835
  namespace {
823
836
 
824
- class SecureEndpoint final : public EventEngine::Endpoint {
837
+ class SecureEndpoint final : public EventEngine::Endpoint,
838
+ public ReceiveCoalescingExtension {
825
839
  public:
826
840
  SecureEndpoint(
827
841
  std::unique_ptr<grpc_event_engine::experimental::EventEngine::Endpoint>
@@ -855,9 +869,24 @@ class SecureEndpoint final : public EventEngine::Endpoint {
855
869
  }
856
870
 
857
871
  void* QueryExtension(absl::string_view id) override {
872
+ if (id == ReceiveCoalescingExtension::EndpointExtensionName()) {
873
+ return static_cast<ReceiveCoalescingExtension*>(this);
874
+ }
858
875
  return impl_->QueryExtension(id);
859
876
  }
860
877
 
878
+ void EnableRpcReceiveCoalescing() override {
879
+ impl_->EnableRpcReceiveCoalescing();
880
+ }
881
+
882
+ void DisableRpcReceiveCoalescing() override {
883
+ impl_->DisableRpcReceiveCoalescing();
884
+ }
885
+
886
+ void EnforceRxMemoryAlignment() override {
887
+ impl_->EnforceRxMemoryAlignment();
888
+ }
889
+
861
890
  std::shared_ptr<TelemetryInfo> GetTelemetryInfo() const override {
862
891
  return std::make_shared<Impl::TelemetryInfo>(impl_->GetTelemetryInfo());
863
892
  }
@@ -940,11 +969,20 @@ class SecureEndpoint final : public EventEngine::Endpoint {
940
969
  // TODO(aananthv): Evaluate if we need to add a channel_arg to enable this
941
970
  // selectively.
942
971
  if (grpc_core::IsSecureEndpointReadCoalescingEnabled()) {
972
+ {
973
+ // This mutex should not have any contention since we can only have
974
+ // one outstanding Read() at a time.
975
+ grpc_core::MutexLock lock(&read_settings_mu_);
976
+ if (rpc_receive_coalescing_enabled_) {
977
+ // TODO(aananthv): Make required_read_bytes_ a separate field in
978
+ // ReadArgs to avoid confusion between min_progress_size and
979
+ // read_hint_bytes, especially if we enable coalescing by default.
980
+ required_read_bytes_ = std::max<int64_t>(0, args.read_hint_bytes());
981
+ } else {
982
+ required_read_bytes_ = 0;
983
+ }
984
+ }
943
985
  read_buffer_ = buffer;
944
- // TODO(aananthv): Make required_read_bytes_ a separate field in
945
- // ReadArgs to avoid confusion between min_progress_size and
946
- // read_hint_bytes, especially if we enable coalescing by default.
947
- required_read_bytes_ = std::max<int64_t>(0, args.read_hint_bytes());
948
986
  read_args_ = args;
949
987
  frame_protector_.BeginRead(buffer->c_slice_buffer(),
950
988
  required_read_bytes_);
@@ -1052,6 +1090,33 @@ class SecureEndpoint final : public EventEngine::Endpoint {
1052
1090
  return wrapped_ep_->GetLocalAddress();
1053
1091
  }
1054
1092
 
1093
+ void EnableRpcReceiveCoalescing() {
1094
+ {
1095
+ grpc_core::MutexLock lock(&read_settings_mu_);
1096
+ rpc_receive_coalescing_enabled_ = true;
1097
+ }
1098
+ frame_protector_.ResetReadStagingBuffer();
1099
+ // We do not need to enable this in the underlying endpoint since we only
1100
+ // benefit from coalescing the user-facing buffer.
1101
+ // TODO(aananthv): Should we disable it explicitly?
1102
+ }
1103
+
1104
+ void DisableRpcReceiveCoalescing() {
1105
+ {
1106
+ grpc_core::MutexLock lock(&read_settings_mu_);
1107
+ rpc_receive_coalescing_enabled_ = false;
1108
+ }
1109
+ }
1110
+
1111
+ void EnforceRxMemoryAlignment() {
1112
+ auto* ext = grpc_event_engine::experimental::QueryExtension<
1113
+ grpc_event_engine::experimental::ReceiveCoalescingExtension>(
1114
+ wrapped_ep_.get());
1115
+ if (ext != nullptr) {
1116
+ ext->EnforceRxMemoryAlignment();
1117
+ }
1118
+ }
1119
+
1055
1120
  void* QueryExtension(absl::string_view id) {
1056
1121
  return wrapped_ep_->QueryExtension(id);
1057
1122
  }
@@ -1306,6 +1371,9 @@ class SecureEndpoint final : public EventEngine::Endpoint {
1306
1371
  const size_t large_read_threshold_;
1307
1372
  const size_t large_write_threshold_;
1308
1373
  const size_t max_buffered_writes_;
1374
+ grpc_core::Mutex read_settings_mu_;
1375
+ bool rpc_receive_coalescing_enabled_ ABSL_GUARDED_BY(read_settings_mu_) =
1376
+ false;
1309
1377
  };
1310
1378
 
1311
1379
  grpc_core::RefCountedPtr<Impl> impl_;
@@ -55,6 +55,8 @@
55
55
 
56
56
  namespace grpc_core {
57
57
 
58
+ class Arena;
59
+
58
60
  // Define a traits object for vtable lookup - allows us to integrate with
59
61
  // existing code easily (just define the trait!) and allows some magic in
60
62
  // ChannelArgs to automatically derive a vtable from a T*.
@@ -88,8 +90,7 @@ struct IsRawPointerTagged {
88
90
  static constexpr bool kValue = false;
89
91
  };
90
92
  template <typename T>
91
- struct IsRawPointerTagged<T,
92
- absl::void_t<typename T::RawPointerChannelArgTag>> {
93
+ struct IsRawPointerTagged<T, std::void_t<typename T::RawPointerChannelArgTag>> {
93
94
  static constexpr bool kValue = true;
94
95
  };
95
96
 
@@ -114,8 +115,8 @@ template <typename T, typename = void>
114
115
  struct has_channel_args_compare : std::false_type {};
115
116
  template <typename T>
116
117
  struct has_channel_args_compare<
117
- T, absl::void_t<decltype(T::ChannelArgsCompare(std::declval<const T*>(),
118
- std::declval<const T*>()))>>
118
+ T, std::void_t<decltype(T::ChannelArgsCompare(std::declval<const T*>(),
119
+ std::declval<const T*>()))>>
119
120
  : std::true_type {};
120
121
  } // namespace channel_args_detail
121
122
 
@@ -193,7 +194,7 @@ struct ChannelArgTypeTraits<
193
194
  // ownership*.
194
195
  template <typename T>
195
196
  struct ChannelArgTypeTraits<T,
196
- absl::void_t<typename T::RawPointerChannelArgTag>> {
197
+ std::void_t<typename T::RawPointerChannelArgTag>> {
197
198
  static void* TakeUnownedPointer(T* p) { return p; }
198
199
  static const grpc_arg_pointer_vtable* VTable() {
199
200
  static const grpc_arg_pointer_vtable tbl = {
@@ -216,7 +217,7 @@ struct ChannelArgPointerShouldBeConst {
216
217
 
217
218
  template <typename T>
218
219
  struct ChannelArgPointerShouldBeConst<
219
- T, absl::void_t<decltype(T::ChannelArgUseConstPtr())>> {
220
+ T, std::void_t<decltype(T::ChannelArgUseConstPtr())>> {
220
221
  static constexpr bool kValue = T::ChannelArgUseConstPtr();
221
222
  };
222
223
 
@@ -299,6 +300,11 @@ template <typename T>
299
300
  struct ChannelArgNameTraits<std::shared_ptr<T>> {
300
301
  static absl::string_view ChannelArgName() { return T::ChannelArgName(); }
301
302
  };
303
+ template <>
304
+ struct ChannelArgTypeTraits<Arena> {
305
+ static const grpc_arg_pointer_vtable* VTable();
306
+ static void* TakeUnownedPointer(Arena* p) { return p; }
307
+ };
302
308
  // Specialization for the EventEngine
303
309
  template <>
304
310
  struct ChannelArgNameTraits<grpc_event_engine::experimental::EventEngine> {
@@ -115,7 +115,7 @@ grpc_error_handle grpc_channel_stack_init(
115
115
  int initial_refs, grpc_iomgr_cb_func destroy, void* destroy_arg,
116
116
  std::vector<grpc_core::FilterAndConfig> filters,
117
117
  const grpc_core::ChannelArgs& channel_args, const char* name,
118
- grpc_channel_stack* stack, const grpc_core::Blackboard* blackboard) {
118
+ grpc_channel_stack* stack) {
119
119
  if (GRPC_TRACE_FLAG_ENABLED(channel_stack)) {
120
120
  LOG(INFO) << "CHANNEL_STACK: init " << name;
121
121
  for (const auto& [filter, _] : filters) {
@@ -144,7 +144,6 @@ grpc_error_handle grpc_channel_stack_init(
144
144
  sizeof(grpc_channel_element));
145
145
 
146
146
  // init per-filter data
147
- args.blackboard = blackboard;
148
147
  grpc_error_handle first_error;
149
148
  for (i = 0; i < filters.size(); ++i) {
150
149
  args.channel_stack = stack;
@@ -68,17 +68,12 @@
68
68
  #include "src/core/util/time_precise.h"
69
69
  #include "src/core/util/unique_type_name.h"
70
70
 
71
- namespace grpc_core {
72
- class Blackboard;
73
- } // namespace grpc_core
74
-
75
71
  struct grpc_channel_element_args {
76
72
  grpc_channel_stack* channel_stack;
77
73
  grpc_core::ChannelArgs channel_args;
78
74
  int is_first;
79
75
  int is_last;
80
76
  grpc_core::RefCountedPtr<const grpc_core::FilterConfig> config;
81
- const grpc_core::Blackboard* blackboard;
82
77
  };
83
78
  struct grpc_call_element_args {
84
79
  grpc_call_stack* call_stack;
@@ -276,8 +271,7 @@ grpc_error_handle grpc_channel_stack_init(
276
271
  int initial_refs, grpc_iomgr_cb_func destroy, void* destroy_arg,
277
272
  std::vector<grpc_core::FilterAndConfig> filters,
278
273
  const grpc_core::ChannelArgs& args, const char* name,
279
- grpc_channel_stack* stack,
280
- const grpc_core::Blackboard* blackboard = nullptr);
274
+ grpc_channel_stack* stack);
281
275
  // Destroy a channel stack
282
276
  void grpc_channel_stack_destroy(grpc_channel_stack* stack);
283
277
 
@@ -70,7 +70,7 @@ ChannelStackBuilderImpl::Build() {
70
70
  grpc_channel_stack_destroy(stk);
71
71
  gpr_free(stk);
72
72
  },
73
- channel_stack, stack, channel_args(), name(), channel_stack, blackboard_);
73
+ channel_stack, stack, channel_args(), name(), channel_stack);
74
74
 
75
75
  if (!error.ok()) {
76
76
  grpc_channel_stack_destroy(channel_stack);
@@ -24,8 +24,6 @@
24
24
 
25
25
  namespace grpc_core {
26
26
 
27
- class Blackboard;
28
-
29
27
  // Build a channel stack.
30
28
  // Allows interested parties to add filters to the stack, and to query an
31
29
  // in-progress build.
@@ -35,17 +33,12 @@ class ChannelStackBuilderImpl final : public ChannelStackBuilder {
35
33
  public:
36
34
  using ChannelStackBuilder::ChannelStackBuilder;
37
35
 
38
- void SetBlackboard(const Blackboard* blackboard) { blackboard_ = blackboard; }
39
-
40
36
  // Build the channel stack.
41
37
  // After success, *result holds the new channel stack,
42
38
  // prefix_bytes are allocated before the channel stack,
43
39
  // initial_refs, destroy, destroy_arg are as per grpc_channel_stack_init
44
40
  // On failure, *result is nullptr.
45
41
  absl::StatusOr<RefCountedPtr<grpc_channel_stack>> Build() override;
46
-
47
- private:
48
- const Blackboard* blackboard_ = nullptr;
49
42
  };
50
43
 
51
44
  } // namespace grpc_core
@@ -26,6 +26,7 @@
26
26
  #include "src/core/call/metadata.h"
27
27
  #include "src/core/lib/channel/channel_stack.h"
28
28
  #include "src/core/lib/debug/trace.h"
29
+ #include "src/core/lib/experiments/experiments.h"
29
30
  #include "src/core/lib/iomgr/error.h"
30
31
  #include "src/core/lib/promise/seq.h"
31
32
  #include "src/core/lib/slice/slice.h"
@@ -495,6 +496,14 @@ void BaseCallData::SendMessage::Done(const ServerMetadata& metadata,
495
496
  case State::kPushedToPipe:
496
497
  push_.reset();
497
498
  next_.reset();
499
+ // Ensure captured transport batches are released if the call terminates
500
+ // while a message is in-flight. This prevents deadlocks where the
501
+ // transport never receives the batch, leaving the RPC hanging for
502
+ // metadata.
503
+ if (IsV2NonOwningWakerImplementationEnabled()) {
504
+ GRPC_DCHECK(batch_.is_captured());
505
+ batch_.CancelWith(StatusFromMetadata(metadata), flusher);
506
+ }
498
507
  state_ = State::kCancelledButNotYetPolled;
499
508
  if (base_->is_current()) base_->ForceImmediateRepoll();
500
509
  break;
@@ -1164,7 +1173,10 @@ class ClientCallData::PollContext {
1164
1173
  std::exchange(
1165
1174
  self_->recv_initial_metadata_->original_on_ready,
1166
1175
  nullptr),
1167
- absl::CancelledError(),
1176
+ IsV2NonOwningWakerImplementationEnabled() &&
1177
+ !StatusFromMetadata(*md).ok()
1178
+ ? StatusFromMetadata(*md)
1179
+ : absl::CancelledError(),
1168
1180
  "wake_inside_combiner:recv_initial_metadata_ready");
1169
1181
  }
1170
1182
  }
@@ -38,7 +38,6 @@
38
38
  #include "src/core/call/message.h"
39
39
  #include "src/core/call/metadata.h"
40
40
  #include "src/core/call/metadata_batch.h"
41
- #include "src/core/filter/blackboard.h"
42
41
  #include "src/core/filter/filter_args.h"
43
42
  #include "src/core/lib/channel/channel_args.h"
44
43
  #include "src/core/lib/channel/channel_fwd.h"
@@ -163,7 +162,7 @@ struct HasAsyncErrorInterceptor<Promise (T::*)(A...),
163
162
  static constexpr bool value = true;
164
163
  };
165
164
 
166
- // For the list case we do two interceptors to avoid amiguities with the single
165
+ // For the list case we do two interceptors to avoid ambiguities with the single
167
166
  // argument forms above.
168
167
  template <typename... Interceptors>
169
168
  inline constexpr bool HasAnyAsyncErrorInterceptor(Interceptors...) {
@@ -1175,7 +1174,7 @@ MakeFilterCall(Derived* derived) {
1175
1174
  // useful for cases where the exact metadata returned needs to be customized.
1176
1175
  // It's also acceptable to return a promise that resolves to the
1177
1176
  // relevant return type listed above.
1178
- // Finally, OnFinalize can be added to intecept call finalization.
1177
+ // Finally, OnFinalize can be added to intercept call finalization.
1179
1178
  // It must have one of the signatures:
1180
1179
  // - static inline const NoInterceptor OnFinalize:
1181
1180
  // the filter does not intercept call finalization.
@@ -1423,7 +1422,7 @@ class V3InterceptorToV2Bridge : public ChannelFilter, public Interceptor {
1423
1422
  });
1424
1423
  });
1425
1424
  // In the v3 handler's activity, pull client initial metadata.
1426
- // Use an inter-acitivity latch to get it back to the v2
1425
+ // Use an inter-activity latch to get it back to the v2
1427
1426
  // activity.
1428
1427
  handler.SpawnGuarded(
1429
1428
  "pull_client_initial_metadata",
@@ -2268,7 +2267,7 @@ struct ChannelFilterWithFlagsMethods {
2268
2267
  F::Create(args->channel_args,
2269
2268
  ChannelFilter::Args(args->channel_stack, elem,
2270
2269
  grpc_channel_stack_filter_instance_number,
2271
- args->config, args->blackboard));
2270
+ args->config));
2272
2271
  if (!status.ok()) {
2273
2272
  new (elem->channel_data) F*(nullptr);
2274
2273
  return absl_status_to_grpc_error(status.status());
@@ -42,19 +42,6 @@ class ChaoticGoodExtension {
42
42
  /// one provided to it through the channel args. It is safe to call this
43
43
  /// only when there are no outstanding Reads on the Endpoint.
44
44
  virtual void UseMemoryQuota(grpc_core::MemoryQuotaRefPtr mem_quota) = 0;
45
-
46
- /// Forces the endpoint to receive rpcs in one contiguous block of memory.
47
- /// It is safe to call this only when there are no outstanding Reads on
48
- /// the Endpoint.
49
- virtual void EnableRpcReceiveCoalescing() = 0;
50
-
51
- /// Disables rpc receive coalescing until it is explicitly enabled again.
52
- /// It is safe to call this only when there are no outstanding Reads on
53
- /// the Endpoint.
54
- virtual void DisableRpcReceiveCoalescing() = 0;
55
- /// If invoked, the endpoint tries to preserve proper order and alignment of
56
- /// any memory that maybe shared across reads.
57
- virtual void EnforceRxMemoryAlignment() = 0;
58
45
  };
59
46
 
60
47
  } // namespace grpc_event_engine::experimental
@@ -0,0 +1,48 @@
1
+ // Copyright 2026 The gRPC Authors
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #ifndef GRPC_SRC_CORE_LIB_EVENT_ENGINE_EXTENSIONS_RECEIVE_COALESCING_EXTENSION_H
16
+ #define GRPC_SRC_CORE_LIB_EVENT_ENGINE_EXTENSIONS_RECEIVE_COALESCING_EXTENSION_H
17
+
18
+ #include "absl/strings/string_view.h"
19
+
20
+ namespace grpc_event_engine::experimental {
21
+
22
+ /// An Endpoint extension class that will be supported by EventEngine endpoints
23
+ /// which need to work with receive coalescing.
24
+ class ReceiveCoalescingExtension {
25
+ public:
26
+ virtual ~ReceiveCoalescingExtension() = default;
27
+ static absl::string_view EndpointExtensionName() {
28
+ return "io.grpc.event_engine.extension.receive_coalescing_extension";
29
+ }
30
+
31
+ /// Forces the endpoint to receive rpcs in one contiguous block of memory.
32
+ /// It is safe to call this only when there are no outstanding Reads on
33
+ /// the Endpoint.
34
+ virtual void EnableRpcReceiveCoalescing() = 0;
35
+
36
+ /// Disables rpc receive coalescing until it is explicitly enabled again.
37
+ /// It is safe to call this only when there are no outstanding Reads on
38
+ /// the Endpoint.
39
+ virtual void DisableRpcReceiveCoalescing() = 0;
40
+
41
+ /// If invoked, the endpoint tries to preserve proper order and alignment of
42
+ /// any memory that maybe shared across reads.
43
+ virtual void EnforceRxMemoryAlignment() = 0;
44
+ };
45
+
46
+ } // namespace grpc_event_engine::experimental
47
+
48
+ #endif // GRPC_SRC_CORE_LIB_EVENT_ENGINE_EXTENSIONS_RECEIVE_COALESCING_EXTENSION_H
@@ -22,6 +22,7 @@
22
22
 
23
23
  #include "src/core/lib/event_engine/extensions/can_track_errors.h"
24
24
  #include "src/core/lib/event_engine/extensions/chaotic_good_extension.h"
25
+ #include "src/core/lib/event_engine/extensions/receive_coalescing_extension.h"
25
26
  #include "src/core/lib/event_engine/extensions/supports_fd.h"
26
27
  #include "src/core/lib/event_engine/query_extensions.h"
27
28
 
@@ -31,6 +32,7 @@ namespace grpc_event_engine::experimental {
31
32
  /// may implement to support additional chaotic good related functionality.
32
33
  class PosixEndpointWithChaoticGoodSupport
33
34
  : public ExtendedType<EventEngine::Endpoint, ChaoticGoodExtension,
35
+ ReceiveCoalescingExtension,
34
36
  EndpointSupportsFdExtension,
35
37
  EndpointCanTrackErrorsExtension> {};
36
38
 
@@ -95,7 +95,8 @@ NativePosixDNSResolver::NativePosixDNSResolver(
95
95
  void NativePosixDNSResolver::LookupHostname(
96
96
  EventEngine::DNSResolver::LookupHostnameCallback on_resolved,
97
97
  absl::string_view name, absl::string_view default_port) {
98
- event_engine_->Run([name = std::string(name), default_port,
98
+ event_engine_->Run([name = std::string(name),
99
+ default_port = std::string(default_port),
99
100
  on_resolved = std::move(on_resolved)]() mutable {
100
101
  on_resolved(LookupHostnameBlocking(name, default_port));
101
102
  });
@@ -29,6 +29,7 @@
29
29
  #include <memory>
30
30
  #include <optional>
31
31
  #include <string>
32
+ #include <utility>
32
33
 
33
34
  #include "src/core/lib/debug/trace.h"
34
35
  #include "src/core/lib/event_engine/posix_engine/event_poller.h"
@@ -44,7 +45,6 @@
44
45
  #include "src/core/util/load_file.h"
45
46
  #include "src/core/util/ref_counted_ptr.h"
46
47
  #include "src/core/util/status_helper.h"
47
- #include "src/core/util/strerror.h"
48
48
  #include "src/core/util/sync.h"
49
49
  #include "absl/functional/any_invocable.h"
50
50
  #include "absl/log/log.h"
@@ -136,10 +136,11 @@ uint64_t ParseUlimitMemLockFromFile(std::string file_name) {
136
136
  return 0;
137
137
  }
138
138
  // Find position of next newline after prefix.
139
- size_t end = file_contents.find(start, '\n');
139
+ size_t end = file_contents.find('\n', start);
140
140
  // Extract substring between prefix and next newline.
141
+ size_t value_start = start + kHardMemlockPrefix.length() + 1;
141
142
  auto memlock_value_string = file_contents.substr(
142
- start + kHardMemlockPrefix.length() + 1, end - start);
143
+ value_start, end == std::string::npos ? end : end - value_start);
143
144
  rtrim(memlock_value_string);
144
145
  if (memlock_value_string == "unlimited" ||
145
146
  memlock_value_string == "infinity") {
@@ -370,8 +371,8 @@ bool PosixEndpointImpl::TcpDoRead(absl::Status& status) {
370
371
  } else if (read_bytes == 0) {
371
372
  status = TcpAnnotateError(absl::InternalError("Socket closed"));
372
373
  } else {
373
- status = TcpAnnotateError(absl::InternalError(
374
- absl::StrCat("recvmsg:", grpc_core::StrError(errno))));
374
+ status = TcpAnnotateError(
375
+ absl::InternalError(absl::StrCat("recvmsg:", res.StrError())));
375
376
  }
376
377
  return true;
377
378
  }
@@ -892,7 +893,7 @@ bool PosixEndpointImpl::WriteWithTimestamps(struct msghdr* msg,
892
893
  traced_buffers_.AddNewEntry(
893
894
  static_cast<uint32_t>(bytes_counter_ + sending_length),
894
895
  &poller_->posix_interface(), handle_->WrappedFd(),
895
- std::move(outgoing_buffer_write_event_sink_).value());
896
+ std::move(*outgoing_buffer_write_event_sink_));
896
897
  outgoing_buffer_write_event_sink_.reset();
897
898
 
898
899
  // If there was an error on sendmsg the logic in tcp_flush will handle it.
@@ -940,6 +941,7 @@ void PosixEndpointImpl::UnrefMaybePutZerocopySendRecord(
940
941
  void PosixEndpointImpl::TcpShutdownTracedBufferList() {
941
942
  if (outgoing_buffer_write_event_sink_.has_value()) {
942
943
  traced_buffers_.Shutdown(std::move(outgoing_buffer_write_event_sink_));
944
+ outgoing_buffer_write_event_sink_.reset();
943
945
  }
944
946
  }
945
947
 
@@ -1134,6 +1136,7 @@ bool PosixEndpointImpl::TcpFlush(absl::Status& status) {
1134
1136
  }
1135
1137
 
1136
1138
  GRPC_CHECK_EQ(outgoing_byte_idx_, 0u);
1139
+ GRPC_CHECK_LE((static_cast<size_t>(*send_result)), sending_length);
1137
1140
  bytes_counter_ += *send_result;
1138
1141
  trailing = sending_length - static_cast<size_t>(*send_result);
1139
1142
  while (trailing > 0) {
@@ -1270,7 +1273,7 @@ void PosixEndpointImpl::MaybeShutdown(
1270
1273
  Unref();
1271
1274
  }
1272
1275
 
1273
- PosixEndpointImpl ::~PosixEndpointImpl() {
1276
+ PosixEndpointImpl::~PosixEndpointImpl() {
1274
1277
  FileDescriptor release_fd;
1275
1278
  handle_->OrphanHandle(on_done_,
1276
1279
  on_release_fd_ == nullptr ? nullptr : &release_fd, "");
@@ -1327,7 +1330,7 @@ PosixEndpointImpl::PosixEndpointImpl(EventHandle* handle,
1327
1330
  << "ulimit value is not set. Use ulimit -l <value> to set its "
1328
1331
  << "value.";
1329
1332
  } else {
1330
- if (posix_interface.SetSockOpt(fd, SOL_SOCKET, SO_ZEROCOPY, 1).ok()) {
1333
+ if (!posix_interface.SetSockOpt(fd, SOL_SOCKET, SO_ZEROCOPY, 1).ok()) {
1331
1334
  zerocopy_enabled = false;
1332
1335
  LOG(ERROR) << "Failed to set zerocopy options on the socket.";
1333
1336
  }