grpc 1.44.0.pre2 → 1.45.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (1072) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +291 -178
  3. data/include/grpc/event_engine/event_engine.h +2 -2
  4. data/include/grpc/grpc.h +40 -14
  5. data/include/grpc/grpc_posix.h +20 -19
  6. data/include/grpc/grpc_security.h +26 -50
  7. data/include/grpc/impl/codegen/grpc_types.h +11 -8
  8. data/include/grpc/impl/codegen/port_platform.h +2 -2
  9. data/include/grpc/impl/codegen/slice.h +4 -1
  10. data/include/grpc/slice.h +0 -11
  11. data/src/core/ext/filters/client_channel/backend_metric.cc +3 -3
  12. data/src/core/ext/filters/client_channel/backup_poller.cc +12 -8
  13. data/src/core/ext/filters/client_channel/channel_connectivity.cc +5 -5
  14. data/src/core/ext/filters/client_channel/client_channel.cc +79 -57
  15. data/src/core/ext/filters/client_channel/client_channel.h +30 -29
  16. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +5 -11
  17. data/src/core/ext/filters/client_channel/connector.h +1 -1
  18. data/src/core/ext/filters/client_channel/dynamic_filters.cc +1 -2
  19. data/src/core/ext/filters/client_channel/dynamic_filters.h +1 -1
  20. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -22
  21. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -15
  22. data/src/core/ext/filters/client_channel/health/health_check_client.cc +16 -17
  23. data/src/core/ext/filters/client_channel/health/health_check_client.h +1 -1
  24. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +9 -12
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +1 -0
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +68 -47
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +15 -15
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +4 -4
  29. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +7 -3
  30. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +22 -17
  31. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +119 -82
  32. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +2 -2
  33. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +9 -4
  34. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +51 -24
  35. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -1
  36. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +19 -12
  37. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +7 -13
  38. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +62 -49
  39. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +18 -19
  40. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +41 -43
  41. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +8 -7
  42. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +82 -57
  43. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +35 -34
  44. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +35 -36
  45. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -10
  46. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +11 -5
  47. data/src/core/ext/filters/client_channel/retry_filter.cc +219 -125
  48. data/src/core/ext/filters/client_channel/retry_service_config.cc +15 -17
  49. data/src/core/ext/filters/client_channel/retry_service_config.h +17 -11
  50. data/src/core/ext/filters/client_channel/retry_throttle.cc +9 -23
  51. data/src/core/ext/filters/client_channel/retry_throttle.h +11 -5
  52. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +7 -6
  53. data/src/core/ext/filters/client_channel/subchannel.cc +35 -38
  54. data/src/core/ext/filters/client_channel/subchannel.h +5 -4
  55. data/src/core/ext/filters/client_idle/client_idle_filter.cc +96 -159
  56. data/src/core/ext/filters/client_idle/idle_filter_state.h +2 -2
  57. data/src/core/ext/filters/deadline/deadline_filter.cc +15 -14
  58. data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
  59. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +17 -11
  60. data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
  61. data/src/core/ext/filters/fault_injection/service_config_parser.h +9 -3
  62. data/src/core/ext/filters/http/client/http_client_filter.cc +7 -3
  63. data/src/core/ext/filters/http/client_authority_filter.cc +28 -71
  64. data/src/core/ext/filters/http/client_authority_filter.h +23 -5
  65. data/src/core/ext/filters/http/http_filters_plugin.cc +11 -12
  66. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +1 -0
  67. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +10 -2
  68. data/src/core/ext/filters/http/server/http_server_filter.cc +1 -0
  69. data/src/core/ext/filters/max_age/max_age_filter.cc +46 -40
  70. data/src/core/ext/filters/message_size/message_size_filter.cc +26 -34
  71. data/src/core/ext/filters/message_size/message_size_filter.h +9 -2
  72. data/src/core/ext/filters/rbac/rbac_filter.cc +13 -8
  73. data/src/core/ext/filters/rbac/rbac_filter.h +2 -0
  74. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +6 -5
  75. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +6 -1
  76. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +1 -0
  77. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +234 -0
  78. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +149 -7
  79. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +110 -47
  80. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -2
  81. data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -2
  82. data/src/core/ext/transport/chttp2/transport/flow_control.h +3 -3
  83. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -4
  84. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +5 -0
  85. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -2
  86. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +1 -1
  87. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +15 -51
  88. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +2 -2
  89. data/src/core/ext/transport/chttp2/transport/internal.h +6 -6
  90. data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -3
  91. data/src/core/ext/transport/chttp2/transport/writing.cc +15 -12
  92. data/src/core/ext/transport/inproc/inproc_transport.cc +16 -12
  93. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +114 -0
  94. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +402 -0
  95. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +119 -0
  96. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +453 -0
  97. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +165 -163
  98. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +798 -575
  99. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
  100. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +138 -0
  101. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +62 -0
  102. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +146 -0
  103. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
  104. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +106 -0
  105. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
  106. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +93 -0
  107. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
  108. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +88 -0
  109. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +103 -0
  110. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +466 -0
  111. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
  112. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +95 -0
  113. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +22 -20
  114. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +17 -16
  115. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +15 -13
  116. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +31 -23
  117. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +90 -88
  118. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +421 -317
  119. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +156 -152
  120. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +787 -571
  121. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +27 -25
  122. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +115 -79
  123. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +206 -204
  124. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +954 -662
  125. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +10 -8
  126. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +33 -23
  127. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +29 -27
  128. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +127 -79
  129. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +290 -0
  130. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1122 -0
  131. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +49 -47
  132. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +221 -159
  133. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +10 -8
  134. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +33 -23
  135. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +154 -151
  136. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +691 -499
  137. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +39 -37
  138. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +178 -130
  139. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +9 -7
  140. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +25 -19
  141. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +18 -16
  142. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +74 -53
  143. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
  144. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +138 -0
  145. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +100 -98
  146. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +449 -329
  147. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +77 -75
  148. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +365 -264
  149. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +11 -9
  150. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +36 -26
  151. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +140 -105
  152. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +675 -345
  153. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +8 -6
  154. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +25 -17
  155. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +15 -13
  156. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +59 -42
  157. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +13 -11
  158. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +39 -25
  159. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +14 -12
  160. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +45 -35
  161. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +10 -8
  162. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +34 -24
  163. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +31 -29
  164. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +113 -85
  165. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +47 -45
  166. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +210 -151
  167. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +48 -46
  168. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +210 -142
  169. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +9 -7
  170. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +28 -20
  171. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +58 -54
  172. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +282 -193
  173. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +64 -62
  174. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +286 -218
  175. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +15 -13
  176. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +62 -42
  177. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +12 -10
  178. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +54 -39
  179. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
  180. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +120 -0
  181. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +55 -53
  182. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +244 -185
  183. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +57 -55
  184. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +260 -192
  185. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +70 -68
  186. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +235 -191
  187. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +30 -28
  188. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +142 -112
  189. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +435 -428
  190. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2037 -1507
  191. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +25 -19
  192. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +107 -64
  193. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +216 -0
  194. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +870 -0
  195. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
  196. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +82 -0
  197. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
  198. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +95 -0
  199. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +15 -13
  200. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +55 -40
  201. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
  202. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +119 -0
  203. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +62 -0
  204. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +203 -0
  205. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
  206. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +89 -0
  207. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
  208. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +184 -0
  209. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +32 -0
  210. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +42 -0
  211. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
  212. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +192 -0
  213. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
  214. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +126 -0
  215. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +8 -6
  216. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +29 -23
  217. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +26 -24
  218. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +125 -93
  219. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +33 -31
  220. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +149 -105
  221. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +16 -14
  222. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +63 -44
  223. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +15 -13
  224. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +53 -37
  225. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +175 -173
  226. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +803 -559
  227. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +3 -1
  228. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -1
  229. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +75 -52
  230. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +368 -194
  231. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +24 -22
  232. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +95 -71
  233. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +60 -58
  234. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +266 -193
  235. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
  236. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +146 -0
  237. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +6 -4
  238. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +22 -16
  239. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +64 -62
  240. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +297 -218
  241. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +18 -16
  242. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +73 -54
  243. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +46 -44
  244. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +197 -145
  245. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
  246. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +101 -0
  247. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +19 -17
  248. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +91 -70
  249. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
  250. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +202 -0
  251. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +16 -14
  252. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +64 -47
  253. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +10 -8
  254. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +34 -26
  255. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +10 -8
  256. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +25 -19
  257. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +9 -7
  258. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +25 -19
  259. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +21 -19
  260. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +85 -61
  261. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +19 -17
  262. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +65 -52
  263. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +14 -12
  264. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +56 -43
  265. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +21 -19
  266. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +74 -58
  267. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +30 -28
  268. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +163 -125
  269. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +34 -32
  270. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +157 -113
  271. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
  272. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +183 -0
  273. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +3 -1
  274. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -1
  275. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
  276. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +136 -0
  277. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +13 -11
  278. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +51 -34
  279. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +19 -17
  280. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +80 -52
  281. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
  282. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
  283. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +10 -8
  284. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +31 -19
  285. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
  286. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +114 -0
  287. data/src/core/ext/upb-generated/google/api/annotations.upb.c +10 -8
  288. data/src/core/ext/upb-generated/google/api/annotations.upb.h +6 -5
  289. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +100 -98
  290. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +371 -281
  291. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +110 -108
  292. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +409 -298
  293. data/src/core/ext/upb-generated/google/api/http.upb.c +29 -27
  294. data/src/core/ext/upb-generated/google/api/http.upb.h +117 -89
  295. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
  296. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +99 -0
  297. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +9 -7
  298. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +32 -22
  299. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +287 -234
  300. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1088 -764
  301. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +9 -7
  302. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +28 -18
  303. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +6 -4
  304. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +22 -16
  305. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +30 -28
  306. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +80 -64
  307. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +9 -7
  308. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +28 -18
  309. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +40 -38
  310. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +213 -149
  311. data/src/core/ext/upb-generated/google/rpc/status.upb.c +11 -9
  312. data/src/core/ext/upb-generated/google/rpc/status.upb.h +36 -26
  313. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
  314. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +276 -0
  315. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +20 -18
  316. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +60 -42
  317. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +95 -93
  318. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +396 -285
  319. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +15 -13
  320. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +58 -39
  321. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +12 -10
  322. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +50 -35
  323. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +55 -53
  324. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +255 -183
  325. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +22 -20
  326. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +76 -57
  327. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +46 -44
  328. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +102 -78
  329. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +16 -14
  330. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +32 -22
  331. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +9 -7
  332. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +6 -5
  333. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +16 -14
  334. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +32 -22
  335. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +15 -13
  336. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +31 -23
  337. data/src/core/ext/upb-generated/validate/validate.upb.c +320 -304
  338. data/src/core/ext/upb-generated/validate/validate.upb.h +1114 -741
  339. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
  340. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +191 -0
  341. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
  342. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +87 -0
  343. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
  344. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +38 -0
  345. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +40 -38
  346. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +109 -78
  347. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
  348. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +81 -0
  349. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +8 -6
  350. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +27 -19
  351. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +17 -15
  352. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +63 -46
  353. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +14 -12
  354. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +31 -25
  355. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
  356. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +95 -0
  357. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +11 -9
  358. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +39 -27
  359. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +20 -18
  360. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +73 -54
  361. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +12 -10
  362. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +43 -29
  363. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +23 -21
  364. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +43 -31
  365. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +203 -0
  366. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +726 -0
  367. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
  368. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +132 -0
  369. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
  370. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +173 -0
  371. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +10 -8
  372. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +33 -23
  373. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
  374. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
  375. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
  376. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
  377. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +14 -12
  378. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +67 -67
  379. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
  380. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
  381. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +53 -0
  382. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
  383. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
  384. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
  385. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
  386. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
  387. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
  388. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
  389. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
  390. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
  391. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
  392. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
  393. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +8 -6
  394. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +1 -1
  395. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +8 -6
  396. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +4 -4
  397. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +20 -17
  398. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +46 -46
  399. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +248 -240
  400. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +55 -55
  401. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +16 -13
  402. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +10 -10
  403. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +375 -371
  404. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +76 -76
  405. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +14 -11
  406. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +4 -4
  407. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +16 -13
  408. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +4 -4
  409. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
  410. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
  411. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +15 -13
  412. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +22 -22
  413. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +15 -12
  414. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +4 -4
  415. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +85 -80
  416. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +73 -73
  417. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +18 -16
  418. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +16 -16
  419. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +14 -12
  420. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +4 -4
  421. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +15 -12
  422. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +7 -7
  423. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
  424. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
  425. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +21 -18
  426. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +43 -43
  427. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +23 -20
  428. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +25 -25
  429. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +14 -12
  430. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +4 -4
  431. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +250 -221
  432. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +53 -43
  433. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +12 -9
  434. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +4 -4
  435. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +14 -11
  436. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +7 -7
  437. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +14 -11
  438. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +4 -4
  439. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +18 -15
  440. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +4 -4
  441. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +13 -11
  442. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +4 -4
  443. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +18 -15
  444. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +13 -13
  445. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +19 -16
  446. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +19 -19
  447. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +18 -15
  448. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +16 -16
  449. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +14 -11
  450. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +4 -4
  451. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +52 -45
  452. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +19 -19
  453. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +23 -20
  454. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +22 -22
  455. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +19 -16
  456. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +4 -4
  457. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +15 -12
  458. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +7 -7
  459. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
  460. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
  461. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +17 -14
  462. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +25 -25
  463. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +17 -14
  464. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +28 -28
  465. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +23 -21
  466. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +25 -25
  467. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +19 -16
  468. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +10 -10
  469. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +816 -801
  470. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +160 -160
  471. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +52 -37
  472. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +10 -10
  473. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +188 -0
  474. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +85 -0
  475. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
  476. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
  477. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
  478. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
  479. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +15 -12
  480. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +7 -7
  481. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
  482. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
  483. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
  484. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
  485. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
  486. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
  487. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
  488. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
  489. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +57 -0
  490. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
  491. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
  492. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
  493. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
  494. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
  495. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +15 -11
  496. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +4 -4
  497. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +17 -14
  498. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +16 -16
  499. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +18 -15
  500. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +10 -10
  501. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +14 -11
  502. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +7 -7
  503. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +17 -13
  504. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +4 -4
  505. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +135 -130
  506. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +58 -58
  507. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +15 -11
  508. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +1 -1
  509. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +169 -140
  510. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +24 -19
  511. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +19 -16
  512. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +10 -10
  513. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +21 -17
  514. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +19 -19
  515. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
  516. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
  517. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +14 -11
  518. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +4 -4
  519. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +17 -14
  520. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +22 -22
  521. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +16 -13
  522. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +7 -7
  523. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +20 -17
  524. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +16 -16
  525. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
  526. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
  527. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +13 -10
  528. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +13 -13
  529. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
  530. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
  531. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +15 -12
  532. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +7 -7
  533. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +15 -12
  534. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +4 -4
  535. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +15 -12
  536. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +4 -4
  537. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +15 -12
  538. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +4 -4
  539. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +15 -12
  540. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +10 -10
  541. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +15 -12
  542. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +7 -7
  543. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +14 -12
  544. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +7 -7
  545. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +16 -13
  546. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +10 -10
  547. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +13 -10
  548. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +22 -22
  549. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +14 -11
  550. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +16 -16
  551. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
  552. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
  553. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +10 -8
  554. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +1 -1
  555. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
  556. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
  557. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +12 -10
  558. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +7 -7
  559. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +11 -8
  560. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +10 -10
  561. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
  562. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
  563. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +11 -9
  564. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +4 -4
  565. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
  566. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
  567. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +5 -5
  568. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +1 -1
  569. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +6 -6
  570. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +40 -40
  571. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +6 -6
  572. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +43 -43
  573. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +3 -3
  574. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +10 -10
  575. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
  576. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
  577. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +3 -3
  578. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +4 -4
  579. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +3 -3
  580. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +82 -82
  581. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +3 -3
  582. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +4 -4
  583. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +3 -3
  584. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +4 -4
  585. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +3 -3
  586. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +13 -13
  587. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +3 -3
  588. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +4 -4
  589. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +3 -3
  590. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +28 -28
  591. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
  592. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +4 -4
  593. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
  594. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
  595. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +4 -4
  596. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +10 -10
  597. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +5 -5
  598. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +4 -4
  599. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +4 -4
  600. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +1 -1
  601. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +4 -4
  602. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +4 -4
  603. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +4 -4
  604. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +4 -4
  605. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +6 -6
  606. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +70 -70
  607. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
  608. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
  609. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
  610. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
  611. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
  612. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
  613. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +4 -4
  614. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +13 -13
  615. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
  616. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
  617. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +5 -5
  618. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +4 -4
  619. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +7 -7
  620. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +7 -7
  621. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +4 -4
  622. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +7 -7
  623. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
  624. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
  625. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +6 -6
  626. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +4 -4
  627. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +6 -6
  628. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +7 -7
  629. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +6 -6
  630. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +4 -4
  631. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
  632. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
  633. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
  634. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
  635. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
  636. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
  637. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +5 -5
  638. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +4 -4
  639. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +4 -4
  640. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
  641. data/src/core/ext/xds/upb_utils.h +8 -6
  642. data/src/core/ext/xds/xds_api.cc +52 -35
  643. data/src/core/ext/xds/xds_api.h +4 -4
  644. data/src/core/ext/xds/xds_bootstrap.cc +35 -3
  645. data/src/core/ext/xds/xds_bootstrap.h +11 -0
  646. data/src/core/ext/xds/xds_channel_stack_modifier.cc +14 -17
  647. data/src/core/ext/xds/xds_channel_stack_modifier.h +4 -3
  648. data/src/core/ext/xds/xds_client.cc +141 -106
  649. data/src/core/ext/xds/xds_client.h +23 -15
  650. data/src/core/ext/xds/xds_client_stats.cc +15 -15
  651. data/src/core/ext/xds/xds_client_stats.h +5 -4
  652. data/src/core/ext/xds/xds_cluster.cc +18 -16
  653. data/src/core/ext/xds/xds_cluster.h +3 -6
  654. data/src/core/ext/xds/xds_common_types.cc +1 -1
  655. data/src/core/ext/xds/xds_common_types.h +5 -20
  656. data/src/core/ext/xds/xds_endpoint.cc +2 -2
  657. data/src/core/ext/xds/xds_endpoint.h +1 -1
  658. data/src/core/ext/xds/xds_http_fault_filter.cc +6 -6
  659. data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
  660. data/src/core/ext/xds/xds_http_filters.cc +6 -5
  661. data/src/core/ext/xds/xds_http_filters.h +4 -4
  662. data/src/core/ext/xds/xds_http_rbac_filter.cc +5 -5
  663. data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
  664. data/src/core/ext/xds/xds_listener.cc +14 -11
  665. data/src/core/ext/xds/xds_listener.h +1 -1
  666. data/src/core/ext/xds/xds_resource_type.h +1 -1
  667. data/src/core/ext/xds/xds_route_config.cc +13 -21
  668. data/src/core/ext/xds/xds_route_config.h +1 -1
  669. data/src/core/ext/xds/xds_routing.cc +1 -1
  670. data/src/core/ext/xds/xds_server_config_fetcher.cc +3 -2
  671. data/src/core/lib/backoff/backoff.cc +7 -10
  672. data/src/core/lib/backoff/backoff.h +8 -8
  673. data/src/core/lib/channel/call_finalization.h +86 -0
  674. data/src/core/lib/channel/channel_args.cc +60 -0
  675. data/src/core/lib/channel/channel_args.h +2 -0
  676. data/src/core/lib/channel/channel_args_preconditioning.cc +1 -0
  677. data/src/core/lib/channel/channel_stack.cc +2 -3
  678. data/src/core/lib/channel/channel_stack.h +41 -5
  679. data/src/core/lib/channel/channel_stack_builder.cc +66 -244
  680. data/src/core/lib/channel/channel_stack_builder.h +95 -144
  681. data/src/core/lib/channel/channel_trace.cc +3 -6
  682. data/src/core/lib/channel/connected_channel.cc +9 -4
  683. data/src/core/lib/channel/connected_channel.h +1 -1
  684. data/src/core/lib/channel/context.h +11 -0
  685. data/src/core/lib/channel/handshaker.cc +1 -1
  686. data/src/core/lib/channel/handshaker.h +1 -1
  687. data/src/core/lib/channel/promise_based_filter.cc +669 -0
  688. data/src/core/lib/channel/promise_based_filter.h +423 -0
  689. data/src/core/lib/compression/compression.cc +1 -1
  690. data/src/core/lib/compression/compression_internal.cc +1 -1
  691. data/src/core/lib/config/core_configuration.cc +8 -2
  692. data/src/core/lib/config/core_configuration.h +39 -0
  693. data/src/core/lib/event_engine/default_event_engine_factory.cc +27 -0
  694. data/src/core/lib/event_engine/event_engine.cc +23 -8
  695. data/src/core/lib/event_engine/event_engine_factory.h +3 -0
  696. data/src/core/lib/event_engine/memory_allocator.cc +9 -13
  697. data/src/core/lib/event_engine/{event_engine_factory.cc → resolved_address.cc} +10 -20
  698. data/src/core/lib/gpr/sync_posix.cc +1 -0
  699. data/src/core/lib/gpr/time.cc +2 -1
  700. data/src/core/lib/gpr/useful.h +14 -0
  701. data/src/core/lib/gprpp/capture.h +76 -0
  702. data/src/core/lib/gprpp/debug_location.h +2 -0
  703. data/src/core/lib/gprpp/status_helper.cc +12 -12
  704. data/src/core/lib/gprpp/status_helper.h +4 -4
  705. data/src/core/lib/gprpp/time.cc +186 -0
  706. data/src/core/lib/gprpp/time.h +292 -0
  707. data/src/core/lib/http/format_request.cc +27 -23
  708. data/src/core/lib/http/format_request.h +7 -6
  709. data/src/core/lib/http/httpcli.cc +306 -229
  710. data/src/core/lib/http/httpcli.h +182 -77
  711. data/src/core/lib/http/httpcli_security_connector.cc +62 -73
  712. data/src/core/lib/http/httpcli_ssl_credentials.h +37 -0
  713. data/src/core/lib/http/parser.h +1 -1
  714. data/src/core/lib/iomgr/buffer_list.h +5 -5
  715. data/src/core/lib/iomgr/error.cc +13 -12
  716. data/src/core/lib/iomgr/error.h +0 -5
  717. data/src/core/lib/iomgr/ev_apple.cc +6 -5
  718. data/src/core/lib/iomgr/ev_epoll1_linux.cc +8 -7
  719. data/src/core/lib/iomgr/ev_epollex_linux.cc +12 -9
  720. data/src/core/lib/iomgr/ev_poll_posix.cc +7 -7
  721. data/src/core/lib/iomgr/ev_posix.cc +3 -3
  722. data/src/core/lib/iomgr/ev_posix.h +1 -1
  723. data/src/core/lib/iomgr/event_engine/pollset.cc +2 -3
  724. data/src/core/lib/iomgr/event_engine/resolver.cc +1 -1
  725. data/src/core/lib/iomgr/event_engine/tcp.cc +4 -3
  726. data/src/core/lib/iomgr/event_engine/timer.cc +3 -4
  727. data/src/core/lib/iomgr/exec_ctx.cc +3 -88
  728. data/src/core/lib/iomgr/exec_ctx.h +7 -23
  729. data/src/core/lib/iomgr/iocp_windows.cc +9 -9
  730. data/src/core/lib/iomgr/iocp_windows.h +1 -1
  731. data/src/core/lib/iomgr/polling_entity.h +6 -0
  732. data/src/core/lib/iomgr/pollset.cc +1 -1
  733. data/src/core/lib/iomgr/pollset.h +4 -4
  734. data/src/core/lib/iomgr/pollset_windows.cc +2 -2
  735. data/src/core/lib/iomgr/port.h +4 -7
  736. data/src/core/lib/iomgr/resolve_address_posix.cc +1 -1
  737. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +62 -0
  738. data/src/core/lib/iomgr/socket_utils_common_posix.cc +0 -17
  739. data/src/core/lib/iomgr/tcp_client.cc +1 -1
  740. data/src/core/lib/iomgr/tcp_client.h +3 -2
  741. data/src/core/lib/iomgr/tcp_client_cfstream.cc +1 -1
  742. data/src/core/lib/iomgr/tcp_client_posix.cc +2 -2
  743. data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
  744. data/src/core/lib/iomgr/tcp_client_windows.cc +1 -1
  745. data/src/core/lib/iomgr/tcp_posix.cc +2 -1
  746. data/src/core/lib/iomgr/tcp_windows.cc +17 -10
  747. data/src/core/lib/iomgr/timer.cc +2 -2
  748. data/src/core/lib/iomgr/timer.h +11 -6
  749. data/src/core/lib/iomgr/timer_generic.cc +96 -77
  750. data/src/core/lib/iomgr/timer_manager.cc +15 -14
  751. data/src/core/lib/iomgr/work_serializer.cc +15 -10
  752. data/src/core/lib/json/json_util.cc +4 -4
  753. data/src/core/lib/json/json_util.h +2 -2
  754. data/src/core/lib/promise/activity.cc +14 -8
  755. data/src/core/lib/promise/activity.h +143 -131
  756. data/src/core/lib/promise/arena_promise.h +188 -0
  757. data/src/core/lib/promise/detail/basic_seq.h +92 -3
  758. data/src/core/lib/promise/detail/promise_factory.h +1 -1
  759. data/src/core/lib/promise/loop.h +34 -8
  760. data/src/core/lib/promise/poll.h +6 -0
  761. data/src/core/lib/promise/promise.h +95 -0
  762. data/src/core/lib/promise/seq.h +19 -1
  763. data/src/core/lib/promise/sleep.cc +74 -0
  764. data/src/core/lib/promise/sleep.h +66 -0
  765. data/src/core/lib/promise/try_seq.h +157 -0
  766. data/src/core/lib/resolver/resolver_factory.h +22 -26
  767. data/src/core/lib/resolver/resolver_registry.cc +98 -137
  768. data/src/core/lib/resolver/resolver_registry.h +59 -33
  769. data/src/core/lib/resource_quota/memory_quota.cc +118 -94
  770. data/src/core/lib/resource_quota/memory_quota.h +100 -64
  771. data/src/core/lib/security/authorization/evaluate_args.cc +1 -11
  772. data/src/core/lib/security/authorization/evaluate_args.h +0 -1
  773. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +109 -0
  774. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +51 -0
  775. data/src/core/lib/security/authorization/matchers.cc +5 -5
  776. data/src/core/lib/security/authorization/matchers.h +2 -2
  777. data/src/core/lib/security/authorization/rbac_policy.cc +3 -3
  778. data/src/core/lib/security/authorization/rbac_policy.h +3 -2
  779. data/src/core/lib/security/credentials/alts/alts_credentials.h +6 -0
  780. data/src/core/lib/security/credentials/call_creds_util.cc +87 -0
  781. data/src/core/lib/security/credentials/call_creds_util.h +42 -0
  782. data/src/core/lib/security/credentials/channel_creds_registry.h +97 -0
  783. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +70 -0
  784. data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -81
  785. data/src/core/lib/security/credentials/composite/composite_credentials.h +21 -10
  786. data/src/core/lib/security/credentials/credentials.cc +2 -3
  787. data/src/core/lib/security/credentials/credentials.h +64 -43
  788. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +46 -27
  789. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
  790. data/src/core/lib/security/credentials/external/external_account_credentials.cc +49 -29
  791. data/src/core/lib/security/credentials/external/external_account_credentials.h +4 -3
  792. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +0 -1
  793. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +33 -12
  794. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -0
  795. data/src/core/lib/security/credentials/fake/fake_credentials.cc +18 -19
  796. data/src/core/lib/security/credentials/fake/fake_credentials.h +11 -14
  797. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +15 -9
  798. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +6 -0
  799. data/src/core/lib/security/credentials/iam/iam_credentials.cc +12 -17
  800. data/src/core/lib/security/credentials/iam/iam_credentials.h +10 -9
  801. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +13 -7
  802. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +18 -22
  803. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +9 -9
  804. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -30
  805. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
  806. data/src/core/lib/security/credentials/local/local_credentials.h +6 -0
  807. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +117 -125
  808. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +49 -28
  809. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +95 -152
  810. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +54 -28
  811. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +6 -3
  812. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +19 -0
  813. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +10 -1
  814. data/src/core/lib/security/credentials/tls/tls_credentials.h +6 -0
  815. data/src/core/lib/security/credentials/xds/xds_credentials.h +5 -0
  816. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +8 -14
  817. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +1 -1
  818. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +4 -12
  819. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -2
  820. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +6 -16
  821. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +4 -9
  822. data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -16
  823. data/src/core/lib/security/security_connector/security_connector.cc +3 -11
  824. data/src/core/lib/security/security_connector/security_connector.h +11 -20
  825. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +6 -11
  826. data/src/core/lib/security/security_connector/ssl_utils.cc +15 -7
  827. data/src/core/lib/security/security_connector/ssl_utils.h +8 -3
  828. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +23 -14
  829. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +6 -6
  830. data/src/core/lib/security/transport/auth_filters.h +30 -4
  831. data/src/core/lib/security/transport/client_auth_filter.cc +73 -364
  832. data/src/core/lib/security/transport/security_handshaker.cc +14 -6
  833. data/src/core/lib/security/transport/server_auth_filter.cc +1 -0
  834. data/src/core/lib/service_config/service_config.h +6 -51
  835. data/src/core/lib/service_config/{service_config.cc → service_config_impl.cc} +19 -16
  836. data/src/core/lib/service_config/service_config_impl.h +125 -0
  837. data/src/core/lib/service_config/service_config_parser.cc +30 -26
  838. data/src/core/lib/service_config/service_config_parser.h +36 -27
  839. data/src/core/lib/slice/slice.cc +76 -181
  840. data/src/core/lib/slice/slice.h +28 -15
  841. data/src/core/lib/slice/slice_internal.h +12 -30
  842. data/src/core/lib/slice/slice_refcount.cc +18 -0
  843. data/src/core/lib/slice/slice_refcount.h +2 -72
  844. data/src/core/lib/slice/slice_refcount_base.h +16 -120
  845. data/src/core/lib/surface/builtins.cc +6 -6
  846. data/src/core/lib/surface/call.cc +14 -7
  847. data/src/core/lib/surface/call.h +1 -1
  848. data/src/core/lib/surface/channel.cc +26 -31
  849. data/src/core/lib/surface/channel.h +6 -7
  850. data/src/core/lib/surface/channel_init.cc +1 -1
  851. data/src/core/lib/surface/channel_init.h +4 -4
  852. data/src/core/lib/surface/completion_queue.cc +10 -9
  853. data/src/core/lib/surface/init.cc +78 -7
  854. data/src/core/lib/surface/init.h +0 -2
  855. data/src/core/lib/surface/lame_client.cc +2 -1
  856. data/src/core/lib/surface/server.cc +11 -22
  857. data/src/core/lib/surface/server.h +3 -3
  858. data/src/core/lib/surface/version.cc +2 -2
  859. data/src/core/lib/transport/bdp_estimator.cc +9 -10
  860. data/src/core/lib/transport/bdp_estimator.h +2 -2
  861. data/src/core/lib/transport/error_utils.cc +5 -3
  862. data/src/core/lib/transport/error_utils.h +2 -15
  863. data/src/core/lib/transport/metadata_batch.h +275 -97
  864. data/src/core/lib/transport/parsed_metadata.h +33 -17
  865. data/src/core/lib/transport/status_conversion.cc +2 -2
  866. data/src/core/lib/transport/status_conversion.h +1 -1
  867. data/src/core/lib/transport/timeout_encoding.cc +32 -29
  868. data/src/core/lib/transport/timeout_encoding.h +3 -3
  869. data/src/core/lib/transport/transport.cc +3 -1
  870. data/src/core/lib/transport/transport.h +87 -2
  871. data/src/core/lib/transport/transport_impl.h +13 -0
  872. data/src/core/lib/transport/transport_op_string.cc +5 -14
  873. data/src/core/lib/uri/uri_parser.cc +4 -0
  874. data/src/core/lib/uri/uri_parser.h +1 -0
  875. data/src/core/plugin_registry/grpc_plugin_registry.cc +19 -88
  876. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +85 -0
  877. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +26 -21
  878. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +9 -1
  879. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +19 -11
  880. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -2
  881. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
  882. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -2
  883. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +2 -2
  884. data/src/core/tsi/local_transport_security.cc +3 -11
  885. data/src/core/tsi/local_transport_security.h +1 -4
  886. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +141 -0
  887. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
  888. data/src/core/tsi/ssl_transport_security.cc +52 -1
  889. data/src/core/tsi/ssl_transport_security.h +20 -0
  890. data/src/ruby/ext/grpc/extconf.rb +1 -1
  891. data/src/ruby/ext/grpc/rb_channel.c +5 -2
  892. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +18 -24
  893. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +27 -36
  894. data/src/ruby/ext/grpc/rb_server.c +7 -4
  895. data/src/ruby/lib/grpc/version.rb +1 -1
  896. data/third_party/cares/cares/{ares.h → include/ares.h} +73 -1
  897. data/third_party/cares/cares/{ares_dns.h → include/ares_dns.h} +9 -0
  898. data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
  899. data/third_party/cares/cares/{ares_version.h → include/ares_version.h} +3 -3
  900. data/third_party/cares/cares/{ares__close_sockets.c → src/lib/ares__close_sockets.c} +2 -2
  901. data/third_party/cares/cares/{ares__get_hostent.c → src/lib/ares__get_hostent.c} +1 -2
  902. data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
  903. data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
  904. data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
  905. data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
  906. data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
  907. data/third_party/cares/cares/src/lib/ares_android.c +444 -0
  908. data/third_party/cares/cares/src/lib/ares_android.h +27 -0
  909. data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
  910. data/third_party/cares/cares/{ares_create_query.c → src/lib/ares_create_query.c} +8 -17
  911. data/third_party/cares/cares/{ares_data.c → src/lib/ares_data.c} +18 -0
  912. data/third_party/cares/cares/{ares_data.h → src/lib/ares_data.h} +2 -0
  913. data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
  914. data/third_party/cares/cares/{ares_expand_name.c → src/lib/ares_expand_name.c} +114 -23
  915. data/third_party/cares/cares/{ares_expand_string.c → src/lib/ares_expand_string.c} +2 -5
  916. data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
  917. data/third_party/cares/cares/{ares_free_hostent.c → src/lib/ares_free_hostent.c} +6 -4
  918. data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
  919. data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
  920. data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
  921. data/third_party/cares/cares/{ares_getenv.c → src/lib/ares_getenv.c} +0 -2
  922. data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
  923. data/third_party/cares/cares/{ares_gethostbyaddr.c → src/lib/ares_gethostbyaddr.c} +2 -9
  924. data/third_party/cares/cares/{ares_gethostbyname.c → src/lib/ares_gethostbyname.c} +25 -20
  925. data/third_party/cares/cares/{ares_getnameinfo.c → src/lib/ares_getnameinfo.c} +4 -10
  926. data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
  927. data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
  928. data/third_party/cares/cares/{ares_init.c → src/lib/ares_init.c} +79 -40
  929. data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
  930. data/third_party/cares/cares/{ares_ipv6.h → src/lib/ares_ipv6.h} +7 -0
  931. data/third_party/cares/cares/{ares_library_init.c → src/lib/ares_library_init.c} +7 -2
  932. data/third_party/cares/cares/{ares_library_init.h → src/lib/ares_library_init.h} +1 -1
  933. data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
  934. data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
  935. data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
  936. data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
  937. data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
  938. data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
  939. data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
  940. data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
  941. data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
  942. data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
  943. data/third_party/cares/cares/{ares_parse_mx_reply.c → src/lib/ares_parse_mx_reply.c} +2 -8
  944. data/third_party/cares/cares/{ares_parse_naptr_reply.c → src/lib/ares_parse_naptr_reply.c} +2 -13
  945. data/third_party/cares/cares/{ares_parse_ns_reply.c → src/lib/ares_parse_ns_reply.c} +5 -11
  946. data/third_party/cares/cares/{ares_parse_ptr_reply.c → src/lib/ares_parse_ptr_reply.c} +53 -46
  947. data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
  948. data/third_party/cares/cares/{ares_parse_srv_reply.c → src/lib/ares_parse_srv_reply.c} +2 -13
  949. data/third_party/cares/cares/{ares_parse_txt_reply.c → src/lib/ares_parse_txt_reply.c} +3 -9
  950. data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
  951. data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
  952. data/third_party/cares/cares/{ares_private.h → src/lib/ares_private.h} +52 -11
  953. data/third_party/cares/cares/{ares_process.c → src/lib/ares_process.c} +127 -52
  954. data/third_party/cares/cares/{ares_query.c → src/lib/ares_query.c} +3 -9
  955. data/third_party/cares/cares/{ares_search.c → src/lib/ares_search.c} +5 -7
  956. data/third_party/cares/cares/{ares_send.c → src/lib/ares_send.c} +2 -8
  957. data/third_party/cares/cares/{ares_setup.h → src/lib/ares_setup.h} +4 -1
  958. data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
  959. data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
  960. data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
  961. data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
  962. data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
  963. data/third_party/cares/cares/{ares_strsplit.c → src/lib/ares_strsplit.c} +4 -0
  964. data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
  965. data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
  966. data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
  967. data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
  968. data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
  969. data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
  970. data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
  971. data/third_party/cares/cares/src/lib/config-dos.h +115 -0
  972. data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
  973. data/third_party/cares/cares/{inet_net_pton.c → src/lib/inet_net_pton.c} +2 -8
  974. data/third_party/cares/cares/{inet_ntop.c → src/lib/inet_ntop.c} +2 -8
  975. data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
  976. data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
  977. data/third_party/upb/third_party/utf8_range/naive.c +92 -0
  978. data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
  979. data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
  980. data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
  981. data/third_party/upb/upb/decode.c +526 -319
  982. data/third_party/upb/upb/decode.h +43 -17
  983. data/third_party/upb/upb/decode_fast.c +303 -301
  984. data/third_party/upb/upb/decode_fast.h +18 -18
  985. data/third_party/upb/upb/decode_internal.h +73 -56
  986. data/third_party/upb/upb/def.c +1863 -1078
  987. data/third_party/upb/upb/def.h +318 -286
  988. data/third_party/upb/upb/def.hpp +129 -172
  989. data/third_party/upb/upb/encode.c +202 -175
  990. data/third_party/upb/upb/encode.h +15 -17
  991. data/third_party/upb/upb/msg.c +144 -124
  992. data/third_party/upb/upb/msg.h +40 -33
  993. data/third_party/upb/upb/msg_internal.h +321 -272
  994. data/third_party/upb/upb/reflection.c +239 -199
  995. data/third_party/upb/upb/reflection.h +87 -67
  996. data/third_party/upb/upb/reflection.hpp +6 -6
  997. data/third_party/upb/upb/table.c +222 -142
  998. data/third_party/upb/upb/table_internal.h +128 -96
  999. data/third_party/upb/upb/text_encode.c +113 -90
  1000. data/third_party/upb/upb/text_encode.h +10 -10
  1001. data/third_party/upb/upb/upb.c +111 -72
  1002. data/third_party/upb/upb/upb.h +120 -144
  1003. data/third_party/upb/upb/upb.hpp +31 -28
  1004. data/third_party/upb/upb/upb_internal.h +21 -11
  1005. metadata +301 -170
  1006. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -44
  1007. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -83
  1008. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -122
  1009. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -92
  1010. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -192
  1011. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -52
  1012. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -79
  1013. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -125
  1014. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -36
  1015. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -38
  1016. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -64
  1017. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -38
  1018. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -64
  1019. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -38
  1020. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -64
  1021. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -38
  1022. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -64
  1023. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -38
  1024. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -64
  1025. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +0 -102
  1026. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +0 -306
  1027. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +0 -56
  1028. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +0 -135
  1029. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +0 -115
  1030. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +0 -371
  1031. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -67
  1032. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +0 -35
  1033. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +0 -68
  1034. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +0 -35
  1035. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +0 -67
  1036. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +0 -35
  1037. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +0 -75
  1038. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +0 -35
  1039. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +0 -69
  1040. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +0 -35
  1041. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.c +0 -58
  1042. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.h +0 -55
  1043. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.c +0 -44
  1044. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.h +0 -40
  1045. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.c +0 -75
  1046. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.h +0 -55
  1047. data/src/core/ext/xds/xds_channel_creds.cc +0 -108
  1048. data/src/core/ext/xds/xds_channel_creds.h +0 -50
  1049. data/src/core/lib/iomgr/iomgr_custom.cc +0 -82
  1050. data/src/core/lib/iomgr/iomgr_custom.h +0 -49
  1051. data/src/core/lib/iomgr/pollset_custom.cc +0 -105
  1052. data/src/core/lib/iomgr/pollset_custom.h +0 -37
  1053. data/src/core/lib/iomgr/pollset_set_custom.cc +0 -47
  1054. data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
  1055. data/src/core/lib/iomgr/resolve_address_custom.cc +0 -191
  1056. data/src/core/lib/iomgr/resolve_address_custom.h +0 -126
  1057. data/src/core/lib/iomgr/tcp_client_custom.cc +0 -146
  1058. data/src/core/lib/iomgr/tcp_custom.cc +0 -350
  1059. data/src/core/lib/iomgr/tcp_custom.h +0 -85
  1060. data/src/core/lib/iomgr/tcp_server_custom.cc +0 -457
  1061. data/src/core/lib/iomgr/timer_custom.cc +0 -96
  1062. data/src/core/lib/iomgr/timer_custom.h +0 -43
  1063. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +0 -173
  1064. data/src/core/lib/security/authorization/sdk_server_authz_filter.h +0 -67
  1065. data/src/core/lib/slice/slice_intern.cc +0 -269
  1066. data/src/core/lib/slice/slice_utils.h +0 -200
  1067. data/src/core/lib/surface/init_secure.cc +0 -103
  1068. data/third_party/cares/cares/ares_getopt.c +0 -122
  1069. data/third_party/cares/cares/ares_getopt.h +0 -53
  1070. data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
  1071. data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
  1072. data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
@@ -13,11 +13,11 @@
13
13
  * names of its contributors may be used to endorse or promote products
14
14
  * derived from this software without specific prior written permission.
15
15
  *
16
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
- * DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY
20
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
16
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
+ * ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
20
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
21
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
22
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
23
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
@@ -46,44 +46,48 @@
46
46
 
47
47
  // The standard set of arguments passed to each parsing function.
48
48
  // Thanks to x86-64 calling conventions, these will stay in registers.
49
- #define UPB_PARSE_PARAMS \
50
- upb_decstate *d, const char *ptr, upb_msg *msg, intptr_t table, \
49
+ #define UPB_PARSE_PARAMS \
50
+ upb_Decoder *d, const char *ptr, upb_Message *msg, intptr_t table, \
51
51
  uint64_t hasbits, uint64_t data
52
52
 
53
53
  #define UPB_PARSE_ARGS d, ptr, msg, table, hasbits, data
54
54
 
55
- #define RETURN_GENERIC(m) \
56
- /* Uncomment either of these for debugging purposes. */ \
57
- /* fprintf(stderr, m); */ \
58
- /*__builtin_trap(); */ \
55
+ #define RETURN_GENERIC(m) \
56
+ /* Uncomment either of these for debugging purposes. */ \
57
+ /* fprintf(stderr, m); */ \
58
+ /*__builtin_trap(); */ \
59
59
  return fastdecode_generic(d, ptr, msg, table, hasbits, 0);
60
60
 
61
61
  typedef enum {
62
- CARD_s = 0, /* Singular (optional, non-repeated) */
63
- CARD_o = 1, /* Oneof */
64
- CARD_r = 2, /* Repeated */
65
- CARD_p = 3 /* Packed Repeated */
62
+ CARD_s = 0, /* Singular (optional, non-repeated) */
63
+ CARD_o = 1, /* Oneof */
64
+ CARD_r = 2, /* Repeated */
65
+ CARD_p = 3 /* Packed Repeated */
66
66
  } upb_card;
67
67
 
68
68
  UPB_NOINLINE
69
- static const char *fastdecode_isdonefallback(UPB_PARSE_PARAMS) {
69
+ static const char* fastdecode_isdonefallback(UPB_PARSE_PARAMS) {
70
70
  int overrun = data;
71
- ptr = decode_isdonefallback_inl(d, ptr, overrun);
71
+ int status;
72
+ ptr = decode_isdonefallback_inl(d, ptr, overrun, &status);
72
73
  if (ptr == NULL) {
73
- return fastdecode_err(d);
74
+ return fastdecode_err(d, status);
74
75
  }
75
76
  data = fastdecode_loadtag(ptr);
76
77
  UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS);
77
78
  }
78
79
 
79
80
  UPB_FORCEINLINE
80
- static const char *fastdecode_dispatch(UPB_PARSE_PARAMS) {
81
+ static const char* fastdecode_dispatch(UPB_PARSE_PARAMS) {
81
82
  if (UPB_UNLIKELY(ptr >= d->limit_ptr)) {
82
83
  int overrun = ptr - d->end;
83
84
  if (UPB_LIKELY(overrun == d->limit)) {
84
85
  // Parse is finished.
85
86
  *(uint32_t*)msg |= hasbits; // Sync hasbits.
86
- return ptr;
87
+ const upb_MiniTable* l = decode_totablep(table);
88
+ return UPB_UNLIKELY(l->required_count)
89
+ ? decode_checkrequired(d, ptr, msg, l)
90
+ : ptr;
87
91
  } else {
88
92
  data = overrun;
89
93
  UPB_MUSTTAIL return fastdecode_isdonefallback(UPB_PARSE_ARGS);
@@ -105,7 +109,7 @@ static bool fastdecode_checktag(uint16_t data, int tagbytes) {
105
109
  }
106
110
 
107
111
  UPB_FORCEINLINE
108
- static const char *fastdecode_longsize(const char *ptr, int *size) {
112
+ static const char* fastdecode_longsize(const char* ptr, int* size) {
109
113
  int i;
110
114
  UPB_ASSERT(*size & 0x80);
111
115
  *size &= 0xff;
@@ -125,8 +129,8 @@ static const char *fastdecode_longsize(const char *ptr, int *size) {
125
129
  }
126
130
 
127
131
  UPB_FORCEINLINE
128
- static bool fastdecode_boundscheck(const char *ptr, size_t len,
129
- const char *end) {
132
+ static bool fastdecode_boundscheck(const char* ptr, size_t len,
133
+ const char* end) {
130
134
  uintptr_t uptr = (uintptr_t)ptr;
131
135
  uintptr_t uend = (uintptr_t)end + 16;
132
136
  uintptr_t res = uptr + len;
@@ -134,8 +138,8 @@ static bool fastdecode_boundscheck(const char *ptr, size_t len,
134
138
  }
135
139
 
136
140
  UPB_FORCEINLINE
137
- static bool fastdecode_boundscheck2(const char *ptr, size_t len,
138
- const char *end) {
141
+ static bool fastdecode_boundscheck2(const char* ptr, size_t len,
142
+ const char* end) {
139
143
  // This is one extra branch compared to the more normal:
140
144
  // return (size_t)(end - ptr) < size;
141
145
  // However it is one less computation if we are just about to use "ptr + len":
@@ -147,12 +151,12 @@ static bool fastdecode_boundscheck2(const char *ptr, size_t len,
147
151
  return res < uptr || res > uend;
148
152
  }
149
153
 
150
- typedef const char *fastdecode_delimfunc(upb_decstate *d, const char *ptr,
151
- void *ctx);
154
+ typedef const char* fastdecode_delimfunc(upb_Decoder* d, const char* ptr,
155
+ void* ctx);
152
156
 
153
157
  UPB_FORCEINLINE
154
- static const char *fastdecode_delimited(upb_decstate *d, const char *ptr,
155
- fastdecode_delimfunc *func, void *ctx) {
158
+ static const char* fastdecode_delimited(upb_Decoder* d, const char* ptr,
159
+ fastdecode_delimfunc* func, void* ctx) {
156
160
  ptr++;
157
161
  int len = (int8_t)ptr[-1];
158
162
  if (fastdecode_boundscheck2(ptr, len, d->limit_ptr)) {
@@ -177,7 +181,7 @@ static const char *fastdecode_delimited(upb_decstate *d, const char *ptr,
177
181
  } else {
178
182
  // Fast case: Sub-message is <128 bytes and fits in the current buffer.
179
183
  // This means we can preserve limit/limit_ptr verbatim.
180
- const char *saved_limit_ptr = d->limit_ptr;
184
+ const char* saved_limit_ptr = d->limit_ptr;
181
185
  int saved_limit = d->limit;
182
186
  d->limit_ptr = ptr + len;
183
187
  d->limit = d->limit_ptr - d->end;
@@ -193,8 +197,8 @@ static const char *fastdecode_delimited(upb_decstate *d, const char *ptr,
193
197
  /* singular, oneof, repeated field handling ***********************************/
194
198
 
195
199
  typedef struct {
196
- upb_array *arr;
197
- void *end;
200
+ upb_Array* arr;
201
+ void* end;
198
202
  } fastdecode_arr;
199
203
 
200
204
  typedef enum {
@@ -204,21 +208,21 @@ typedef enum {
204
208
  } fastdecode_next;
205
209
 
206
210
  typedef struct {
207
- void *dst;
211
+ void* dst;
208
212
  fastdecode_next next;
209
213
  uint32_t tag;
210
214
  } fastdecode_nextret;
211
215
 
212
216
  UPB_FORCEINLINE
213
- static void *fastdecode_resizearr(upb_decstate *d, void *dst,
214
- fastdecode_arr *farr, int valbytes) {
217
+ static void* fastdecode_resizearr(upb_Decoder* d, void* dst,
218
+ fastdecode_arr* farr, int valbytes) {
215
219
  if (UPB_UNLIKELY(dst == farr->end)) {
216
220
  size_t old_size = farr->arr->size;
217
221
  size_t old_bytes = old_size * valbytes;
218
222
  size_t new_size = old_size * 2;
219
223
  size_t new_bytes = new_size * valbytes;
220
- char *old_ptr = _upb_array_ptr(farr->arr);
221
- char *new_ptr = upb_arena_realloc(&d->arena, old_ptr, old_bytes, new_bytes);
224
+ char* old_ptr = _upb_array_ptr(farr->arr);
225
+ char* new_ptr = upb_Arena_Realloc(&d->arena, old_ptr, old_bytes, new_bytes);
222
226
  uint8_t elem_size_lg2 = __builtin_ctz(valbytes);
223
227
  farr->arr->size = new_size;
224
228
  farr->arr->data = _upb_array_tagptr(new_ptr, elem_size_lg2);
@@ -238,20 +242,20 @@ static bool fastdecode_tagmatch(uint32_t tag, uint64_t data, int tagbytes) {
238
242
  }
239
243
 
240
244
  UPB_FORCEINLINE
241
- static void fastdecode_commitarr(void *dst, fastdecode_arr *farr,
245
+ static void fastdecode_commitarr(void* dst, fastdecode_arr* farr,
242
246
  int valbytes) {
243
247
  farr->arr->len =
244
- (size_t)((char *)dst - (char *)_upb_array_ptr(farr->arr)) / valbytes;
248
+ (size_t)((char*)dst - (char*)_upb_array_ptr(farr->arr)) / valbytes;
245
249
  }
246
250
 
247
251
  UPB_FORCEINLINE
248
- static fastdecode_nextret fastdecode_nextrepeated(upb_decstate *d, void *dst,
249
- const char **ptr,
250
- fastdecode_arr *farr,
252
+ static fastdecode_nextret fastdecode_nextrepeated(upb_Decoder* d, void* dst,
253
+ const char** ptr,
254
+ fastdecode_arr* farr,
251
255
  uint64_t data, int tagbytes,
252
256
  int valbytes) {
253
257
  fastdecode_nextret ret;
254
- dst = (char *)dst + valbytes;
258
+ dst = (char*)dst + valbytes;
255
259
 
256
260
  if (UPB_LIKELY(!decode_isdone(d, ptr))) {
257
261
  ret.tag = fastdecode_loadtag(*ptr);
@@ -271,16 +275,16 @@ static fastdecode_nextret fastdecode_nextrepeated(upb_decstate *d, void *dst,
271
275
  }
272
276
 
273
277
  UPB_FORCEINLINE
274
- static void *fastdecode_fieldmem(upb_msg *msg, uint64_t data) {
278
+ static void* fastdecode_fieldmem(upb_Message* msg, uint64_t data) {
275
279
  size_t ofs = data >> 48;
276
- return (char *)msg + ofs;
280
+ return (char*)msg + ofs;
277
281
  }
278
282
 
279
283
  UPB_FORCEINLINE
280
- static void *fastdecode_getfield(upb_decstate *d, const char *ptr, upb_msg *msg,
281
- uint64_t *data, uint64_t *hasbits,
282
- fastdecode_arr *farr, int valbytes,
283
- upb_card card) {
284
+ static void* fastdecode_getfield(upb_Decoder* d, const char* ptr,
285
+ upb_Message* msg, uint64_t* data,
286
+ uint64_t* hasbits, fastdecode_arr* farr,
287
+ int valbytes, upb_card card) {
284
288
  switch (card) {
285
289
  case CARD_s: {
286
290
  uint8_t hasbit_index = *data >> 24;
@@ -290,20 +294,20 @@ static void *fastdecode_getfield(upb_decstate *d, const char *ptr, upb_msg *msg,
290
294
  }
291
295
  case CARD_o: {
292
296
  uint16_t case_ofs = *data >> 32;
293
- uint32_t *oneof_case = UPB_PTR_AT(msg, case_ofs, uint32_t);
297
+ uint32_t* oneof_case = UPB_PTR_AT(msg, case_ofs, uint32_t);
294
298
  uint8_t field_number = *data >> 24;
295
299
  *oneof_case = field_number;
296
300
  return fastdecode_fieldmem(msg, *data);
297
301
  }
298
302
  case CARD_r: {
299
- // Get pointer to upb_array and allocate/expand if necessary.
303
+ // Get pointer to upb_Array and allocate/expand if necessary.
300
304
  uint8_t elem_size_lg2 = __builtin_ctz(valbytes);
301
- upb_array **arr_p = fastdecode_fieldmem(msg, *data);
302
- char *begin;
305
+ upb_Array** arr_p = fastdecode_fieldmem(msg, *data);
306
+ char* begin;
303
307
  *(uint32_t*)msg |= *hasbits;
304
308
  *hasbits = 0;
305
309
  if (UPB_LIKELY(!*arr_p)) {
306
- farr->arr = _upb_array_new(&d->arena, 8, elem_size_lg2);
310
+ farr->arr = _upb_Array_New(&d->arena, 8, elem_size_lg2);
307
311
  *arr_p = farr->arr;
308
312
  } else {
309
313
  farr->arr = *arr_p;
@@ -319,17 +323,17 @@ static void *fastdecode_getfield(upb_decstate *d, const char *ptr, upb_msg *msg,
319
323
  }
320
324
 
321
325
  UPB_FORCEINLINE
322
- static bool fastdecode_flippacked(uint64_t *data, int tagbytes) {
326
+ static bool fastdecode_flippacked(uint64_t* data, int tagbytes) {
323
327
  *data ^= (0x2 ^ 0x0); // Patch data to match packed wiretype.
324
328
  return fastdecode_checktag(*data, tagbytes);
325
329
  }
326
330
 
327
- #define FASTDECODE_CHECKPACKED(tagbytes, card, func) \
328
- if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { \
329
- if (card == CARD_r && fastdecode_flippacked(&data, tagbytes)) { \
330
- UPB_MUSTTAIL return func(UPB_PARSE_ARGS); \
331
- } \
332
- RETURN_GENERIC("packed check tag mismatch\n"); \
331
+ #define FASTDECODE_CHECKPACKED(tagbytes, card, func) \
332
+ if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { \
333
+ if (card == CARD_r && fastdecode_flippacked(&data, tagbytes)) { \
334
+ UPB_MUSTTAIL return func(UPB_PARSE_ARGS); \
335
+ } \
336
+ RETURN_GENERIC("packed check tag mismatch\n"); \
333
337
  }
334
338
 
335
339
  /* varint fields **************************************************************/
@@ -351,7 +355,7 @@ static uint64_t fastdecode_munge(uint64_t val, int valbytes, bool zigzag) {
351
355
  }
352
356
 
353
357
  UPB_FORCEINLINE
354
- static const char *fastdecode_varint64(const char *ptr, uint64_t *val) {
358
+ static const char* fastdecode_varint64(const char* ptr, uint64_t* val) {
355
359
  ptr++;
356
360
  *val = (uint8_t)ptr[-1];
357
361
  if (UPB_UNLIKELY(*val & 0x80)) {
@@ -377,7 +381,7 @@ done:
377
381
  #define FASTDECODE_UNPACKEDVARINT(d, ptr, msg, table, hasbits, data, tagbytes, \
378
382
  valbytes, card, zigzag, packed) \
379
383
  uint64_t val; \
380
- void *dst; \
384
+ void* dst; \
381
385
  fastdecode_arr farr; \
382
386
  \
383
387
  FASTDECODE_CHECKPACKED(tagbytes, card, packed); \
@@ -397,8 +401,7 @@ done:
397
401
  \
398
402
  ptr += tagbytes; \
399
403
  ptr = fastdecode_varint64(ptr, &val); \
400
- if (ptr == NULL) \
401
- return fastdecode_err(d); \
404
+ if (ptr == NULL) return fastdecode_err(d, kUpb_DecodeStatus_Malformed); \
402
405
  val = fastdecode_munge(val, valbytes, zigzag); \
403
406
  memcpy(dst, &val, valbytes); \
404
407
  \
@@ -406,14 +409,14 @@ done:
406
409
  fastdecode_nextret ret = fastdecode_nextrepeated( \
407
410
  d, dst, &ptr, &farr, data, tagbytes, valbytes); \
408
411
  switch (ret.next) { \
409
- case FD_NEXT_SAMEFIELD: \
410
- dst = ret.dst; \
411
- goto again; \
412
- case FD_NEXT_OTHERFIELD: \
413
- data = ret.tag; \
414
- UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \
415
- case FD_NEXT_ATLIMIT: \
416
- return ptr; \
412
+ case FD_NEXT_SAMEFIELD: \
413
+ dst = ret.dst; \
414
+ goto again; \
415
+ case FD_NEXT_OTHERFIELD: \
416
+ data = ret.tag; \
417
+ UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \
418
+ case FD_NEXT_ATLIMIT: \
419
+ return ptr; \
417
420
  } \
418
421
  } \
419
422
  \
@@ -422,15 +425,15 @@ done:
422
425
  typedef struct {
423
426
  uint8_t valbytes;
424
427
  bool zigzag;
425
- void *dst;
428
+ void* dst;
426
429
  fastdecode_arr farr;
427
430
  } fastdecode_varintdata;
428
431
 
429
432
  UPB_FORCEINLINE
430
- static const char *fastdecode_topackedvarint(upb_decstate *d, const char *ptr,
431
- void *ctx) {
432
- fastdecode_varintdata *data = ctx;
433
- void *dst = data->dst;
433
+ static const char* fastdecode_topackedvarint(upb_Decoder* d, const char* ptr,
434
+ void* ctx) {
435
+ fastdecode_varintdata* data = ctx;
436
+ void* dst = data->dst;
434
437
  uint64_t val;
435
438
 
436
439
  while (!decode_isdone(d, &ptr)) {
@@ -439,32 +442,32 @@ static const char *fastdecode_topackedvarint(upb_decstate *d, const char *ptr,
439
442
  if (ptr == NULL) return NULL;
440
443
  val = fastdecode_munge(val, data->valbytes, data->zigzag);
441
444
  memcpy(dst, &val, data->valbytes);
442
- dst = (char *)dst + data->valbytes;
445
+ dst = (char*)dst + data->valbytes;
443
446
  }
444
447
 
445
448
  fastdecode_commitarr(dst, &data->farr, data->valbytes);
446
449
  return ptr;
447
450
  }
448
451
 
449
- #define FASTDECODE_PACKEDVARINT(d, ptr, msg, table, hasbits, data, tagbytes, \
450
- valbytes, zigzag, unpacked) \
451
- fastdecode_varintdata ctx = {valbytes, zigzag}; \
452
- \
453
- FASTDECODE_CHECKPACKED(tagbytes, CARD_r, unpacked); \
454
- \
455
- ctx.dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &ctx.farr, \
456
- valbytes, CARD_r); \
457
- if (UPB_UNLIKELY(!ctx.dst)) { \
458
- RETURN_GENERIC("need array resize\n"); \
459
- } \
460
- \
461
- ptr += tagbytes; \
462
- ptr = fastdecode_delimited(d, ptr, &fastdecode_topackedvarint, &ctx); \
463
- \
464
- if (UPB_UNLIKELY(ptr == NULL)) { \
465
- return fastdecode_err(d); \
466
- } \
467
- \
452
+ #define FASTDECODE_PACKEDVARINT(d, ptr, msg, table, hasbits, data, tagbytes, \
453
+ valbytes, zigzag, unpacked) \
454
+ fastdecode_varintdata ctx = {valbytes, zigzag}; \
455
+ \
456
+ FASTDECODE_CHECKPACKED(tagbytes, CARD_r, unpacked); \
457
+ \
458
+ ctx.dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &ctx.farr, \
459
+ valbytes, CARD_r); \
460
+ if (UPB_UNLIKELY(!ctx.dst)) { \
461
+ RETURN_GENERIC("need array resize\n"); \
462
+ } \
463
+ \
464
+ ptr += tagbytes; \
465
+ ptr = fastdecode_delimited(d, ptr, &fastdecode_topackedvarint, &ctx); \
466
+ \
467
+ if (UPB_UNLIKELY(ptr == NULL)) { \
468
+ return fastdecode_err(d, kUpb_DecodeStatus_Malformed); \
469
+ } \
470
+ \
468
471
  UPB_MUSTTAIL return fastdecode_dispatch(d, ptr, msg, table, hasbits, 0);
469
472
 
470
473
  #define FASTDECODE_VARINT(d, ptr, msg, table, hasbits, data, tagbytes, \
@@ -486,7 +489,7 @@ static const char *fastdecode_topackedvarint(upb_decstate *d, const char *ptr,
486
489
 
487
490
  #define F(card, type, valbytes, tagbytes) \
488
491
  UPB_NOINLINE \
489
- const char *upb_p##card##type##valbytes##_##tagbytes##bt(UPB_PARSE_PARAMS) { \
492
+ const char* upb_p##card##type##valbytes##_##tagbytes##bt(UPB_PARSE_PARAMS) { \
490
493
  FASTDECODE_VARINT(d, ptr, msg, table, hasbits, data, tagbytes, valbytes, \
491
494
  CARD_##card, type##_ZZ, \
492
495
  upb_pr##type##valbytes##_##tagbytes##bt, \
@@ -522,48 +525,47 @@ TAGBYTES(p)
522
525
  #undef FASTDECODE_PACKEDVARINT
523
526
  #undef FASTDECODE_VARINT
524
527
 
525
-
526
528
  /* fixed fields ***************************************************************/
527
529
 
528
- #define FASTDECODE_UNPACKEDFIXED(d, ptr, msg, table, hasbits, data, tagbytes, \
529
- valbytes, card, packed) \
530
- void *dst; \
531
- fastdecode_arr farr; \
532
- \
533
- FASTDECODE_CHECKPACKED(tagbytes, card, packed) \
534
- \
535
- dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, valbytes, \
536
- card); \
537
- if (card == CARD_r) { \
538
- if (UPB_UNLIKELY(!dst)) { \
539
- RETURN_GENERIC("couldn't allocate array in arena\n"); \
540
- } \
541
- } \
542
- \
543
- again: \
544
- if (card == CARD_r) { \
545
- dst = fastdecode_resizearr(d, dst, &farr, valbytes); \
546
- } \
547
- \
548
- ptr += tagbytes; \
549
- memcpy(dst, ptr, valbytes); \
550
- ptr += valbytes; \
551
- \
552
- if (card == CARD_r) { \
553
- fastdecode_nextret ret = fastdecode_nextrepeated( \
554
- d, dst, &ptr, &farr, data, tagbytes, valbytes); \
555
- switch (ret.next) { \
556
- case FD_NEXT_SAMEFIELD: \
557
- dst = ret.dst; \
558
- goto again; \
559
- case FD_NEXT_OTHERFIELD: \
560
- data = ret.tag; \
561
- UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \
562
- case FD_NEXT_ATLIMIT: \
563
- return ptr; \
564
- } \
565
- } \
566
- \
530
+ #define FASTDECODE_UNPACKEDFIXED(d, ptr, msg, table, hasbits, data, tagbytes, \
531
+ valbytes, card, packed) \
532
+ void* dst; \
533
+ fastdecode_arr farr; \
534
+ \
535
+ FASTDECODE_CHECKPACKED(tagbytes, card, packed) \
536
+ \
537
+ dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, valbytes, \
538
+ card); \
539
+ if (card == CARD_r) { \
540
+ if (UPB_UNLIKELY(!dst)) { \
541
+ RETURN_GENERIC("couldn't allocate array in arena\n"); \
542
+ } \
543
+ } \
544
+ \
545
+ again: \
546
+ if (card == CARD_r) { \
547
+ dst = fastdecode_resizearr(d, dst, &farr, valbytes); \
548
+ } \
549
+ \
550
+ ptr += tagbytes; \
551
+ memcpy(dst, ptr, valbytes); \
552
+ ptr += valbytes; \
553
+ \
554
+ if (card == CARD_r) { \
555
+ fastdecode_nextret ret = fastdecode_nextrepeated( \
556
+ d, dst, &ptr, &farr, data, tagbytes, valbytes); \
557
+ switch (ret.next) { \
558
+ case FD_NEXT_SAMEFIELD: \
559
+ dst = ret.dst; \
560
+ goto again; \
561
+ case FD_NEXT_OTHERFIELD: \
562
+ data = ret.tag; \
563
+ UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \
564
+ case FD_NEXT_ATLIMIT: \
565
+ return ptr; \
566
+ } \
567
+ } \
568
+ \
567
569
  UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS);
568
570
 
569
571
  #define FASTDECODE_PACKEDFIXED(d, ptr, msg, table, hasbits, data, tagbytes, \
@@ -579,24 +581,24 @@ TAGBYTES(p)
579
581
  \
580
582
  if (UPB_UNLIKELY(fastdecode_boundscheck(ptr, size, d->limit_ptr) || \
581
583
  (size % valbytes) != 0)) { \
582
- return fastdecode_err(d); \
584
+ return fastdecode_err(d, kUpb_DecodeStatus_Malformed); \
583
585
  } \
584
586
  \
585
- upb_array **arr_p = fastdecode_fieldmem(msg, data); \
586
- upb_array *arr = *arr_p; \
587
+ upb_Array** arr_p = fastdecode_fieldmem(msg, data); \
588
+ upb_Array* arr = *arr_p; \
587
589
  uint8_t elem_size_lg2 = __builtin_ctz(valbytes); \
588
590
  int elems = size / valbytes; \
589
591
  \
590
592
  if (UPB_LIKELY(!arr)) { \
591
- *arr_p = arr = _upb_array_new(&d->arena, elems, elem_size_lg2); \
593
+ *arr_p = arr = _upb_Array_New(&d->arena, elems, elem_size_lg2); \
592
594
  if (!arr) { \
593
- return fastdecode_err(d); \
595
+ return fastdecode_err(d, kUpb_DecodeStatus_Malformed); \
594
596
  } \
595
597
  } else { \
596
- _upb_array_resize(arr, elems, &d->arena); \
598
+ _upb_Array_Resize(arr, elems, &d->arena); \
597
599
  } \
598
600
  \
599
- char *dst = _upb_array_ptr(arr); \
601
+ char* dst = _upb_array_ptr(arr); \
600
602
  memcpy(dst, ptr, size); \
601
603
  arr->len = elems; \
602
604
  \
@@ -618,7 +620,7 @@ TAGBYTES(p)
618
620
 
619
621
  #define F(card, valbytes, tagbytes) \
620
622
  UPB_NOINLINE \
621
- const char *upb_p##card##f##valbytes##_##tagbytes##bt(UPB_PARSE_PARAMS) { \
623
+ const char* upb_p##card##f##valbytes##_##tagbytes##bt(UPB_PARSE_PARAMS) { \
622
624
  FASTDECODE_FIXED(d, ptr, msg, table, hasbits, data, tagbytes, valbytes, \
623
625
  CARD_##card, upb_ppf##valbytes##_##tagbytes##bt, \
624
626
  upb_prf##valbytes##_##tagbytes##bt); \
@@ -645,18 +647,19 @@ TAGBYTES(p)
645
647
 
646
648
  /* string fields **************************************************************/
647
649
 
648
- typedef const char *fastdecode_copystr_func(struct upb_decstate *d,
649
- const char *ptr, upb_msg *msg,
650
- const upb_msglayout *table,
651
- uint64_t hasbits, upb_strview *dst);
650
+ typedef const char* fastdecode_copystr_func(struct upb_Decoder* d,
651
+ const char* ptr, upb_Message* msg,
652
+ const upb_MiniTable* table,
653
+ uint64_t hasbits,
654
+ upb_StringView* dst);
652
655
 
653
656
  UPB_NOINLINE
654
- static const char *fastdecode_verifyutf8(upb_decstate *d, const char *ptr,
655
- upb_msg *msg, intptr_t table,
657
+ static const char* fastdecode_verifyutf8(upb_Decoder* d, const char* ptr,
658
+ upb_Message* msg, intptr_t table,
656
659
  uint64_t hasbits, uint64_t data) {
657
- upb_strview *dst = (upb_strview*)data;
660
+ upb_StringView* dst = (upb_StringView*)data;
658
661
  if (!decode_verifyutf8_inl(dst->data, dst->size)) {
659
- return fastdecode_err(d);
662
+ return fastdecode_err(d, kUpb_DecodeStatus_BadUtf8);
660
663
  }
661
664
  UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS);
662
665
  }
@@ -670,16 +673,16 @@ static const char *fastdecode_verifyutf8(upb_decstate *d, const char *ptr,
670
673
  \
671
674
  if (UPB_UNLIKELY(fastdecode_boundscheck(ptr, size, d->limit_ptr))) { \
672
675
  dst->size = 0; \
673
- return fastdecode_err(d); \
676
+ return fastdecode_err(d, kUpb_DecodeStatus_Malformed); \
674
677
  } \
675
678
  \
676
- if (d->alias) { \
679
+ if (d->options & kUpb_DecodeOption_AliasString) { \
677
680
  dst->data = ptr; \
678
681
  dst->size = size; \
679
682
  } else { \
680
- char *data = upb_arena_malloc(&d->arena, size); \
683
+ char* data = upb_Arena_Malloc(&d->arena, size); \
681
684
  if (!data) { \
682
- return fastdecode_err(d); \
685
+ return fastdecode_err(d, kUpb_DecodeStatus_OutOfMemory); \
683
686
  } \
684
687
  memcpy(data, ptr, size); \
685
688
  dst->data = data; \
@@ -695,27 +698,25 @@ static const char *fastdecode_verifyutf8(upb_decstate *d, const char *ptr,
695
698
  }
696
699
 
697
700
  UPB_NOINLINE
698
- static const char *fastdecode_longstring_utf8(struct upb_decstate *d,
699
- const char *ptr, upb_msg *msg,
701
+ static const char* fastdecode_longstring_utf8(struct upb_Decoder* d,
702
+ const char* ptr, upb_Message* msg,
700
703
  intptr_t table, uint64_t hasbits,
701
704
  uint64_t data) {
702
- upb_strview *dst = (upb_strview*)data;
705
+ upb_StringView* dst = (upb_StringView*)data;
703
706
  FASTDECODE_LONGSTRING(d, ptr, msg, table, hasbits, dst, true);
704
707
  }
705
708
 
706
709
  UPB_NOINLINE
707
- static const char *fastdecode_longstring_noutf8(struct upb_decstate *d,
708
- const char *ptr, upb_msg *msg,
709
- intptr_t table,
710
- uint64_t hasbits,
711
- uint64_t data) {
712
- upb_strview *dst = (upb_strview*)data;
710
+ static const char* fastdecode_longstring_noutf8(
711
+ struct upb_Decoder* d, const char* ptr, upb_Message* msg, intptr_t table,
712
+ uint64_t hasbits, uint64_t data) {
713
+ upb_StringView* dst = (upb_StringView*)data;
713
714
  FASTDECODE_LONGSTRING(d, ptr, msg, table, hasbits, dst, false);
714
715
  }
715
716
 
716
717
  UPB_FORCEINLINE
717
- static void fastdecode_docopy(upb_decstate *d, const char *ptr, uint32_t size,
718
- int copy, char *data, upb_strview *dst) {
718
+ static void fastdecode_docopy(upb_Decoder* d, const char* ptr, uint32_t size,
719
+ int copy, char* data, upb_StringView* dst) {
719
720
  d->arena.head.ptr += copy;
720
721
  dst->data = data;
721
722
  UPB_UNPOISON_MEMORY_REGION(data, copy);
@@ -723,96 +724,95 @@ static void fastdecode_docopy(upb_decstate *d, const char *ptr, uint32_t size,
723
724
  UPB_POISON_MEMORY_REGION(data + size, copy - size);
724
725
  }
725
726
 
726
- #define FASTDECODE_COPYSTRING(d, ptr, msg, table, hasbits, data, tagbytes, \
727
- card, validate_utf8) \
728
- upb_strview *dst; \
729
- fastdecode_arr farr; \
730
- int64_t size; \
731
- size_t arena_has; \
732
- size_t common_has; \
733
- char *buf; \
734
- \
735
- UPB_ASSERT(!d->alias); \
736
- UPB_ASSERT(fastdecode_checktag(data, tagbytes)); \
737
- \
738
- dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, \
739
- sizeof(upb_strview), card); \
740
- \
741
- again: \
742
- if (card == CARD_r) { \
743
- dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_strview)); \
744
- } \
745
- \
746
- size = (uint8_t)ptr[tagbytes]; \
747
- ptr += tagbytes + 1; \
748
- dst->size = size; \
749
- \
750
- buf = d->arena.head.ptr; \
751
- arena_has = _upb_arenahas(&d->arena); \
752
- common_has = UPB_MIN(arena_has, (d->end - ptr) + 16); \
753
- \
754
- if (UPB_LIKELY(size <= 15 - tagbytes)) { \
755
- if (arena_has < 16) \
756
- goto longstr; \
757
- d->arena.head.ptr += 16; \
758
- memcpy(buf, ptr - tagbytes - 1, 16); \
759
- dst->data = buf + tagbytes + 1; \
760
- } else if (UPB_LIKELY(size <= 32)) { \
761
- if (UPB_UNLIKELY(common_has < 32)) \
762
- goto longstr; \
763
- fastdecode_docopy(d, ptr, size, 32, buf, dst); \
764
- } else if (UPB_LIKELY(size <= 64)) { \
765
- if (UPB_UNLIKELY(common_has < 64)) \
766
- goto longstr; \
767
- fastdecode_docopy(d, ptr, size, 64, buf, dst); \
768
- } else if (UPB_LIKELY(size < 128)) { \
769
- if (UPB_UNLIKELY(common_has < 128)) \
770
- goto longstr; \
771
- fastdecode_docopy(d, ptr, size, 128, buf, dst); \
772
- } else { \
773
- goto longstr; \
774
- } \
775
- \
776
- ptr += size; \
777
- \
778
- if (card == CARD_r) { \
779
- if (validate_utf8 && !decode_verifyutf8_inl(dst->data, dst->size)) { \
780
- return fastdecode_err(d); \
781
- } \
782
- fastdecode_nextret ret = fastdecode_nextrepeated( \
783
- d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_strview)); \
784
- switch (ret.next) { \
785
- case FD_NEXT_SAMEFIELD: \
786
- dst = ret.dst; \
787
- goto again; \
788
- case FD_NEXT_OTHERFIELD: \
789
- data = ret.tag; \
790
- UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \
791
- case FD_NEXT_ATLIMIT: \
792
- return ptr; \
793
- } \
794
- } \
795
- \
796
- if (card != CARD_r && validate_utf8) { \
797
- data = (uint64_t)dst; \
798
- UPB_MUSTTAIL return fastdecode_verifyutf8(UPB_PARSE_ARGS); \
799
- } \
800
- \
801
- UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS); \
802
- \
803
- longstr: \
804
- ptr--; \
805
- if (validate_utf8) { \
806
- UPB_MUSTTAIL return fastdecode_longstring_utf8(d, ptr, msg, table, \
807
- hasbits, (uint64_t)dst); \
808
- } else { \
809
- UPB_MUSTTAIL return fastdecode_longstring_noutf8(d, ptr, msg, table, \
810
- hasbits, (uint64_t)dst); \
727
+ #define FASTDECODE_COPYSTRING(d, ptr, msg, table, hasbits, data, tagbytes, \
728
+ card, validate_utf8) \
729
+ upb_StringView* dst; \
730
+ fastdecode_arr farr; \
731
+ int64_t size; \
732
+ size_t arena_has; \
733
+ size_t common_has; \
734
+ char* buf; \
735
+ \
736
+ UPB_ASSERT((d->options & kUpb_DecodeOption_AliasString) == 0); \
737
+ UPB_ASSERT(fastdecode_checktag(data, tagbytes)); \
738
+ \
739
+ dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, \
740
+ sizeof(upb_StringView), card); \
741
+ \
742
+ again: \
743
+ if (card == CARD_r) { \
744
+ dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_StringView)); \
745
+ } \
746
+ \
747
+ size = (uint8_t)ptr[tagbytes]; \
748
+ ptr += tagbytes + 1; \
749
+ dst->size = size; \
750
+ \
751
+ buf = d->arena.head.ptr; \
752
+ arena_has = _upb_ArenaHas(&d->arena); \
753
+ common_has = UPB_MIN(arena_has, (d->end - ptr) + 16); \
754
+ \
755
+ if (UPB_LIKELY(size <= 15 - tagbytes)) { \
756
+ if (arena_has < 16) goto longstr; \
757
+ d->arena.head.ptr += 16; \
758
+ memcpy(buf, ptr - tagbytes - 1, 16); \
759
+ dst->data = buf + tagbytes + 1; \
760
+ } else if (UPB_LIKELY(size <= 32)) { \
761
+ if (UPB_UNLIKELY(common_has < 32)) goto longstr; \
762
+ fastdecode_docopy(d, ptr, size, 32, buf, dst); \
763
+ } else if (UPB_LIKELY(size <= 64)) { \
764
+ if (UPB_UNLIKELY(common_has < 64)) goto longstr; \
765
+ fastdecode_docopy(d, ptr, size, 64, buf, dst); \
766
+ } else if (UPB_LIKELY(size < 128)) { \
767
+ if (UPB_UNLIKELY(common_has < 128)) goto longstr; \
768
+ fastdecode_docopy(d, ptr, size, 128, buf, dst); \
769
+ } else { \
770
+ goto longstr; \
771
+ } \
772
+ \
773
+ ptr += size; \
774
+ \
775
+ if (card == CARD_r) { \
776
+ if (validate_utf8 && !decode_verifyutf8_inl(dst->data, dst->size)) { \
777
+ return fastdecode_err(d, kUpb_DecodeStatus_BadUtf8); \
778
+ } \
779
+ fastdecode_nextret ret = fastdecode_nextrepeated( \
780
+ d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_StringView)); \
781
+ switch (ret.next) { \
782
+ case FD_NEXT_SAMEFIELD: \
783
+ dst = ret.dst; \
784
+ goto again; \
785
+ case FD_NEXT_OTHERFIELD: \
786
+ data = ret.tag; \
787
+ UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \
788
+ case FD_NEXT_ATLIMIT: \
789
+ return ptr; \
790
+ } \
791
+ } \
792
+ \
793
+ if (card != CARD_r && validate_utf8) { \
794
+ data = (uint64_t)dst; \
795
+ UPB_MUSTTAIL return fastdecode_verifyutf8(UPB_PARSE_ARGS); \
796
+ } \
797
+ \
798
+ UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS); \
799
+ \
800
+ longstr: \
801
+ if (card == CARD_r) { \
802
+ fastdecode_commitarr(dst + 1, &farr, sizeof(upb_StringView)); \
803
+ } \
804
+ ptr--; \
805
+ if (validate_utf8) { \
806
+ UPB_MUSTTAIL return fastdecode_longstring_utf8(d, ptr, msg, table, \
807
+ hasbits, (uint64_t)dst); \
808
+ } else { \
809
+ UPB_MUSTTAIL return fastdecode_longstring_noutf8(d, ptr, msg, table, \
810
+ hasbits, (uint64_t)dst); \
811
811
  }
812
812
 
813
813
  #define FASTDECODE_STRING(d, ptr, msg, table, hasbits, data, tagbytes, card, \
814
814
  copyfunc, validate_utf8) \
815
- upb_strview *dst; \
815
+ upb_StringView* dst; \
816
816
  fastdecode_arr farr; \
817
817
  int64_t size; \
818
818
  \
@@ -820,16 +820,16 @@ static void fastdecode_docopy(upb_decstate *d, const char *ptr, uint32_t size,
820
820
  RETURN_GENERIC("string field tag mismatch\n"); \
821
821
  } \
822
822
  \
823
- if (UPB_UNLIKELY(!d->alias)) { \
823
+ if (UPB_UNLIKELY((d->options & kUpb_DecodeOption_AliasString) == 0)) { \
824
824
  UPB_MUSTTAIL return copyfunc(UPB_PARSE_ARGS); \
825
825
  } \
826
826
  \
827
827
  dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, \
828
- sizeof(upb_strview), card); \
828
+ sizeof(upb_StringView), card); \
829
829
  \
830
830
  again: \
831
831
  if (card == CARD_r) { \
832
- dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_strview)); \
832
+ dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_StringView)); \
833
833
  } \
834
834
  \
835
835
  size = (int8_t)ptr[tagbytes]; \
@@ -852,27 +852,27 @@ static void fastdecode_docopy(upb_decstate *d, const char *ptr, uint32_t size,
852
852
  \
853
853
  if (card == CARD_r) { \
854
854
  if (validate_utf8 && !decode_verifyutf8_inl(dst->data, dst->size)) { \
855
- return fastdecode_err(d); \
855
+ return fastdecode_err(d, kUpb_DecodeStatus_BadUtf8); \
856
856
  } \
857
857
  fastdecode_nextret ret = fastdecode_nextrepeated( \
858
- d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_strview)); \
858
+ d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_StringView)); \
859
859
  switch (ret.next) { \
860
- case FD_NEXT_SAMEFIELD: \
861
- dst = ret.dst; \
862
- if (UPB_UNLIKELY(!d->alias)) { \
863
- /* Buffer flipped and we can't alias any more. Bounce to */ \
864
- /* copyfunc(), but via dispatch since we need to reload table */ \
865
- /* data also. */ \
866
- fastdecode_commitarr(dst, &farr, sizeof(upb_strview)); \
860
+ case FD_NEXT_SAMEFIELD: \
861
+ dst = ret.dst; \
862
+ if (UPB_UNLIKELY((d->options & kUpb_DecodeOption_AliasString) == 0)) { \
863
+ /* Buffer flipped and we can't alias any more. Bounce to */ \
864
+ /* copyfunc(), but via dispatch since we need to reload table */ \
865
+ /* data also. */ \
866
+ fastdecode_commitarr(dst, &farr, sizeof(upb_StringView)); \
867
+ data = ret.tag; \
868
+ UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \
869
+ } \
870
+ goto again; \
871
+ case FD_NEXT_OTHERFIELD: \
867
872
  data = ret.tag; \
868
873
  UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \
869
- } \
870
- goto again; \
871
- case FD_NEXT_OTHERFIELD: \
872
- data = ret.tag; \
873
- UPB_MUSTTAIL return fastdecode_tagdispatch(UPB_PARSE_ARGS); \
874
- case FD_NEXT_ATLIMIT: \
875
- return ptr; \
874
+ case FD_NEXT_ATLIMIT: \
875
+ return ptr; \
876
876
  } \
877
877
  } \
878
878
  \
@@ -891,11 +891,11 @@ static void fastdecode_docopy(upb_decstate *d, const char *ptr, uint32_t size,
891
891
 
892
892
  #define F(card, tagbytes, type) \
893
893
  UPB_NOINLINE \
894
- const char *upb_c##card##type##_##tagbytes##bt(UPB_PARSE_PARAMS) { \
894
+ const char* upb_c##card##type##_##tagbytes##bt(UPB_PARSE_PARAMS) { \
895
895
  FASTDECODE_COPYSTRING(d, ptr, msg, table, hasbits, data, tagbytes, \
896
896
  CARD_##card, type##_VALIDATE); \
897
897
  } \
898
- const char *upb_p##card##type##_##tagbytes##bt(UPB_PARSE_PARAMS) { \
898
+ const char* upb_p##card##type##_##tagbytes##bt(UPB_PARSE_PARAMS) { \
899
899
  FASTDECODE_STRING(d, ptr, msg, table, hasbits, data, tagbytes, \
900
900
  CARD_##card, upb_c##card##type##_##tagbytes##bt, \
901
901
  type##_VALIDATE); \
@@ -924,12 +924,12 @@ TAGBYTES(r)
924
924
  /* message fields *************************************************************/
925
925
 
926
926
  UPB_INLINE
927
- upb_msg *decode_newmsg_ceil(upb_decstate *d, const upb_msglayout *l,
928
- int msg_ceil_bytes) {
929
- size_t size = l->size + sizeof(upb_msg_internal);
930
- char *msg_data;
927
+ upb_Message* decode_newmsg_ceil(upb_Decoder* d, const upb_MiniTable* l,
928
+ int msg_ceil_bytes) {
929
+ size_t size = l->size + sizeof(upb_Message_Internal);
930
+ char* msg_data;
931
931
  if (UPB_LIKELY(msg_ceil_bytes > 0 &&
932
- _upb_arenahas(&d->arena) >= msg_ceil_bytes)) {
932
+ _upb_ArenaHas(&d->arena) >= msg_ceil_bytes)) {
933
933
  UPB_ASSERT(size <= (size_t)msg_ceil_bytes);
934
934
  msg_data = d->arena.head.ptr;
935
935
  d->arena.head.ptr += size;
@@ -937,21 +937,21 @@ upb_msg *decode_newmsg_ceil(upb_decstate *d, const upb_msglayout *l,
937
937
  memset(msg_data, 0, msg_ceil_bytes);
938
938
  UPB_POISON_MEMORY_REGION(msg_data + size, msg_ceil_bytes - size);
939
939
  } else {
940
- msg_data = (char*)upb_arena_malloc(&d->arena, size);
940
+ msg_data = (char*)upb_Arena_Malloc(&d->arena, size);
941
941
  memset(msg_data, 0, size);
942
942
  }
943
- return msg_data + sizeof(upb_msg_internal);
943
+ return msg_data + sizeof(upb_Message_Internal);
944
944
  }
945
945
 
946
946
  typedef struct {
947
947
  intptr_t table;
948
- upb_msg *msg;
948
+ upb_Message* msg;
949
949
  } fastdecode_submsgdata;
950
950
 
951
951
  UPB_FORCEINLINE
952
- static const char *fastdecode_tosubmsg(upb_decstate *d, const char *ptr,
953
- void *ctx) {
954
- fastdecode_submsgdata *submsg = ctx;
952
+ static const char* fastdecode_tosubmsg(upb_Decoder* d, const char* ptr,
953
+ void* ctx) {
954
+ fastdecode_submsgdata* submsg = ctx;
955
955
  ptr = fastdecode_dispatch(d, ptr, submsg->msg, submsg->table, 0, 0);
956
956
  UPB_ASSUME(ptr != NULL);
957
957
  return ptr;
@@ -964,12 +964,14 @@ static const char *fastdecode_tosubmsg(upb_decstate *d, const char *ptr,
964
964
  RETURN_GENERIC("submessage field tag mismatch\n"); \
965
965
  } \
966
966
  \
967
- if (--d->depth == 0) return fastdecode_err(d); \
967
+ if (--d->depth == 0) { \
968
+ return fastdecode_err(d, kUpb_DecodeStatus_MaxDepthExceeded); \
969
+ } \
968
970
  \
969
- upb_msg **dst; \
971
+ upb_Message** dst; \
970
972
  uint32_t submsg_idx = (data >> 16) & 0xff; \
971
- const upb_msglayout *tablep = decode_totablep(table); \
972
- const upb_msglayout *subtablep = tablep->subs[submsg_idx].submsg; \
973
+ const upb_MiniTable* tablep = decode_totablep(table); \
974
+ const upb_MiniTable* subtablep = tablep->subs[submsg_idx].submsg; \
973
975
  fastdecode_submsgdata submsg = {decode_totable(subtablep)}; \
974
976
  fastdecode_arr farr; \
975
977
  \
@@ -978,16 +980,16 @@ static const char *fastdecode_tosubmsg(upb_decstate *d, const char *ptr,
978
980
  } \
979
981
  \
980
982
  dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, \
981
- sizeof(upb_msg *), card); \
983
+ sizeof(upb_Message*), card); \
982
984
  \
983
985
  if (card == CARD_s) { \
984
- *(uint32_t *)msg |= hasbits; \
986
+ *(uint32_t*)msg |= hasbits; \
985
987
  hasbits = 0; \
986
988
  } \
987
989
  \
988
990
  again: \
989
991
  if (card == CARD_r) { \
990
- dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_msg *)); \
992
+ dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_Message*)); \
991
993
  } \
992
994
  \
993
995
  submsg.msg = *dst; \
@@ -1000,12 +1002,12 @@ static const char *fastdecode_tosubmsg(upb_decstate *d, const char *ptr,
1000
1002
  ptr = fastdecode_delimited(d, ptr, fastdecode_tosubmsg, &submsg); \
1001
1003
  \
1002
1004
  if (UPB_UNLIKELY(ptr == NULL || d->end_group != DECODE_NOGROUP)) { \
1003
- return fastdecode_err(d); \
1005
+ return fastdecode_err(d, kUpb_DecodeStatus_Malformed); \
1004
1006
  } \
1005
1007
  \
1006
1008
  if (card == CARD_r) { \
1007
1009
  fastdecode_nextret ret = fastdecode_nextrepeated( \
1008
- d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_msg *)); \
1010
+ d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_Message*)); \
1009
1011
  switch (ret.next) { \
1010
1012
  case FD_NEXT_SAMEFIELD: \
1011
1013
  dst = ret.dst; \
@@ -1024,21 +1026,21 @@ static const char *fastdecode_tosubmsg(upb_decstate *d, const char *ptr,
1024
1026
  UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS);
1025
1027
 
1026
1028
  #define F(card, tagbytes, size_ceil, ceil_arg) \
1027
- const char *upb_p##card##m_##tagbytes##bt_max##size_ceil##b( \
1029
+ const char* upb_p##card##m_##tagbytes##bt_max##size_ceil##b( \
1028
1030
  UPB_PARSE_PARAMS) { \
1029
1031
  FASTDECODE_SUBMSG(d, ptr, msg, table, hasbits, data, tagbytes, ceil_arg, \
1030
1032
  CARD_##card); \
1031
1033
  }
1032
1034
 
1033
1035
  #define SIZES(card, tagbytes) \
1034
- F(card, tagbytes, 64, 64) \
1036
+ F(card, tagbytes, 64, 64) \
1035
1037
  F(card, tagbytes, 128, 128) \
1036
1038
  F(card, tagbytes, 192, 192) \
1037
1039
  F(card, tagbytes, 256, 256) \
1038
1040
  F(card, tagbytes, max, -1)
1039
1041
 
1040
1042
  #define TAGBYTES(card) \
1041
- SIZES(card, 1) \
1043
+ SIZES(card, 1) \
1042
1044
  SIZES(card, 2)
1043
1045
 
1044
1046
  TAGBYTES(s)
@@ -1050,4 +1052,4 @@ TAGBYTES(r)
1050
1052
  #undef F
1051
1053
  #undef FASTDECODE_SUBMSG
1052
1054
 
1053
- #endif /* UPB_FASTTABLE */
1055
+ #endif /* UPB_FASTTABLE */