grpc 1.81.0 → 1.82.0.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (863) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +12 -9
  3. data/include/grpc/grpc.h +6 -7
  4. data/include/grpc/impl/channel_arg_names.h +3 -1
  5. data/src/core/call/call_filters.h +2 -2
  6. data/src/core/call/client_call.cc +1 -1
  7. data/src/core/call/interception_chain.h +6 -9
  8. data/src/core/call/metadata.h +1 -1
  9. data/src/core/call/metadata_batch.cc +1 -1
  10. data/src/core/call/metadata_batch.h +17 -1
  11. data/src/core/call/parsed_metadata.h +7 -2
  12. data/src/core/call/server_call.cc +4 -2
  13. data/src/core/call/server_call.h +9 -2
  14. data/src/core/call/status_util.cc +0 -4
  15. data/src/core/call/status_util.h +0 -3
  16. data/src/core/channelz/channel_trace.cc +3 -1
  17. data/src/core/client_channel/backup_poller.cc +1 -1
  18. data/src/core/client_channel/client_channel.cc +6 -14
  19. data/src/core/client_channel/client_channel.h +2 -2
  20. data/src/core/client_channel/client_channel_filter.cc +8 -17
  21. data/src/core/client_channel/client_channel_filter.h +2 -2
  22. data/src/core/client_channel/client_channel_plugin.cc +1 -1
  23. data/src/core/client_channel/config_selector.h +2 -7
  24. data/src/core/client_channel/dynamic_filters.cc +4 -7
  25. data/src/core/client_channel/dynamic_filters.h +1 -3
  26. data/src/core/client_channel/retry_filter.cc +2 -25
  27. data/src/core/client_channel/retry_filter.h +3 -7
  28. data/src/core/client_channel/retry_filter_legacy_call_data.cc +1 -1
  29. data/src/core/client_channel/retry_filter_legacy_call_data.h +2 -2
  30. data/src/core/client_channel/retry_interceptor.cc +7 -35
  31. data/src/core/client_channel/retry_interceptor.h +11 -14
  32. data/src/core/client_channel/retry_service_config.cc +0 -2
  33. data/src/core/client_channel/retry_service_config.h +0 -2
  34. data/src/core/client_channel/retry_throttle.cc +19 -7
  35. data/src/core/client_channel/retry_throttle.h +24 -7
  36. data/src/core/client_channel/subchannel.cc +1 -1
  37. data/src/core/credentials/call/external/external_account_credentials.cc +125 -12
  38. data/src/core/credentials/call/external/external_account_credentials.h +6 -1
  39. data/src/core/credentials/call/jwt/jwt_credentials.cc +11 -1
  40. data/src/core/credentials/call/jwt/jwt_credentials.h +3 -0
  41. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +64 -11
  42. data/src/core/credentials/call/oauth2/oauth2_credentials.h +0 -1
  43. data/src/core/credentials/call/regional_access_boundary_fetcher.cc +411 -0
  44. data/src/core/credentials/call/regional_access_boundary_fetcher.h +158 -0
  45. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +1 -1
  46. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +7 -1
  47. data/src/core/credentials/transport/insecure/insecure_security_connector.h +1 -1
  48. data/src/core/credentials/transport/local/local_security_connector.cc +1 -1
  49. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +6 -0
  50. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +28 -66
  51. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +0 -8
  52. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +24 -58
  53. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +24 -19
  54. data/src/core/ext/filters/message_size/message_size_filter.cc +1 -81
  55. data/src/core/ext/filters/message_size/message_size_filter.h +1 -50
  56. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +13 -56
  57. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +0 -14
  58. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
  59. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +175 -51
  60. data/src/core/ext/transport/chttp2/server/chttp2_server.h +10 -1
  61. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +73 -6
  62. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
  63. data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -1
  64. data/src/core/ext/transport/chttp2/transport/flow_control.h +11 -0
  65. data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +2 -4
  66. data/src/core/ext/transport/chttp2/transport/frame.cc +63 -13
  67. data/src/core/ext/transport/chttp2/transport/frame.h +45 -10
  68. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -1
  69. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +11 -3
  70. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -1
  71. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
  72. data/src/core/ext/transport/chttp2/transport/header_assembler.h +54 -22
  73. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +53 -5
  74. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +22 -0
  75. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +20 -0
  76. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +33 -1
  77. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -1
  78. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +118 -157
  79. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +6 -13
  80. data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +2187 -0
  81. data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +748 -0
  82. data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -4
  83. data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +0 -2
  84. data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +50 -17
  85. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +13 -15
  86. data/src/core/ext/transport/chttp2/transport/http2_transport.h +16 -48
  87. data/src/core/ext/transport/chttp2/transport/internal.h +14 -0
  88. data/src/core/ext/transport/chttp2/transport/message_assembler.h +1 -2
  89. data/src/core/ext/transport/chttp2/transport/parsing.cc +82 -24
  90. data/src/core/ext/transport/chttp2/transport/read_context.h +452 -0
  91. data/src/core/ext/transport/chttp2/transport/security_frame.h +12 -3
  92. data/src/core/ext/transport/chttp2/transport/stream.h +25 -26
  93. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +6 -4
  94. data/src/core/ext/transport/chttp2/transport/write_cycle.h +9 -1
  95. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +16 -2
  96. data/src/core/ext/upb-gen/cel/expr/checked.upb.h +621 -432
  97. data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +264 -166
  98. data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h +0 -13
  99. data/src/core/ext/upb-gen/cel/expr/syntax.upb.h +708 -497
  100. data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +294 -176
  101. data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h +0 -15
  102. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +262 -181
  103. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +84 -58
  104. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +0 -5
  105. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +254 -190
  106. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +107 -53
  107. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +0 -4
  108. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +271 -190
  109. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +88 -64
  110. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +0 -5
  111. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +1035 -730
  112. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +384 -260
  113. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +0 -19
  114. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +87 -56
  115. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +26 -16
  116. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +0 -2
  117. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +105 -71
  118. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +30 -22
  119. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +0 -2
  120. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +31 -29
  121. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +19 -7
  122. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +0 -1
  123. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +25 -23
  124. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +15 -7
  125. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +0 -1
  126. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +25 -23
  127. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +15 -7
  128. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +0 -1
  129. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +201 -165
  130. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +79 -31
  131. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +0 -2
  132. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +29 -26
  133. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +17 -11
  134. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +0 -1
  135. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +46 -29
  136. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +37 -19
  137. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +4 -4
  138. data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +34 -27
  139. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +34 -13
  140. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +1 -2
  141. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +617 -452
  142. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +221 -163
  143. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +0 -16
  144. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +1339 -970
  145. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +484 -324
  146. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +0 -23
  147. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +181 -135
  148. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +59 -43
  149. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +0 -3
  150. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +1353 -1028
  151. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +535 -361
  152. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +0 -25
  153. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +37 -33
  154. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +19 -13
  155. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +0 -1
  156. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +234 -196
  157. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +77 -57
  158. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +0 -1
  159. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +695 -502
  160. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +246 -186
  161. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +0 -15
  162. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb.h +140 -116
  163. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +53 -43
  164. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.h +0 -3
  165. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +363 -269
  166. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +131 -89
  167. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +0 -8
  168. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +35 -31
  169. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +15 -13
  170. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +0 -1
  171. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +1073 -769
  172. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +515 -293
  173. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +0 -30
  174. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb.h +25 -23
  175. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +15 -7
  176. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.h +0 -1
  177. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +375 -267
  178. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +142 -86
  179. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +0 -7
  180. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +32 -27
  181. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +13 -11
  182. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +0 -1
  183. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +29 -26
  184. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +17 -11
  185. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +0 -1
  186. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +87 -56
  187. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +26 -16
  188. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +0 -2
  189. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +634 -468
  190. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +255 -161
  191. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +0 -14
  192. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +672 -474
  193. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +228 -130
  194. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +0 -9
  195. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +56 -40
  196. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +15 -13
  197. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +0 -1
  198. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +34 -29
  199. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +19 -11
  200. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +0 -1
  201. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +811 -635
  202. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +347 -221
  203. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +0 -16
  204. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +174 -118
  205. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +62 -38
  206. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +0 -4
  207. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +78 -57
  208. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +28 -18
  209. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +0 -2
  210. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +37 -33
  211. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +22 -14
  212. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +0 -1
  213. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +159 -119
  214. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +47 -35
  215. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +0 -5
  216. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +101 -76
  217. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +41 -23
  218. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +0 -2
  219. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +35 -31
  220. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +15 -13
  221. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +0 -1
  222. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +189 -127
  223. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +79 -49
  224. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +0 -4
  225. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +378 -283
  226. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +156 -98
  227. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +0 -8
  228. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +354 -255
  229. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +125 -69
  230. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +0 -6
  231. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +27 -24
  232. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +13 -11
  233. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +0 -1
  234. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +611 -451
  235. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +159 -119
  236. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +0 -11
  237. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +468 -321
  238. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +157 -99
  239. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +0 -6
  240. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +146 -119
  241. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +55 -35
  242. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +0 -1
  243. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +61 -51
  244. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +16 -16
  245. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +0 -2
  246. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +43 -39
  247. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +25 -13
  248. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +0 -1
  249. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +341 -247
  250. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +130 -84
  251. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +0 -8
  252. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +452 -313
  253. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +144 -100
  254. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +0 -10
  255. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +666 -493
  256. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +251 -181
  257. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +0 -12
  258. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +327 -197
  259. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +92 -48
  260. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +0 -3
  261. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +3583 -2532
  262. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +1340 -816
  263. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +0 -60
  264. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +111 -82
  265. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +48 -28
  266. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +0 -3
  267. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +548 -410
  268. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +214 -148
  269. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +0 -12
  270. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +59 -50
  271. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +30 -20
  272. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +0 -2
  273. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +29 -26
  274. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +17 -11
  275. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +0 -1
  276. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +60 -49
  277. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +28 -20
  278. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +0 -2
  279. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +50 -36
  280. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +19 -11
  281. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +0 -1
  282. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +82 -63
  283. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +27 -19
  284. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +0 -1
  285. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +27 -24
  286. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +13 -11
  287. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +0 -1
  288. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +70 -58
  289. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +32 -22
  290. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +0 -2
  291. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +2 -5
  292. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +1 -1
  293. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +73 -62
  294. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +39 -25
  295. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +0 -2
  296. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +49 -45
  297. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +33 -13
  298. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +0 -1
  299. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +771 -588
  300. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +383 -185
  301. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +0 -16
  302. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +66 -47
  303. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +31 -17
  304. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +0 -2
  305. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb.h +69 -58
  306. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.c +27 -23
  307. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.h +0 -2
  308. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +151 -119
  309. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +45 -39
  310. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +0 -5
  311. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb.h +19 -17
  312. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.c +1 -3
  313. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.h +0 -1
  314. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb.h +144 -109
  315. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.c +46 -38
  316. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.h +0 -4
  317. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +184 -139
  318. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +65 -35
  319. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +0 -3
  320. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +129 -106
  321. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +69 -41
  322. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +0 -4
  323. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +83 -71
  324. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +40 -26
  325. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +0 -2
  326. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +148 -101
  327. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +45 -27
  328. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +0 -2
  329. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +62 -51
  330. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +35 -21
  331. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +0 -2
  332. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1362 -1024
  333. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +508 -336
  334. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +0 -22
  335. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb.h +21 -19
  336. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +13 -7
  337. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.h +0 -1
  338. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb.h +35 -31
  339. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.c +15 -13
  340. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.h +0 -1
  341. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb.h +27 -24
  342. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.c +13 -11
  343. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.h +0 -1
  344. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +27 -24
  345. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +13 -11
  346. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +0 -1
  347. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +94 -74
  348. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +35 -23
  349. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.h +0 -1
  350. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +231 -179
  351. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +88 -66
  352. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +0 -6
  353. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +21 -19
  354. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +13 -7
  355. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +0 -1
  356. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +63 -56
  357. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +31 -19
  358. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +0 -1
  359. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +27 -24
  360. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +13 -11
  361. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +0 -1
  362. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +27 -24
  363. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +13 -11
  364. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +0 -1
  365. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -5
  366. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +1 -1
  367. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +538 -364
  368. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +157 -95
  369. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +0 -8
  370. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -110
  371. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +69 -49
  372. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +0 -4
  373. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +517 -389
  374. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +182 -116
  375. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +0 -7
  376. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +84 -62
  377. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +30 -22
  378. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +0 -2
  379. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +340 -256
  380. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +92 -82
  381. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +0 -5
  382. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +19 -17
  383. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +1 -3
  384. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +0 -1
  385. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +857 -566
  386. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +288 -182
  387. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +0 -15
  388. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +105 -72
  389. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +36 -22
  390. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +0 -2
  391. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +312 -226
  392. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +132 -78
  393. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +0 -5
  394. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +82 -61
  395. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +35 -19
  396. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +0 -2
  397. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +123 -89
  398. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +25 -25
  399. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +0 -4
  400. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h +48 -33
  401. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +13 -11
  402. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h +0 -1
  403. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +42 -36
  404. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +19 -13
  405. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +0 -1
  406. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +101 -79
  407. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +61 -31
  408. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +0 -5
  409. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +83 -60
  410. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +37 -19
  411. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +0 -2
  412. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +56 -40
  413. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +15 -13
  414. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +0 -1
  415. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +34 -29
  416. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +13 -11
  417. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +0 -1
  418. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +32 -27
  419. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +13 -11
  420. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +0 -1
  421. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +88 -71
  422. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +48 -30
  423. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +0 -3
  424. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +37 -30
  425. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +1 -5
  426. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +0 -2
  427. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +95 -71
  428. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +36 -22
  429. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +0 -2
  430. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +79 -56
  431. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +26 -18
  432. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +0 -2
  433. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +164 -124
  434. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +54 -40
  435. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +0 -4
  436. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +200 -147
  437. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +47 -41
  438. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +0 -7
  439. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +160 -130
  440. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +89 -47
  441. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +0 -5
  442. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +78 -62
  443. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +26 -20
  444. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +0 -3
  445. data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +2 -5
  446. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +1 -1
  447. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +21 -19
  448. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +13 -7
  449. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +0 -1
  450. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +43 -36
  451. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +22 -12
  452. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +0 -2
  453. data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +67 -55
  454. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +36 -18
  455. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +0 -3
  456. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +62 -51
  457. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +33 -19
  458. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +0 -2
  459. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +2 -5
  460. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +1 -1
  461. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +25 -23
  462. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +15 -7
  463. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +0 -1
  464. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +37 -33
  465. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +19 -13
  466. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +0 -1
  467. data/src/core/ext/upb-gen/google/api/annotations.upb.h +15 -13
  468. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +22 -7
  469. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +1 -1
  470. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +619 -430
  471. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +260 -168
  472. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +0 -13
  473. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +734 -518
  474. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +312 -182
  475. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +0 -16
  476. data/src/core/ext/upb-gen/google/api/http.upb.h +146 -105
  477. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +65 -29
  478. data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +0 -3
  479. data/src/core/ext/upb-gen/google/api/httpbody.upb.h +52 -37
  480. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +19 -11
  481. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +0 -1
  482. data/src/core/ext/upb-gen/google/protobuf/any.upb.h +23 -21
  483. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +15 -7
  484. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +0 -1
  485. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +2236 -1514
  486. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +824 -406
  487. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +0 -34
  488. data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +23 -21
  489. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +15 -7
  490. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +0 -1
  491. data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +19 -17
  492. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +1 -3
  493. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +0 -1
  494. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +149 -100
  495. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +59 -43
  496. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +0 -4
  497. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +23 -21
  498. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +15 -7
  499. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +0 -1
  500. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +181 -139
  501. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +99 -53
  502. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +0 -9
  503. data/src/core/ext/upb-gen/google/rpc/status.upb.h +52 -37
  504. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +19 -11
  505. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +0 -1
  506. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h +1553 -1157
  507. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +712 -410
  508. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h +0 -39
  509. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +189 -125
  510. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +59 -35
  511. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +0 -3
  512. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +454 -343
  513. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +204 -130
  514. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +0 -11
  515. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +369 -243
  516. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +109 -79
  517. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +0 -7
  518. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +256 -175
  519. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +122 -68
  520. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +0 -8
  521. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +71 -51
  522. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +39 -19
  523. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +0 -2
  524. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +583 -407
  525. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +259 -145
  526. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +0 -12
  527. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +114 -84
  528. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +52 -30
  529. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +0 -4
  530. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +41 -34
  531. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +25 -13
  532. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +0 -2
  533. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +309 -230
  534. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +123 -79
  535. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +0 -9
  536. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +98 -63
  537. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +51 -23
  538. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +0 -3
  539. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +505 -312
  540. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +159 -87
  541. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +0 -9
  542. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +128 -91
  543. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +82 -41
  544. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +5 -8
  545. data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +36 -29
  546. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +36 -13
  547. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +1 -2
  548. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +13 -11
  549. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +22 -7
  550. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +1 -1
  551. data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +36 -29
  552. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +36 -13
  553. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +1 -2
  554. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +34 -27
  555. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +34 -13
  556. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +1 -2
  557. data/src/core/ext/upb-gen/validate/validate.upb.h +1682 -1130
  558. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +587 -247
  559. data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +4 -27
  560. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +128 -91
  561. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +82 -41
  562. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +5 -8
  563. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +36 -29
  564. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +36 -13
  565. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +1 -2
  566. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +13 -11
  567. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +22 -7
  568. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +1 -1
  569. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +122 -90
  570. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +82 -39
  571. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +3 -7
  572. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +34 -27
  573. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +34 -13
  574. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +1 -2
  575. data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +21 -19
  576. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +13 -7
  577. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +0 -1
  578. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +29 -26
  579. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +17 -11
  580. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +0 -1
  581. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +70 -58
  582. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +32 -22
  583. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +0 -2
  584. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +53 -34
  585. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +26 -16
  586. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +0 -2
  587. data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +29 -26
  588. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +17 -11
  589. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +0 -1
  590. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +37 -33
  591. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +22 -14
  592. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +0 -1
  593. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +102 -76
  594. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +43 -23
  595. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +0 -2
  596. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +33 -30
  597. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +19 -11
  598. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +0 -1
  599. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +136 -83
  600. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +41 -33
  601. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +0 -4
  602. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +46 -32
  603. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +20 -12
  604. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +0 -1
  605. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +29 -26
  606. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +20 -12
  607. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +0 -1
  608. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +93 -61
  609. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +28 -20
  610. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +0 -2
  611. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +19 -17
  612. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +1 -3
  613. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +0 -1
  614. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +105 -71
  615. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +32 -22
  616. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +0 -2
  617. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +430 -314
  618. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +153 -123
  619. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +0 -10
  620. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +307 -199
  621. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +74 -62
  622. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +0 -6
  623. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +52 -42
  624. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +19 -13
  625. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +0 -2
  626. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +95 -71
  627. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +36 -22
  628. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +0 -2
  629. data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +92 -77
  630. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +42 -28
  631. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +0 -2
  632. data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +67 -55
  633. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +36 -18
  634. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +0 -3
  635. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +29 -26
  636. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +17 -11
  637. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +0 -1
  638. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +885 -855
  639. data/src/core/filter/composite/composite_filter.cc +10 -3
  640. data/src/core/filter/composite/composite_filter.h +11 -1
  641. data/src/core/filter/filter_args.h +4 -22
  642. data/src/core/handshaker/handshaker.cc +10 -2
  643. data/src/core/handshaker/security/secure_endpoint.cc +73 -5
  644. data/src/core/lib/channel/channel_args.h +12 -6
  645. data/src/core/lib/channel/channel_stack.cc +1 -2
  646. data/src/core/lib/channel/channel_stack.h +1 -7
  647. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
  648. data/src/core/lib/channel/channel_stack_builder_impl.h +0 -7
  649. data/src/core/lib/channel/promise_based_filter.cc +13 -1
  650. data/src/core/lib/channel/promise_based_filter.h +4 -5
  651. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +0 -13
  652. data/src/core/lib/event_engine/extensions/receive_coalescing_extension.h +48 -0
  653. data/src/core/lib/event_engine/posix.h +2 -0
  654. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +2 -1
  655. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +11 -8
  656. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +7 -6
  657. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +1 -1
  658. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +2 -1
  659. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +10 -10
  660. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +1 -1
  661. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +1 -1
  662. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +5 -4
  663. data/src/core/lib/experiments/experiments.cc +261 -90
  664. data/src/core/lib/experiments/experiments.h +136 -35
  665. data/src/core/lib/iomgr/buffer_list.h +1 -1
  666. data/src/core/lib/iomgr/ev_epoll1_linux.cc +1 -1
  667. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
  668. data/src/core/lib/iomgr/tcp_posix.cc +2 -1
  669. data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
  670. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
  671. data/src/core/lib/promise/detail/promise_factory.h +8 -8
  672. data/src/core/lib/promise/interceptor_list.h +1 -1
  673. data/src/core/lib/promise/try_seq.h +2 -2
  674. data/src/core/lib/resource_quota/telemetry.cc +54 -0
  675. data/src/core/lib/resource_quota/telemetry.h +5 -23
  676. data/src/core/lib/surface/call.cc +6 -1
  677. data/src/core/lib/surface/call.h +9 -0
  678. data/src/core/lib/surface/version.cc +2 -2
  679. data/src/core/lib/transport/promise_endpoint.h +7 -5
  680. data/src/core/lib/transport/transport.h +31 -4
  681. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +146 -74
  682. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.h +88 -0
  683. data/src/core/mitigation_engine/mitigation_engine.h +81 -0
  684. data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
  685. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -5
  686. data/src/core/resolver/xds/xds_resolver.cc +23 -133
  687. data/src/core/server/server.cc +40 -18
  688. data/src/core/server/server.h +25 -14
  689. data/src/core/server/server_config_selector_filter.cc +122 -0
  690. data/src/core/server/server_config_selector_filter.h +1 -0
  691. data/src/core/server/xds_server_config_fetcher.cc +6 -0
  692. data/src/core/server/xds_server_config_fetcher_legacy.cc +1333 -0
  693. data/src/core/telemetry/histogram.h +10 -89
  694. data/src/core/telemetry/instrument.h +42 -28
  695. data/src/core/transport/message_size_service_config.cc +123 -0
  696. data/src/core/transport/message_size_service_config.h +85 -0
  697. data/src/core/transport/session_endpoint.cc +29 -4
  698. data/src/core/transport/session_endpoint.h +4 -0
  699. data/src/core/tsi/alts/crypt/gsec.h +4 -2
  700. data/src/core/tsi/ssl_transport_security.cc +6 -4
  701. data/src/core/util/http_client/parser.cc +1 -1
  702. data/src/core/util/lru_cache.h +2 -0
  703. data/src/core/util/ref_counted_string.h +1 -1
  704. data/src/core/util/tchar.cc +13 -7
  705. data/src/core/util/trie_lookup.h +1 -1
  706. data/src/core/xds/grpc/blackboard.cc +58 -0
  707. data/src/core/{filter → xds/grpc}/blackboard.h +30 -11
  708. data/src/core/xds/grpc/xds_client_grpc.cc +14 -1
  709. data/src/core/xds/grpc/xds_client_grpc.h +1 -0
  710. data/src/core/xds/grpc/xds_common_types.cc +40 -0
  711. data/src/core/xds/grpc/xds_common_types.h +13 -0
  712. data/src/core/xds/grpc/xds_common_types_parser.cc +37 -34
  713. data/src/core/xds/grpc/xds_endpoint_parser.cc +1 -1
  714. data/src/core/xds/grpc/xds_http_composite_filter.cc +34 -18
  715. data/src/core/xds/grpc/xds_http_composite_filter.h +6 -3
  716. data/src/core/xds/grpc/xds_http_fault_filter.cc +0 -149
  717. data/src/core/xds/grpc/xds_http_fault_filter.h +19 -8
  718. data/src/core/xds/grpc/xds_http_filter.cc +2 -1
  719. data/src/core/xds/grpc/xds_http_filter.h +6 -16
  720. data/src/core/xds/grpc/xds_http_filter_registry.cc +0 -2
  721. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +25 -119
  722. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +27 -15
  723. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +0 -149
  724. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +19 -8
  725. data/src/core/xds/grpc/xds_lb_policy_registry.cc +18 -0
  726. data/src/core/xds/grpc/xds_listener_parser.cc +13 -9
  727. data/src/core/xds/grpc/xds_route_config.h +1 -1
  728. data/src/core/xds/grpc/xds_route_config_parser.cc +3 -5
  729. data/src/core/xds/grpc/xds_routing.cc +5 -11
  730. data/src/core/xds/grpc/xds_routing.h +2 -3
  731. data/src/core/xds/xds_client/lrs_client.cc +2 -2
  732. data/src/ruby/ext/grpc/rb_byte_buffer.c +1 -0
  733. data/src/ruby/ext/grpc/rb_call.c +3 -0
  734. data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
  735. data/src/ruby/ext/grpc/rb_channel.c +1 -0
  736. data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
  737. data/src/ruby/ext/grpc/rb_channel_credentials.c +1 -0
  738. data/src/ruby/ext/grpc/rb_completion_queue.c +1 -0
  739. data/src/ruby/ext/grpc/rb_compression_options.c +1 -0
  740. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -4
  741. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -6
  742. data/src/ruby/ext/grpc/rb_server.c +1 -0
  743. data/src/ruby/ext/grpc/rb_server_credentials.c +1 -0
  744. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +1 -0
  745. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +1 -0
  746. data/src/ruby/lib/grpc/core/call_credentials.rb +86 -0
  747. data/src/ruby/lib/grpc/core/channel_credentials.rb +69 -0
  748. data/src/ruby/lib/grpc/core/credentials_helper.rb +126 -0
  749. data/src/ruby/lib/grpc/generic/client_stub.rb +86 -73
  750. data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
  751. data/src/ruby/lib/grpc/version.rb +1 -1
  752. data/src/ruby/lib/grpc.rb +25 -0
  753. data/src/ruby/spec/call_credentials_spec.rb +52 -2
  754. data/src/ruby/spec/credentials_helper_spec.rb +80 -0
  755. data/src/ruby/spec/generic/client_stub_spec.rb +27 -4
  756. data/src/ruby/spec/generic/server_interceptors_spec.rb +17 -3
  757. data/third_party/upb/upb/base/error_handler.h +79 -0
  758. data/third_party/upb/upb/base/internal/log2.h +29 -5
  759. data/third_party/upb/upb/generated_code_support.h +1 -0
  760. data/third_party/upb/upb/hash/common.c +129 -14
  761. data/third_party/upb/upb/hash/common.h +1 -1
  762. data/third_party/upb/upb/hash/ext_table.h +65 -0
  763. data/third_party/upb/upb/lex/strtod.c +14 -5
  764. data/third_party/upb/upb/mem/arena.c +113 -95
  765. data/third_party/upb/upb/mem/internal/arena.h +13 -8
  766. data/third_party/upb/upb/message/accessors.c +2 -3
  767. data/third_party/upb/upb/message/accessors.h +32 -12
  768. data/third_party/upb/upb/message/array.c +51 -2
  769. data/third_party/upb/upb/message/array.h +10 -0
  770. data/third_party/upb/upb/message/copy.c +18 -34
  771. data/third_party/upb/upb/message/internal/accessors.h +15 -49
  772. data/third_party/upb/upb/message/internal/array.h +1 -1
  773. data/third_party/upb/upb/message/internal/map.h +1 -1
  774. data/third_party/upb/upb/message/internal/message.c +8 -1
  775. data/third_party/upb/upb/message/internal/message.h +40 -10
  776. data/third_party/upb/upb/message/message.c +3 -2
  777. data/third_party/upb/upb/message/value.h +0 -6
  778. data/third_party/upb/upb/mini_descriptor/decode.c +78 -59
  779. data/third_party/upb/upb/mini_descriptor/link.c +8 -6
  780. data/third_party/upb/upb/mini_table/extension_registry.c +17 -49
  781. data/third_party/upb/upb/mini_table/extension_registry.h +5 -17
  782. data/third_party/upb/upb/mini_table/generated_registry.c +180 -0
  783. data/third_party/upb/upb/mini_table/generated_registry.h +66 -0
  784. data/third_party/upb/upb/mini_table/internal/extension.h +5 -3
  785. data/third_party/upb/upb/mini_table/internal/field.h +7 -5
  786. data/third_party/upb/upb/mini_table/internal/generated_registry.h +37 -0
  787. data/third_party/upb/upb/mini_table/internal/message.c +0 -18
  788. data/third_party/upb/upb/mini_table/internal/message.h +24 -41
  789. data/third_party/upb/upb/mini_table/internal/size_log2.h +2 -1
  790. data/third_party/upb/upb/mini_table/internal/sub.h +2 -5
  791. data/third_party/upb/upb/mini_table/message.h +34 -13
  792. data/third_party/upb/upb/port/atomic.h +180 -74
  793. data/third_party/upb/upb/port/def.inc +194 -29
  794. data/third_party/upb/upb/port/sanitizers.h +15 -0
  795. data/third_party/upb/upb/port/undef.inc +6 -2
  796. data/third_party/upb/upb/reflection/common.h +0 -6
  797. data/third_party/upb/upb/reflection/def.hpp +8 -12
  798. data/third_party/upb/upb/reflection/def_pool.c +85 -33
  799. data/third_party/upb/upb/reflection/def_pool.h +38 -8
  800. data/third_party/upb/upb/reflection/def_type.h +3 -0
  801. data/third_party/upb/upb/reflection/enum_def.c +45 -33
  802. data/third_party/upb/upb/reflection/enum_def.h +8 -4
  803. data/third_party/upb/upb/reflection/enum_reserved_range.c +7 -3
  804. data/third_party/upb/upb/reflection/enum_value_def.c +14 -29
  805. data/third_party/upb/upb/reflection/enum_value_def.h +5 -4
  806. data/third_party/upb/upb/reflection/extension_range.c +15 -14
  807. data/third_party/upb/upb/reflection/extension_range.h +7 -4
  808. data/third_party/upb/upb/reflection/field_def.c +114 -96
  809. data/third_party/upb/upb/reflection/field_def.h +3 -3
  810. data/third_party/upb/upb/reflection/file_def.c +71 -65
  811. data/third_party/upb/upb/reflection/file_def.h +4 -5
  812. data/third_party/upb/upb/reflection/internal/def_builder.c +22 -14
  813. data/third_party/upb/upb/reflection/internal/def_builder.h +44 -38
  814. data/third_party/upb/upb/reflection/internal/def_pool.h +5 -1
  815. data/third_party/upb/upb/reflection/internal/enum_def.h +6 -4
  816. data/third_party/upb/upb/reflection/internal/enum_reserved_range.h +3 -2
  817. data/third_party/upb/upb/reflection/internal/enum_value_def.h +7 -4
  818. data/third_party/upb/upb/reflection/internal/extension_range.h +4 -3
  819. data/third_party/upb/upb/reflection/internal/field_def.h +15 -12
  820. data/third_party/upb/upb/reflection/internal/file_def.h +8 -1
  821. data/third_party/upb/upb/reflection/internal/message_def.h +10 -7
  822. data/third_party/upb/upb/reflection/internal/message_reserved_range.h +3 -1
  823. data/third_party/upb/upb/reflection/internal/method_def.h +6 -6
  824. data/third_party/upb/upb/reflection/internal/oneof_def.h +6 -6
  825. data/third_party/upb/upb/reflection/internal/service_def.h +9 -6
  826. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  827. data/third_party/upb/upb/reflection/message_def.c +46 -53
  828. data/third_party/upb/upb/reflection/message_def.h +6 -7
  829. data/third_party/upb/upb/reflection/message_reserved_range.c +7 -6
  830. data/third_party/upb/upb/reflection/method_def.c +22 -20
  831. data/third_party/upb/upb/reflection/method_def.h +4 -4
  832. data/third_party/upb/upb/reflection/oneof_def.c +17 -15
  833. data/third_party/upb/upb/reflection/oneof_def.h +6 -3
  834. data/third_party/upb/upb/reflection/service_def.c +50 -23
  835. data/third_party/upb/upb/reflection/service_def.h +7 -4
  836. data/third_party/upb/upb/text/internal/encode.c +7 -10
  837. data/third_party/upb/upb/wire/decode.c +269 -430
  838. data/third_party/upb/upb/wire/decode.h +6 -45
  839. data/third_party/upb/upb/wire/decode_fast/combinations.h +7 -3
  840. data/third_party/upb/upb/wire/decode_fast/select.c +7 -2
  841. data/third_party/upb/upb/wire/encode.c +144 -106
  842. data/third_party/upb/upb/wire/encode.h +6 -2
  843. data/third_party/upb/upb/wire/eps_copy_input_stream.c +36 -7
  844. data/third_party/upb/upb/wire/eps_copy_input_stream.h +94 -380
  845. data/third_party/upb/upb/wire/internal/decoder.c +1 -14
  846. data/third_party/upb/upb/wire/internal/decoder.h +84 -24
  847. data/third_party/upb/upb/wire/internal/eps_copy_input_stream.h +339 -0
  848. data/third_party/upb/upb/wire/internal/reader.h +29 -12
  849. data/third_party/upb/upb/wire/reader.c +35 -22
  850. data/third_party/upb/upb/wire/reader.h +11 -18
  851. data/third_party/utf8_range/utf8_range.c +1 -1
  852. data/third_party/utf8_range/utf8_range.h +2 -1
  853. metadata +27 -13
  854. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +0 -117
  855. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +0 -109
  856. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +0 -80
  857. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +0 -86
  858. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +0 -83
  859. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +0 -91
  860. data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +0 -217
  861. data/src/core/filter/blackboard.cc +0 -33
  862. data/third_party/upb/upb/message/internal/tagged_ptr.h +0 -56
  863. data/third_party/upb/upb/message/tagged_ptr.h +0 -48
@@ -47,10 +47,10 @@
47
47
  #include "src/core/ext/transport/chttp2/transport/http2_status.h"
48
48
  #include "src/core/ext/transport/chttp2/transport/http2_transport.h"
49
49
  #include "src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h"
50
- #include "src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h"
51
50
  #include "src/core/ext/transport/chttp2/transport/keepalive.h"
52
51
  #include "src/core/ext/transport/chttp2/transport/message_assembler.h"
53
52
  #include "src/core/ext/transport/chttp2/transport/ping_promise.h"
53
+ #include "src/core/ext/transport/chttp2/transport/read_context.h"
54
54
  #include "src/core/ext/transport/chttp2/transport/security_frame.h"
55
55
  #include "src/core/ext/transport/chttp2/transport/stream.h"
56
56
  #include "src/core/ext/transport/chttp2/transport/stream_data_queue.h"
@@ -243,15 +243,18 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(Http2DataFrame&& frame) {
243
243
 
244
244
  RefCountedPtr<Stream> stream = LookupStream(frame.stream_id);
245
245
 
246
- ValueOrHttp2Status<chttp2::FlowControlAction> flow_control_action =
247
- ProcessIncomingDataFrameFlowControl(current_frame_header_, flow_control_,
248
- stream.get());
249
- if (!flow_control_action.IsOk()) {
250
- return ValueOrHttp2Status<chttp2::FlowControlAction>::TakeStatus(
251
- std::move(flow_control_action));
246
+ if (frame.payload.Length() > 0) {
247
+ // DATA frames with empty payload are legitimate frames. CHTTP2 and PH2 send
248
+ // empty DATA frames with END_Stream flag set to true.
249
+ ValueOrHttp2Status<chttp2::FlowControlAction> flow_control_action =
250
+ ProcessIncomingDataFrameFlowControl(
251
+ read_context_.GetCurrentFrameHeader(), flow_control_, stream.get());
252
+ if (!flow_control_action.IsOk()) {
253
+ return ValueOrHttp2Status<chttp2::FlowControlAction>::TakeStatus(
254
+ std::move(flow_control_action));
255
+ }
256
+ ActOnFlowControlAction(flow_control_action.value(), stream.get());
252
257
  }
253
- ActOnFlowControlAction(flow_control_action.value(), stream.get());
254
-
255
258
  if (stream == nullptr) {
256
259
  // TODO(tjagtap) : [PH2][P2] : Implement the correct behaviour later.
257
260
  // RFC9113 : If a DATA frame is received whose stream is not in the "open"
@@ -263,9 +266,6 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(Http2DataFrame&& frame) {
263
266
  return Http2Status::Ok();
264
267
  }
265
268
 
266
- // TODO(akshitpatel) : [PH2][P3] : We should add a check to reset stream if
267
- // the stream state is kIdle as well.
268
-
269
269
  Http2Status stream_status = stream->CanStreamReceiveDataFrames();
270
270
  if (!stream_status.IsOk()) {
271
271
  return stream_status;
@@ -300,8 +300,7 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(Http2DataFrame&& frame) {
300
300
  if (message != nullptr) {
301
301
  GRPC_HTTP2_CLIENT_DLOG
302
302
  << "Http2ClientTransport::ProcessIncomingFrame(DataFrame) "
303
- "SpawnPushMessage "
304
- << message->DebugString();
303
+ "SpawnPushMessage ";
305
304
  stream->GetCallHandler().SpawnPushMessage(std::move(message));
306
305
  continue;
307
306
  }
@@ -310,26 +309,17 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(Http2DataFrame&& frame) {
310
309
  break;
311
310
  }
312
311
 
313
- // TODO(tjagtap) : [PH2][P2] : List of Tests:
314
- // 1. Data frame with unknown stream ID
315
- // 2. Data frame with only half a message and then end stream
316
- // 3. One data frame with a full message
317
- // 4. Three data frames with one full message
318
- // 5. One data frame with three full messages. All messages should be pushed.
319
- // Will need to mock the call_handler object and test this along with the
320
- // Header reading code. Because we need a stream in place for the lookup to
321
- // work.
322
312
  return Http2Status::Ok();
323
313
  }
324
314
 
325
315
  template <typename T>
326
316
  Http2Status Http2ClientTransport::ProcessIncomingMetadata(T&& frame) {
327
- // State update MUST happen before processing the frame.
328
- incoming_headers_.UpdateState(frame);
329
-
330
317
  ping_manager_->ReceivedDataFrame();
331
318
 
332
319
  RefCountedPtr<Stream> stream = LookupStream(frame.stream_id);
320
+ // State update MUST happen before processing the frame.
321
+ read_context_.UpdateState(frame, /*is_existing_stream=*/(stream != nullptr));
322
+
333
323
  if (stream == nullptr) {
334
324
  // TODO(tjagtap) : [PH2][P3] : Implement this.
335
325
  // RFC9113 : The identifier of a newly established stream MUST be
@@ -338,36 +328,33 @@ Http2Status Http2ClientTransport::ProcessIncomingMetadata(T&& frame) {
338
328
  // frame and streams that are reserved using PUSH_PROMISE. An endpoint that
339
329
  // receives an unexpected stream identifier MUST respond with a connection
340
330
  // error (Section 5.4.1) of type PROTOCOL_ERROR.
341
- GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::ProcessIncomingMetadata { "
342
- "stream_id="
343
- << frame.stream_id << "} Lookup Failed";
344
- return incoming_headers_.ParseAndDiscardHeaders(
345
- std::move(frame.payload), frame.end_headers, /*stream=*/nullptr,
346
- Http2Status::Ok(), settings_->acked().max_header_list_size());
331
+ return read_context_.ParseAndDiscardHeaders(
332
+ std::move(frame.payload), frame.end_headers, Http2Status::Ok(),
333
+ settings_->acked().max_header_list_size());
347
334
  }
348
335
 
349
- Http2Status validation_status =
350
- ValidateMetadataFrameState(frame, *stream, incoming_headers_,
351
- settings_->acked().max_header_list_size());
336
+ Http2Status validation_status = ValidateMetadataFrameState(
337
+ frame, *stream, read_context_, settings_->acked().max_header_list_size());
352
338
  if (!validation_status.IsOk()) {
353
339
  return validation_status;
354
340
  }
355
341
 
356
- Http2Status append_result = stream->GetHeaderAssembler().AppendFrame(frame);
342
+ Http2Status append_result =
343
+ read_context_.header_assembler().AppendFrame(frame);
357
344
  if (!append_result.IsOk()) {
358
345
  // Frame payload is not consumed if AppendFrame returns a non-OK
359
346
  // status. We need to process it to keep our in consistent state.
360
- return incoming_headers_.ParseAndDiscardHeaders(
361
- std::move(frame.payload), frame.end_headers, stream.get(),
362
- std::move(append_result), settings_->acked().max_header_list_size());
347
+ return read_context_.ParseAndDiscardHeaders(
348
+ std::move(frame.payload), frame.end_headers, std::move(append_result),
349
+ settings_->acked().max_header_list_size());
363
350
  }
364
351
 
365
352
  Http2Status status = ProcessMetadata(stream);
366
353
  if (!status.IsOk()) {
367
354
  // Frame payload has been moved to the HeaderAssembler. So calling
368
355
  // ParseAndDiscardHeaders with an empty buffer.
369
- return incoming_headers_.ParseAndDiscardHeaders(
370
- SliceBuffer(), frame.end_headers, stream.get(), std::move(status),
356
+ return read_context_.ParseAndDiscardHeaders(
357
+ SliceBuffer(), frame.end_headers, std::move(status),
371
358
  settings_->acked().max_header_list_size());
372
359
  }
373
360
 
@@ -418,33 +405,29 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
418
405
  << frame.ack << ", settings length=" << frame.settings.size() << "}";
419
406
 
420
407
  if (!frame.ack) {
421
- Http2Status status = ValidateSettingsValues(frame.settings);
422
- if (!status.IsOk()) {
423
- return status;
408
+ Http2Status s = settings_->BufferPeerSettings(std::move(frame.settings));
409
+ if (!s.IsOk()) {
410
+ return s;
424
411
  }
425
- settings_->BufferPeerSettings(std::move(frame.settings));
426
412
  absl::Status trigger_write_status = TriggerWriteCycle();
427
413
  if (!trigger_write_status.ok()) {
428
414
  return ToHttpOkOrConnError(trigger_write_status);
429
415
  }
430
-
431
416
  if (GPR_UNLIKELY(!settings_->IsFirstPeerSettingsApplied())) {
432
417
  // Apply the first settings before we read any other frames.
433
- reader_state_.SetPauseReadLoop();
418
+ read_context_.SetPauseReadLoop();
434
419
  }
435
420
  } else {
436
- if (settings_->OnSettingsAckReceived()) {
437
- incoming_headers_.SetMaxHeaderTableSize(
438
- settings_->acked().header_table_size());
439
- ActOnFlowControlAction(flow_control_.SetAckedInitialWindow(
440
- settings_->acked().initial_window_size()),
441
- /*stream=*/nullptr);
442
- } else {
443
- // CHTTP2 returns a connection error for an unsolicited SETTINGS ACK.
444
- // However, we ignore it in PH2 since RFC 9113 doesn't explicitly mandate
445
- // an error.
446
- LOG(ERROR) << "Settings ack received without sending settings. Ignore.";
421
+ Http2Status status = settings_->OnSettingsAckReceived();
422
+ if (!status.IsOk()) {
423
+ return status;
447
424
  }
425
+ read_context_.SetMaxHeaderTableSize(settings_->acked().header_table_size());
426
+ read_context_.header_assembler().MaybeSetAllowTrueBinaryMetadataAcked(
427
+ settings_->acked().allow_true_binary_metadata());
428
+ ActOnFlowControlAction(flow_control_.SetAckedInitialWindow(
429
+ settings_->acked().initial_window_size()),
430
+ /*stream=*/nullptr);
448
431
  }
449
432
 
450
433
  return Http2Status::Ok();
@@ -612,8 +595,6 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
612
595
 
613
596
  Http2Status Http2ClientTransport::ProcessIncomingFrame(
614
597
  Http2SecurityFrame&& frame) {
615
- GRPC_HTTP2_CLIENT_DLOG
616
- << "Http2ClientTransport::ProcessIncomingFrame(SecurityFrame) ";
617
598
  if (settings_->IsSecurityFrameExpected()) {
618
599
  security_frame_handler_->ProcessPayload(std::move(frame.payload));
619
600
  }
@@ -637,21 +618,21 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
637
618
 
638
619
  Http2Status Http2ClientTransport::ProcessMetadata(
639
620
  RefCountedPtr<Stream> stream) {
640
- HeaderAssembler& assembler = stream->GetHeaderAssembler();
621
+ HeaderAssembler& assembler = read_context_.header_assembler();
641
622
  CallHandler& call = stream->GetCallHandler();
642
623
 
643
624
  GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::ProcessMetadata";
644
625
  if (assembler.IsReady()) {
645
626
  ValueOrHttp2Status<ServerMetadataHandle> read_result =
646
- assembler.ReadMetadata(incoming_headers_.parser(),
647
- !incoming_headers_.HeaderHasEndStream(),
627
+ assembler.ReadMetadata(read_context_.parser(),
628
+ !read_context_.HeaderHasEndStream(),
648
629
  /*max_header_list_size_soft_limit=*/
649
- incoming_headers_.soft_limit(),
630
+ read_context_.soft_limit(),
650
631
  /*max_header_list_size_hard_limit=*/
651
632
  settings_->acked().max_header_list_size());
652
633
  if (read_result.IsOk()) {
653
634
  ServerMetadataHandle metadata = TakeValue(std::move(read_result));
654
- if (incoming_headers_.HeaderHasEndStream()) {
635
+ if (read_context_.HeaderHasEndStream()) {
655
636
  stream->MarkHalfClosedRemote();
656
637
  stream->SetTrailingMetadataReceived();
657
638
  BeginCloseStream(std::move(stream),
@@ -660,7 +641,7 @@ Http2Status Http2ClientTransport::ProcessMetadata(
660
641
  } else {
661
642
  GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::ProcessMetadata "
662
643
  "SpawnPushServerInitialMetadata";
663
- metadata->Set(PeerString(), incoming_headers_.peer_string());
644
+ metadata->Set(PeerString(), read_context_.peer_string());
664
645
  stream->SetInitialMetadataReceived();
665
646
  call.SpawnPushServerInitialMetadata(std::move(metadata));
666
647
  }
@@ -684,66 +665,62 @@ auto Http2ClientTransport::ReadAndProcessOneFrame() {
684
665
  EndpointReadSlice(kFrameHeaderSize),
685
666
  // Parse the frame header.
686
667
  [this](Slice header_bytes) {
687
- GRPC_HTTP2_CLIENT_DLOG
688
- << "Http2ClientTransport::ReadAndProcessOneFrame Parse "
689
- << header_bytes.as_string_view();
690
668
  Http2FrameHeader header = Http2FrameHeader::Parse(header_bytes.begin());
691
669
  // Validate the incoming frame as per the current state of the transport
692
- Http2Status status = ValidateFrameHeader(
693
- /*max_frame_size_setting*/ settings_->acked().max_frame_size(),
694
- /*incoming_header_in_progress*/
695
- incoming_headers_.IsWaitingForContinuationFrame(),
696
- /*incoming_header_stream_id*/
697
- incoming_headers_.GetStreamId(),
698
- /*current_frame_header*/ header,
670
+ Http2Status status = read_context_.ValidateHeader(
671
+ /*max_frame_size_setting=*/settings_->acked().max_frame_size(),
672
+ /*current_frame_header=*/header,
699
673
  /*last_stream_id=*/GetLastStreamId(),
700
- /*is_client=*/kIsClient, /*is_first_settings_processed=*/
674
+ /*is_first_settings_processed=*/
701
675
  settings_->IsFirstPeerSettingsApplied());
702
676
 
703
677
  if (GPR_UNLIKELY(!status.IsOk())) {
704
678
  GRPC_DCHECK(status.GetType() ==
705
679
  Http2Status::Http2ErrorType::kConnectionError);
706
- return HandleError(std::nullopt, std::move(status));
680
+ return HandleError(/*stream_id=*/std::nullopt, std::move(status));
707
681
  }
708
- GRPC_HTTP2_CLIENT_DLOG
709
- << "Http2ClientTransport::ReadAndProcessOneFrame "
710
- "Validated Frame Header:"
711
- << header.ToString();
712
- current_frame_header_ = header;
682
+ read_context_.SetCurrentFrameHeader(header);
713
683
  return absl::OkStatus();
714
684
  },
715
685
  // Read the payload of the frame.
716
686
  [this]() {
717
687
  GRPC_HTTP2_CLIENT_DLOG
718
688
  << "Http2ClientTransport::ReadAndProcessOneFrame Read Frame ";
719
- return AssertResultType<absl::Status>(Map(
720
- EndpointRead(current_frame_header_.length),
721
- [this](absl::StatusOr<SliceBuffer>&& payload) {
722
- if (GPR_UNLIKELY(!payload.ok())) {
723
- return payload.status();
724
- }
725
- GRPC_HTTP2_CLIENT_DLOG
726
- << "Http2ClientTransport::ReadAndProcessOneFrame "
727
- "ParseFramePayload payload length: "
728
- << payload.value().Length();
729
- ValueOrHttp2Status<Http2Frame> frame = ParseFramePayload(
730
- current_frame_header_, TakeValue(std::move(payload)));
731
- if (GPR_UNLIKELY(!frame.IsOk())) {
732
- return HandleError(current_frame_header_.stream_id,
733
- ValueOrHttp2Status<Http2Frame>::TakeStatus(
734
- std::move(frame)));
735
- }
736
- Http2Status status =
737
- ProcessOneIncomingFrame(TakeValue(std::move(frame)));
738
- if (GPR_UNLIKELY(!status.IsOk())) {
739
- return HandleError(current_frame_header_.stream_id,
740
- std::move(status));
741
- }
742
- return absl::OkStatus();
743
- }));
689
+ return AssertResultType<absl::Status>(
690
+ Map(EndpointRead(read_context_.GetCurrentFrameHeader().length),
691
+ [this](absl::StatusOr<SliceBuffer>&& payload) {
692
+ if (GPR_UNLIKELY(!payload.ok())) {
693
+ return payload.status();
694
+ }
695
+ GRPC_HTTP2_CLIENT_DLOG
696
+ << "Http2ClientTransport::ReadAndProcessOneFrame "
697
+ "ParseFramePayload payload length: "
698
+ << payload.value().Length();
699
+ ValueOrHttp2Status<Http2Frame> frame =
700
+ ParseFramePayload(read_context_.GetCurrentFrameHeader(),
701
+ TakeValue(std::move(payload)));
702
+ if (GPR_UNLIKELY(!frame.IsOk())) {
703
+ return HandleError(
704
+ read_context_.GetCurrentFrameHeader().stream_id,
705
+ ValueOrHttp2Status<Http2Frame>::TakeStatus(
706
+ std::move(frame)));
707
+ }
708
+ Http2Status status =
709
+ ProcessOneIncomingFrame(TakeValue(std::move(frame)));
710
+ if (GPR_UNLIKELY(!status.IsOk())) {
711
+ return HandleError(
712
+ read_context_.GetCurrentFrameHeader().stream_id,
713
+ std::move(status));
714
+ }
715
+ return absl::OkStatus();
716
+ }));
744
717
  },
745
718
  [this]() -> Poll<absl::Status> {
746
- return reader_state_.MaybePauseReadLoop();
719
+ Poll<absl::Status> poll_result = read_context_.MaybePauseReadLoop();
720
+ if (poll_result.pending()) {
721
+ TriggerWriteCycleOrHandleError();
722
+ }
723
+ return poll_result;
747
724
  }));
748
725
  }
749
726
 
@@ -816,9 +793,7 @@ void Http2ClientTransport::ActOnFlowControlAction(
816
793
  }
817
794
  }
818
795
 
819
- ActOnFlowControlActionSettings(
820
- action, settings_->mutable_local(),
821
- enable_preferred_rx_crypto_frame_advertisement_);
796
+ ActOnFlowControlActionSettings(action, settings_->mutable_local());
822
797
 
823
798
  if (action.AnyUpdateImmediately()) {
824
799
  // Prioritize sending flow control updates over reading data. If we
@@ -826,7 +801,7 @@ void Http2ClientTransport::ActOnFlowControlAction(
826
801
  // exhaust the flow control window. This prevents us from sending window
827
802
  // updates to the peer, causing the peer to block unnecessarily while
828
803
  // waiting for flow control tokens.
829
- reader_state_.SetPauseReadLoop();
804
+ read_context_.SetPauseReadLoop();
830
805
  if (!TriggerWriteCycleOrHandleError()) {
831
806
  return;
832
807
  }
@@ -957,7 +932,7 @@ absl::Status Http2ClientTransport::PrepareControlFrames() {
957
932
  }
958
933
 
959
934
  if (apply_status != http2::Http2ErrorCode::kNoError) {
960
- return HandleError(std::nullopt,
935
+ return HandleError(/*stream_id=*/std::nullopt,
961
936
  Http2Status::Http2ConnectionError(
962
937
  apply_status, "Failed to apply incoming settings"));
963
938
  }
@@ -985,7 +960,7 @@ void Http2ClientTransport::NotifyFramesWriteDone() {
985
960
  // Notify Control modules that we have sent the frames.
986
961
  // All notifications are expected to be synchronous.
987
962
  GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::NotifyFramesWriteDone";
988
- reader_state_.ResumeReadLoopIfPaused();
963
+ read_context_.ResumeReadLoopIfPaused();
989
964
  MaybeSpawnPingTimeout(ping_manager_->NotifyPingSent());
990
965
  goaway_manager_.NotifyGoawaySent();
991
966
  MaybeSpawnWaitForSettingsTimeout();
@@ -1043,7 +1018,8 @@ absl::Status Http2ClientTransport::DequeueStreamFrames(
1043
1018
  "enqueue stream "
1044
1019
  << stream->GetStreamId() << " with status: " << status;
1045
1020
  // Close transport if we fail to enqueue stream.
1046
- return HandleError(std::nullopt, ToHttpOkOrConnError(status));
1021
+ return HandleError(/*stream_id=*/std::nullopt,
1022
+ ToHttpOkOrConnError(status));
1047
1023
  }
1048
1024
  }
1049
1025
 
@@ -1086,11 +1062,6 @@ absl::Status Http2ClientTransport::DequeueStreamFrames(
1086
1062
  /*close_writes=*/true});
1087
1063
  }
1088
1064
 
1089
- // Update the write_bytes_remaining_ based on the bytes consumed
1090
- // in the current dequeue.
1091
- // Note: We do tend to overestimate the bytes consumed here. This may result
1092
- // in sending less data than target_write_size_.
1093
-
1094
1065
  GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::DequeueStreamFrames "
1095
1066
  "After dequeue: "
1096
1067
  << write_cycle.DebugString()
@@ -1126,10 +1097,6 @@ auto Http2ClientTransport::MultiplexerLoop() {
1126
1097
  }
1127
1098
  NotifyUrgentFramesWriteDone();
1128
1099
  WriteCycle& write_cycle = transport_write_context_.GetWriteCycle();
1129
- GRPC_HTTP2_CLIENT_DLOG
1130
- << "Http2ClientTransport::MultiplexerLoop "
1131
- << "Starting to iterate over writable stream list "
1132
- << write_cycle.DebugString();
1133
1100
  // Drain all the writable streams till we have written
1134
1101
  // max_write_size_ bytes of data or there is no more data to send.
1135
1102
  // In some cases, we may write more than max_write_size_ bytes(like
@@ -1226,9 +1193,8 @@ absl::Status Http2ClientTransport::InitializeStream(Stream& stream) {
1226
1193
  << next_stream_id.value() << " to stream: " << &stream
1227
1194
  << ", allow_true_binary_metadata:"
1228
1195
  << settings_->peer().allow_true_binary_metadata();
1229
- stream.InitializeClientStream(
1230
- next_stream_id.value(), settings_->peer().allow_true_binary_metadata(),
1231
- settings_->acked().allow_true_binary_metadata());
1196
+ stream.InitializeClientStream(next_stream_id.value(),
1197
+ settings_->peer().allow_true_binary_metadata());
1232
1198
  return absl::OkStatus();
1233
1199
  }
1234
1200
 
@@ -1266,9 +1232,10 @@ auto Http2ClientTransport::WaitForSettingsTimeoutOnDone() {
1266
1232
  return [self = RefAsSubclass<Http2ClientTransport>()](absl::Status status) {
1267
1233
  if (!status.ok()) {
1268
1234
  GRPC_UNUSED absl::Status result = self->HandleError(
1269
- std::nullopt, Http2Status::Http2ConnectionError(
1270
- Http2ErrorCode::kProtocolError,
1271
- std::string(RFC9113::kSettingsTimeout)));
1235
+ /*stream_id=*/std::nullopt,
1236
+ Http2Status::Http2ConnectionError(
1237
+ Http2ErrorCode::kProtocolError,
1238
+ std::string(RFC9113::kSettingsTimeout)));
1272
1239
  }
1273
1240
  };
1274
1241
  }
@@ -1311,13 +1278,11 @@ Http2ClientTransport::Http2ClientTransport(
1311
1278
  std::move(on_receive_settings))),
1312
1279
  next_stream_id_(/*Initial Stream ID*/ 1),
1313
1280
  should_reset_ping_clock_(false),
1314
- incoming_headers_(IncomingMetadataTracker::GetPeerString(endpoint_),
1315
- kIsClient),
1281
+ read_context_(MaxNewStreamsPerRead(channel_args), endpoint_, kIsClient),
1316
1282
  transport_write_context_(kIsClient),
1317
1283
  ping_manager_(std::nullopt),
1318
1284
  keepalive_manager_(std::nullopt),
1319
1285
  goaway_manager_(GoawayInterfaceImpl::Make(this)),
1320
- security_frame_handler_(MakeRefCounted<SecurityFrameHandler>()),
1321
1286
  memory_owner_(channel_args.GetObject<ResourceQuota>()
1322
1287
  ->memory_quota()
1323
1288
  ->CreateMemoryOwner()),
@@ -1325,6 +1290,7 @@ Http2ClientTransport::Http2ClientTransport(
1325
1290
  "PH2_Client",
1326
1291
  channel_args.GetBool(GRPC_ARG_HTTP2_BDP_PROBE).value_or(true),
1327
1292
  &memory_owner_),
1293
+ security_frame_handler_(MakeRefCounted<SecurityFrameHandler>()),
1328
1294
  ztrace_collector_(std::make_shared<PromiseHttp2ZTraceCollector>()) {
1329
1295
  GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::Http2ClientTransport Begin";
1330
1296
  // Initialize the general party and write party.
@@ -1365,7 +1331,6 @@ void Http2ClientTransport::SpawnTransportLoops() {
1365
1331
  // For Client, write happens before read. So MultiplexerLoop is spawned first.
1366
1332
  // ReadLoop is spawned after the first write.
1367
1333
  // For Server, read happens before write. So ReadLoop is spawned first.
1368
- // MultiplexerLoop is spawned after the first read.
1369
1334
  SpawnGuardedTransportParty("MultiplexerLoop",
1370
1335
  UntilTransportClosed(MultiplexerLoop()));
1371
1336
  GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::SpawnTransportLoops End";
@@ -1379,10 +1344,8 @@ void Http2ClientTransport::ReadChannelArgs(const ChannelArgs& channel_args,
1379
1344
 
1380
1345
  // Assign the channel args to the member variables.
1381
1346
  keepalive_time_ = args.keepalive_time;
1382
- incoming_headers_.set_soft_limit(args.max_header_list_size_soft_limit);
1347
+ read_context_.set_soft_limit(args.max_header_list_size_soft_limit);
1383
1348
  keepalive_permit_without_calls_ = args.keepalive_permit_without_calls;
1384
- enable_preferred_rx_crypto_frame_advertisement_ =
1385
- args.enable_preferred_rx_crypto_frame_advertisement;
1386
1349
  test_only_ack_pings_ = args.test_only_ack_pings;
1387
1350
 
1388
1351
  if (args.initial_sequence_number > 0) {
@@ -1438,7 +1401,7 @@ void Http2ClientTransport::CloseStream(Stream& stream, CloseStreamArgs args,
1438
1401
  << "Http2ClientTransport::CloseStream for stream id: "
1439
1402
  << stream.GetStreamId() << " close_reads=" << args.close_reads
1440
1403
  << " close_writes=" << args.close_writes
1441
- << " incoming_headers_=" << incoming_headers_.DebugString()
1404
+ << " read_context_=" << read_context_.DebugString()
1442
1405
  << " location=" << whence.file() << ":" << whence.line();
1443
1406
 
1444
1407
  if (args.close_writes) {
@@ -1452,9 +1415,9 @@ void Http2ClientTransport::CloseStream(Stream& stream, CloseStreamArgs args,
1452
1415
  // If the stream is closed while reading HEADER/CONTINUATION frames, we
1453
1416
  // should still parse the enqueued buffer to maintain HPACK state between
1454
1417
  // peers.
1455
- if (incoming_headers_.IsWaitingForContinuationFrame()) {
1456
- Http2Status result = incoming_headers_.ParseAndDiscardHeaders(
1457
- SliceBuffer(), /*is_end_headers=*/false, &stream,
1418
+ if (read_context_.IsWaitingForContinuationFrame()) {
1419
+ Http2Status result = read_context_.ParseAndDiscardHeaders(
1420
+ SliceBuffer(), /*is_end_headers=*/false,
1458
1421
  /*original_status=*/Http2Status::Ok(),
1459
1422
  settings_->acked().max_header_list_size());
1460
1423
  if (result.GetType() == Http2Status::Http2ErrorType::kConnectionError) {
@@ -1726,6 +1689,8 @@ void Http2ClientTransport::SpawnAddChannelzData(RefCountedPtr<Party> party,
1726
1689
  .Set("keepalive_time", self->keepalive_time_)
1727
1690
  .Set("keepalive_permit_without_calls",
1728
1691
  self->keepalive_permit_without_calls_)
1692
+ .Set("max_requests_per_read",
1693
+ self->read_context_.max_new_streams_per_read_cycle())
1729
1694
  .Set("settings", self->settings_->ChannelzProperties())
1730
1695
  .Set("flow_control",
1731
1696
  self->flow_control_.stats().ChannelzProperties()));
@@ -1777,8 +1742,8 @@ RefCountedPtr<channelz::SocketNode> Http2ClientTransport::GetSocketNode()
1777
1742
 
1778
1743
  absl::StatusOr<uint32_t> Http2ClientTransport::NextStreamId() {
1779
1744
  if (next_stream_id_ > GetMaxAllowedStreamId()) {
1780
- // TODO(tjagtap) : [PH2][P3] : Handle case if transport runs out of stream
1781
- // ids
1745
+ // TODO(tjagtap) : [PH2][P2] : Handle case if transport runs out of stream
1746
+ // ids. Similar check is there in the same function. Check what to do.
1782
1747
  // RFC9113 : Stream identifiers cannot be reused. Long-lived connections
1783
1748
  // can result in an endpoint exhausting the available range of stream
1784
1749
  // identifiers. A client that is unable to establish a new stream
@@ -1824,16 +1789,16 @@ absl::Status Http2ClientTransport::MaybeAddStreamToWritableStreamList(
1824
1789
  << "Http2ClientTransport::MaybeAddStreamToWritableStreamList Stream "
1825
1790
  "id: "
1826
1791
  << stream->GetStreamId() << " became writable";
1827
- // TODO(akshitpatel) [Perf]: Might be worth exploring if this funciton
1828
- // should take a raw stream ptr and take a ref here.
1792
+ // TODO(akshitpatel) [PH2][P4][Perf]: Might be worth exploring if this
1793
+ // function should take a raw stream ptr and take a ref here.
1829
1794
  absl::Status status =
1830
1795
  writable_stream_list_.Enqueue(std::move(stream), result.priority);
1831
1796
  if (!status.ok()) {
1832
1797
  return HandleError(
1833
- std::nullopt,
1798
+ /*stream_id=*/std::nullopt,
1834
1799
  Http2Status::Http2ConnectionError(
1835
1800
  Http2ErrorCode::kRefusedStream,
1836
- "Failed to enqueue stream to writable stream list"));
1801
+ std::string(GrpcErrors::kFailedToEnqueueStream)));
1837
1802
  }
1838
1803
  }
1839
1804
  return absl::OkStatus();
@@ -1932,14 +1897,10 @@ void Http2ClientTransport::SetMaxAllowedStreamId(
1932
1897
  if (GPR_LIKELY(max_allowed_stream_id <= old_max_allowed_stream_id)) {
1933
1898
  max_allowed_stream_id_ = max_allowed_stream_id;
1934
1899
  } else {
1900
+ GRPC_DCHECK_LE(max_allowed_stream_id, old_max_allowed_stream_id);
1935
1901
  LOG_IF(ERROR, max_allowed_stream_id > old_max_allowed_stream_id)
1936
1902
  << "Endpoints MUST NOT increase the value they send in the last "
1937
- "stream "
1938
- "identifier";
1939
- GRPC_DCHECK_LE(max_allowed_stream_id, old_max_allowed_stream_id)
1940
- << "Endpoints MUST NOT increase the value they send in the last "
1941
- "stream "
1942
- "identifier";
1903
+ "stream identifier";
1943
1904
  }
1944
1905
  }
1945
1906
 
@@ -1968,7 +1929,7 @@ auto Http2ClientTransport::CallOutboundLoop(RefCountedPtr<Stream> stream) {
1968
1929
  if (GPR_UNLIKELY(!enqueue_result.ok())) {
1969
1930
  return enqueue_result.status();
1970
1931
  }
1971
- GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport CallOutboundLoop "
1932
+ GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::CallOutboundLoop "
1972
1933
  "Enqueued Initial Metadata";
1973
1934
  return MaybeAddStreamToWritableStreamList(std::move(stream),
1974
1935
  enqueue_result.value());
@@ -1980,7 +1941,7 @@ auto Http2ClientTransport::CallOutboundLoop(RefCountedPtr<Stream> stream) {
1980
1941
  if (GPR_UNLIKELY(!enqueue_result.ok())) {
1981
1942
  return enqueue_result.status();
1982
1943
  }
1983
- GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport CallOutboundLoop "
1944
+ GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::CallOutboundLoop "
1984
1945
  "Enqueued Half Closed";
1985
1946
  return MaybeAddStreamToWritableStreamList(std::move(stream),
1986
1947
  enqueue_result.value());
@@ -2177,7 +2138,7 @@ uint32_t Http2ClientTransport::GoawayInterfaceImpl::GetLastAcceptedStreamId() {
2177
2138
  // TODO(akshitpatel) : [PH2][P2] : Eventually there should be a separate ref
2178
2139
  // counted struct/class passed to all the transport promises/members. This
2179
2140
  // will help removing back references from the transport members to
2180
- // transport and greatly simpilfy the cleanup path. Need to do this for
2141
+ // transport and greatly simplify the cleanup path. Need to do this for
2181
2142
  // PingSystemInterfaceImpl, KeepAliveInterfaceImpl and GoawayInterfaceImpl.
2182
2143
 
2183
2144
  } // namespace http2
@@ -43,9 +43,9 @@
43
43
  #include "src/core/ext/transport/chttp2/transport/http2_status.h"
44
44
  #include "src/core/ext/transport/chttp2/transport/http2_transport.h"
45
45
  #include "src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h"
46
- #include "src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h"
47
46
  #include "src/core/ext/transport/chttp2/transport/keepalive.h"
48
47
  #include "src/core/ext/transport/chttp2/transport/ping_promise.h"
48
+ #include "src/core/ext/transport/chttp2/transport/read_context.h"
49
49
  #include "src/core/ext/transport/chttp2/transport/security_frame.h"
50
50
  #include "src/core/ext/transport/chttp2/transport/stream.h"
51
51
  #include "src/core/ext/transport/chttp2/transport/stream_data_queue.h"
@@ -321,8 +321,8 @@ class Http2ClientTransport final : public ClientTransport,
321
321
  << "Http2ClientTransport::TriggerWriteCycleOrHandleError failed with "
322
322
  "status: "
323
323
  << status << " at " << whence.file() << ":" << whence.line();
324
- GRPC_UNUSED absl::Status unused_status =
325
- HandleError(std::nullopt, ToHttpOkOrConnError(status), whence);
324
+ GRPC_UNUSED absl::Status unused_status = HandleError(
325
+ /*stream_id=*/std::nullopt, ToHttpOkOrConnError(status), whence);
326
326
  return false;
327
327
  }
328
328
 
@@ -647,8 +647,6 @@ class Http2ClientTransport final : public ClientTransport,
647
647
  PromiseEndpoint endpoint_;
648
648
  RefCountedPtr<SettingsPromiseManager> settings_;
649
649
 
650
- Http2FrameHeader current_frame_header_;
651
-
652
650
  Mutex transport_mutex_;
653
651
 
654
652
  absl::flat_hash_map<uint32_t, RefCountedPtr<Stream>> stream_list_
@@ -665,7 +663,7 @@ class Http2ClientTransport final : public ClientTransport,
665
663
  RefCountedPtr<StateWatcher> watcher_ ABSL_GUARDED_BY(transport_mutex_);
666
664
 
667
665
  bool should_reset_ping_clock_;
668
- IncomingMetadataTracker incoming_headers_;
666
+ ReadContext read_context_;
669
667
 
670
668
  // Transport wide write context. This is used to track the state of the
671
669
  // transport during write cycles.
@@ -685,20 +683,15 @@ class Http2ClientTransport final : public ClientTransport,
685
683
 
686
684
  GoawayManager goaway_manager_;
687
685
 
686
+ MemoryOwner memory_owner_;
687
+ chttp2::TransportFlowControl flow_control_;
688
688
  WritableStreams<RefCountedPtr<Stream>> writable_stream_list_;
689
689
 
690
- /// Based on channel args, preferred_rx_crypto_frame_sizes are advertised to
691
- /// the peer
692
- bool enable_preferred_rx_crypto_frame_advertisement_;
693
690
  RefCountedPtr<SecurityFrameHandler> security_frame_handler_;
694
- MemoryOwner memory_owner_;
695
- chttp2::TransportFlowControl flow_control_;
696
691
  std::shared_ptr<PromiseHttp2ZTraceCollector> ztrace_collector_;
697
692
 
698
693
  // TODO(tjagtap) [PH2][P2][BDP] Remove this when the BDP code is done.
699
694
  Waker periodic_updates_waker_;
700
-
701
- Http2ReadContext reader_state_;
702
695
  };
703
696
 
704
697
  } // namespace http2