grpc 1.81.0 → 1.82.0.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (863) 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 +261 -90
  664. data/src/core/lib/experiments/experiments.h +136 -35
  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_client_grpc.cc +14 -1
  709. data/src/core/xds/grpc/xds_client_grpc.h +1 -0
  710. data/src/core/xds/grpc/xds_common_types.cc +40 -0
  711. data/src/core/xds/grpc/xds_common_types.h +13 -0
  712. data/src/core/xds/grpc/xds_common_types_parser.cc +37 -34
  713. data/src/core/xds/grpc/xds_endpoint_parser.cc +1 -1
  714. data/src/core/xds/grpc/xds_http_composite_filter.cc +34 -18
  715. data/src/core/xds/grpc/xds_http_composite_filter.h +6 -3
  716. data/src/core/xds/grpc/xds_http_fault_filter.cc +0 -149
  717. data/src/core/xds/grpc/xds_http_fault_filter.h +19 -8
  718. data/src/core/xds/grpc/xds_http_filter.cc +2 -1
  719. data/src/core/xds/grpc/xds_http_filter.h +6 -16
  720. data/src/core/xds/grpc/xds_http_filter_registry.cc +0 -2
  721. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +25 -119
  722. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +27 -15
  723. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +0 -149
  724. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +19 -8
  725. data/src/core/xds/grpc/xds_lb_policy_registry.cc +18 -0
  726. data/src/core/xds/grpc/xds_listener_parser.cc +13 -9
  727. data/src/core/xds/grpc/xds_route_config.h +1 -1
  728. data/src/core/xds/grpc/xds_route_config_parser.cc +3 -5
  729. data/src/core/xds/grpc/xds_routing.cc +5 -11
  730. data/src/core/xds/grpc/xds_routing.h +2 -3
  731. data/src/core/xds/xds_client/lrs_client.cc +2 -2
  732. data/src/ruby/ext/grpc/rb_byte_buffer.c +1 -0
  733. data/src/ruby/ext/grpc/rb_call.c +3 -0
  734. data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
  735. data/src/ruby/ext/grpc/rb_channel.c +1 -0
  736. data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
  737. data/src/ruby/ext/grpc/rb_channel_credentials.c +1 -0
  738. data/src/ruby/ext/grpc/rb_completion_queue.c +1 -0
  739. data/src/ruby/ext/grpc/rb_compression_options.c +1 -0
  740. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -4
  741. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -6
  742. data/src/ruby/ext/grpc/rb_server.c +1 -0
  743. data/src/ruby/ext/grpc/rb_server_credentials.c +1 -0
  744. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +1 -0
  745. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +1 -0
  746. data/src/ruby/lib/grpc/core/call_credentials.rb +86 -0
  747. data/src/ruby/lib/grpc/core/channel_credentials.rb +69 -0
  748. data/src/ruby/lib/grpc/core/credentials_helper.rb +126 -0
  749. data/src/ruby/lib/grpc/generic/client_stub.rb +86 -73
  750. data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
  751. data/src/ruby/lib/grpc/version.rb +1 -1
  752. data/src/ruby/lib/grpc.rb +25 -0
  753. data/src/ruby/spec/call_credentials_spec.rb +52 -2
  754. data/src/ruby/spec/credentials_helper_spec.rb +80 -0
  755. data/src/ruby/spec/generic/client_stub_spec.rb +27 -4
  756. data/src/ruby/spec/generic/server_interceptors_spec.rb +17 -3
  757. data/third_party/upb/upb/base/error_handler.h +79 -0
  758. data/third_party/upb/upb/base/internal/log2.h +29 -5
  759. data/third_party/upb/upb/generated_code_support.h +1 -0
  760. data/third_party/upb/upb/hash/common.c +129 -14
  761. data/third_party/upb/upb/hash/common.h +1 -1
  762. data/third_party/upb/upb/hash/ext_table.h +65 -0
  763. data/third_party/upb/upb/lex/strtod.c +14 -5
  764. data/third_party/upb/upb/mem/arena.c +113 -95
  765. data/third_party/upb/upb/mem/internal/arena.h +13 -8
  766. data/third_party/upb/upb/message/accessors.c +2 -3
  767. data/third_party/upb/upb/message/accessors.h +32 -12
  768. data/third_party/upb/upb/message/array.c +51 -2
  769. data/third_party/upb/upb/message/array.h +10 -0
  770. data/third_party/upb/upb/message/copy.c +18 -34
  771. data/third_party/upb/upb/message/internal/accessors.h +15 -49
  772. data/third_party/upb/upb/message/internal/array.h +1 -1
  773. data/third_party/upb/upb/message/internal/map.h +1 -1
  774. data/third_party/upb/upb/message/internal/message.c +8 -1
  775. data/third_party/upb/upb/message/internal/message.h +40 -10
  776. data/third_party/upb/upb/message/message.c +3 -2
  777. data/third_party/upb/upb/message/value.h +0 -6
  778. data/third_party/upb/upb/mini_descriptor/decode.c +78 -59
  779. data/third_party/upb/upb/mini_descriptor/link.c +8 -6
  780. data/third_party/upb/upb/mini_table/extension_registry.c +17 -49
  781. data/third_party/upb/upb/mini_table/extension_registry.h +5 -17
  782. data/third_party/upb/upb/mini_table/generated_registry.c +180 -0
  783. data/third_party/upb/upb/mini_table/generated_registry.h +66 -0
  784. data/third_party/upb/upb/mini_table/internal/extension.h +5 -3
  785. data/third_party/upb/upb/mini_table/internal/field.h +7 -5
  786. data/third_party/upb/upb/mini_table/internal/generated_registry.h +37 -0
  787. data/third_party/upb/upb/mini_table/internal/message.c +0 -18
  788. data/third_party/upb/upb/mini_table/internal/message.h +24 -41
  789. data/third_party/upb/upb/mini_table/internal/size_log2.h +2 -1
  790. data/third_party/upb/upb/mini_table/internal/sub.h +2 -5
  791. data/third_party/upb/upb/mini_table/message.h +34 -13
  792. data/third_party/upb/upb/port/atomic.h +180 -74
  793. data/third_party/upb/upb/port/def.inc +194 -29
  794. data/third_party/upb/upb/port/sanitizers.h +15 -0
  795. data/third_party/upb/upb/port/undef.inc +6 -2
  796. data/third_party/upb/upb/reflection/common.h +0 -6
  797. data/third_party/upb/upb/reflection/def.hpp +8 -12
  798. data/third_party/upb/upb/reflection/def_pool.c +85 -33
  799. data/third_party/upb/upb/reflection/def_pool.h +38 -8
  800. data/third_party/upb/upb/reflection/def_type.h +3 -0
  801. data/third_party/upb/upb/reflection/enum_def.c +45 -33
  802. data/third_party/upb/upb/reflection/enum_def.h +8 -4
  803. data/third_party/upb/upb/reflection/enum_reserved_range.c +7 -3
  804. data/third_party/upb/upb/reflection/enum_value_def.c +14 -29
  805. data/third_party/upb/upb/reflection/enum_value_def.h +5 -4
  806. data/third_party/upb/upb/reflection/extension_range.c +15 -14
  807. data/third_party/upb/upb/reflection/extension_range.h +7 -4
  808. data/third_party/upb/upb/reflection/field_def.c +114 -96
  809. data/third_party/upb/upb/reflection/field_def.h +3 -3
  810. data/third_party/upb/upb/reflection/file_def.c +71 -65
  811. data/third_party/upb/upb/reflection/file_def.h +4 -5
  812. data/third_party/upb/upb/reflection/internal/def_builder.c +22 -14
  813. data/third_party/upb/upb/reflection/internal/def_builder.h +44 -38
  814. data/third_party/upb/upb/reflection/internal/def_pool.h +5 -1
  815. data/third_party/upb/upb/reflection/internal/enum_def.h +6 -4
  816. data/third_party/upb/upb/reflection/internal/enum_reserved_range.h +3 -2
  817. data/third_party/upb/upb/reflection/internal/enum_value_def.h +7 -4
  818. data/third_party/upb/upb/reflection/internal/extension_range.h +4 -3
  819. data/third_party/upb/upb/reflection/internal/field_def.h +15 -12
  820. data/third_party/upb/upb/reflection/internal/file_def.h +8 -1
  821. data/third_party/upb/upb/reflection/internal/message_def.h +10 -7
  822. data/third_party/upb/upb/reflection/internal/message_reserved_range.h +3 -1
  823. data/third_party/upb/upb/reflection/internal/method_def.h +6 -6
  824. data/third_party/upb/upb/reflection/internal/oneof_def.h +6 -6
  825. data/third_party/upb/upb/reflection/internal/service_def.h +9 -6
  826. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  827. data/third_party/upb/upb/reflection/message_def.c +46 -53
  828. data/third_party/upb/upb/reflection/message_def.h +6 -7
  829. data/third_party/upb/upb/reflection/message_reserved_range.c +7 -6
  830. data/third_party/upb/upb/reflection/method_def.c +22 -20
  831. data/third_party/upb/upb/reflection/method_def.h +4 -4
  832. data/third_party/upb/upb/reflection/oneof_def.c +17 -15
  833. data/third_party/upb/upb/reflection/oneof_def.h +6 -3
  834. data/third_party/upb/upb/reflection/service_def.c +50 -23
  835. data/third_party/upb/upb/reflection/service_def.h +7 -4
  836. data/third_party/upb/upb/text/internal/encode.c +7 -10
  837. data/third_party/upb/upb/wire/decode.c +269 -430
  838. data/third_party/upb/upb/wire/decode.h +6 -45
  839. data/third_party/upb/upb/wire/decode_fast/combinations.h +7 -3
  840. data/third_party/upb/upb/wire/decode_fast/select.c +7 -2
  841. data/third_party/upb/upb/wire/encode.c +144 -106
  842. data/third_party/upb/upb/wire/encode.h +6 -2
  843. data/third_party/upb/upb/wire/eps_copy_input_stream.c +36 -7
  844. data/third_party/upb/upb/wire/eps_copy_input_stream.h +94 -380
  845. data/third_party/upb/upb/wire/internal/decoder.c +1 -14
  846. data/third_party/upb/upb/wire/internal/decoder.h +84 -24
  847. data/third_party/upb/upb/wire/internal/eps_copy_input_stream.h +339 -0
  848. data/third_party/upb/upb/wire/internal/reader.h +29 -12
  849. data/third_party/upb/upb/wire/reader.c +35 -22
  850. data/third_party/upb/upb/wire/reader.h +11 -18
  851. data/third_party/utf8_range/utf8_range.c +1 -1
  852. data/third_party/utf8_range/utf8_range.h +2 -1
  853. metadata +27 -13
  854. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +0 -117
  855. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +0 -109
  856. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +0 -80
  857. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +0 -86
  858. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +0 -83
  859. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +0 -91
  860. data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +0 -217
  861. data/src/core/filter/blackboard.cc +0 -33
  862. data/third_party/upb/upb/message/internal/tagged_ptr.h +0 -56
  863. data/third_party/upb/upb/message/tagged_ptr.h +0 -48
@@ -137,10 +137,8 @@ void DynamicFilters::Call::IncrementRefCount(const DebugLocation& /*location*/,
137
137
  namespace {
138
138
 
139
139
  absl::StatusOr<RefCountedPtr<grpc_channel_stack>> CreateChannelStack(
140
- const ChannelArgs& args, std::vector<FilterAndConfig> filters,
141
- const Blackboard* blackboard) {
140
+ const ChannelArgs& args, std::vector<FilterAndConfig> filters) {
142
141
  ChannelStackBuilderImpl builder("DynamicFilters", GRPC_CLIENT_DYNAMIC, args);
143
- builder.SetBlackboard(blackboard);
144
142
  for (auto& [filter, config] : filters) {
145
143
  builder.AppendFilter(filter, std::move(config));
146
144
  }
@@ -150,16 +148,15 @@ absl::StatusOr<RefCountedPtr<grpc_channel_stack>> CreateChannelStack(
150
148
  } // namespace
151
149
 
152
150
  RefCountedPtr<DynamicFilters> DynamicFilters::Create(
153
- const ChannelArgs& args, std::vector<FilterAndConfig> filters,
154
- const Blackboard* blackboard) {
151
+ const ChannelArgs& args, std::vector<FilterAndConfig> filters) {
155
152
  // Attempt to create channel stack from requested filters.
156
- auto p = CreateChannelStack(args, std::move(filters), blackboard);
153
+ auto p = CreateChannelStack(args, std::move(filters));
157
154
  if (!p.ok()) {
158
155
  // Channel stack creation failed with requested filters.
159
156
  // Create with lame filter instead.
160
157
  auto error = p.status();
161
158
  p = CreateChannelStack(args.Set(MakeLameClientErrorArg(&error)),
162
- {{&LameClientFilter::kFilter, nullptr}}, nullptr);
159
+ {{&LameClientFilter::kFilter, nullptr}});
163
160
  }
164
161
  return MakeRefCounted<DynamicFilters>(std::move(p.value()));
165
162
  }
@@ -23,7 +23,6 @@
23
23
  #include <utility>
24
24
  #include <vector>
25
25
 
26
- #include "src/core/filter/blackboard.h"
27
26
  #include "src/core/filter/filter_chain.h"
28
27
  #include "src/core/lib/channel/channel_args.h"
29
28
  #include "src/core/lib/channel/channel_fwd.h"
@@ -90,8 +89,7 @@ class DynamicFilters final : public FilterChain {
90
89
  };
91
90
 
92
91
  static RefCountedPtr<DynamicFilters> Create(
93
- const ChannelArgs& args, std::vector<FilterAndConfig> filters,
94
- const Blackboard* blackboard);
92
+ const ChannelArgs& args, std::vector<FilterAndConfig> filters);
95
93
 
96
94
  explicit DynamicFilters(RefCountedPtr<grpc_channel_stack> channel_stack)
97
95
  : channel_stack_(std::move(channel_stack)) {}
@@ -81,9 +81,6 @@
81
81
  // TODO(roth): In subsequent PRs:
82
82
  // - implement hedging
83
83
 
84
- using grpc_core::internal::RetryGlobalConfig;
85
- using grpc_core::internal::RetryMethodConfig;
86
- using grpc_core::internal::RetryServiceConfigParser;
87
84
  using grpc_event_engine::experimental::EventEngine;
88
85
 
89
86
  namespace grpc_core {
@@ -92,33 +89,13 @@ namespace grpc_core {
92
89
  // RetryFilter
93
90
  //
94
91
 
95
- void RetryFilter::UpdateBlackboard(const ServiceConfig& service_config,
96
- const Blackboard* old_blackboard,
97
- Blackboard* new_blackboard) {
98
- // Get retry throttling parameters from service config.
99
- const auto* config = static_cast<const RetryGlobalConfig*>(
100
- service_config.GetGlobalParsedConfig(
101
- RetryServiceConfigParser::ParserIndex()));
102
- if (config == nullptr) return;
103
- // Get throttler.
104
- RefCountedPtr<internal::RetryThrottler> throttler;
105
- if (old_blackboard != nullptr) {
106
- throttler = old_blackboard->Get<internal::RetryThrottler>("");
107
- }
108
- throttler = internal::RetryThrottler::Create(config->max_milli_tokens(),
109
- config->milli_token_ratio(),
110
- std::move(throttler));
111
- new_blackboard->Set("", std::move(throttler));
112
- }
113
-
114
92
  RetryFilter::RetryFilter(const grpc_channel_element_args& args)
115
93
  : client_channel_(args.channel_args.GetObject<ClientChannelFilter>()),
116
94
  event_engine_(args.channel_args.GetObject<EventEngine>()),
117
95
  per_rpc_retry_buffer_size_(
118
96
  GetMaxPerRpcRetryBufferSize(args.channel_args)),
119
- retry_throttler_(args.blackboard->Get<internal::RetryThrottler>("")),
120
- service_config_parser_index_(
121
- internal::RetryServiceConfigParser::ParserIndex()) {}
97
+ retry_throttler_(args.channel_args.GetObjectRef<RetryThrottler>()),
98
+ service_config_parser_index_(RetryServiceConfigParser::ParserIndex()) {}
122
99
 
123
100
  const RetryMethodConfig* RetryFilter::GetRetryPolicy(Arena* arena) {
124
101
  auto* svc_cfg_call_data = arena->GetContext<ServiceConfigCallData>();
@@ -45,10 +45,6 @@ class RetryFilter final {
45
45
  public:
46
46
  static const grpc_channel_filter kFilterVtable;
47
47
 
48
- static void UpdateBlackboard(const ServiceConfig& service_config,
49
- const Blackboard* old_blackboard,
50
- Blackboard* blackboard);
51
-
52
48
  private:
53
49
  // Old filter-stack style call implementation, in
54
50
  // retry_filter_legacy_call_data.{h,cc}
@@ -62,9 +58,9 @@ class RetryFilter final {
62
58
  // any even moderately compelling reason to do so.
63
59
  static double BackoffJitter() { return 0.2; }
64
60
 
65
- const internal::RetryMethodConfig* GetRetryPolicy(Arena* arena);
61
+ const RetryMethodConfig* GetRetryPolicy(Arena* arena);
66
62
 
67
- RefCountedPtr<internal::RetryThrottler> retry_throttler() const {
63
+ RefCountedPtr<RetryThrottler> retry_throttler() const {
68
64
  return retry_throttler_;
69
65
  }
70
66
 
@@ -108,7 +104,7 @@ class RetryFilter final {
108
104
  ClientChannelFilter* client_channel_;
109
105
  grpc_event_engine::experimental::EventEngine* const event_engine_;
110
106
  size_t per_rpc_retry_buffer_size_;
111
- RefCountedPtr<internal::RetryThrottler> retry_throttler_;
107
+ RefCountedPtr<RetryThrottler> retry_throttler_;
112
108
  const size_t service_config_parser_index_;
113
109
  };
114
110
 
@@ -966,7 +966,7 @@ void GetCallStatus(
966
966
  *is_lb_drop = true;
967
967
  }
968
968
  } else {
969
- *status = *md_batch->get(GrpcStatusMetadata());
969
+ *status = md_batch->get(GrpcStatusMetadata()).value_or(GRPC_STATUS_UNKNOWN);
970
970
  }
971
971
  *server_pushback = md_batch->get(GrpcRetryPushbackMsMetadata());
972
972
  *stream_network_state = md_batch->get(GrpcStreamNetworkState());
@@ -369,8 +369,8 @@ class RetryFilter::LegacyCallData final {
369
369
 
370
370
  RetryFilter* chand_;
371
371
  grpc_polling_entity* pollent_;
372
- RefCountedPtr<internal::RetryThrottler> retry_throttler_;
373
- const internal::RetryMethodConfig* retry_policy_ = nullptr;
372
+ RefCountedPtr<RetryThrottler> retry_throttler_;
373
+ const RetryMethodConfig* retry_policy_ = nullptr;
374
374
  BackOff retry_backoff_;
375
375
 
376
376
  Timestamp deadline_;
@@ -35,8 +35,8 @@ size_t GetMaxPerRpcRetryBufferSize(const ChannelArgs& args) {
35
35
 
36
36
  namespace retry_detail {
37
37
 
38
- RetryState::RetryState(const internal::RetryMethodConfig* retry_policy,
39
- RefCountedPtr<internal::RetryThrottler> retry_throttler)
38
+ RetryState::RetryState(const RetryMethodConfig* retry_policy,
39
+ RefCountedPtr<RetryThrottler> retry_throttler)
40
40
  : retry_policy_(retry_policy),
41
41
  retry_throttler_(std::move(retry_throttler)),
42
42
  retry_backoff_(
@@ -134,38 +134,10 @@ std::optional<Duration> RetryState::ShouldRetry(
134
134
  ////////////////////////////////////////////////////////////////////////////////
135
135
  // RetryInterceptor
136
136
 
137
- absl::StatusOr<RefCountedPtr<RetryInterceptor>> RetryInterceptor::Create(
138
- const ChannelArgs& args, const FilterArgs& filter_args) {
139
- auto retry_throttler = filter_args.GetState<internal::RetryThrottler>("");
140
- return MakeRefCounted<RetryInterceptor>(args, std::move(retry_throttler));
141
- }
142
-
143
- void RetryInterceptor::UpdateBlackboard(const ServiceConfig& service_config,
144
- const Blackboard* old_blackboard,
145
- Blackboard* new_blackboard) {
146
- const auto* config = static_cast<const internal::RetryGlobalConfig*>(
147
- service_config.GetGlobalParsedConfig(
148
- internal::RetryServiceConfigParser::ParserIndex()));
149
- if (config == nullptr) return;
150
- // Get existing throttle state.
151
- RefCountedPtr<internal::RetryThrottler> throttler;
152
- if (old_blackboard != nullptr) {
153
- throttler = old_blackboard->Get<internal::RetryThrottler>("");
154
- }
155
- throttler = internal::RetryThrottler::Create(config->max_milli_tokens(),
156
- config->milli_token_ratio(),
157
- std::move(throttler));
158
- CHECK_NE(new_blackboard, nullptr);
159
- new_blackboard->Set("", std::move(throttler));
160
- }
161
-
162
- RetryInterceptor::RetryInterceptor(
163
- const ChannelArgs& args,
164
- RefCountedPtr<internal::RetryThrottler> retry_throttler)
137
+ RetryInterceptor::RetryInterceptor(const ChannelArgs& args)
165
138
  : per_rpc_retry_buffer_size_(GetMaxPerRpcRetryBufferSize(args)),
166
- service_config_parser_index_(
167
- internal::RetryServiceConfigParser::ParserIndex()),
168
- retry_throttler_(std::move(retry_throttler)) {}
139
+ service_config_parser_index_(RetryServiceConfigParser::ParserIndex()),
140
+ retry_throttler_(args.GetObjectRef<RetryThrottler>()) {}
169
141
 
170
142
  void RetryInterceptor::InterceptCall(
171
143
  UnstartedCallHandler unstarted_call_handler) {
@@ -177,10 +149,10 @@ void RetryInterceptor::InterceptCall(
177
149
  call->Start();
178
150
  }
179
151
 
180
- const internal::RetryMethodConfig* RetryInterceptor::GetRetryPolicy() {
152
+ const RetryMethodConfig* RetryInterceptor::GetRetryPolicy() {
181
153
  auto* svc_cfg_call_data = MaybeGetContext<ServiceConfigCallData>();
182
154
  if (svc_cfg_call_data == nullptr) return nullptr;
183
- return static_cast<const internal::RetryMethodConfig*>(
155
+ return static_cast<const RetryMethodConfig*>(
184
156
  svc_cfg_call_data->GetMethodParsedConfig(service_config_parser_index_));
185
157
  }
186
158
 
@@ -29,8 +29,8 @@ namespace retry_detail {
29
29
 
30
30
  class RetryState {
31
31
  public:
32
- RetryState(const internal::RetryMethodConfig* retry_policy,
33
- RefCountedPtr<internal::RetryThrottler> retry_throttler);
32
+ RetryState(const RetryMethodConfig* retry_policy,
33
+ RefCountedPtr<RetryThrottler> retry_throttler);
34
34
 
35
35
  // if nullopt --> commit & don't retry
36
36
  // if duration --> retry after duration
@@ -50,8 +50,8 @@ class RetryState {
50
50
  }
51
51
 
52
52
  private:
53
- const internal::RetryMethodConfig* const retry_policy_;
54
- RefCountedPtr<internal::RetryThrottler> retry_throttler_;
53
+ const RetryMethodConfig* const retry_policy_;
54
+ RefCountedPtr<RetryThrottler> retry_throttler_;
55
55
  int num_attempts_completed_ = 0;
56
56
  BackOff retry_backoff_;
57
57
  };
@@ -60,17 +60,14 @@ class RetryState {
60
60
 
61
61
  class RetryInterceptor : public Interceptor {
62
62
  public:
63
- RetryInterceptor(const ChannelArgs& args,
64
- RefCountedPtr<internal::RetryThrottler> retry_throttler);
65
-
66
63
  static absl::StatusOr<RefCountedPtr<RetryInterceptor>> Create(
67
- const ChannelArgs& args, const FilterArgs& filter_args);
64
+ const ChannelArgs& args, const FilterArgs& /*filter_args*/) {
65
+ return MakeRefCounted<RetryInterceptor>(args);
66
+ }
68
67
 
69
- void Orphaned() override {}
68
+ explicit RetryInterceptor(const ChannelArgs& args);
70
69
 
71
- static void UpdateBlackboard(const ServiceConfig& service_config,
72
- const Blackboard* old_blackboard,
73
- Blackboard* new_blackboard);
70
+ void Orphaned() override {}
74
71
 
75
72
  protected:
76
73
  void InterceptCall(UnstartedCallHandler unstarted_call_handler) override;
@@ -146,11 +143,11 @@ class RetryInterceptor : public Interceptor {
146
143
  bool committed_ = false;
147
144
  };
148
145
 
149
- const internal::RetryMethodConfig* GetRetryPolicy();
146
+ const RetryMethodConfig* GetRetryPolicy();
150
147
 
151
148
  const size_t per_rpc_retry_buffer_size_;
152
149
  const size_t service_config_parser_index_;
153
- const RefCountedPtr<internal::RetryThrottler> retry_throttler_;
150
+ const RefCountedPtr<RetryThrottler> retry_throttler_;
154
151
  };
155
152
 
156
153
  } // namespace grpc_core
@@ -39,7 +39,6 @@
39
39
  #define MAX_MAX_RETRY_ATTEMPTS 5
40
40
 
41
41
  namespace grpc_core {
42
- namespace internal {
43
42
 
44
43
  //
45
44
  // RetryGlobalConfig
@@ -276,5 +275,4 @@ RetryServiceConfigParser::ParsePerMethodParams(const ChannelArgs& args,
276
275
  return std::move(method_params.retry_policy);
277
276
  }
278
277
 
279
- } // namespace internal
280
278
  } // namespace grpc_core
@@ -36,7 +36,6 @@
36
36
  #include "absl/strings/string_view.h"
37
37
 
38
38
  namespace grpc_core {
39
- namespace internal {
40
39
 
41
40
  class RetryGlobalConfig final : public ServiceConfigParser::ParsedConfig {
42
41
  public:
@@ -110,7 +109,6 @@ class RetryServiceConfigParser final : public ServiceConfigParser::Parser {
110
109
  static absl::string_view parser_name() { return "retry"; }
111
110
  };
112
111
 
113
- } // namespace internal
114
112
  } // namespace grpc_core
115
113
 
116
114
  #endif // GRPC_SRC_CORE_CLIENT_CHANNEL_RETRY_SERVICE_CONFIG_H
@@ -22,10 +22,10 @@
22
22
  #include <cstdint>
23
23
  #include <limits>
24
24
 
25
+ #include "src/core/client_channel/retry_service_config.h"
25
26
  #include "src/core/util/useful.h"
26
27
 
27
28
  namespace grpc_core {
28
- namespace internal {
29
29
 
30
30
  namespace {
31
31
 
@@ -71,11 +71,6 @@ RefCountedPtr<RetryThrottler> RetryThrottler::Create(
71
71
  return throttle_data;
72
72
  }
73
73
 
74
- UniqueTypeName RetryThrottler::Type() {
75
- static UniqueTypeName::Factory factory("retry_throttle");
76
- return factory.Create();
77
- }
78
-
79
74
  RetryThrottler::RetryThrottler(uintptr_t max_milli_tokens,
80
75
  uintptr_t milli_token_ratio,
81
76
  uintptr_t milli_tokens)
@@ -130,5 +125,22 @@ void RetryThrottler::RecordSuccess() {
130
125
  std::numeric_limits<intptr_t>::max())));
131
126
  }
132
127
 
133
- } // namespace internal
128
+ void RetryThrottlerChannelArgsUpdater::Update(
129
+ const ServiceConfig& service_config, ChannelArgs& args) {
130
+ // Get retry throttling parameters from service config.
131
+ const auto* config = static_cast<const RetryGlobalConfig*>(
132
+ service_config.GetGlobalParsedConfig(
133
+ RetryServiceConfigParser::ParserIndex()));
134
+ if (config == nullptr) {
135
+ throttler_.reset(); // No throttling config.
136
+ return;
137
+ }
138
+ // Create a new throttler that replaces the current throttler and add
139
+ // it to channel args.
140
+ throttler_ = RetryThrottler::Create(config->max_milli_tokens(),
141
+ config->milli_token_ratio(),
142
+ std::move(throttler_));
143
+ args = args.SetObject(throttler_);
144
+ }
145
+
134
146
  } // namespace grpc_core
@@ -23,21 +23,19 @@
23
23
 
24
24
  #include <atomic>
25
25
 
26
- #include "src/core/filter/blackboard.h"
26
+ #include "src/core/service_config/service_config.h"
27
+ #include "src/core/util/ref_counted.h"
27
28
  #include "src/core/util/ref_counted_ptr.h"
28
29
 
29
30
  namespace grpc_core {
30
- namespace internal {
31
31
 
32
- /// Tracks retry throttling data for an individual server name.
33
- class RetryThrottler final : public Blackboard::Entry {
32
+ /// Tracks retry throttling data for a channel.
33
+ class RetryThrottler final : public RefCounted<RetryThrottler> {
34
34
  public:
35
35
  static RefCountedPtr<RetryThrottler> Create(
36
36
  uintptr_t max_milli_tokens, uintptr_t milli_token_ratio,
37
37
  RefCountedPtr<RetryThrottler> previous);
38
38
 
39
- static UniqueTypeName Type();
40
-
41
39
  // Do not instantiate directly -- use Create() instead.
42
40
  RetryThrottler(uintptr_t max_milli_tokens, uintptr_t milli_token_ratio,
43
41
  uintptr_t milli_tokens);
@@ -56,6 +54,14 @@ class RetryThrottler final : public Blackboard::Entry {
56
54
  return milli_tokens_.load(std::memory_order_relaxed);
57
55
  }
58
56
 
57
+ static absl::string_view ChannelArgName() {
58
+ return "grpc.internal.retry_throttler";
59
+ }
60
+ static int ChannelArgsCompare(const RetryThrottler* a,
61
+ const RetryThrottler* b) {
62
+ return QsortCompare(a, b);
63
+ }
64
+
59
65
  private:
60
66
  void SetReplacement(RefCountedPtr<RetryThrottler> replacement);
61
67
 
@@ -70,7 +76,18 @@ class RetryThrottler final : public Blackboard::Entry {
70
76
  std::atomic<RetryThrottler*> replacement_{nullptr};
71
77
  };
72
78
 
73
- } // namespace internal
79
+ // Tracks retry throttler state across service config updates and
80
+ // handles adding the current throttler to channel args.
81
+ class RetryThrottlerChannelArgsUpdater final {
82
+ public:
83
+ // Applies the latest service config update and adds the current
84
+ // throttler to channel args if needed.
85
+ void Update(const ServiceConfig& service_config, ChannelArgs& args);
86
+
87
+ private:
88
+ RefCountedPtr<RetryThrottler> throttler_;
89
+ };
90
+
74
91
  } // namespace grpc_core
75
92
 
76
93
  #endif // GRPC_SRC_CORE_CLIENT_CHANNEL_RETRY_THROTTLE_H
@@ -1616,7 +1616,7 @@ void NewSubchannel::QueuedCall::ResumeOnConnectionLocked(
1616
1616
  // It's possible that the subchannel will get quota for the call
1617
1617
  // and try to resume it before buffered_call_ contains any batches.
1618
1618
  // In that case, we will not be holding the call combiner here, so we
1619
- // must not yeild it. That's why we use
1619
+ // must not yield it. That's why we use
1620
1620
  // YieldCallCombinerIfPendingBatchesFound here.
1621
1621
  if (!error.ok()) {
1622
1622
  buffered_call_.Fail(error,
@@ -33,7 +33,9 @@
33
33
  #include "src/core/credentials/call/external/file_external_account_credentials.h"
34
34
  #include "src/core/credentials/call/external/url_external_account_credentials.h"
35
35
  #include "src/core/credentials/call/json_util.h"
36
+ #include "src/core/credentials/call/regional_access_boundary_fetcher.h"
36
37
  #include "src/core/credentials/transport/transport_credentials.h"
38
+ #include "src/core/lib/promise/map.h"
37
39
  #include "src/core/lib/transport/status_conversion.h"
38
40
  #include "src/core/util/grpc_check.h"
39
41
  #include "src/core/util/http_client/httpcli_ssl_credentials.h"
@@ -72,6 +74,33 @@ namespace grpc_core {
72
74
  // ExternalAccountCredentials::NoOpFetchBody
73
75
  //
74
76
 
77
+ namespace {
78
+
79
+ class TokenWithRegionalAccessBoundary final
80
+ : public TokenFetcherCredentials::Token {
81
+ public:
82
+ TokenWithRegionalAccessBoundary(Slice token, Timestamp expiration,
83
+ RefCountedPtr<RegionalAccessBoundaryFetcher>
84
+ regional_access_boundary_fetcher)
85
+ : Token(std::move(token), expiration),
86
+ regional_access_boundary_fetcher_(
87
+ std::move(regional_access_boundary_fetcher)) {
88
+ CHECK(regional_access_boundary_fetcher_ != nullptr);
89
+ }
90
+
91
+ void AddTokenToClientInitialMetadata(ClientMetadata& metadata) override {
92
+ Token::AddTokenToClientInitialMetadata(metadata);
93
+ regional_access_boundary_fetcher_->Fetch(token().as_string_view(),
94
+ metadata);
95
+ }
96
+
97
+ private:
98
+ RefCountedPtr<RegionalAccessBoundaryFetcher>
99
+ regional_access_boundary_fetcher_;
100
+ };
101
+
102
+ } // namespace
103
+
75
104
  ExternalAccountCredentials::NoOpFetchBody::NoOpFetchBody(
76
105
  grpc_event_engine::experimental::EventEngine& event_engine,
77
106
  absl::AnyInvocable<void(absl::StatusOr<std::string>)> on_done,
@@ -411,8 +440,14 @@ void ExternalAccountCredentials::ExternalFetchRequest::FinishTokenFetch(
411
440
  GRPC_CREDENTIALS_OK) {
412
441
  result = GRPC_ERROR_CREATE("Could not parse oauth token");
413
442
  } else {
414
- result = MakeRefCounted<Token>(std::move(*token_value),
415
- Timestamp::Now() + token_lifetime);
443
+ if (creds_->regional_access_boundary_fetcher_ != nullptr) {
444
+ result = MakeRefCounted<TokenWithRegionalAccessBoundary>(
445
+ std::move(*token_value), Timestamp::Now() + token_lifetime,
446
+ creds_->regional_access_boundary_fetcher_->Ref());
447
+ } else {
448
+ result = MakeRefCounted<TokenFetcherCredentials::Token>(
449
+ std::move(*token_value), Timestamp::Now() + token_lifetime);
450
+ }
416
451
  }
417
452
  }
418
453
  creds_->event_engine().Run([on_done = std::exchange(on_done_, nullptr),
@@ -442,21 +477,56 @@ bool ExternalAccountCredentials::ExternalFetchRequest::MaybeFailLocked(
442
477
 
443
478
  namespace {
444
479
 
480
+ struct WorkloadIdentityPoolFields {
481
+ absl::string_view project;
482
+ absl::string_view pool_id;
483
+ };
484
+
485
+ // Expression to match:
486
+ // //iam.googleapis.com/projects/<project>/locations/global/workloadIdentityPools/<pool-id>/providers/.+
487
+ //
488
+ // Returns the project and pool ID within the WorkloadIdentityPoolFields struct
489
+ // if the audience matches the Workload Identity Pool format, otherwise returns
490
+ // std::nullopt.
491
+ std::optional<WorkloadIdentityPoolFields> MatchWorkloadIdentityPoolAudience(
492
+ absl::string_view audience) {
493
+ // Match "//iam.googleapis.com/projects/"
494
+ if (!absl::ConsumePrefix(&audience, "//iam.googleapis.com/projects/")) {
495
+ return std::nullopt;
496
+ }
497
+ // Match "<project>/locations/global/workloadIdentityPools/"
498
+ auto location_pos = audience.find("/locations/global/workloadIdentityPools/");
499
+ if (location_pos == absl::string_view::npos) return std::nullopt;
500
+ auto project = audience.substr(0, location_pos);
501
+ if (project.empty()) return std::nullopt;
502
+ audience.remove_prefix(
503
+ location_pos + sizeof("/locations/global/workloadIdentityPools/") - 1);
504
+ // Match "<pool-id>/providers/"
505
+ auto provider_pos = audience.find("/providers/");
506
+ if (provider_pos == absl::string_view::npos) return std::nullopt;
507
+ auto pool_id = audience.substr(0, provider_pos);
508
+ if (pool_id.empty()) return std::nullopt;
509
+ return WorkloadIdentityPoolFields{project, pool_id};
510
+ }
511
+
445
512
  // Expression to match:
446
513
  // //iam.googleapis.com/locations/[^/]+/workforcePools/[^/]+/providers/.+
447
- bool MatchWorkforcePoolAudience(absl::string_view audience) {
514
+ // Returns the workforce pool ID if the audience matches the Workforce Pool
515
+ // format, otherwise returns an empty string view.
516
+ absl::string_view MatchWorkforcePoolAudience(absl::string_view audience) {
448
517
  // Match "//iam.googleapis.com/locations/"
449
- if (!absl::ConsumePrefix(&audience, "//iam.googleapis.com")) return false;
450
- if (!absl::ConsumePrefix(&audience, "/locations/")) return false;
518
+ if (!absl::ConsumePrefix(&audience, "//iam.googleapis.com")) return "";
519
+ if (!absl::ConsumePrefix(&audience, "/locations/")) return "";
451
520
  // Match "[^/]+/workforcePools/"
452
521
  std::pair<absl::string_view, absl::string_view> workforce_pools_split_result =
453
522
  absl::StrSplit(audience, absl::MaxSplits("/workforcePools/", 1));
454
- if (absl::StrContains(workforce_pools_split_result.first, '/')) return false;
523
+ if (absl::StrContains(workforce_pools_split_result.first, '/')) return "";
455
524
  // Match "[^/]+/providers/.+"
456
525
  std::pair<absl::string_view, absl::string_view> providers_split_result =
457
526
  absl::StrSplit(workforce_pools_split_result.second,
458
527
  absl::MaxSplits("/providers/", 1));
459
- return !absl::StrContains(providers_split_result.first, '/');
528
+ if (absl::StrContains(providers_split_result.first, '/')) return "";
529
+ return providers_split_result.first;
460
530
  }
461
531
 
462
532
  } // namespace
@@ -533,7 +603,9 @@ ExternalAccountCredentials::Create(
533
603
  }
534
604
  it = json.object().find("workforce_pool_user_project");
535
605
  if (it != json.object().end()) {
536
- if (MatchWorkforcePoolAudience(options.audience)) {
606
+ if (auto workforce_pool_id = MatchWorkforcePoolAudience(options.audience);
607
+ !workforce_pool_id.empty()) {
608
+ options.workforce_pool_id = std::string(workforce_pool_id);
537
609
  options.workforce_pool_user_project = it->second.string();
538
610
  } else {
539
611
  return GRPC_ERROR_CREATE(
@@ -541,6 +613,14 @@ ExternalAccountCredentials::Create(
541
613
  "pool credentials");
542
614
  }
543
615
  }
616
+ if (auto workload_identity_pool_fields =
617
+ MatchWorkloadIdentityPoolAudience(options.audience);
618
+ workload_identity_pool_fields.has_value()) {
619
+ options.workload_pool_project =
620
+ std::string(workload_identity_pool_fields->project);
621
+ options.workload_pool_id =
622
+ std::string(workload_identity_pool_fields->pool_id);
623
+ }
544
624
  it = json.object().find("service_account_impersonation");
545
625
  options.service_account_impersonation.token_lifetime_seconds =
546
626
  IMPERSONATED_CRED_DEFAULT_LIFETIME_IN_SECONDS;
@@ -590,20 +670,53 @@ ExternalAccountCredentials::Create(
590
670
  if (!error.ok()) return error;
591
671
  return creds;
592
672
  }
673
+ namespace {
674
+
675
+ std::string BuildRegionalAccessBoundaryUrl(
676
+ const ExternalAccountCredentials::Options& options) {
677
+ if (!options.service_account_impersonation_url.empty()) {
678
+ absl::string_view url = options.service_account_impersonation_url;
679
+ absl::string_view::size_type start = url.find("serviceAccounts/");
680
+ absl::string_view::size_type end = url.find(":generateAccessToken");
681
+ if (start != absl::string_view::npos && end != absl::string_view::npos &&
682
+ start + 16 < end) {
683
+ absl::string_view email = url.substr(start + 16, end - (start + 16));
684
+ return absl::StrFormat(
685
+ "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/"
686
+ "%s/allowedLocations",
687
+ email);
688
+ }
689
+ }
690
+ if (!options.workforce_pool_id.empty()) {
691
+ return absl::StrFormat(
692
+ "https://iamcredentials.googleapis.com/v1/locations/global/"
693
+ "workforcePools/%s/allowedLocations",
694
+ options.workforce_pool_id);
695
+ } else if (!options.workload_pool_project.empty() &&
696
+ !options.workload_pool_id.empty()) {
697
+ return absl::StrFormat(
698
+ "https://iamcredentials.googleapis.com/v1/projects/"
699
+ "%s/locations/global/workloadIdentityPools/%s/allowedLocations",
700
+ options.workload_pool_project, options.workload_pool_id);
701
+ }
702
+ return "";
703
+ }
704
+
705
+ } // namespace
593
706
 
594
707
  ExternalAccountCredentials::ExternalAccountCredentials(
595
708
  Options options, std::vector<std::string> scopes,
596
709
  std::shared_ptr<grpc_event_engine::experimental::EventEngine> event_engine)
597
- : TokenFetcherCredentials(std::move(event_engine)),
598
- options_(std::move(options)) {
710
+ : TokenFetcherCredentials(event_engine),
711
+ options_(std::move(options)),
712
+ regional_access_boundary_fetcher_(RegionalAccessBoundaryFetcher::Create(
713
+ BuildRegionalAccessBoundaryUrl(options_), std::move(event_engine))) {
599
714
  if (scopes.empty()) {
600
715
  scopes.push_back(GOOGLE_CLOUD_PLATFORM_DEFAULT_SCOPE);
601
716
  }
602
717
  scopes_ = std::move(scopes);
603
718
  }
604
719
 
605
- ExternalAccountCredentials::~ExternalAccountCredentials() {}
606
-
607
720
  std::string ExternalAccountCredentials::MetricsHeaderValue() {
608
721
  return absl::StrFormat(
609
722
  "gl-cpp/unknown auth/%s google-byoid-sdk source/%s sa-impersonation/%v "
@@ -27,6 +27,7 @@
27
27
  #include <vector>
28
28
 
29
29
  #include "src/core/credentials/call/oauth2/oauth2_credentials.h"
30
+ #include "src/core/credentials/call/regional_access_boundary_fetcher.h"
30
31
  #include "src/core/credentials/call/token_fetcher/token_fetcher_credentials.h"
31
32
  #include "src/core/lib/iomgr/closure.h"
32
33
  #include "src/core/lib/iomgr/error.h"
@@ -64,6 +65,9 @@ class ExternalAccountCredentials : public TokenFetcherCredentials {
64
65
  std::string client_id;
65
66
  std::string client_secret;
66
67
  std::string workforce_pool_user_project;
68
+ std::string workforce_pool_id;
69
+ std::string workload_pool_project;
70
+ std::string workload_pool_id;
67
71
  };
68
72
 
69
73
  static absl::StatusOr<RefCountedPtr<ExternalAccountCredentials>> Create(
@@ -75,7 +79,6 @@ class ExternalAccountCredentials : public TokenFetcherCredentials {
75
79
  Options options, std::vector<std::string> scopes,
76
80
  std::shared_ptr<grpc_event_engine::experimental::EventEngine>
77
81
  event_engine = nullptr);
78
- ~ExternalAccountCredentials() override;
79
82
 
80
83
  protected:
81
84
  // A base class for a cancellable fetch operation.
@@ -200,6 +203,8 @@ class ExternalAccountCredentials : public TokenFetcherCredentials {
200
203
 
201
204
  Options options_;
202
205
  std::vector<std::string> scopes_;
206
+ RefCountedPtr<RegionalAccessBoundaryFetcher>
207
+ regional_access_boundary_fetcher_;
203
208
  };
204
209
 
205
210
  } // namespace grpc_core