grpc 1.81.1 → 1.83.0

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 (948) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +15 -9
  3. data/etc/roots.pem +10400 -3855
  4. data/include/grpc/grpc.h +6 -7
  5. data/include/grpc/grpc_audit_logging.h +2 -2
  6. data/include/grpc/grpc_security_constants.h +2 -0
  7. data/include/grpc/impl/channel_arg_names.h +26 -1
  8. data/src/core/call/call_filters.h +21 -5
  9. data/src/core/call/call_spine.h +4 -4
  10. data/src/core/call/client_call.cc +2 -2
  11. data/src/core/call/interception_chain.h +6 -9
  12. data/src/core/call/metadata.cc +7 -2
  13. data/src/core/call/metadata.h +1 -1
  14. data/src/core/call/metadata_batch.cc +1 -1
  15. data/src/core/call/metadata_batch.h +17 -1
  16. data/src/core/call/parsed_metadata.h +7 -2
  17. data/src/core/call/server_call.cc +16 -4
  18. data/src/core/call/server_call.h +14 -5
  19. data/src/core/call/status_util.cc +0 -4
  20. data/src/core/call/status_util.h +0 -3
  21. data/src/core/channelz/channel_trace.cc +3 -1
  22. data/src/core/client_channel/backup_poller.cc +2 -17
  23. data/src/core/client_channel/client_channel.cc +23 -28
  24. data/src/core/client_channel/client_channel.h +5 -3
  25. data/src/core/client_channel/client_channel_filter.cc +19 -30
  26. data/src/core/client_channel/client_channel_filter.h +2 -2
  27. data/src/core/client_channel/client_channel_plugin.cc +1 -1
  28. data/src/core/client_channel/client_channel_service_config.cc +5 -13
  29. data/src/core/client_channel/config_selector.h +2 -7
  30. data/src/core/client_channel/direct_channel.cc +5 -1
  31. data/src/core/client_channel/direct_channel.h +3 -1
  32. data/src/core/client_channel/dynamic_filters.cc +4 -7
  33. data/src/core/client_channel/dynamic_filters.h +1 -3
  34. data/src/core/client_channel/retry_filter.cc +2 -25
  35. data/src/core/client_channel/retry_filter.h +3 -7
  36. data/src/core/client_channel/retry_filter_legacy_call_data.cc +1 -1
  37. data/src/core/client_channel/retry_filter_legacy_call_data.h +2 -2
  38. data/src/core/client_channel/retry_interceptor.cc +7 -35
  39. data/src/core/client_channel/retry_interceptor.h +11 -14
  40. data/src/core/client_channel/retry_service_config.cc +0 -2
  41. data/src/core/client_channel/retry_service_config.h +0 -2
  42. data/src/core/client_channel/retry_throttle.cc +19 -7
  43. data/src/core/client_channel/retry_throttle.h +24 -7
  44. data/src/core/client_channel/subchannel.cc +1 -1
  45. data/src/core/{filter/blackboard.cc → config/experiment_env_var.cc} +11 -14
  46. data/src/core/config/experiment_env_var.h +26 -0
  47. data/src/core/credentials/call/external/external_account_credentials.cc +125 -12
  48. data/src/core/credentials/call/external/external_account_credentials.h +6 -1
  49. data/src/core/credentials/call/jwt/jwt_credentials.cc +11 -1
  50. data/src/core/credentials/call/jwt/jwt_credentials.h +3 -0
  51. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +64 -11
  52. data/src/core/credentials/call/oauth2/oauth2_credentials.h +0 -1
  53. data/src/core/credentials/call/regional_access_boundary_fetcher.cc +411 -0
  54. data/src/core/credentials/call/regional_access_boundary_fetcher.h +158 -0
  55. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +1 -1
  56. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +7 -1
  57. data/src/core/credentials/transport/insecure/insecure_security_connector.h +1 -1
  58. data/src/core/credentials/transport/local/local_security_connector.cc +1 -1
  59. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +14 -2
  60. data/src/core/credentials/transport/tls/grpc_tls_certificate_selector.cc +172 -0
  61. data/src/core/credentials/transport/tls/grpc_tls_certificate_selector.h +103 -0
  62. data/src/core/credentials/transport/tls/load_system_roots_fallback.cc +3 -2
  63. data/src/core/credentials/transport/tls/load_system_roots_supported.cc +10 -3
  64. data/src/core/credentials/transport/tls/tls_security_connector.cc +14 -2
  65. data/src/core/credentials/transport/xds/xds_credentials.cc +4 -12
  66. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +6 -0
  67. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +28 -66
  68. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +0 -8
  69. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +24 -58
  70. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +24 -19
  71. data/src/core/ext/filters/message_size/message_size_filter.cc +1 -81
  72. data/src/core/ext/filters/message_size/message_size_filter.h +1 -50
  73. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -1
  74. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +13 -56
  75. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +0 -14
  76. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
  77. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +184 -54
  78. data/src/core/ext/transport/chttp2/server/chttp2_server.h +10 -1
  79. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +84 -15
  80. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
  81. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  82. data/src/core/ext/transport/chttp2/transport/flow_control.h +14 -2
  83. data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +2 -4
  84. data/src/core/ext/transport/chttp2/transport/frame.cc +120 -13
  85. data/src/core/ext/transport/chttp2/transport/frame.h +57 -10
  86. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -1
  87. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +13 -7
  88. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -1
  89. data/src/core/ext/transport/chttp2/transport/frame_security.cc +10 -1
  90. data/src/core/ext/transport/chttp2/transport/frame_security.h +2 -1
  91. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
  92. data/src/core/ext/transport/chttp2/transport/goaway.cc +11 -1
  93. data/src/core/ext/transport/chttp2/transport/goaway.h +17 -1
  94. data/src/core/ext/transport/chttp2/transport/header_assembler.h +54 -22
  95. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +53 -5
  96. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +22 -0
  97. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +20 -0
  98. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +42 -1
  99. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -1
  100. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +219 -417
  101. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +49 -29
  102. data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +2073 -0
  103. data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +746 -0
  104. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
  105. data/src/core/ext/transport/chttp2/transport/http2_settings.h +49 -15
  106. data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +0 -2
  107. data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +74 -26
  108. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +39 -15
  109. data/src/core/ext/transport/chttp2/transport/http2_transport.h +18 -48
  110. data/src/core/ext/transport/chttp2/transport/internal.h +18 -0
  111. data/src/core/ext/transport/chttp2/transport/message_assembler.h +1 -2
  112. data/src/core/ext/transport/chttp2/transport/parsing.cc +85 -26
  113. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +1 -1
  114. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +4 -10
  115. data/src/core/ext/transport/chttp2/transport/read_context.h +494 -0
  116. data/src/core/ext/transport/chttp2/transport/security_frame.h +13 -3
  117. data/src/core/ext/transport/chttp2/transport/stream.h +287 -137
  118. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +83 -65
  119. data/src/core/ext/transport/chttp2/transport/write_cycle.h +9 -1
  120. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +16 -2
  121. data/src/core/ext/upb-gen/cel/expr/checked.upb.h +621 -432
  122. data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +264 -166
  123. data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h +0 -13
  124. data/src/core/ext/upb-gen/cel/expr/syntax.upb.h +708 -497
  125. data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +294 -176
  126. data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h +0 -15
  127. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +262 -181
  128. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +84 -58
  129. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +0 -5
  130. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +254 -190
  131. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +107 -53
  132. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +0 -4
  133. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +271 -190
  134. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +88 -64
  135. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +0 -5
  136. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +1035 -730
  137. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +384 -260
  138. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +0 -19
  139. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +87 -56
  140. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +26 -16
  141. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +0 -2
  142. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +105 -71
  143. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +30 -22
  144. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +0 -2
  145. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +31 -29
  146. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +19 -7
  147. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +0 -1
  148. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +25 -23
  149. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +15 -7
  150. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +0 -1
  151. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +25 -23
  152. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +15 -7
  153. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +0 -1
  154. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +201 -165
  155. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +79 -31
  156. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +0 -2
  157. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +29 -26
  158. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +17 -11
  159. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +0 -1
  160. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +46 -29
  161. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +37 -19
  162. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +4 -4
  163. data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +34 -27
  164. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +34 -13
  165. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +1 -2
  166. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +617 -452
  167. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +221 -163
  168. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +0 -16
  169. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +1339 -970
  170. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +484 -324
  171. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +0 -23
  172. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +181 -135
  173. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +59 -43
  174. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +0 -3
  175. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +1353 -1028
  176. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +535 -361
  177. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +0 -25
  178. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +37 -33
  179. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +19 -13
  180. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +0 -1
  181. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +234 -196
  182. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +77 -57
  183. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +0 -1
  184. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +695 -502
  185. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +246 -186
  186. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +0 -15
  187. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb.h +140 -116
  188. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +53 -43
  189. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.h +0 -3
  190. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +363 -269
  191. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +131 -89
  192. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +0 -8
  193. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +35 -31
  194. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +15 -13
  195. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +0 -1
  196. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +1073 -769
  197. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +515 -293
  198. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +0 -30
  199. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb.h +25 -23
  200. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +15 -7
  201. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.h +0 -1
  202. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +375 -267
  203. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +142 -86
  204. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +0 -7
  205. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +32 -27
  206. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +13 -11
  207. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +0 -1
  208. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +29 -26
  209. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +17 -11
  210. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +0 -1
  211. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +87 -56
  212. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +26 -16
  213. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +0 -2
  214. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +634 -468
  215. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +255 -161
  216. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +0 -14
  217. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +672 -474
  218. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +228 -130
  219. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +0 -9
  220. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +56 -40
  221. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +15 -13
  222. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +0 -1
  223. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +34 -29
  224. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +19 -11
  225. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +0 -1
  226. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +811 -635
  227. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +347 -221
  228. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +0 -16
  229. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +174 -118
  230. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +62 -38
  231. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +0 -4
  232. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +78 -57
  233. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +28 -18
  234. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +0 -2
  235. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +37 -33
  236. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +22 -14
  237. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +0 -1
  238. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +159 -119
  239. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +47 -35
  240. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +0 -5
  241. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +101 -76
  242. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +41 -23
  243. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +0 -2
  244. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +35 -31
  245. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +15 -13
  246. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +0 -1
  247. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +189 -127
  248. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +79 -49
  249. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +0 -4
  250. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +378 -283
  251. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +156 -98
  252. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +0 -8
  253. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +354 -255
  254. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +125 -69
  255. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +0 -6
  256. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +27 -24
  257. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +13 -11
  258. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +0 -1
  259. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +611 -451
  260. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +159 -119
  261. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +0 -11
  262. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +468 -321
  263. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +157 -99
  264. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +0 -6
  265. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +146 -119
  266. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +55 -35
  267. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +0 -1
  268. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +61 -51
  269. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +16 -16
  270. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +0 -2
  271. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +43 -39
  272. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +25 -13
  273. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +0 -1
  274. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +341 -247
  275. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +130 -84
  276. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +0 -8
  277. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +452 -313
  278. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +144 -100
  279. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +0 -10
  280. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +666 -493
  281. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +251 -181
  282. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +0 -12
  283. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +327 -197
  284. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +92 -48
  285. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +0 -3
  286. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +3583 -2532
  287. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +1340 -816
  288. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +0 -60
  289. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +111 -82
  290. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +48 -28
  291. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +0 -3
  292. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +548 -410
  293. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +214 -148
  294. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +0 -12
  295. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +59 -50
  296. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +30 -20
  297. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +0 -2
  298. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +29 -26
  299. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +17 -11
  300. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +0 -1
  301. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +60 -49
  302. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +28 -20
  303. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +0 -2
  304. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +50 -36
  305. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +19 -11
  306. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +0 -1
  307. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +82 -63
  308. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +27 -19
  309. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +0 -1
  310. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +27 -24
  311. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +13 -11
  312. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +0 -1
  313. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +70 -58
  314. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +32 -22
  315. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +0 -2
  316. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +2 -5
  317. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +1 -1
  318. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +73 -62
  319. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +39 -25
  320. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +0 -2
  321. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +49 -45
  322. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +33 -13
  323. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +0 -1
  324. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +771 -588
  325. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +383 -185
  326. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +0 -16
  327. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +66 -47
  328. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +31 -17
  329. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +0 -2
  330. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb.h +69 -58
  331. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.c +27 -23
  332. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.h +0 -2
  333. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +151 -119
  334. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +45 -39
  335. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +0 -5
  336. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb.h +19 -17
  337. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.c +1 -3
  338. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.h +0 -1
  339. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb.h +144 -109
  340. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.c +46 -38
  341. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.h +0 -4
  342. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +184 -139
  343. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +65 -35
  344. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +0 -3
  345. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +129 -106
  346. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +69 -41
  347. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +0 -4
  348. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +83 -71
  349. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +40 -26
  350. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +0 -2
  351. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +148 -101
  352. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +45 -27
  353. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +0 -2
  354. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +62 -51
  355. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +35 -21
  356. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +0 -2
  357. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1362 -1024
  358. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +508 -336
  359. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +0 -22
  360. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb.h +21 -19
  361. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +13 -7
  362. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.h +0 -1
  363. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb.h +35 -31
  364. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.c +15 -13
  365. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.h +0 -1
  366. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb.h +27 -24
  367. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.c +13 -11
  368. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.h +0 -1
  369. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +27 -24
  370. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +13 -11
  371. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +0 -1
  372. 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
  373. 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
  374. 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
  375. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +231 -179
  376. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +88 -66
  377. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +0 -6
  378. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +21 -19
  379. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +13 -7
  380. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +0 -1
  381. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +63 -56
  382. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +31 -19
  383. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +0 -1
  384. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +27 -24
  385. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +13 -11
  386. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +0 -1
  387. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +27 -24
  388. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +13 -11
  389. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +0 -1
  390. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -5
  391. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +1 -1
  392. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +538 -364
  393. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +157 -95
  394. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +0 -8
  395. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -110
  396. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +69 -49
  397. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +0 -4
  398. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +517 -389
  399. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +182 -116
  400. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +0 -7
  401. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +84 -62
  402. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +30 -22
  403. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +0 -2
  404. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +340 -256
  405. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +92 -82
  406. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +0 -5
  407. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +19 -17
  408. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +1 -3
  409. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +0 -1
  410. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +857 -566
  411. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +288 -182
  412. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +0 -15
  413. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +105 -72
  414. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +36 -22
  415. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +0 -2
  416. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +312 -226
  417. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +132 -78
  418. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +0 -5
  419. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +82 -61
  420. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +35 -19
  421. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +0 -2
  422. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +123 -89
  423. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +25 -25
  424. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +0 -4
  425. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h +48 -33
  426. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +13 -11
  427. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h +0 -1
  428. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +42 -36
  429. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +19 -13
  430. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +0 -1
  431. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +101 -79
  432. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +61 -31
  433. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +0 -5
  434. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +83 -60
  435. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +37 -19
  436. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +0 -2
  437. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +56 -40
  438. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +15 -13
  439. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +0 -1
  440. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +34 -29
  441. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +13 -11
  442. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +0 -1
  443. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +32 -27
  444. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +13 -11
  445. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +0 -1
  446. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +88 -71
  447. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +48 -30
  448. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +0 -3
  449. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +37 -30
  450. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +1 -5
  451. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +0 -2
  452. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +95 -71
  453. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +36 -22
  454. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +0 -2
  455. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +79 -56
  456. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +26 -18
  457. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +0 -2
  458. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +164 -124
  459. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +54 -40
  460. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +0 -4
  461. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +200 -147
  462. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +47 -41
  463. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +0 -7
  464. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +160 -130
  465. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +89 -47
  466. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +0 -5
  467. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +78 -62
  468. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +26 -20
  469. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +0 -3
  470. data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +2 -5
  471. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +1 -1
  472. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +21 -19
  473. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +13 -7
  474. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +0 -1
  475. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +43 -36
  476. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +22 -12
  477. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +0 -2
  478. data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +67 -55
  479. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +36 -18
  480. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +0 -3
  481. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +62 -51
  482. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +33 -19
  483. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +0 -2
  484. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +2 -5
  485. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +1 -1
  486. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +25 -23
  487. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +15 -7
  488. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +0 -1
  489. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +37 -33
  490. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +19 -13
  491. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +0 -1
  492. data/src/core/ext/upb-gen/google/api/annotations.upb.h +15 -13
  493. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +22 -7
  494. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +1 -1
  495. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +619 -430
  496. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +260 -168
  497. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +0 -13
  498. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +734 -518
  499. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +312 -182
  500. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +0 -16
  501. data/src/core/ext/upb-gen/google/api/http.upb.h +146 -105
  502. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +65 -29
  503. data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +0 -3
  504. data/src/core/ext/upb-gen/google/api/httpbody.upb.h +52 -37
  505. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +19 -11
  506. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +0 -1
  507. data/src/core/ext/upb-gen/google/protobuf/any.upb.h +23 -21
  508. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +15 -7
  509. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +0 -1
  510. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +2236 -1514
  511. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +824 -406
  512. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +0 -34
  513. data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +23 -21
  514. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +15 -7
  515. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +0 -1
  516. data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +19 -17
  517. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +1 -3
  518. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +0 -1
  519. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +149 -100
  520. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +59 -43
  521. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +0 -4
  522. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +23 -21
  523. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +15 -7
  524. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +0 -1
  525. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +181 -139
  526. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +99 -53
  527. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +0 -9
  528. data/src/core/ext/upb-gen/google/rpc/status.upb.h +52 -37
  529. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +19 -11
  530. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +0 -1
  531. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h +1553 -1157
  532. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +712 -410
  533. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h +0 -39
  534. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +189 -125
  535. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +59 -35
  536. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +0 -3
  537. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +454 -343
  538. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +204 -130
  539. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +0 -11
  540. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +369 -243
  541. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +109 -79
  542. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +0 -7
  543. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +256 -175
  544. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +122 -68
  545. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +0 -8
  546. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +71 -51
  547. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +39 -19
  548. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +0 -2
  549. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +583 -407
  550. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +259 -145
  551. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +0 -12
  552. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +114 -84
  553. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +52 -30
  554. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +0 -4
  555. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +41 -34
  556. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +25 -13
  557. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +0 -2
  558. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +309 -230
  559. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +123 -79
  560. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +0 -9
  561. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +98 -63
  562. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +51 -23
  563. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +0 -3
  564. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +505 -312
  565. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +159 -87
  566. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +0 -9
  567. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +128 -91
  568. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +82 -41
  569. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +5 -8
  570. data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +36 -29
  571. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +36 -13
  572. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +1 -2
  573. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +13 -11
  574. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +22 -7
  575. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +1 -1
  576. data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +36 -29
  577. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +36 -13
  578. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +1 -2
  579. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +34 -27
  580. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +34 -13
  581. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +1 -2
  582. data/src/core/ext/upb-gen/validate/validate.upb.h +1682 -1130
  583. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +587 -247
  584. data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +4 -27
  585. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +128 -91
  586. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +82 -41
  587. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +5 -8
  588. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +36 -29
  589. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +36 -13
  590. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +1 -2
  591. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +13 -11
  592. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +22 -7
  593. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +1 -1
  594. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +122 -90
  595. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +82 -39
  596. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +3 -7
  597. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +34 -27
  598. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +34 -13
  599. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +1 -2
  600. data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +21 -19
  601. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +13 -7
  602. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +0 -1
  603. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +29 -26
  604. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +17 -11
  605. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +0 -1
  606. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +70 -58
  607. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +32 -22
  608. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +0 -2
  609. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +53 -34
  610. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +26 -16
  611. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +0 -2
  612. data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +29 -26
  613. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +17 -11
  614. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +0 -1
  615. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +37 -33
  616. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +22 -14
  617. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +0 -1
  618. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +102 -76
  619. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +43 -23
  620. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +0 -2
  621. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +33 -30
  622. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +19 -11
  623. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +0 -1
  624. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +136 -83
  625. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +41 -33
  626. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +0 -4
  627. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +46 -32
  628. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +20 -12
  629. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +0 -1
  630. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +29 -26
  631. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +20 -12
  632. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +0 -1
  633. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +93 -61
  634. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +28 -20
  635. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +0 -2
  636. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +19 -17
  637. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +1 -3
  638. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +0 -1
  639. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +105 -71
  640. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +32 -22
  641. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +0 -2
  642. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +430 -314
  643. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +153 -123
  644. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +0 -10
  645. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +307 -199
  646. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +74 -62
  647. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +0 -6
  648. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +52 -42
  649. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +19 -13
  650. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +0 -2
  651. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +95 -71
  652. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +36 -22
  653. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +0 -2
  654. data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +92 -77
  655. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +42 -28
  656. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +0 -2
  657. data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +67 -55
  658. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +36 -18
  659. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +0 -3
  660. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +29 -26
  661. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +17 -11
  662. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +0 -1
  663. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +885 -855
  664. data/src/core/filter/composite/composite_filter.cc +10 -3
  665. data/src/core/filter/composite/composite_filter.h +11 -1
  666. data/src/core/filter/filter_args.h +4 -22
  667. data/src/core/handshaker/handshaker.cc +10 -2
  668. data/src/core/handshaker/security/secure_endpoint.cc +60 -5
  669. data/src/core/lib/channel/channel_args.h +12 -6
  670. data/src/core/lib/channel/channel_stack.cc +1 -2
  671. data/src/core/lib/channel/channel_stack.h +1 -7
  672. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
  673. data/src/core/lib/channel/channel_stack_builder_impl.h +0 -7
  674. data/src/core/lib/channel/promise_based_filter.cc +90 -4
  675. data/src/core/lib/channel/promise_based_filter.h +241 -188
  676. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +0 -13
  677. data/src/core/lib/event_engine/extensions/receive_coalescing_extension.h +44 -0
  678. data/src/core/lib/event_engine/extensions/tcp_trace.h +1 -1
  679. data/src/core/lib/event_engine/posix.h +2 -0
  680. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +2 -1
  681. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +11 -8
  682. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +9 -18
  683. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +1 -1
  684. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +2 -1
  685. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +10 -10
  686. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +1 -1
  687. data/src/core/lib/event_engine/shim.cc +2 -16
  688. data/src/core/lib/event_engine/shim.h +0 -4
  689. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +1 -1
  690. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +5 -4
  691. data/src/core/lib/experiments/experiments.cc +303 -183
  692. data/src/core/lib/experiments/experiments.h +166 -90
  693. data/src/core/lib/iomgr/buffer_list.h +1 -1
  694. data/src/core/lib/iomgr/error.cc +3 -73
  695. data/src/core/lib/iomgr/error.h +8 -6
  696. data/src/core/lib/iomgr/error_cfstream.cc +1 -2
  697. data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -7
  698. data/src/core/lib/iomgr/ev_poll_posix.cc +2 -6
  699. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
  700. data/src/core/lib/iomgr/tcp_posix.cc +4 -7
  701. data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
  702. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
  703. data/src/core/lib/promise/detail/promise_factory.h +8 -8
  704. data/src/core/lib/promise/interceptor_list.h +1 -1
  705. data/src/core/lib/promise/try_seq.h +2 -2
  706. data/src/core/lib/resource_quota/telemetry.cc +54 -0
  707. data/src/core/lib/resource_quota/telemetry.h +5 -23
  708. data/src/core/lib/security/authorization/audit_logging.cc +2 -2
  709. data/src/core/lib/security/authorization/audit_logging.h +3 -3
  710. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +11 -13
  711. data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -1
  712. data/src/core/lib/security/authorization/matchers.cc +20 -20
  713. data/src/core/lib/security/authorization/matchers.h +15 -16
  714. data/src/core/lib/security/authorization/rbac_policy.h +1 -1
  715. data/src/core/lib/security/authorization/stdout_logger.cc +3 -3
  716. data/src/core/lib/security/authorization/stdout_logger.h +6 -5
  717. data/src/core/lib/surface/call.cc +6 -9
  718. data/src/core/lib/surface/call.h +11 -0
  719. data/src/core/lib/surface/channel.cc +21 -2
  720. data/src/core/lib/surface/channel.h +14 -6
  721. data/src/core/lib/surface/filter_stack_call.cc +10 -29
  722. data/src/core/lib/surface/legacy_channel.cc +7 -7
  723. data/src/core/lib/surface/legacy_channel.h +3 -1
  724. data/src/core/lib/surface/version.cc +2 -2
  725. data/src/core/lib/transport/bdp_estimator.cc +13 -13
  726. data/src/core/lib/transport/bdp_estimator.h +9 -5
  727. data/src/core/lib/transport/error_utils.cc +26 -138
  728. data/src/core/lib/transport/promise_endpoint.h +8 -8
  729. data/src/core/lib/transport/transport.h +31 -4
  730. data/src/core/load_balancing/grpclb/grpclb.cc +2 -1
  731. data/src/core/load_balancing/pick_first/pick_first.cc +33 -2
  732. data/src/core/load_balancing/pick_first/pick_first.h +6 -0
  733. data/src/core/load_balancing/ring_hash/ring_hash.cc +3 -10
  734. data/src/core/load_balancing/rls/rls.cc +2 -1
  735. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +141 -74
  736. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.h +88 -0
  737. data/src/core/load_balancing/xds/cds.cc +80 -56
  738. data/src/core/load_balancing/xds/cds.h +21 -0
  739. data/src/core/mitigation_engine/mitigation.h +53 -0
  740. data/src/core/mitigation_engine/mitigation_engine.h +81 -0
  741. data/src/core/mitigation_engine/mitigation_provider.h +62 -0
  742. data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
  743. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -5
  744. data/src/core/resolver/dns/dns_resolver_plugin.cc +1 -6
  745. data/src/core/resolver/xds/xds_resolver.cc +37 -144
  746. data/src/core/server/server.cc +40 -18
  747. data/src/core/server/server.h +26 -18
  748. data/src/core/server/server_config_selector.h +5 -4
  749. data/src/core/server/server_config_selector_filter.cc +135 -26
  750. data/src/core/server/server_config_selector_filter.h +1 -0
  751. data/src/core/server/xds_server_config_fetcher.cc +687 -692
  752. data/src/core/server/xds_server_config_fetcher_legacy.cc +1336 -0
  753. data/src/core/telemetry/call_tracer.cc +49 -2
  754. data/src/core/telemetry/call_tracer.h +1 -0
  755. data/src/core/telemetry/histogram.h +10 -89
  756. data/src/core/telemetry/instrument.h +42 -28
  757. data/src/core/telemetry/tcp_tracer.h +38 -0
  758. data/src/core/transport/message_size_service_config.cc +123 -0
  759. data/src/core/transport/message_size_service_config.h +85 -0
  760. data/src/core/transport/session_endpoint.cc +29 -4
  761. data/src/core/transport/session_endpoint.h +4 -0
  762. data/src/core/tsi/alts/crypt/gsec.h +4 -2
  763. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  764. data/src/core/tsi/ssl_telemetry_utils.cc +343 -0
  765. data/src/core/tsi/ssl_telemetry_utils.h +74 -0
  766. data/src/core/tsi/ssl_transport_security.cc +583 -305
  767. data/src/core/tsi/ssl_transport_security.h +22 -6
  768. data/src/core/tsi/ssl_transport_security_utils.cc +2 -0
  769. data/src/core/tsi/transport_security.h +7 -0
  770. data/src/core/util/http_client/httpcli.cc +1 -4
  771. data/src/core/util/http_client/httpcli_security_connector.cc +2 -1
  772. data/src/core/util/http_client/parser.cc +1 -1
  773. data/src/core/util/lru_cache.h +2 -0
  774. data/src/core/util/ref_counted_string.h +1 -1
  775. data/src/core/util/status_helper.cc +71 -192
  776. data/src/core/util/status_helper.h +16 -21
  777. data/src/core/util/tchar.cc +13 -7
  778. data/src/core/util/trie_lookup.h +1 -1
  779. data/src/core/xds/grpc/blackboard.cc +58 -0
  780. data/src/core/{filter → xds/grpc}/blackboard.h +30 -11
  781. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +2 -11
  782. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -7
  783. data/src/core/xds/grpc/xds_cluster_parser.cc +5 -16
  784. data/src/core/xds/grpc/xds_common_types.cc +96 -0
  785. data/src/core/xds/grpc/xds_common_types.h +35 -7
  786. data/src/core/xds/grpc/xds_common_types_parser.cc +205 -134
  787. data/src/core/xds/grpc/xds_common_types_parser.h +18 -1
  788. data/src/core/xds/grpc/xds_endpoint_parser.cc +7 -18
  789. data/src/core/xds/grpc/xds_http_composite_filter.cc +34 -18
  790. data/src/core/xds/grpc/xds_http_composite_filter.h +6 -3
  791. data/src/core/xds/grpc/xds_http_fault_filter.cc +0 -149
  792. data/src/core/xds/grpc/xds_http_fault_filter.h +19 -8
  793. data/src/core/xds/grpc/xds_http_filter.cc +2 -1
  794. data/src/core/xds/grpc/xds_http_filter.h +6 -16
  795. data/src/core/xds/grpc/xds_http_filter_registry.cc +2 -12
  796. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +25 -119
  797. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +27 -15
  798. data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -12
  799. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +0 -149
  800. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +19 -8
  801. data/src/core/xds/grpc/xds_lb_policy_registry.cc +18 -0
  802. data/src/core/xds/grpc/xds_listener_parser.cc +13 -9
  803. data/src/core/xds/grpc/xds_metadata_parser.cc +0 -2
  804. data/src/core/xds/grpc/xds_route_config.h +1 -1
  805. data/src/core/xds/grpc/xds_route_config_parser.cc +10 -16
  806. data/src/core/xds/grpc/xds_routing.cc +115 -90
  807. data/src/core/xds/grpc/xds_routing.h +73 -24
  808. data/src/core/xds/grpc/xds_server_grpc.cc +22 -13
  809. data/src/core/xds/grpc/xds_server_grpc.h +16 -2
  810. data/src/core/xds/grpc/xds_server_grpc_interface.h +10 -0
  811. data/src/core/xds/grpc/xds_transport_grpc.cc +123 -18
  812. data/src/core/xds/grpc/xds_transport_grpc.h +28 -4
  813. data/src/core/xds/xds_client/lrs_client.cc +4 -8
  814. data/src/core/xds/xds_client/xds_bootstrap.cc +4 -16
  815. data/src/core/xds/xds_client/xds_client.cc +2 -15
  816. data/src/core/xds/xds_client/xds_transport.h +3 -0
  817. data/src/ruby/ext/grpc/rb_byte_buffer.c +1 -0
  818. data/src/ruby/ext/grpc/rb_call.c +3 -0
  819. data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
  820. data/src/ruby/ext/grpc/rb_channel.c +1 -0
  821. data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
  822. data/src/ruby/ext/grpc/rb_channel_credentials.c +1 -0
  823. data/src/ruby/ext/grpc/rb_completion_queue.c +1 -0
  824. data/src/ruby/ext/grpc/rb_compression_options.c +1 -0
  825. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -4
  826. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -6
  827. data/src/ruby/ext/grpc/rb_server.c +1 -0
  828. data/src/ruby/ext/grpc/rb_server_credentials.c +1 -0
  829. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +1 -0
  830. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +1 -0
  831. data/src/ruby/lib/grpc/core/call_credentials.rb +86 -0
  832. data/src/ruby/lib/grpc/core/channel_credentials.rb +69 -0
  833. data/src/ruby/lib/grpc/core/credentials_helper.rb +126 -0
  834. data/src/ruby/lib/grpc/generic/client_stub.rb +86 -73
  835. data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
  836. data/src/ruby/lib/grpc/version.rb +1 -1
  837. data/src/ruby/lib/grpc.rb +25 -0
  838. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -1
  839. data/src/ruby/spec/call_credentials_spec.rb +52 -2
  840. data/src/ruby/spec/credentials_helper_spec.rb +80 -0
  841. data/src/ruby/spec/generic/client_stub_spec.rb +27 -4
  842. data/src/ruby/spec/generic/server_interceptors_spec.rb +17 -3
  843. data/third_party/upb/upb/base/error_handler.h +79 -0
  844. data/third_party/upb/upb/base/internal/log2.h +29 -5
  845. data/third_party/upb/upb/generated_code_support.h +1 -0
  846. data/third_party/upb/upb/hash/common.c +129 -14
  847. data/third_party/upb/upb/hash/common.h +1 -1
  848. data/third_party/upb/upb/hash/ext_table.h +65 -0
  849. data/third_party/upb/upb/lex/strtod.c +14 -5
  850. data/third_party/upb/upb/mem/arena.c +113 -95
  851. data/third_party/upb/upb/mem/internal/arena.h +13 -8
  852. data/third_party/upb/upb/message/accessors.c +2 -3
  853. data/third_party/upb/upb/message/accessors.h +32 -12
  854. data/third_party/upb/upb/message/array.c +51 -2
  855. data/third_party/upb/upb/message/array.h +10 -0
  856. data/third_party/upb/upb/message/copy.c +18 -34
  857. data/third_party/upb/upb/message/internal/accessors.h +15 -49
  858. data/third_party/upb/upb/message/internal/array.h +1 -1
  859. data/third_party/upb/upb/message/internal/map.h +1 -1
  860. data/third_party/upb/upb/message/internal/message.c +8 -1
  861. data/third_party/upb/upb/message/internal/message.h +40 -10
  862. data/third_party/upb/upb/message/message.c +3 -2
  863. data/third_party/upb/upb/message/value.h +0 -6
  864. data/third_party/upb/upb/mini_descriptor/decode.c +78 -59
  865. data/third_party/upb/upb/mini_descriptor/link.c +8 -6
  866. data/third_party/upb/upb/mini_table/extension_registry.c +17 -49
  867. data/third_party/upb/upb/mini_table/extension_registry.h +5 -17
  868. data/third_party/upb/upb/mini_table/generated_registry.c +180 -0
  869. data/third_party/upb/upb/mini_table/generated_registry.h +66 -0
  870. data/third_party/upb/upb/mini_table/internal/extension.h +5 -3
  871. data/third_party/upb/upb/mini_table/internal/field.h +7 -5
  872. data/third_party/upb/upb/mini_table/internal/generated_registry.h +37 -0
  873. data/third_party/upb/upb/mini_table/internal/message.c +0 -18
  874. data/third_party/upb/upb/mini_table/internal/message.h +24 -41
  875. data/third_party/upb/upb/mini_table/internal/size_log2.h +2 -1
  876. data/third_party/upb/upb/mini_table/internal/sub.h +2 -5
  877. data/third_party/upb/upb/mini_table/message.h +34 -13
  878. data/third_party/upb/upb/port/atomic.h +180 -74
  879. data/third_party/upb/upb/port/def.inc +194 -29
  880. data/third_party/upb/upb/port/sanitizers.h +15 -0
  881. data/third_party/upb/upb/port/undef.inc +6 -2
  882. data/third_party/upb/upb/reflection/common.h +0 -6
  883. data/third_party/upb/upb/reflection/def.hpp +8 -12
  884. data/third_party/upb/upb/reflection/def_pool.c +85 -33
  885. data/third_party/upb/upb/reflection/def_pool.h +38 -8
  886. data/third_party/upb/upb/reflection/def_type.h +3 -0
  887. data/third_party/upb/upb/reflection/enum_def.c +45 -33
  888. data/third_party/upb/upb/reflection/enum_def.h +8 -4
  889. data/third_party/upb/upb/reflection/enum_reserved_range.c +7 -3
  890. data/third_party/upb/upb/reflection/enum_value_def.c +14 -29
  891. data/third_party/upb/upb/reflection/enum_value_def.h +5 -4
  892. data/third_party/upb/upb/reflection/extension_range.c +15 -14
  893. data/third_party/upb/upb/reflection/extension_range.h +7 -4
  894. data/third_party/upb/upb/reflection/field_def.c +114 -96
  895. data/third_party/upb/upb/reflection/field_def.h +3 -3
  896. data/third_party/upb/upb/reflection/file_def.c +71 -65
  897. data/third_party/upb/upb/reflection/file_def.h +4 -5
  898. data/third_party/upb/upb/reflection/internal/def_builder.c +22 -14
  899. data/third_party/upb/upb/reflection/internal/def_builder.h +44 -38
  900. data/third_party/upb/upb/reflection/internal/def_pool.h +5 -1
  901. data/third_party/upb/upb/reflection/internal/enum_def.h +6 -4
  902. data/third_party/upb/upb/reflection/internal/enum_reserved_range.h +3 -2
  903. data/third_party/upb/upb/reflection/internal/enum_value_def.h +7 -4
  904. data/third_party/upb/upb/reflection/internal/extension_range.h +4 -3
  905. data/third_party/upb/upb/reflection/internal/field_def.h +15 -12
  906. data/third_party/upb/upb/reflection/internal/file_def.h +8 -1
  907. data/third_party/upb/upb/reflection/internal/message_def.h +10 -7
  908. data/third_party/upb/upb/reflection/internal/message_reserved_range.h +3 -1
  909. data/third_party/upb/upb/reflection/internal/method_def.h +6 -6
  910. data/third_party/upb/upb/reflection/internal/oneof_def.h +6 -6
  911. data/third_party/upb/upb/reflection/internal/service_def.h +9 -6
  912. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  913. data/third_party/upb/upb/reflection/message_def.c +46 -53
  914. data/third_party/upb/upb/reflection/message_def.h +6 -7
  915. data/third_party/upb/upb/reflection/message_reserved_range.c +7 -6
  916. data/third_party/upb/upb/reflection/method_def.c +22 -20
  917. data/third_party/upb/upb/reflection/method_def.h +4 -4
  918. data/third_party/upb/upb/reflection/oneof_def.c +17 -15
  919. data/third_party/upb/upb/reflection/oneof_def.h +6 -3
  920. data/third_party/upb/upb/reflection/service_def.c +50 -23
  921. data/third_party/upb/upb/reflection/service_def.h +7 -4
  922. data/third_party/upb/upb/text/internal/encode.c +7 -10
  923. data/third_party/upb/upb/wire/decode.c +269 -430
  924. data/third_party/upb/upb/wire/decode.h +6 -45
  925. data/third_party/upb/upb/wire/decode_fast/combinations.h +7 -3
  926. data/third_party/upb/upb/wire/decode_fast/select.c +7 -2
  927. data/third_party/upb/upb/wire/encode.c +144 -106
  928. data/third_party/upb/upb/wire/encode.h +6 -2
  929. data/third_party/upb/upb/wire/eps_copy_input_stream.c +36 -7
  930. data/third_party/upb/upb/wire/eps_copy_input_stream.h +94 -380
  931. data/third_party/upb/upb/wire/internal/decoder.c +1 -14
  932. data/third_party/upb/upb/wire/internal/decoder.h +84 -24
  933. data/third_party/upb/upb/wire/internal/eps_copy_input_stream.h +339 -0
  934. data/third_party/upb/upb/wire/internal/reader.h +29 -12
  935. data/third_party/upb/upb/wire/reader.c +35 -22
  936. data/third_party/upb/upb/wire/reader.h +11 -18
  937. data/third_party/utf8_range/utf8_range.c +1 -1
  938. data/third_party/utf8_range/utf8_range.h +2 -1
  939. metadata +35 -13
  940. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +0 -117
  941. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +0 -109
  942. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +0 -80
  943. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +0 -86
  944. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +0 -83
  945. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +0 -91
  946. data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +0 -217
  947. data/third_party/upb/upb/message/internal/tagged_ptr.h +0 -56
  948. data/third_party/upb/upb/message/tagged_ptr.h +0 -48
@@ -41,6 +41,7 @@
41
41
  #include "src/core/channelz/channelz.h"
42
42
  #include "src/core/ext/transport/chttp2/transport/http2_status.h"
43
43
  #include "src/core/lib/debug/trace.h"
44
+ #include "src/core/lib/experiments/experiments.h"
44
45
  #include "src/core/lib/iomgr/call_combiner.h"
45
46
  #include "src/core/lib/iomgr/closure.h"
46
47
  #include "src/core/lib/iomgr/endpoint.h"
@@ -49,8 +50,10 @@
49
50
  #include "src/core/lib/iomgr/polling_entity.h"
50
51
  #include "src/core/lib/promise/arena_promise.h"
51
52
  #include "src/core/lib/promise/context.h"
53
+ #include "src/core/lib/promise/if.h"
52
54
  #include "src/core/lib/promise/latch.h"
53
55
  #include "src/core/lib/promise/pipe.h"
56
+ #include "src/core/lib/promise/promise.h"
54
57
  #include "src/core/lib/resource_quota/arena.h"
55
58
  #include "src/core/lib/slice/slice_buffer.h"
56
59
  #include "src/core/lib/transport/call_final_info.h"
@@ -114,21 +117,45 @@ class ClientInitialMetadataOutstandingToken {
114
117
  : latch_(std::exchange(other.latch_, nullptr)) {}
115
118
  ClientInitialMetadataOutstandingToken& operator=(
116
119
  ClientInitialMetadataOutstandingToken&& other) noexcept {
120
+ if (IsMetadataOutstandingTokenRefactorEnabled()) {
121
+ MaybeSet(false);
122
+ }
117
123
  latch_ = std::exchange(other.latch_, nullptr);
118
124
  return *this;
119
125
  }
120
126
  ~ClientInitialMetadataOutstandingToken() {
121
- if (latch_ != nullptr) latch_->Set(false);
127
+ if (IsMetadataOutstandingTokenRefactorEnabled()) {
128
+ MaybeSet(false);
129
+ } else {
130
+ if (latch_ != nullptr) latch_->Set(false);
131
+ }
132
+ }
133
+ void Complete(bool success) {
134
+ if (IsMetadataOutstandingTokenRefactorEnabled()) {
135
+ MaybeSet(success);
136
+ } else {
137
+ if (latch_ != nullptr) std::exchange(latch_, nullptr)->Set(success);
138
+ }
122
139
  }
123
- void Complete(bool success) { std::exchange(latch_, nullptr)->Set(success); }
124
140
 
125
141
  // Returns a promise that will resolve when this object (or its moved-from
126
- // ancestor) is dropped.
127
- auto Wait() { return latch_->Wait(); }
142
+ // ancestor) is dropped. If the token is Empty(), the promise resolves to
143
+ // false immediately (when the refactor experiment is enabled).
144
+ auto Wait() {
145
+ return If(
146
+ latch_ != nullptr, [latch = latch_]() { return latch->Wait(); },
147
+ []() { return Immediate(false); });
148
+ }
128
149
 
129
150
  private:
130
151
  ClientInitialMetadataOutstandingToken() = default;
131
152
 
153
+ void MaybeSet(bool status) {
154
+ if (latch_ != nullptr && !latch_->is_set()) {
155
+ latch_->Set(status);
156
+ }
157
+ }
158
+
132
159
  Latch<bool>* latch_ = nullptr;
133
160
  };
134
161
 
@@ -880,7 +880,8 @@ GrpcLb::BalancerCallState::BalancerCallState(
880
880
  /*parent_call=*/nullptr, GRPC_PROPAGATE_DEFAULTS,
881
881
  /*cq=*/nullptr, grpclb_policy_->interested_parties(),
882
882
  Slice::FromStaticString("/grpc.lb.v1.LoadBalancer/BalanceLoad"),
883
- /*authority=*/std::nullopt, deadline, /*registered_method=*/true);
883
+ /*authority=*/std::nullopt, deadline, /*registered_method=*/true,
884
+ /*arena_init_function=*/std::nullopt);
884
885
  // Init the LB call request payload.
885
886
  upb::Arena arena;
886
887
  grpc_slice request_payload_slice = GrpcLbRequestCreate(
@@ -23,6 +23,7 @@
23
23
  #include <inttypes.h>
24
24
  #include <string.h>
25
25
 
26
+ #include <cmath>
26
27
  #include <memory>
27
28
  #include <optional>
28
29
  #include <set>
@@ -32,6 +33,7 @@
32
33
  #include <vector>
33
34
 
34
35
  #include "src/core/config/core_configuration.h"
36
+ #include "src/core/config/experiment_env_var.h"
35
37
  #include "src/core/lib/address_utils/sockaddr_utils.h"
36
38
  #include "src/core/lib/channel/channel_args.h"
37
39
  #include "src/core/lib/debug/trace.h"
@@ -538,8 +540,33 @@ absl::Status PickFirst::UpdateLocked(UpdateArgs args) {
538
540
  // Shuffle the list if needed.
539
541
  auto config = static_cast<PickFirstConfig*>(args.config.get());
540
542
  if (config->shuffle_addresses()) {
541
- SharedBitGen g;
542
- absl::c_shuffle(endpoints, g);
543
+ if (PfWeightedShufflingEnabled()) {
544
+ struct WeightedEndpoint {
545
+ EndpointAddresses endpoint;
546
+ double key;
547
+ };
548
+ std::vector<WeightedEndpoint> weighted_endpoints;
549
+ weighted_endpoints.reserve(endpoints.size());
550
+ SharedBitGen g;
551
+ for (auto& endpoint : endpoints) {
552
+ double e = absl::Exponential<double>(g);
553
+ int weight_arg =
554
+ endpoint.args().GetInt(GRPC_ARG_ADDRESS_WEIGHT).value_or(1);
555
+ double weight = weight_arg <= 0 ? 1.0 : weight_arg;
556
+ double key = (weight == 1.0) ? e : (e / weight);
557
+ weighted_endpoints.push_back({std::move(endpoint), key});
558
+ }
559
+ std::sort(weighted_endpoints.begin(), weighted_endpoints.end(),
560
+ [](const WeightedEndpoint& a, const WeightedEndpoint& b) {
561
+ return a.key < b.key;
562
+ });
563
+ for (size_t i = 0; i < weighted_endpoints.size(); ++i) {
564
+ endpoints[i] = std::move(weighted_endpoints[i].endpoint);
565
+ }
566
+ } else {
567
+ SharedBitGen g;
568
+ absl::c_shuffle(endpoints, g);
569
+ }
543
570
  }
544
571
  // Flatten the list so that we have one address per endpoint.
545
572
  // While we're iterating, also determine the desired address family
@@ -1159,6 +1186,10 @@ class PickFirstFactory final : public LoadBalancingPolicyFactory {
1159
1186
 
1160
1187
  } // namespace
1161
1188
 
1189
+ bool PfWeightedShufflingEnabled() {
1190
+ return IsExperimentEnvVarEnabled("GRPC_EXPERIMENTAL_PF_WEIGHTED_SHUFFLING");
1191
+ }
1192
+
1162
1193
  void RegisterPickFirstLbPolicy(CoreConfiguration::Builder* builder) {
1163
1194
  builder->lb_policy_registry()->RegisterLoadBalancingPolicyFactory(
1164
1195
  std::make_unique<PickFirstFactory>());
@@ -33,4 +33,10 @@
33
33
  #define GRPC_ARG_INTERNAL_PICK_FIRST_OMIT_STATUS_MESSAGE_PREFIX \
34
34
  GRPC_ARG_NO_SUBCHANNEL_PREFIX "pick_first_omit_status_message_prefix"
35
35
 
36
+ namespace grpc_core {
37
+
38
+ bool PfWeightedShufflingEnabled();
39
+
40
+ } // namespace grpc_core
41
+
36
42
  #endif // GRPC_SRC_CORE_LOAD_BALANCING_PICK_FIRST_PICK_FIRST_H
@@ -34,6 +34,7 @@
34
34
 
35
35
  #include "src/core/client_channel/client_channel_internal.h"
36
36
  #include "src/core/config/core_configuration.h"
37
+ #include "src/core/config/experiment_env_var.h"
37
38
  #include "src/core/lib/address_utils/sockaddr_utils.h"
38
39
  #include "src/core/lib/channel/channel_args.h"
39
40
  #include "src/core/lib/debug/trace.h"
@@ -51,7 +52,6 @@
51
52
  #include "src/core/resolver/endpoint_addresses.h"
52
53
  #include "src/core/util/crash.h"
53
54
  #include "src/core/util/debug_location.h"
54
- #include "src/core/util/env.h"
55
55
  #include "src/core/util/grpc_check.h"
56
56
  #include "src/core/util/json/json.h"
57
57
  #include "src/core/util/orphanable.h"
@@ -81,19 +81,12 @@ namespace {
81
81
 
82
82
  constexpr absl::string_view kRingHash = "ring_hash_experimental";
83
83
 
84
- bool XdsRingHashSetRequestHashKeyEnabled() {
85
- auto value = GetEnv("GRPC_EXPERIMENTAL_RING_HASH_SET_REQUEST_HASH_KEY");
86
- if (!value.has_value()) return false;
87
- bool parsed_value;
88
- bool parse_succeeded = gpr_parse_bool_value(value->c_str(), &parsed_value);
89
- return parse_succeeded && parsed_value;
90
- }
91
-
92
84
  class RingHashJsonArgs final : public JsonArgs {
93
85
  public:
94
86
  bool IsEnabled(absl::string_view key) const override {
95
87
  if (key == "request_hash_header") {
96
- return XdsRingHashSetRequestHashKeyEnabled();
88
+ return IsExperimentEnvVarEnabled(
89
+ "GRPC_EXPERIMENTAL_RING_HASH_SET_REQUEST_HASH_KEY");
97
90
  }
98
91
  return true;
99
92
  }
@@ -1680,7 +1680,8 @@ void RlsLb::RlsRequest::StartCallLocked() {
1680
1680
  /*parent_call=*/nullptr, GRPC_PROPAGATE_DEFAULTS, /*cq=*/nullptr,
1681
1681
  lb_policy_->interested_parties(),
1682
1682
  Slice::FromStaticString(kRlsRequestPath), /*authority=*/std::nullopt,
1683
- deadline_, /*registered_method=*/true);
1683
+ deadline_, /*registered_method=*/true,
1684
+ /*arena_init_function=*/std::nullopt);
1684
1685
  grpc_op ops[6];
1685
1686
  memset(ops, 0, sizeof(ops));
1686
1687
  grpc_op* op = ops;
@@ -14,6 +14,8 @@
14
14
  // limitations under the License.
15
15
  //
16
16
 
17
+ #include "src/core/load_balancing/weighted_round_robin/weighted_round_robin.h"
18
+
17
19
  #include <grpc/event_engine/event_engine.h>
18
20
  #include <grpc/impl/connectivity_state.h>
19
21
  #include <grpc/support/port_platform.h>
@@ -32,7 +34,9 @@
32
34
  #include <variant>
33
35
  #include <vector>
34
36
 
37
+ #include "src/core/client_channel/client_channel_service_config.h"
35
38
  #include "src/core/config/core_configuration.h"
39
+ #include "src/core/config/experiment_env_var.h"
36
40
  #include "src/core/lib/channel/channel_args.h"
37
41
  #include "src/core/lib/debug/trace.h"
38
42
  #include "src/core/lib/experiments/experiments.h"
@@ -76,6 +80,10 @@
76
80
 
77
81
  namespace grpc_core {
78
82
 
83
+ bool WrrCustomMetricsEnabled() {
84
+ return IsExperimentEnvVarEnabled("GRPC_EXPERIMENTAL_WRR_CUSTOM_METRICS");
85
+ }
86
+
79
87
  namespace {
80
88
 
81
89
  constexpr absl::string_view kWeightedRoundRobin = "weighted_round_robin";
@@ -129,66 +137,129 @@ const auto kMetricEndpointWeights =
129
137
  .OptionalLabels(kMetricLabelLocality, kMetricLabelBackendService)
130
138
  .Build();
131
139
 
132
- // Config for WRR policy.
133
- class WeightedRoundRobinConfig final : public LoadBalancingPolicy::Config {
134
- public:
135
- WeightedRoundRobinConfig() = default;
136
-
137
- WeightedRoundRobinConfig(const WeightedRoundRobinConfig&) = delete;
138
- WeightedRoundRobinConfig& operator=(const WeightedRoundRobinConfig&) = delete;
140
+ double GetUtilization(const BackendMetricData& backend_metric_data,
141
+ const std::vector<WeightedRoundRobinConfig::ParsedMetric>&
142
+ parsed_custom_metrics) {
143
+ double utilization = 0;
144
+ bool custom_metric_found = false;
145
+ if (!parsed_custom_metrics.empty()) {
146
+ for (const auto& metric : parsed_custom_metrics) {
147
+ double value = 0;
148
+ switch (metric.type) {
149
+ case WeightedRoundRobinConfig::ParsedMetric::Type::kCpu:
150
+ value = backend_metric_data.cpu_utilization;
151
+ break;
152
+ case WeightedRoundRobinConfig::ParsedMetric::Type::kMem:
153
+ value = backend_metric_data.mem_utilization;
154
+ break;
155
+ case WeightedRoundRobinConfig::ParsedMetric::Type::kApplication:
156
+ value = backend_metric_data.application_utilization;
157
+ break;
158
+ case WeightedRoundRobinConfig::ParsedMetric::Type::kNamedMetric: {
159
+ auto it = backend_metric_data.named_metrics.find(metric.name);
160
+ if (it != backend_metric_data.named_metrics.end()) {
161
+ value = it->second;
162
+ }
163
+ break;
164
+ }
165
+ case WeightedRoundRobinConfig::ParsedMetric::Type::kUtilization: {
166
+ auto it = backend_metric_data.utilization.find(metric.name);
167
+ if (it != backend_metric_data.utilization.end()) {
168
+ value = it->second;
169
+ }
170
+ break;
171
+ }
172
+ }
173
+ if (value > 0) {
174
+ utilization = std::max(utilization, value);
175
+ custom_metric_found = true;
176
+ }
177
+ }
178
+ }
179
+ if (!custom_metric_found) {
180
+ utilization = backend_metric_data.application_utilization;
181
+ }
182
+ if (utilization <= 0) {
183
+ utilization = backend_metric_data.cpu_utilization;
184
+ }
185
+ return utilization;
186
+ }
187
+ } // namespace
139
188
 
140
- WeightedRoundRobinConfig(WeightedRoundRobinConfig&&) = delete;
141
- WeightedRoundRobinConfig& operator=(WeightedRoundRobinConfig&&) = delete;
189
+ absl::string_view WeightedRoundRobinConfig::name() const {
190
+ return kWeightedRoundRobin;
191
+ }
142
192
 
143
- absl::string_view name() const override { return kWeightedRoundRobin; }
193
+ const JsonLoaderInterface* WeightedRoundRobinConfig::JsonLoader(
194
+ const JsonArgs&) {
195
+ static const auto* loader =
196
+ JsonObjectLoader<WeightedRoundRobinConfig>()
197
+ .OptionalField("enableOobLoadReport",
198
+ &WeightedRoundRobinConfig::enable_oob_load_report_)
199
+ .OptionalField("oobReportingPeriod",
200
+ &WeightedRoundRobinConfig::oob_reporting_period_)
201
+ .OptionalField("blackoutPeriod",
202
+ &WeightedRoundRobinConfig::blackout_period_)
203
+ .OptionalField("weightUpdatePeriod",
204
+ &WeightedRoundRobinConfig::weight_update_period_)
205
+ .OptionalField("weightExpirationPeriod",
206
+ &WeightedRoundRobinConfig::weight_expiration_period_)
207
+ .OptionalField("errorUtilizationPenalty",
208
+ &WeightedRoundRobinConfig::error_utilization_penalty_)
209
+ .Finish();
210
+ return loader;
211
+ }
144
212
 
145
- bool enable_oob_load_report() const { return enable_oob_load_report_; }
146
- Duration oob_reporting_period() const { return oob_reporting_period_; }
147
- Duration blackout_period() const { return blackout_period_; }
148
- Duration weight_update_period() const { return weight_update_period_; }
149
- Duration weight_expiration_period() const {
150
- return weight_expiration_period_;
151
- }
152
- float error_utilization_penalty() const { return error_utilization_penalty_; }
153
-
154
- static const JsonLoaderInterface* JsonLoader(const JsonArgs&) {
155
- static const auto* loader =
156
- JsonObjectLoader<WeightedRoundRobinConfig>()
157
- .OptionalField("enableOobLoadReport",
158
- &WeightedRoundRobinConfig::enable_oob_load_report_)
159
- .OptionalField("oobReportingPeriod",
160
- &WeightedRoundRobinConfig::oob_reporting_period_)
161
- .OptionalField("blackoutPeriod",
162
- &WeightedRoundRobinConfig::blackout_period_)
163
- .OptionalField("weightUpdatePeriod",
164
- &WeightedRoundRobinConfig::weight_update_period_)
165
- .OptionalField("weightExpirationPeriod",
166
- &WeightedRoundRobinConfig::weight_expiration_period_)
167
- .OptionalField(
168
- "errorUtilizationPenalty",
169
- &WeightedRoundRobinConfig::error_utilization_penalty_)
170
- .Finish();
171
- return loader;
172
- }
173
-
174
- void JsonPostLoad(const Json&, const JsonArgs&, ValidationErrors* errors) {
175
- // Impose lower bound of 100ms on weightUpdatePeriod.
176
- weight_update_period_ =
177
- std::max(weight_update_period_, Duration::Milliseconds(100));
178
- if (error_utilization_penalty_ < 0) {
179
- ValidationErrors::ScopedField field(errors, ".errorUtilizationPenalty");
180
- errors->AddError("must be non-negative");
213
+ void WeightedRoundRobinConfig::JsonPostLoad(const Json& json,
214
+ const JsonArgs& args,
215
+ ValidationErrors* errors) {
216
+ // Impose lower bound of 100ms on weightUpdatePeriod.
217
+ weight_update_period_ =
218
+ std::max(weight_update_period_, Duration::Milliseconds(100));
219
+ if (error_utilization_penalty_ < 0) {
220
+ ValidationErrors::ScopedField field(errors, ".errorUtilizationPenalty");
221
+ errors->AddError("must be non-negative");
222
+ }
223
+ if (WrrCustomMetricsEnabled()) {
224
+ std::optional<std::vector<std::string>>
225
+ metric_names_for_computing_utilization =
226
+ LoadJsonObjectField<std::vector<std::string>>(
227
+ json.object(), args, "metricNamesForComputingUtilization",
228
+ errors, /*required=*/false);
229
+ if (metric_names_for_computing_utilization.has_value()) {
230
+ size_t i = 0;
231
+ for (const auto& metric_name : *metric_names_for_computing_utilization) {
232
+ if (metric_name == "cpu_utilization") {
233
+ parsed_custom_metrics_.push_back(
234
+ {WeightedRoundRobinConfig::ParsedMetric::Type::kCpu, ""});
235
+ } else if (metric_name == "mem_utilization") {
236
+ parsed_custom_metrics_.push_back(
237
+ {WeightedRoundRobinConfig::ParsedMetric::Type::kMem, ""});
238
+ } else if (metric_name == "application_utilization") {
239
+ parsed_custom_metrics_.push_back(
240
+ {WeightedRoundRobinConfig::ParsedMetric::Type::kApplication, ""});
241
+ } else if (absl::StartsWith(metric_name, "named_metrics.")) {
242
+ parsed_custom_metrics_.push_back(
243
+ {WeightedRoundRobinConfig::ParsedMetric::Type::kNamedMetric,
244
+ std::string(absl::StripPrefix(metric_name, "named_metrics."))});
245
+ } else if (absl::StartsWith(metric_name, "utilization.")) {
246
+ parsed_custom_metrics_.push_back(
247
+ {WeightedRoundRobinConfig::ParsedMetric::Type::kUtilization,
248
+ std::string(absl::StripPrefix(metric_name, "utilization."))});
249
+ } else {
250
+ ValidationErrors::ScopedField field(
251
+ errors,
252
+ absl::StrCat(".metricNamesForComputingUtilization[", i, "]"));
253
+ errors->AddError(
254
+ absl::StrCat("unsupported metric name \"", metric_name, "\""));
255
+ }
256
+ ++i;
257
+ }
181
258
  }
182
259
  }
260
+ }
183
261
 
184
- private:
185
- bool enable_oob_load_report_ = false;
186
- Duration oob_reporting_period_ = Duration::Seconds(10);
187
- Duration blackout_period_ = Duration::Seconds(10);
188
- Duration weight_update_period_ = Duration::Seconds(1);
189
- Duration weight_expiration_period_ = Duration::Minutes(3);
190
- float error_utilization_penalty_ = 1.0;
191
- };
262
+ namespace {
192
263
 
193
264
  // WRR LB policy
194
265
  class WeightedRoundRobin final : public LoadBalancingPolicy {
@@ -252,16 +323,15 @@ class WeightedRoundRobin final : public LoadBalancingPolicy {
252
323
  class OobWatcher final : public OobBackendMetricWatcher {
253
324
  public:
254
325
  OobWatcher(RefCountedPtr<EndpointWeight> weight,
255
- float error_utilization_penalty)
256
- : weight_(std::move(weight)),
257
- error_utilization_penalty_(error_utilization_penalty) {}
326
+ RefCountedPtr<WeightedRoundRobinConfig> config)
327
+ : weight_(std::move(weight)), config_(std::move(config)) {}
258
328
 
259
329
  void OnBackendMetricReport(
260
330
  const BackendMetricData& backend_metric_data) override;
261
331
 
262
332
  private:
263
333
  RefCountedPtr<EndpointWeight> weight_;
264
- const float error_utilization_penalty_;
334
+ RefCountedPtr<WeightedRoundRobinConfig> config_;
265
335
  };
266
336
 
267
337
  RefCountedPtr<SubchannelInterface> CreateSubchannel(
@@ -341,17 +411,18 @@ class WeightedRoundRobin final : public LoadBalancingPolicy {
341
411
  class SubchannelCallTracker final : public SubchannelCallTrackerInterface {
342
412
  public:
343
413
  SubchannelCallTracker(
344
- RefCountedPtr<EndpointWeight> weight, float error_utilization_penalty,
414
+ RefCountedPtr<EndpointWeight> weight,
415
+ RefCountedPtr<WeightedRoundRobinConfig> config,
345
416
  std::unique_ptr<SubchannelCallTrackerInterface> child_tracker)
346
417
  : weight_(std::move(weight)),
347
- error_utilization_penalty_(error_utilization_penalty),
418
+ config_(std::move(config)),
348
419
  child_tracker_(std::move(child_tracker)) {}
349
420
 
350
421
  void Finish(FinishArgs args) override;
351
422
 
352
423
  private:
353
424
  RefCountedPtr<EndpointWeight> weight_;
354
- const float error_utilization_penalty_;
425
+ RefCountedPtr<WeightedRoundRobinConfig> config_;
355
426
  std::unique_ptr<SubchannelCallTrackerInterface> child_tracker_;
356
427
  };
357
428
 
@@ -520,12 +591,11 @@ void WeightedRoundRobin::Picker::SubchannelCallTracker::Finish(
520
591
  if (backend_metric_data != nullptr) {
521
592
  qps = backend_metric_data->qps;
522
593
  eps = backend_metric_data->eps;
523
- utilization = backend_metric_data->application_utilization;
524
- if (utilization <= 0) {
525
- utilization = backend_metric_data->cpu_utilization;
526
- }
594
+ utilization =
595
+ GetUtilization(*backend_metric_data, config_->parsed_custom_metrics());
527
596
  }
528
- weight_->MaybeUpdateWeight(qps, eps, utilization, error_utilization_penalty_);
597
+ weight_->MaybeUpdateWeight(qps, eps, utilization,
598
+ config_->error_utilization_penalty());
529
599
  }
530
600
 
531
601
  //
@@ -583,7 +653,7 @@ WeightedRoundRobin::PickResult WeightedRoundRobin::Picker::Pick(PickArgs args) {
583
653
  if (complete != nullptr) {
584
654
  complete->subchannel_call_tracker =
585
655
  std::make_unique<SubchannelCallTracker>(
586
- endpoint_info.weight, config_->error_utilization_penalty(),
656
+ endpoint_info.weight, config_,
587
657
  std::move(complete->subchannel_call_tracker));
588
658
  }
589
659
  }
@@ -817,12 +887,10 @@ WeightedRoundRobin::GetOrCreateWeight(
817
887
 
818
888
  void WeightedRoundRobin::WrrEndpointList::WrrEndpoint::OobWatcher::
819
889
  OnBackendMetricReport(const BackendMetricData& backend_metric_data) {
820
- double utilization = backend_metric_data.application_utilization;
821
- if (utilization <= 0) {
822
- utilization = backend_metric_data.cpu_utilization;
823
- }
890
+ double utilization =
891
+ GetUtilization(backend_metric_data, config_->parsed_custom_metrics());
824
892
  weight_->MaybeUpdateWeight(backend_metric_data.qps, backend_metric_data.eps,
825
- utilization, error_utilization_penalty_);
893
+ utilization, config_->error_utilization_penalty());
826
894
  }
827
895
 
828
896
  //
@@ -840,8 +908,7 @@ WeightedRoundRobin::WrrEndpointList::WrrEndpoint::CreateSubchannel(
840
908
  if (wrr->config_->enable_oob_load_report()) {
841
909
  subchannel->AddDataWatcher(MakeOobBackendMetricWatcher(
842
910
  wrr->config_->oob_reporting_period(),
843
- std::make_unique<OobWatcher>(
844
- weight_, wrr->config_->error_utilization_penalty())));
911
+ std::make_unique<OobWatcher>(weight_, wrr->config_)));
845
912
  }
846
913
  return subchannel;
847
914
  }
@@ -0,0 +1,88 @@
1
+ //
2
+ // Copyright 2026 gRPC authors.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ //
16
+
17
+ #ifndef GRPC_SRC_CORE_LOAD_BALANCING_WEIGHTED_ROUND_ROBIN_WEIGHTED_ROUND_ROBIN_H
18
+ #define GRPC_SRC_CORE_LOAD_BALANCING_WEIGHTED_ROUND_ROBIN_WEIGHTED_ROUND_ROBIN_H
19
+
20
+ #include <grpc/support/port_platform.h>
21
+
22
+ #include <string>
23
+ #include <vector>
24
+
25
+ #include "src/core/load_balancing/lb_policy.h"
26
+ #include "src/core/util/json/json_object_loader.h"
27
+ #include "src/core/util/time.h"
28
+ #include "src/core/util/validation_errors.h"
29
+ #include "absl/strings/string_view.h"
30
+
31
+ namespace grpc_core {
32
+
33
+ bool WrrCustomMetricsEnabled();
34
+
35
+ class WeightedRoundRobinConfig final : public LoadBalancingPolicy::Config {
36
+ public:
37
+ struct ParsedMetric {
38
+ enum class Type {
39
+ kCpu,
40
+ kMem,
41
+ kApplication,
42
+ kNamedMetric,
43
+ kUtilization,
44
+ };
45
+ Type type;
46
+ std::string name;
47
+ };
48
+
49
+ WeightedRoundRobinConfig() = default;
50
+
51
+ WeightedRoundRobinConfig(const WeightedRoundRobinConfig&) = delete;
52
+ WeightedRoundRobinConfig& operator=(const WeightedRoundRobinConfig&) = delete;
53
+
54
+ WeightedRoundRobinConfig(WeightedRoundRobinConfig&&) = delete;
55
+ WeightedRoundRobinConfig& operator=(WeightedRoundRobinConfig&&) = delete;
56
+
57
+ absl::string_view name() const override;
58
+
59
+ bool enable_oob_load_report() const { return enable_oob_load_report_; }
60
+ Duration oob_reporting_period() const { return oob_reporting_period_; }
61
+ Duration blackout_period() const { return blackout_period_; }
62
+ Duration weight_update_period() const { return weight_update_period_; }
63
+ Duration weight_expiration_period() const {
64
+ return weight_expiration_period_;
65
+ }
66
+ float error_utilization_penalty() const { return error_utilization_penalty_; }
67
+ const std::vector<ParsedMetric>& parsed_custom_metrics() const {
68
+ return parsed_custom_metrics_;
69
+ }
70
+
71
+ static const JsonLoaderInterface* JsonLoader(const JsonArgs& args);
72
+
73
+ void JsonPostLoad(const Json& json, const JsonArgs& args,
74
+ ValidationErrors* errors);
75
+
76
+ private:
77
+ bool enable_oob_load_report_ = false;
78
+ Duration oob_reporting_period_ = Duration::Seconds(10);
79
+ Duration blackout_period_ = Duration::Seconds(10);
80
+ Duration weight_update_period_ = Duration::Seconds(1);
81
+ Duration weight_expiration_period_ = Duration::Minutes(3);
82
+ float error_utilization_penalty_ = 1.0;
83
+ std::vector<ParsedMetric> parsed_custom_metrics_;
84
+ };
85
+
86
+ } // namespace grpc_core
87
+
88
+ #endif // GRPC_SRC_CORE_LOAD_BALANCING_WEIGHTED_ROUND_ROBIN_WEIGHTED_ROUND_ROBIN_H