grpc 1.81.1 → 1.83.1

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 (955) 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/http/message_compress/compression_filter.cc +25 -32
  72. data/src/core/ext/filters/http/message_compress/compression_filter.h +0 -1
  73. data/src/core/ext/filters/message_size/message_size_filter.cc +1 -81
  74. data/src/core/ext/filters/message_size/message_size_filter.h +1 -50
  75. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -1
  76. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +13 -56
  77. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +0 -14
  78. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
  79. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +184 -54
  80. data/src/core/ext/transport/chttp2/server/chttp2_server.h +10 -1
  81. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +132 -18
  82. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
  83. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  84. data/src/core/ext/transport/chttp2/transport/flow_control.h +14 -2
  85. data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +2 -4
  86. data/src/core/ext/transport/chttp2/transport/frame.cc +120 -13
  87. data/src/core/ext/transport/chttp2/transport/frame.h +57 -10
  88. data/src/core/ext/transport/chttp2/transport/frame_data.cc +34 -2
  89. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +55 -23
  90. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -0
  91. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -1
  92. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +13 -7
  93. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -1
  94. data/src/core/ext/transport/chttp2/transport/frame_security.cc +10 -1
  95. data/src/core/ext/transport/chttp2/transport/frame_security.h +2 -1
  96. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
  97. data/src/core/ext/transport/chttp2/transport/goaway.cc +11 -1
  98. data/src/core/ext/transport/chttp2/transport/goaway.h +17 -1
  99. data/src/core/ext/transport/chttp2/transport/header_assembler.h +54 -22
  100. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +53 -5
  101. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +22 -0
  102. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +20 -0
  103. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +42 -1
  104. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -1
  105. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +219 -417
  106. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +49 -29
  107. data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +2073 -0
  108. data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +746 -0
  109. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
  110. data/src/core/ext/transport/chttp2/transport/http2_settings.h +49 -15
  111. data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +0 -2
  112. data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +74 -26
  113. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +39 -15
  114. data/src/core/ext/transport/chttp2/transport/http2_transport.h +18 -48
  115. data/src/core/ext/transport/chttp2/transport/internal.h +24 -0
  116. data/src/core/ext/transport/chttp2/transport/message_assembler.h +1 -2
  117. data/src/core/ext/transport/chttp2/transport/parsing.cc +93 -26
  118. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +1 -1
  119. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +4 -10
  120. data/src/core/ext/transport/chttp2/transport/read_context.h +494 -0
  121. data/src/core/ext/transport/chttp2/transport/security_frame.h +13 -3
  122. data/src/core/ext/transport/chttp2/transport/stream.h +287 -137
  123. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +83 -65
  124. data/src/core/ext/transport/chttp2/transport/write_cycle.h +9 -1
  125. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +16 -2
  126. data/src/core/ext/upb-gen/cel/expr/checked.upb.h +621 -432
  127. data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +264 -166
  128. data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h +0 -13
  129. data/src/core/ext/upb-gen/cel/expr/syntax.upb.h +708 -497
  130. data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +294 -176
  131. data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h +0 -15
  132. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +262 -181
  133. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +84 -58
  134. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +0 -5
  135. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +254 -190
  136. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +107 -53
  137. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +0 -4
  138. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +271 -190
  139. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +88 -64
  140. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +0 -5
  141. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +1035 -730
  142. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +384 -260
  143. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +0 -19
  144. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +87 -56
  145. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +26 -16
  146. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +0 -2
  147. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +105 -71
  148. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +30 -22
  149. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +0 -2
  150. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +31 -29
  151. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +19 -7
  152. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +0 -1
  153. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +25 -23
  154. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +15 -7
  155. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +0 -1
  156. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +25 -23
  157. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +15 -7
  158. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +0 -1
  159. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +201 -165
  160. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +79 -31
  161. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +0 -2
  162. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +29 -26
  163. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +17 -11
  164. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +0 -1
  165. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +46 -29
  166. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +37 -19
  167. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +4 -4
  168. data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +34 -27
  169. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +34 -13
  170. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +1 -2
  171. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +617 -452
  172. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +221 -163
  173. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +0 -16
  174. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +1339 -970
  175. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +484 -324
  176. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +0 -23
  177. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +181 -135
  178. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +59 -43
  179. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +0 -3
  180. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +1353 -1028
  181. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +535 -361
  182. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +0 -25
  183. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +37 -33
  184. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +19 -13
  185. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +0 -1
  186. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +234 -196
  187. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +77 -57
  188. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +0 -1
  189. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +695 -502
  190. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +246 -186
  191. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +0 -15
  192. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb.h +140 -116
  193. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +53 -43
  194. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.h +0 -3
  195. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +363 -269
  196. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +131 -89
  197. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +0 -8
  198. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +35 -31
  199. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +15 -13
  200. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +0 -1
  201. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +1073 -769
  202. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +515 -293
  203. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +0 -30
  204. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb.h +25 -23
  205. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +15 -7
  206. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.h +0 -1
  207. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +375 -267
  208. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +142 -86
  209. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +0 -7
  210. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +32 -27
  211. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +13 -11
  212. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +0 -1
  213. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +29 -26
  214. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +17 -11
  215. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +0 -1
  216. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +87 -56
  217. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +26 -16
  218. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +0 -2
  219. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +634 -468
  220. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +255 -161
  221. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +0 -14
  222. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +672 -474
  223. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +228 -130
  224. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +0 -9
  225. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +56 -40
  226. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +15 -13
  227. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +0 -1
  228. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +34 -29
  229. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +19 -11
  230. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +0 -1
  231. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +811 -635
  232. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +347 -221
  233. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +0 -16
  234. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +174 -118
  235. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +62 -38
  236. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +0 -4
  237. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +78 -57
  238. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +28 -18
  239. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +0 -2
  240. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +37 -33
  241. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +22 -14
  242. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +0 -1
  243. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +159 -119
  244. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +47 -35
  245. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +0 -5
  246. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +101 -76
  247. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +41 -23
  248. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +0 -2
  249. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +35 -31
  250. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +15 -13
  251. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +0 -1
  252. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +189 -127
  253. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +79 -49
  254. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +0 -4
  255. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +378 -283
  256. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +156 -98
  257. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +0 -8
  258. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +354 -255
  259. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +125 -69
  260. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +0 -6
  261. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +27 -24
  262. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +13 -11
  263. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +0 -1
  264. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +611 -451
  265. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +159 -119
  266. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +0 -11
  267. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +468 -321
  268. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +157 -99
  269. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +0 -6
  270. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +146 -119
  271. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +55 -35
  272. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +0 -1
  273. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +61 -51
  274. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +16 -16
  275. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +0 -2
  276. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +43 -39
  277. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +25 -13
  278. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +0 -1
  279. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +341 -247
  280. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +130 -84
  281. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +0 -8
  282. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +452 -313
  283. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +144 -100
  284. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +0 -10
  285. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +666 -493
  286. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +251 -181
  287. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +0 -12
  288. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +327 -197
  289. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +92 -48
  290. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +0 -3
  291. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +3583 -2532
  292. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +1340 -816
  293. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +0 -60
  294. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +111 -82
  295. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +48 -28
  296. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +0 -3
  297. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +548 -410
  298. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +214 -148
  299. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +0 -12
  300. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +59 -50
  301. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +30 -20
  302. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +0 -2
  303. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +29 -26
  304. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +17 -11
  305. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +0 -1
  306. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +60 -49
  307. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +28 -20
  308. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +0 -2
  309. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +50 -36
  310. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +19 -11
  311. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +0 -1
  312. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +82 -63
  313. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +27 -19
  314. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +0 -1
  315. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +27 -24
  316. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +13 -11
  317. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +0 -1
  318. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +70 -58
  319. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +32 -22
  320. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +0 -2
  321. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +2 -5
  322. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +1 -1
  323. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +73 -62
  324. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +39 -25
  325. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +0 -2
  326. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +49 -45
  327. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +33 -13
  328. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +0 -1
  329. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +771 -588
  330. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +383 -185
  331. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +0 -16
  332. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +66 -47
  333. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +31 -17
  334. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +0 -2
  335. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb.h +69 -58
  336. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.c +27 -23
  337. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.h +0 -2
  338. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +151 -119
  339. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +45 -39
  340. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +0 -5
  341. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb.h +19 -17
  342. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.c +1 -3
  343. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.h +0 -1
  344. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb.h +144 -109
  345. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.c +46 -38
  346. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.h +0 -4
  347. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +184 -139
  348. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +65 -35
  349. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +0 -3
  350. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +129 -106
  351. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +69 -41
  352. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +0 -4
  353. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +83 -71
  354. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +40 -26
  355. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +0 -2
  356. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +148 -101
  357. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +45 -27
  358. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +0 -2
  359. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +62 -51
  360. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +35 -21
  361. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +0 -2
  362. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1362 -1024
  363. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +508 -336
  364. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +0 -22
  365. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb.h +21 -19
  366. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +13 -7
  367. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.h +0 -1
  368. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb.h +35 -31
  369. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.c +15 -13
  370. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.h +0 -1
  371. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb.h +27 -24
  372. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.c +13 -11
  373. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.h +0 -1
  374. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +27 -24
  375. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +13 -11
  376. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +0 -1
  377. 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
  378. 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
  379. 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
  380. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +231 -179
  381. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +88 -66
  382. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +0 -6
  383. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +21 -19
  384. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +13 -7
  385. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +0 -1
  386. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +63 -56
  387. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +31 -19
  388. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +0 -1
  389. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +27 -24
  390. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +13 -11
  391. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +0 -1
  392. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +27 -24
  393. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +13 -11
  394. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +0 -1
  395. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -5
  396. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +1 -1
  397. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +538 -364
  398. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +157 -95
  399. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +0 -8
  400. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -110
  401. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +69 -49
  402. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +0 -4
  403. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +517 -389
  404. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +182 -116
  405. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +0 -7
  406. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +84 -62
  407. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +30 -22
  408. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +0 -2
  409. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +340 -256
  410. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +92 -82
  411. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +0 -5
  412. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +19 -17
  413. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +1 -3
  414. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +0 -1
  415. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +857 -566
  416. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +288 -182
  417. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +0 -15
  418. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +105 -72
  419. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +36 -22
  420. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +0 -2
  421. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +312 -226
  422. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +132 -78
  423. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +0 -5
  424. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +82 -61
  425. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +35 -19
  426. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +0 -2
  427. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +123 -89
  428. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +25 -25
  429. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +0 -4
  430. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h +48 -33
  431. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +13 -11
  432. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h +0 -1
  433. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +42 -36
  434. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +19 -13
  435. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +0 -1
  436. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +101 -79
  437. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +61 -31
  438. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +0 -5
  439. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +83 -60
  440. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +37 -19
  441. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +0 -2
  442. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +56 -40
  443. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +15 -13
  444. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +0 -1
  445. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +34 -29
  446. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +13 -11
  447. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +0 -1
  448. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +32 -27
  449. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +13 -11
  450. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +0 -1
  451. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +88 -71
  452. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +48 -30
  453. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +0 -3
  454. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +37 -30
  455. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +1 -5
  456. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +0 -2
  457. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +95 -71
  458. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +36 -22
  459. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +0 -2
  460. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +79 -56
  461. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +26 -18
  462. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +0 -2
  463. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +164 -124
  464. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +54 -40
  465. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +0 -4
  466. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +200 -147
  467. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +47 -41
  468. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +0 -7
  469. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +160 -130
  470. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +89 -47
  471. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +0 -5
  472. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +78 -62
  473. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +26 -20
  474. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +0 -3
  475. data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +2 -5
  476. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +1 -1
  477. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +21 -19
  478. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +13 -7
  479. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +0 -1
  480. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +43 -36
  481. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +22 -12
  482. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +0 -2
  483. data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +67 -55
  484. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +36 -18
  485. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +0 -3
  486. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +62 -51
  487. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +33 -19
  488. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +0 -2
  489. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +2 -5
  490. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +1 -1
  491. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +25 -23
  492. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +15 -7
  493. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +0 -1
  494. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +37 -33
  495. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +19 -13
  496. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +0 -1
  497. data/src/core/ext/upb-gen/google/api/annotations.upb.h +15 -13
  498. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +22 -7
  499. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +1 -1
  500. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +619 -430
  501. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +260 -168
  502. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +0 -13
  503. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +734 -518
  504. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +312 -182
  505. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +0 -16
  506. data/src/core/ext/upb-gen/google/api/http.upb.h +146 -105
  507. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +65 -29
  508. data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +0 -3
  509. data/src/core/ext/upb-gen/google/api/httpbody.upb.h +52 -37
  510. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +19 -11
  511. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +0 -1
  512. data/src/core/ext/upb-gen/google/protobuf/any.upb.h +23 -21
  513. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +15 -7
  514. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +0 -1
  515. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +2236 -1514
  516. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +824 -406
  517. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +0 -34
  518. data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +23 -21
  519. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +15 -7
  520. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +0 -1
  521. data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +19 -17
  522. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +1 -3
  523. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +0 -1
  524. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +149 -100
  525. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +59 -43
  526. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +0 -4
  527. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +23 -21
  528. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +15 -7
  529. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +0 -1
  530. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +181 -139
  531. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +99 -53
  532. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +0 -9
  533. data/src/core/ext/upb-gen/google/rpc/status.upb.h +52 -37
  534. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +19 -11
  535. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +0 -1
  536. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h +1553 -1157
  537. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +712 -410
  538. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h +0 -39
  539. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +189 -125
  540. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +59 -35
  541. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +0 -3
  542. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +454 -343
  543. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +204 -130
  544. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +0 -11
  545. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +369 -243
  546. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +109 -79
  547. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +0 -7
  548. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +256 -175
  549. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +122 -68
  550. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +0 -8
  551. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +71 -51
  552. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +39 -19
  553. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +0 -2
  554. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +583 -407
  555. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +259 -145
  556. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +0 -12
  557. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +114 -84
  558. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +52 -30
  559. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +0 -4
  560. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +41 -34
  561. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +25 -13
  562. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +0 -2
  563. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +309 -230
  564. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +123 -79
  565. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +0 -9
  566. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +98 -63
  567. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +51 -23
  568. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +0 -3
  569. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +505 -312
  570. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +159 -87
  571. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +0 -9
  572. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +128 -91
  573. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +82 -41
  574. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +5 -8
  575. data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +36 -29
  576. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +36 -13
  577. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +1 -2
  578. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +13 -11
  579. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +22 -7
  580. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +1 -1
  581. data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +36 -29
  582. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +36 -13
  583. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +1 -2
  584. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +34 -27
  585. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +34 -13
  586. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +1 -2
  587. data/src/core/ext/upb-gen/validate/validate.upb.h +1682 -1130
  588. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +587 -247
  589. data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +4 -27
  590. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +128 -91
  591. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +82 -41
  592. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +5 -8
  593. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +36 -29
  594. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +36 -13
  595. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +1 -2
  596. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +13 -11
  597. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +22 -7
  598. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +1 -1
  599. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +122 -90
  600. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +82 -39
  601. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +3 -7
  602. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +34 -27
  603. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +34 -13
  604. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +1 -2
  605. data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +21 -19
  606. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +13 -7
  607. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +0 -1
  608. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +29 -26
  609. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +17 -11
  610. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +0 -1
  611. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +70 -58
  612. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +32 -22
  613. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +0 -2
  614. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +53 -34
  615. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +26 -16
  616. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +0 -2
  617. data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +29 -26
  618. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +17 -11
  619. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +0 -1
  620. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +37 -33
  621. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +22 -14
  622. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +0 -1
  623. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +102 -76
  624. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +43 -23
  625. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +0 -2
  626. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +33 -30
  627. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +19 -11
  628. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +0 -1
  629. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +136 -83
  630. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +41 -33
  631. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +0 -4
  632. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +46 -32
  633. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +20 -12
  634. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +0 -1
  635. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +29 -26
  636. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +20 -12
  637. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +0 -1
  638. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +93 -61
  639. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +28 -20
  640. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +0 -2
  641. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +19 -17
  642. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +1 -3
  643. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +0 -1
  644. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +105 -71
  645. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +32 -22
  646. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +0 -2
  647. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +430 -314
  648. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +153 -123
  649. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +0 -10
  650. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +307 -199
  651. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +74 -62
  652. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +0 -6
  653. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +52 -42
  654. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +19 -13
  655. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +0 -2
  656. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +95 -71
  657. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +36 -22
  658. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +0 -2
  659. data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +92 -77
  660. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +42 -28
  661. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +0 -2
  662. data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +67 -55
  663. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +36 -18
  664. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +0 -3
  665. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +29 -26
  666. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +17 -11
  667. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +0 -1
  668. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +885 -855
  669. data/src/core/filter/composite/composite_filter.cc +10 -3
  670. data/src/core/filter/composite/composite_filter.h +11 -1
  671. data/src/core/filter/filter_args.h +4 -22
  672. data/src/core/handshaker/handshaker.cc +10 -2
  673. data/src/core/handshaker/security/secure_endpoint.cc +60 -5
  674. data/src/core/lib/channel/channel_args.h +12 -6
  675. data/src/core/lib/channel/channel_stack.cc +1 -2
  676. data/src/core/lib/channel/channel_stack.h +1 -7
  677. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
  678. data/src/core/lib/channel/channel_stack_builder_impl.h +0 -7
  679. data/src/core/lib/channel/promise_based_filter.cc +90 -4
  680. data/src/core/lib/channel/promise_based_filter.h +241 -188
  681. data/src/core/lib/compression/message_compress.cc +132 -97
  682. data/src/core/lib/compression/message_compress.h +24 -0
  683. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +0 -13
  684. data/src/core/lib/event_engine/extensions/receive_coalescing_extension.h +44 -0
  685. data/src/core/lib/event_engine/extensions/tcp_trace.h +1 -1
  686. data/src/core/lib/event_engine/posix.h +2 -0
  687. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +2 -1
  688. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +11 -8
  689. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +9 -18
  690. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +1 -1
  691. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +2 -1
  692. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +10 -10
  693. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +1 -1
  694. data/src/core/lib/event_engine/shim.cc +2 -16
  695. data/src/core/lib/event_engine/shim.h +0 -4
  696. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +1 -1
  697. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +5 -4
  698. data/src/core/lib/experiments/experiments.cc +318 -183
  699. data/src/core/lib/experiments/experiments.h +186 -93
  700. data/src/core/lib/iomgr/buffer_list.h +1 -1
  701. data/src/core/lib/iomgr/error.cc +3 -73
  702. data/src/core/lib/iomgr/error.h +8 -6
  703. data/src/core/lib/iomgr/error_cfstream.cc +1 -2
  704. data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -7
  705. data/src/core/lib/iomgr/ev_poll_posix.cc +2 -6
  706. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
  707. data/src/core/lib/iomgr/tcp_posix.cc +4 -7
  708. data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
  709. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
  710. data/src/core/lib/promise/detail/promise_factory.h +8 -8
  711. data/src/core/lib/promise/interceptor_list.h +1 -1
  712. data/src/core/lib/promise/try_seq.h +2 -2
  713. data/src/core/lib/resource_quota/telemetry.cc +54 -0
  714. data/src/core/lib/resource_quota/telemetry.h +5 -23
  715. data/src/core/lib/security/authorization/audit_logging.cc +2 -2
  716. data/src/core/lib/security/authorization/audit_logging.h +3 -3
  717. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +11 -13
  718. data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -1
  719. data/src/core/lib/security/authorization/matchers.cc +20 -20
  720. data/src/core/lib/security/authorization/matchers.h +15 -16
  721. data/src/core/lib/security/authorization/rbac_policy.h +1 -1
  722. data/src/core/lib/security/authorization/stdout_logger.cc +3 -3
  723. data/src/core/lib/security/authorization/stdout_logger.h +6 -5
  724. data/src/core/lib/surface/call.cc +6 -9
  725. data/src/core/lib/surface/call.h +11 -0
  726. data/src/core/lib/surface/channel.cc +21 -2
  727. data/src/core/lib/surface/channel.h +14 -6
  728. data/src/core/lib/surface/filter_stack_call.cc +10 -29
  729. data/src/core/lib/surface/legacy_channel.cc +9 -7
  730. data/src/core/lib/surface/legacy_channel.h +3 -1
  731. data/src/core/lib/surface/version.cc +2 -2
  732. data/src/core/lib/transport/bdp_estimator.cc +13 -13
  733. data/src/core/lib/transport/bdp_estimator.h +9 -5
  734. data/src/core/lib/transport/error_utils.cc +26 -138
  735. data/src/core/lib/transport/promise_endpoint.h +8 -8
  736. data/src/core/lib/transport/transport.h +31 -4
  737. data/src/core/load_balancing/grpclb/grpclb.cc +2 -1
  738. data/src/core/load_balancing/pick_first/pick_first.cc +33 -2
  739. data/src/core/load_balancing/pick_first/pick_first.h +6 -0
  740. data/src/core/load_balancing/ring_hash/ring_hash.cc +3 -10
  741. data/src/core/load_balancing/rls/rls.cc +2 -1
  742. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +141 -74
  743. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.h +88 -0
  744. data/src/core/load_balancing/xds/cds.cc +80 -56
  745. data/src/core/load_balancing/xds/cds.h +21 -0
  746. data/src/core/mitigation_engine/mitigation.h +53 -0
  747. data/src/core/mitigation_engine/mitigation_engine.h +81 -0
  748. data/src/core/mitigation_engine/mitigation_provider.h +62 -0
  749. data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
  750. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -5
  751. data/src/core/resolver/dns/dns_resolver_plugin.cc +1 -6
  752. data/src/core/resolver/xds/xds_resolver.cc +37 -144
  753. data/src/core/server/server.cc +40 -18
  754. data/src/core/server/server.h +26 -18
  755. data/src/core/server/server_config_selector.h +5 -4
  756. data/src/core/server/server_config_selector_filter.cc +135 -26
  757. data/src/core/server/server_config_selector_filter.h +1 -0
  758. data/src/core/server/xds_server_config_fetcher.cc +687 -692
  759. data/src/core/server/xds_server_config_fetcher_legacy.cc +1336 -0
  760. data/src/core/telemetry/call_tracer.cc +49 -2
  761. data/src/core/telemetry/call_tracer.h +1 -0
  762. data/src/core/telemetry/histogram.h +10 -89
  763. data/src/core/telemetry/instrument.h +42 -28
  764. data/src/core/telemetry/tcp_tracer.h +38 -0
  765. data/src/core/transport/message_size_service_config.cc +123 -0
  766. data/src/core/transport/message_size_service_config.h +85 -0
  767. data/src/core/transport/session_endpoint.cc +29 -4
  768. data/src/core/transport/session_endpoint.h +4 -0
  769. data/src/core/tsi/alts/crypt/gsec.h +4 -2
  770. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  771. data/src/core/tsi/ssl_telemetry_utils.cc +343 -0
  772. data/src/core/tsi/ssl_telemetry_utils.h +74 -0
  773. data/src/core/tsi/ssl_transport_security.cc +583 -305
  774. data/src/core/tsi/ssl_transport_security.h +22 -6
  775. data/src/core/tsi/ssl_transport_security_utils.cc +2 -0
  776. data/src/core/tsi/transport_security.h +7 -0
  777. data/src/core/util/http_client/httpcli.cc +1 -4
  778. data/src/core/util/http_client/httpcli_security_connector.cc +2 -1
  779. data/src/core/util/http_client/parser.cc +1 -1
  780. data/src/core/util/lru_cache.h +2 -0
  781. data/src/core/util/ref_counted_string.h +1 -1
  782. data/src/core/util/status_helper.cc +71 -192
  783. data/src/core/util/status_helper.h +16 -21
  784. data/src/core/util/tchar.cc +13 -7
  785. data/src/core/util/trie_lookup.h +1 -1
  786. data/src/core/xds/grpc/blackboard.cc +58 -0
  787. data/src/core/{filter → xds/grpc}/blackboard.h +30 -11
  788. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +2 -11
  789. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -7
  790. data/src/core/xds/grpc/xds_cluster_parser.cc +5 -16
  791. data/src/core/xds/grpc/xds_common_types.cc +96 -0
  792. data/src/core/xds/grpc/xds_common_types.h +35 -7
  793. data/src/core/xds/grpc/xds_common_types_parser.cc +205 -134
  794. data/src/core/xds/grpc/xds_common_types_parser.h +18 -1
  795. data/src/core/xds/grpc/xds_endpoint_parser.cc +7 -18
  796. data/src/core/xds/grpc/xds_http_composite_filter.cc +34 -18
  797. data/src/core/xds/grpc/xds_http_composite_filter.h +6 -3
  798. data/src/core/xds/grpc/xds_http_fault_filter.cc +0 -149
  799. data/src/core/xds/grpc/xds_http_fault_filter.h +19 -8
  800. data/src/core/xds/grpc/xds_http_filter.cc +2 -1
  801. data/src/core/xds/grpc/xds_http_filter.h +6 -16
  802. data/src/core/xds/grpc/xds_http_filter_registry.cc +2 -12
  803. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +25 -119
  804. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +27 -15
  805. data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -12
  806. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +0 -149
  807. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +19 -8
  808. data/src/core/xds/grpc/xds_lb_policy_registry.cc +18 -0
  809. data/src/core/xds/grpc/xds_listener_parser.cc +13 -9
  810. data/src/core/xds/grpc/xds_metadata_parser.cc +0 -2
  811. data/src/core/xds/grpc/xds_route_config.h +1 -1
  812. data/src/core/xds/grpc/xds_route_config_parser.cc +10 -16
  813. data/src/core/xds/grpc/xds_routing.cc +115 -90
  814. data/src/core/xds/grpc/xds_routing.h +73 -24
  815. data/src/core/xds/grpc/xds_server_grpc.cc +22 -13
  816. data/src/core/xds/grpc/xds_server_grpc.h +16 -2
  817. data/src/core/xds/grpc/xds_server_grpc_interface.h +10 -0
  818. data/src/core/xds/grpc/xds_transport_grpc.cc +123 -18
  819. data/src/core/xds/grpc/xds_transport_grpc.h +28 -4
  820. data/src/core/xds/xds_client/lrs_client.cc +4 -8
  821. data/src/core/xds/xds_client/xds_bootstrap.cc +4 -16
  822. data/src/core/xds/xds_client/xds_client.cc +2 -15
  823. data/src/core/xds/xds_client/xds_transport.h +3 -0
  824. data/src/ruby/ext/grpc/rb_byte_buffer.c +1 -0
  825. data/src/ruby/ext/grpc/rb_call.c +3 -0
  826. data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
  827. data/src/ruby/ext/grpc/rb_channel.c +1 -0
  828. data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
  829. data/src/ruby/ext/grpc/rb_channel_credentials.c +1 -0
  830. data/src/ruby/ext/grpc/rb_completion_queue.c +1 -0
  831. data/src/ruby/ext/grpc/rb_compression_options.c +1 -0
  832. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -4
  833. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -6
  834. data/src/ruby/ext/grpc/rb_server.c +1 -0
  835. data/src/ruby/ext/grpc/rb_server_credentials.c +1 -0
  836. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +1 -0
  837. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +1 -0
  838. data/src/ruby/lib/grpc/core/call_credentials.rb +86 -0
  839. data/src/ruby/lib/grpc/core/channel_credentials.rb +69 -0
  840. data/src/ruby/lib/grpc/core/credentials_helper.rb +126 -0
  841. data/src/ruby/lib/grpc/generic/client_stub.rb +86 -73
  842. data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
  843. data/src/ruby/lib/grpc/version.rb +1 -1
  844. data/src/ruby/lib/grpc.rb +25 -0
  845. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -1
  846. data/src/ruby/spec/call_credentials_spec.rb +52 -2
  847. data/src/ruby/spec/credentials_helper_spec.rb +80 -0
  848. data/src/ruby/spec/generic/client_stub_spec.rb +27 -4
  849. data/src/ruby/spec/generic/server_interceptors_spec.rb +17 -3
  850. data/third_party/upb/upb/base/error_handler.h +79 -0
  851. data/third_party/upb/upb/base/internal/log2.h +29 -5
  852. data/third_party/upb/upb/generated_code_support.h +1 -0
  853. data/third_party/upb/upb/hash/common.c +129 -14
  854. data/third_party/upb/upb/hash/common.h +1 -1
  855. data/third_party/upb/upb/hash/ext_table.h +65 -0
  856. data/third_party/upb/upb/lex/strtod.c +14 -5
  857. data/third_party/upb/upb/mem/arena.c +113 -95
  858. data/third_party/upb/upb/mem/internal/arena.h +13 -8
  859. data/third_party/upb/upb/message/accessors.c +2 -3
  860. data/third_party/upb/upb/message/accessors.h +32 -12
  861. data/third_party/upb/upb/message/array.c +51 -2
  862. data/third_party/upb/upb/message/array.h +10 -0
  863. data/third_party/upb/upb/message/copy.c +18 -34
  864. data/third_party/upb/upb/message/internal/accessors.h +15 -49
  865. data/third_party/upb/upb/message/internal/array.h +1 -1
  866. data/third_party/upb/upb/message/internal/map.h +1 -1
  867. data/third_party/upb/upb/message/internal/message.c +8 -1
  868. data/third_party/upb/upb/message/internal/message.h +40 -10
  869. data/third_party/upb/upb/message/message.c +3 -2
  870. data/third_party/upb/upb/message/value.h +0 -6
  871. data/third_party/upb/upb/mini_descriptor/decode.c +78 -59
  872. data/third_party/upb/upb/mini_descriptor/link.c +8 -6
  873. data/third_party/upb/upb/mini_table/extension_registry.c +17 -49
  874. data/third_party/upb/upb/mini_table/extension_registry.h +5 -17
  875. data/third_party/upb/upb/mini_table/generated_registry.c +180 -0
  876. data/third_party/upb/upb/mini_table/generated_registry.h +66 -0
  877. data/third_party/upb/upb/mini_table/internal/extension.h +5 -3
  878. data/third_party/upb/upb/mini_table/internal/field.h +7 -5
  879. data/third_party/upb/upb/mini_table/internal/generated_registry.h +37 -0
  880. data/third_party/upb/upb/mini_table/internal/message.c +0 -18
  881. data/third_party/upb/upb/mini_table/internal/message.h +24 -41
  882. data/third_party/upb/upb/mini_table/internal/size_log2.h +2 -1
  883. data/third_party/upb/upb/mini_table/internal/sub.h +2 -5
  884. data/third_party/upb/upb/mini_table/message.h +34 -13
  885. data/third_party/upb/upb/port/atomic.h +180 -74
  886. data/third_party/upb/upb/port/def.inc +194 -29
  887. data/third_party/upb/upb/port/sanitizers.h +15 -0
  888. data/third_party/upb/upb/port/undef.inc +6 -2
  889. data/third_party/upb/upb/reflection/common.h +0 -6
  890. data/third_party/upb/upb/reflection/def.hpp +8 -12
  891. data/third_party/upb/upb/reflection/def_pool.c +85 -33
  892. data/third_party/upb/upb/reflection/def_pool.h +38 -8
  893. data/third_party/upb/upb/reflection/def_type.h +3 -0
  894. data/third_party/upb/upb/reflection/enum_def.c +45 -33
  895. data/third_party/upb/upb/reflection/enum_def.h +8 -4
  896. data/third_party/upb/upb/reflection/enum_reserved_range.c +7 -3
  897. data/third_party/upb/upb/reflection/enum_value_def.c +14 -29
  898. data/third_party/upb/upb/reflection/enum_value_def.h +5 -4
  899. data/third_party/upb/upb/reflection/extension_range.c +15 -14
  900. data/third_party/upb/upb/reflection/extension_range.h +7 -4
  901. data/third_party/upb/upb/reflection/field_def.c +114 -96
  902. data/third_party/upb/upb/reflection/field_def.h +3 -3
  903. data/third_party/upb/upb/reflection/file_def.c +71 -65
  904. data/third_party/upb/upb/reflection/file_def.h +4 -5
  905. data/third_party/upb/upb/reflection/internal/def_builder.c +22 -14
  906. data/third_party/upb/upb/reflection/internal/def_builder.h +44 -38
  907. data/third_party/upb/upb/reflection/internal/def_pool.h +5 -1
  908. data/third_party/upb/upb/reflection/internal/enum_def.h +6 -4
  909. data/third_party/upb/upb/reflection/internal/enum_reserved_range.h +3 -2
  910. data/third_party/upb/upb/reflection/internal/enum_value_def.h +7 -4
  911. data/third_party/upb/upb/reflection/internal/extension_range.h +4 -3
  912. data/third_party/upb/upb/reflection/internal/field_def.h +15 -12
  913. data/third_party/upb/upb/reflection/internal/file_def.h +8 -1
  914. data/third_party/upb/upb/reflection/internal/message_def.h +10 -7
  915. data/third_party/upb/upb/reflection/internal/message_reserved_range.h +3 -1
  916. data/third_party/upb/upb/reflection/internal/method_def.h +6 -6
  917. data/third_party/upb/upb/reflection/internal/oneof_def.h +6 -6
  918. data/third_party/upb/upb/reflection/internal/service_def.h +9 -6
  919. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  920. data/third_party/upb/upb/reflection/message_def.c +46 -53
  921. data/third_party/upb/upb/reflection/message_def.h +6 -7
  922. data/third_party/upb/upb/reflection/message_reserved_range.c +7 -6
  923. data/third_party/upb/upb/reflection/method_def.c +22 -20
  924. data/third_party/upb/upb/reflection/method_def.h +4 -4
  925. data/third_party/upb/upb/reflection/oneof_def.c +17 -15
  926. data/third_party/upb/upb/reflection/oneof_def.h +6 -3
  927. data/third_party/upb/upb/reflection/service_def.c +50 -23
  928. data/third_party/upb/upb/reflection/service_def.h +7 -4
  929. data/third_party/upb/upb/text/internal/encode.c +7 -10
  930. data/third_party/upb/upb/wire/decode.c +269 -430
  931. data/third_party/upb/upb/wire/decode.h +6 -45
  932. data/third_party/upb/upb/wire/decode_fast/combinations.h +7 -3
  933. data/third_party/upb/upb/wire/decode_fast/select.c +7 -2
  934. data/third_party/upb/upb/wire/encode.c +144 -106
  935. data/third_party/upb/upb/wire/encode.h +6 -2
  936. data/third_party/upb/upb/wire/eps_copy_input_stream.c +36 -7
  937. data/third_party/upb/upb/wire/eps_copy_input_stream.h +94 -380
  938. data/third_party/upb/upb/wire/internal/decoder.c +1 -14
  939. data/third_party/upb/upb/wire/internal/decoder.h +84 -24
  940. data/third_party/upb/upb/wire/internal/eps_copy_input_stream.h +339 -0
  941. data/third_party/upb/upb/wire/internal/reader.h +29 -12
  942. data/third_party/upb/upb/wire/reader.c +35 -22
  943. data/third_party/upb/upb/wire/reader.h +11 -18
  944. data/third_party/utf8_range/utf8_range.c +1 -1
  945. data/third_party/utf8_range/utf8_range.h +2 -1
  946. metadata +35 -13
  947. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +0 -117
  948. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +0 -109
  949. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +0 -80
  950. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +0 -86
  951. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +0 -83
  952. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +0 -91
  953. data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +0 -217
  954. data/third_party/upb/upb/message/internal/tagged_ptr.h +0 -56
  955. data/third_party/upb/upb/message/tagged_ptr.h +0 -48
@@ -30,18 +30,20 @@
30
30
  #include "src/core/call/call_spine.h"
31
31
  #include "src/core/call/message.h"
32
32
  #include "src/core/call/metadata.h"
33
+ #include "src/core/call/metadata_batch.h"
33
34
  #include "src/core/ext/transport/chttp2/transport/flow_control.h"
34
35
  #include "src/core/ext/transport/chttp2/transport/frame.h"
35
- #include "src/core/ext/transport/chttp2/transport/header_assembler.h"
36
36
  #include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
37
37
  #include "src/core/ext/transport/chttp2/transport/http2_status.h"
38
38
  #include "src/core/ext/transport/chttp2/transport/message_assembler.h"
39
39
  #include "src/core/ext/transport/chttp2/transport/stream_data_queue.h"
40
40
  #include "src/core/ext/transport/chttp2/transport/write_cycle.h"
41
+ #include "src/core/lib/resource_quota/arena.h"
41
42
  #include "src/core/util/grpc_check.h"
42
43
  #include "src/core/util/ref_counted.h"
43
44
  #include "src/core/util/ref_counted_ptr.h"
44
45
  #include "absl/log/log.h"
46
+ #include "absl/status/status.h"
45
47
 
46
48
  namespace grpc_core {
47
49
  namespace http2 {
@@ -52,13 +54,159 @@ namespace http2 {
52
54
  constexpr uint32_t kStreamQueueSize = /*1 MB*/ 1024u * 1024u;
53
55
  constexpr uint32_t kInvalidStreamId = 0u;
54
56
 
55
- enum class HttpStreamState : uint8_t {
56
- // https://www.rfc-editor.org/rfc/rfc9113.html#name-stream-states
57
- kIdle,
58
- kOpen,
59
- kHalfClosedLocal,
60
- kHalfClosedRemote,
61
- kClosed,
57
+ struct StreamStateChange {
58
+ bool reads_became_closed = false;
59
+ bool stream_became_closed = false;
60
+ std::string DebugString() const {
61
+ return absl::StrCat("reads_became_closed: ", reads_became_closed,
62
+ " stream_became_closed: ", stream_became_closed);
63
+ }
64
+ };
65
+
66
+ class StreamState {
67
+ public:
68
+ explicit StreamState(const bool started) : started_(started) {}
69
+ ~StreamState() = default;
70
+
71
+ // StreamState is neither movable nor copyable.
72
+ StreamState(const StreamState&) = delete;
73
+ StreamState& operator=(const StreamState&) = delete;
74
+ StreamState(StreamState&&) = delete;
75
+ StreamState& operator=(StreamState&&) = delete;
76
+
77
+ // State queries
78
+ bool started() const { return started_; }
79
+ bool reads_closed() const { return reads_closed_; }
80
+ bool half_closed_local() const { return half_closed_local_; }
81
+ bool writes_closed() const {
82
+ return writes_closed_.load(std::memory_order_relaxed);
83
+ }
84
+
85
+ // A stream is closed when both reads and writes are closed.
86
+ bool IsClosed() const { return reads_closed() && writes_closed(); }
87
+
88
+ // A stream is idle if it has not started yet and has not been closed.
89
+ // Note: HTTP/2 does not allow direct transitions from Idle to Half-Closed
90
+ // states (it must go through Open first, which sets `started_` to true).
91
+ // The only transition from Idle for an unstarted stream is to Closed
92
+ // (e.g., via local cancellation). Thus, checking `!started() && !IsClosed()`
93
+ // is sufficient to identify the Idle state.
94
+ bool IsIdle() const { return !started() && !IsClosed(); }
95
+
96
+ bool IsOpen() const {
97
+ return started() && !reads_closed() && !writes_closed() &&
98
+ !half_closed_local();
99
+ }
100
+
101
+ bool IsHalfClosedRemote() const { return reads_closed() && !writes_closed(); }
102
+
103
+ bool IsHalfClosedLocal() const {
104
+ return !reads_closed() && half_closed_local();
105
+ }
106
+
107
+ bool IsHalfClosedLocalSent() const { return half_closed_local(); }
108
+
109
+ std::string DebugString() const {
110
+ return absl::StrCat(
111
+ "started:", started_, " reads_closed:", reads_closed_,
112
+ " half_closed_local:", half_closed_local_,
113
+ " writes_closed:", writes_closed_.load(std::memory_order_relaxed));
114
+ }
115
+
116
+ // Semantic state transitions
117
+ void OnInitialMetadataSent() {
118
+ GRPC_DCHECK(!started_);
119
+ started_ = true;
120
+ }
121
+
122
+ StreamStateChange OnHalfCloseSent() {
123
+ return RunTransition([this]() {
124
+ half_closed_local_ = true;
125
+ MaybeUpdateWritesClosed();
126
+ });
127
+ }
128
+
129
+ StreamStateChange OnTrailingMetadataReceived() {
130
+ return RunTransition([this]() {
131
+ reads_closed_ = true;
132
+ MaybeUpdateWritesClosed();
133
+ });
134
+ }
135
+
136
+ StreamStateChange OnHalfCloseReceived() {
137
+ return RunTransition([this]() { reads_closed_ = true; });
138
+ }
139
+
140
+ StreamStateChange OnResetReceived() {
141
+ return RunTransition([this]() {
142
+ reads_closed_ = true;
143
+ half_closed_local_ = true;
144
+ writes_closed_.store(true, std::memory_order_relaxed);
145
+ });
146
+ }
147
+
148
+ StreamStateChange OnResetSent() {
149
+ return RunTransition([this]() {
150
+ reads_closed_ = true;
151
+ half_closed_local_ = true;
152
+ writes_closed_.store(true, std::memory_order_relaxed);
153
+ });
154
+ }
155
+
156
+ StreamStateChange OnInitiateReset() {
157
+ return RunTransition([this]() { reads_closed_ = true; });
158
+ }
159
+
160
+ // Force setters for fallback/init errors
161
+ StreamStateChange ForceClose() {
162
+ return RunTransition([this]() {
163
+ reads_closed_ = true;
164
+ half_closed_local_ = true;
165
+ writes_closed_.store(true, std::memory_order_relaxed);
166
+ });
167
+ }
168
+
169
+ private:
170
+ template <typename F>
171
+ StreamStateChange RunTransition(F&& transition_func) {
172
+ const bool was_read_closed = reads_closed_;
173
+ const bool was_closed = IsClosed();
174
+
175
+ transition_func();
176
+ GRPC_HTTP2_STREAM_LOG << "StreamState transition from "
177
+ << "{reads_closed: " << was_read_closed
178
+ << ", closed: " << was_closed << "}"
179
+ << " to " << DebugString();
180
+ return {/*reads_became_closed=*/!was_read_closed && reads_closed(),
181
+ /*stream_became_closed=*/!was_closed && IsClosed()};
182
+ }
183
+
184
+ void MaybeUpdateWritesClosed() {
185
+ // Client: if we sent half close and peer closed reads, writes are closed.
186
+ // Server: half_closed_local_ is never explicitly set, so this function is
187
+ // mostly a no-op.
188
+ if (reads_closed_ && half_closed_local_) {
189
+ writes_closed_.store(true, std::memory_order_relaxed);
190
+ }
191
+ }
192
+
193
+ // Started is set to true when initial metadata has been sent on the wire.
194
+ // For client, this is when initial metadata has been sent on the wire. For
195
+ // server, this is when initial metadata has been received from the wire.
196
+ bool started_ = false;
197
+
198
+ // Has peer sent a frame notifying that no more frames will be sent (trailing
199
+ // metadata or RST or half close).
200
+ bool reads_closed_ = false;
201
+
202
+ // Has the transport sent a frame notifying peer that no more data frames will
203
+ // be sent (half close). Note: Client can still send RST after this point
204
+ // until writes are fully closed.
205
+ bool half_closed_local_ = false;
206
+
207
+ // Absolutely nothing can be sent for this stream now (after RST or after both
208
+ // half_close and reads_closed for client).
209
+ std::atomic<bool> writes_closed_{false};
62
210
  };
63
211
 
64
212
  // Managing the streams
@@ -66,15 +214,14 @@ class Stream : public RefCounted<Stream> {
66
214
  public:
67
215
  explicit Stream(CallHandler call_handler,
68
216
  chttp2::TransportFlowControl& transport_flow_control)
69
- : header_assembler_(/*is_client*/ true),
70
- flow_control_(&transport_flow_control),
217
+ : flow_control_(&transport_flow_control),
71
218
  call_(std::move(call_handler)),
72
- is_write_closed_(false),
219
+ state_(/*started=*/false),
73
220
  stream_id_(kInvalidStreamId),
74
- stream_state_(HttpStreamState::kIdle),
75
221
  did_receive_initial_metadata_(false),
76
222
  did_receive_trailing_metadata_(false),
77
223
  did_push_server_trailing_metadata_(false),
224
+ did_cancel_(false),
78
225
  data_queue_(MakeRefCounted<StreamDataQueue<ClientMetadataHandle>>(
79
226
  std::get<CallHandler>(call_).arena(), /*is_client*/ true,
80
227
  /*queue_size*/ kStreamQueueSize)) {}
@@ -82,22 +229,19 @@ class Stream : public RefCounted<Stream> {
82
229
  explicit Stream(CallInitiator call_initiator,
83
230
  chttp2::TransportFlowControl& transport_flow_control,
84
231
  const uint32_t stream_id,
85
- const bool allow_true_binary_metadata_peer,
86
- const bool allow_true_binary_metadata_acked)
87
- : header_assembler_(/*is_client*/ false),
88
- flow_control_(&transport_flow_control),
232
+ const bool allow_true_binary_metadata_peer)
233
+ : flow_control_(&transport_flow_control),
89
234
  call_(std::move(call_initiator)),
90
- is_write_closed_(false),
235
+ state_(/*started=*/true),
91
236
  stream_id_(stream_id),
92
- stream_state_(HttpStreamState::kIdle),
93
237
  did_receive_initial_metadata_(false),
94
238
  did_receive_trailing_metadata_(false),
95
239
  did_push_server_trailing_metadata_(false),
240
+ did_cancel_(false),
96
241
  data_queue_(MakeRefCounted<StreamDataQueue<ClientMetadataHandle>>(
97
242
  std::get<CallInitiator>(call_).arena(), /*is_client*/ false,
98
243
  /*queue_size*/ kStreamQueueSize)) {
99
- InitializeStream(allow_true_binary_metadata_peer,
100
- allow_true_binary_metadata_acked);
244
+ InitializeStream(allow_true_binary_metadata_peer);
101
245
  }
102
246
 
103
247
  Stream(const Stream&) = delete;
@@ -105,24 +249,16 @@ class Stream : public RefCounted<Stream> {
105
249
  Stream& operator=(const Stream&) = delete;
106
250
  Stream& operator=(Stream&&) = delete;
107
251
 
108
- // TODO(akshitpatel) : [PH2][P4] : SetStreamId can be avoided if we pass the
109
- // stream id as a parameter to the dequeue function. The only downside here
110
- // is that we will be creating two new disassemblers for every dequeue call.
111
- // The upside is that we save 8 bytes per call. Decide based on benchmark
112
- // results.
113
252
  void InitializeClientStream(const uint32_t stream_id,
114
- const bool allow_true_binary_metadata_peer,
115
- const bool allow_true_binary_metadata_acked) {
116
- GRPC_DCHECK(std::holds_alternative<CallHandler>(call_))
117
- << "Client Only Function";
253
+ const bool allow_true_binary_metadata_peer) {
254
+ GRPC_DCHECK(is_client()) << "Client Only Function";
118
255
  GRPC_DCHECK_NE(stream_id, 0u);
119
256
  GRPC_DCHECK_EQ(this->stream_id_, 0u);
120
257
  GRPC_HTTP2_STREAM_LOG << "Stream::InitializeClientStream stream_id="
121
258
  << stream_id;
122
259
  if (GPR_LIKELY(this->stream_id_ == 0)) {
123
260
  this->stream_id_ = stream_id;
124
- InitializeStream(allow_true_binary_metadata_peer,
125
- allow_true_binary_metadata_acked);
261
+ InitializeStream(allow_true_binary_metadata_peer);
126
262
  }
127
263
  }
128
264
 
@@ -130,13 +266,16 @@ class Stream : public RefCounted<Stream> {
130
266
  // Data Queue Helpers
131
267
  // All enqueue methods are called from the call party.
132
268
 
133
- auto EnqueueInitialMetadata(ClientMetadataHandle&& metadata) {
269
+ auto EnqueueInitialMetadata(Arena::PoolPtr<grpc_metadata_batch>&& metadata) {
134
270
  GRPC_HTTP2_STREAM_LOG << "Stream::EnqueueInitialMetadata";
135
271
  return data_queue_->EnqueueInitialMetadata(std::move(metadata));
136
272
  }
137
273
 
138
- auto EnqueueTrailingMetadata(ClientMetadataHandle&& metadata) {
274
+ // Only server can send trailing metadata in gRPC C++.
275
+ auto EnqueueTrailingMetadata(ServerMetadataHandle&& metadata) {
139
276
  GRPC_HTTP2_STREAM_LOG << "Stream::EnqueueTrailingMetadata";
277
+ GRPC_DCHECK(std::holds_alternative<CallInitiator>(call_))
278
+ << "Only supported for server";
140
279
  return data_queue_->EnqueueTrailingMetadata(std::move(metadata));
141
280
  }
142
281
 
@@ -149,6 +288,7 @@ class Stream : public RefCounted<Stream> {
149
288
  }
150
289
 
151
290
  auto EnqueueHalfClosed() {
291
+ GRPC_DCHECK(is_client());
152
292
  GRPC_HTTP2_STREAM_LOG << "Stream::EnqueueHalfClosed";
153
293
  return data_queue_->EnqueueHalfClosed();
154
294
  }
@@ -164,14 +304,12 @@ class Stream : public RefCounted<Stream> {
164
304
  const uint32_t stream_flow_control_tokens,
165
305
  const uint32_t max_frame_length, HPackCompressor& encoder,
166
306
  FrameSender& frame_sender) {
167
- HttpStreamState state = stream_state_;
168
307
  // Reset stream MUST not be sent if the stream is idle or closed.
169
308
  return data_queue_->DequeueFrames(tokens, max_frame_length,
170
309
  stream_flow_control_tokens, encoder,
171
310
  frame_sender,
172
311
  /*can_send_reset_stream=*/
173
- !(state == HttpStreamState::kIdle ||
174
- state == HttpStreamState::kClosed));
312
+ !(IsStreamIdle() || IsStreamClosed()));
175
313
  }
176
314
 
177
315
  auto UpdateStreamWritability(const int64_t stream_fc_tokens) {
@@ -180,99 +318,91 @@ class Stream : public RefCounted<Stream> {
180
318
 
181
319
  ////////////////////////////////////////////////////////////////////////////
182
320
  // Stream State Management
183
- // All state management helpers MUST be called from the transport party.
184
-
185
- // Modify the stream state
186
- // The possible stream transitions are as follows:
187
- // kIdle -> kOpen
188
- // kOpen -> kClosed/kHalfClosedLocal/kHalfClosedRemote
189
- // kHalfClosedLocal/kHalfClosedRemote -> kClosed
190
- // kClosed -> kClosed
191
- void SentInitialMetadata() {
192
- GRPC_DCHECK(stream_state_ == HttpStreamState::kIdle);
193
- stream_state_ = HttpStreamState::kOpen;
194
- }
195
-
196
- void MarkHalfClosedLocal() {
197
- switch (stream_state_) {
198
- case HttpStreamState::kIdle:
199
- GRPC_DCHECK(false) << "MarkHalfClosedLocal called for an idle stream";
200
- break;
201
- case HttpStreamState::kOpen:
202
- GRPC_HTTP2_STREAM_LOG
203
- << "Stream::MarkHalfClosedLocal stream_id=" << stream_id_
204
- << " transitioning to kHalfClosedLocal";
205
- stream_state_ = HttpStreamState::kHalfClosedLocal;
206
- break;
207
- case HttpStreamState::kHalfClosedRemote:
208
- GRPC_HTTP2_STREAM_LOG
209
- << "Stream::MarkHalfClosedLocal stream_id=" << stream_id_
210
- << " transitioning to kClosed";
211
- stream_state_ = HttpStreamState::kClosed;
212
- break;
213
- case HttpStreamState::kHalfClosedLocal:
214
- break;
215
- case HttpStreamState::kClosed:
216
- GRPC_HTTP2_STREAM_LOG
217
- << "Stream::MarkHalfClosedLocal stream_id=" << stream_id_
218
- << " already closed";
219
- break;
220
- }
321
+ // All state management helpers, MUST be called from the transport party.
322
+
323
+ // HTTP/2 stream states
324
+ bool IsStreamIdle() const { return state_.IsIdle(); }
325
+ bool IsOpen() const { return state_.IsOpen(); }
326
+ bool IsStreamClosed() const { return state_.IsClosed(); }
327
+ bool IsStreamHalfClosedRemote() const { return state_.IsHalfClosedRemote(); }
328
+ bool IsHalfClosedLocal() const { return state_.IsHalfClosedLocal(); }
329
+ bool IsHalfClosedLocalSent() const { return state_.IsHalfClosedLocalSent(); }
330
+
331
+ // gRPC stream state
332
+ bool IsClosedForReads() const { return state_.reads_closed(); }
333
+ bool IsClosedForWrites() const { return state_.writes_closed(); }
334
+
335
+ // Semantic state transitions
336
+ void OnInitialMetadataSent() {
337
+ GRPC_DCHECK(is_client());
338
+ state_.OnInitialMetadataSent();
221
339
  }
222
340
 
223
- void MarkHalfClosedRemote() {
224
- switch (stream_state_) {
225
- case HttpStreamState::kIdle:
226
- GRPC_DCHECK(false) << "MarkHalfClosedRemote called for an idle stream";
227
- break;
228
- case HttpStreamState::kOpen:
229
- GRPC_HTTP2_STREAM_LOG
230
- << "Stream::MarkHalfClosedRemote stream_id=" << stream_id_
231
- << " transitioning to kHalfClosedRemote";
232
- stream_state_ = HttpStreamState::kHalfClosedRemote;
233
- break;
234
- case HttpStreamState::kHalfClosedLocal:
235
- GRPC_HTTP2_STREAM_LOG
236
- << "Stream::MarkHalfClosedRemote stream_id=" << stream_id_
237
- << " transitioning to kClosed";
238
- stream_state_ = HttpStreamState::kClosed;
239
- break;
240
- case HttpStreamState::kHalfClosedRemote:
241
- break;
242
- case HttpStreamState::kClosed:
243
- GRPC_HTTP2_STREAM_LOG
244
- << "Stream::MarkHalfClosedRemote stream_id=" << stream_id_
245
- << " already closed";
246
- break;
247
- }
341
+ StreamStateChange OnHalfCloseSent() {
342
+ GRPC_DCHECK(is_client());
343
+ return state_.OnHalfCloseSent();
248
344
  }
249
345
 
250
- inline bool IsStreamIdle() const {
251
- return stream_state_ == HttpStreamState::kIdle;
252
- }
253
- inline bool IsStreamHalfClosedRemote() const {
254
- return stream_state_ == HttpStreamState::kHalfClosedRemote;
346
+ StreamStateChange OnTrailingMetadataReceived(ServerMetadataHandle metadata) {
347
+ SetTrailingMetadataReceived();
348
+ const StreamStateChange change = state_.OnTrailingMetadataReceived();
349
+ if (is_client()) {
350
+ MaybePushServerTrailingMetadata(std::move(metadata));
351
+ } else {
352
+ // Server: custom HTTP2 implementations might send trailing metadata.
353
+ // We just close reads and do nothing else (upper layers discard client
354
+ // trailers).
355
+ GRPC_HTTP2_STREAM_LOG << "Stream::OnTrailingMetadataReceived Server "
356
+ "stream_id="
357
+ << stream_id_
358
+ << " StreamStateChange=" << change.DebugString();
359
+ if (change.reads_became_closed) {
360
+ GetCallInitiator().SpawnFinishSends();
361
+ }
362
+ }
363
+ return change;
255
364
  }
256
- inline bool IsHalfClosedLocal() const {
257
- return stream_state_ == HttpStreamState::kHalfClosedLocal;
365
+
366
+ StreamStateChange OnHalfCloseReceived() {
367
+ GRPC_DCHECK(is_server());
368
+ const StreamStateChange change = state_.OnHalfCloseReceived();
369
+ if (change.reads_became_closed) {
370
+ GetCallInitiator().SpawnFinishSends();
371
+ }
372
+ return change;
258
373
  }
259
- inline bool IsStreamClosed() const {
260
- return stream_state_ == HttpStreamState::kClosed;
374
+
375
+ StreamStateChange OnResetReceived(absl::Status status) {
376
+ const StreamStateChange change = state_.OnResetReceived();
377
+ CancelCall(std::move(status));
378
+ return change;
261
379
  }
262
380
 
263
- inline uint32_t GetStreamId() const { return stream_id_; }
381
+ StreamStateChange OnResetSent() {
382
+ const StreamStateChange change = state_.OnResetSent();
383
+
384
+ // Fallback cancel. Safe even for normal completion as CallSpine would have
385
+ // already processed trailing metadata, making Cancel a no-op.
386
+ CancelCall(absl::CancelledError("RST stream sent"));
387
+ return change;
388
+ }
264
389
 
265
- inline bool IsClosedForWrites() const {
266
- return is_write_closed_.load(std::memory_order_relaxed);
390
+ StreamStateChange OnInitiateReset(absl::Status status) {
391
+ const StreamStateChange change = state_.OnInitiateReset();
392
+ CancelCall(std::move(status));
393
+ return change;
267
394
  }
268
395
 
269
- inline void SetWriteClosed() {
270
- is_write_closed_.store(true, std::memory_order_relaxed);
396
+ StreamStateChange ForceClose(absl::Status status) {
397
+ const StreamStateChange change = state_.ForceClose();
398
+ CancelCall(std::move(status));
399
+ return change;
271
400
  }
272
401
 
402
+ inline uint32_t GetStreamId() const { return stream_id_; }
403
+
273
404
  inline bool CanSendWindowUpdateFrames() const {
274
- return stream_state_ == HttpStreamState::kOpen ||
275
- stream_state_ == HttpStreamState::kHalfClosedLocal;
405
+ return IsOpen() || IsHalfClosedLocal();
276
406
  }
277
407
 
278
408
  inline Http2Status CanStreamReceiveDataFrames() const {
@@ -290,7 +420,7 @@ class Stream : public RefCounted<Stream> {
290
420
  }
291
421
 
292
422
  void MaybePushServerTrailingMetadata(ServerMetadataHandle&& metadata) {
293
- GRPC_DCHECK(std::holds_alternative<CallHandler>(call_));
423
+ GRPC_DCHECK(is_client());
294
424
  GRPC_HTTP2_STREAM_LOG << "Stream::MaybePushServerTrailingMetadata "
295
425
  "stream_id="
296
426
  << stream_id_
@@ -324,17 +454,28 @@ class Stream : public RefCounted<Stream> {
324
454
  return std::get<CallHandler>(call_);
325
455
  }
326
456
 
457
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION const CallHandler& GetCallHandler()
458
+ const {
459
+ return std::get<CallHandler>(call_);
460
+ }
461
+
327
462
  GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION CallInitiator& GetCallInitiator() {
328
463
  return std::get<CallInitiator>(call_);
329
464
  }
330
465
 
466
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION const CallInitiator& GetCallInitiator()
467
+ const {
468
+ return std::get<CallInitiator>(call_);
469
+ }
470
+
331
471
  GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION GrpcMessageAssembler&
332
472
  GetGrpcMessageAssembler() {
333
473
  return assembler_;
334
474
  }
335
475
 
336
- GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION HeaderAssembler& GetHeaderAssembler() {
337
- return header_assembler_;
476
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION const GrpcMessageAssembler&
477
+ GetGrpcMessageAssembler() const {
478
+ return assembler_;
338
479
  }
339
480
 
340
481
  GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION chttp2::StreamFlowControl&
@@ -342,40 +483,49 @@ class Stream : public RefCounted<Stream> {
342
483
  return flow_control_;
343
484
  }
344
485
 
486
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION const chttp2::StreamFlowControl&
487
+ GetStreamFlowControl() const {
488
+ return flow_control_;
489
+ }
490
+
491
+ bool is_client() const { return std::holds_alternative<CallHandler>(call_); }
492
+ bool is_server() const {
493
+ return std::holds_alternative<CallInitiator>(call_);
494
+ }
495
+
345
496
  private:
346
- void InitializeStream(const bool allow_true_binary_metadata_peer,
347
- const bool allow_true_binary_metadata_acked) {
497
+ void InitializeStream(const bool allow_true_binary_metadata_peer) {
348
498
  GRPC_HTTP2_STREAM_LOG << "Stream::InitializeStream stream_id="
349
499
  << stream_id_;
350
500
  GRPC_DCHECK_GE(stream_id_, 0u);
351
- header_assembler_.InitializeStream(stream_id_,
352
- allow_true_binary_metadata_acked);
353
501
  data_queue_->SetStreamId(stream_id_, allow_true_binary_metadata_peer);
354
502
  }
355
503
 
356
504
  GrpcMessageAssembler assembler_;
357
- HeaderAssembler header_assembler_;
358
505
  chttp2::StreamFlowControl flow_control_;
359
506
  std::variant<CallInitiator, CallHandler> call_;
360
507
 
361
- // This flag is kept separate from the stream_state as the stream_state
362
- // is inline with the HTTP2 spec, whereas this flag is an implementation
363
- // detail of the PH2 transport. As far as PH2 is concerned, if a stream is
364
- // closed for writes, it will not send any more frames on that stream.
365
- // Similarly if a stream is closed for reads(this is achieved by removing the
366
- // stream from the transport map), then all the frames read on that stream
367
- // will be dropped.
368
- std::atomic<bool> is_write_closed_;
369
- uint32_t stream_id_;
508
+ // This function is idempotent.
509
+ void CancelCall(absl::Status&& status) {
510
+ if (std::exchange(did_cancel_, true)) return;
511
+ if (is_client()) {
512
+ MaybePushServerTrailingMetadata(
513
+ CancelledServerMetadataFromStatus(status));
514
+ } else {
515
+ GetCallInitiator().SpawnCancel(std::forward<absl::Status>(status));
516
+ }
517
+ }
370
518
 
371
- // This MUST be accessed from the transport party.
372
- HttpStreamState stream_state_;
519
+ StreamState state_;
520
+ uint32_t stream_id_;
373
521
  bool did_receive_initial_metadata_;
374
522
  bool did_receive_trailing_metadata_;
375
523
  bool did_push_server_trailing_metadata_;
376
- // TODO(akshitpatel) : [PH2][P0][Server] : This would need to change to
377
- // accomodate ServerMetadataHandle for the server side.
378
- RefCountedPtr<StreamDataQueue<ClientMetadataHandle>> data_queue_;
524
+ bool did_cancel_;
525
+ // Change this if ClientMetadataHandle and ServerMetadataHandle are changed
526
+ // to different types.
527
+ RefCountedPtr<StreamDataQueue<Arena::PoolPtr<grpc_metadata_batch>>>
528
+ data_queue_;
379
529
  };
380
530
 
381
531
  } // namespace http2