grpc 1.54.0 → 1.55.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 (970) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +66 -37
  3. data/include/grpc/impl/grpc_types.h +2 -0
  4. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -1
  5. data/src/core/ext/filters/client_channel/backend_metric.cc +2 -1
  6. data/src/core/ext/filters/client_channel/client_channel.cc +13 -17
  7. data/src/core/ext/filters/client_channel/client_channel.h +20 -16
  8. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +1 -1
  9. data/src/core/ext/filters/client_channel/client_channel_internal.h +8 -40
  10. data/src/core/ext/filters/client_channel/client_channel_service_config.cc +2 -2
  11. data/src/core/ext/filters/client_channel/config_selector.h +5 -17
  12. data/src/core/ext/filters/client_channel/health/health_check_client.cc +1 -1
  13. data/src/core/ext/filters/client_channel/http_proxy.cc +34 -1
  14. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +2 -2
  15. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -1
  16. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
  17. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +5 -5
  18. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +3 -3
  19. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +45 -46
  20. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +2 -3
  21. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +3 -3
  22. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +3 -3
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +4 -4
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +3 -3
  25. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +9 -9
  26. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +4 -4
  27. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +5 -4
  28. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +19 -118
  29. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h +30 -0
  30. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +60 -0
  31. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h +27 -0
  32. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +524 -0
  33. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h +35 -0
  34. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +97 -0
  35. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h +32 -0
  36. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +2 -13
  37. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h +24 -0
  38. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +3 -2
  39. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +7 -34
  40. data/src/core/ext/filters/client_channel/retry_filter.cc +23 -55
  41. data/src/core/ext/filters/client_channel/retry_service_config.cc +8 -8
  42. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +1 -1
  43. data/src/core/ext/filters/http/message_compress/compression_filter.cc +2 -2
  44. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +68 -69
  45. data/src/core/ext/gcp/metadata_query.cc +5 -10
  46. data/src/core/ext/gcp/metadata_query.h +10 -5
  47. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +12 -8
  48. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +5 -1
  49. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +78 -23
  50. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +21 -0
  51. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +70 -0
  52. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +1 -7
  53. data/src/core/ext/transport/chttp2/transport/frame_ping.h +0 -3
  54. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +118 -222
  55. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +296 -113
  56. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +2 -0
  57. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +2 -0
  58. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +451 -277
  59. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +3 -1
  60. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +15 -12
  61. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +9 -1
  62. data/src/core/ext/transport/chttp2/transport/internal.h +3 -4
  63. data/src/core/ext/transport/chttp2/transport/writing.cc +14 -3
  64. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +87 -52
  65. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +414 -181
  66. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -60
  67. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +481 -224
  68. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +90 -55
  69. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +415 -188
  70. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +357 -210
  71. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1572 -729
  72. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +30 -17
  73. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +144 -47
  74. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +34 -21
  75. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +160 -62
  76. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +27 -14
  77. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +78 -38
  78. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +20 -11
  79. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +48 -26
  80. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +20 -11
  81. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +48 -26
  82. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +109 -62
  83. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +566 -244
  84. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +21 -12
  85. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +45 -30
  86. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +22 -19
  87. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +82 -29
  88. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +23 -16
  89. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +45 -30
  90. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +230 -143
  91. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +733 -404
  92. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +417 -264
  93. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1839 -899
  94. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -41
  95. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +286 -148
  96. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +531 -334
  97. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2017 -1131
  98. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -12
  99. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +45 -30
  100. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +89 -52
  101. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +347 -232
  102. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +264 -165
  103. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +888 -476
  104. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +139 -80
  105. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +527 -274
  106. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +22 -13
  107. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +50 -36
  108. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +380 -221
  109. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1168 -611
  110. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +166 -94
  111. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +666 -292
  112. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +18 -11
  113. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +37 -26
  114. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +21 -12
  115. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +45 -30
  116. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +30 -17
  117. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +144 -47
  118. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +274 -167
  119. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +789 -440
  120. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +228 -137
  121. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +1100 -501
  122. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -13
  123. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +60 -37
  124. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +350 -211
  125. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1072 -646
  126. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +33 -18
  127. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +117 -51
  128. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +34 -19
  129. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +118 -56
  130. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +38 -21
  131. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +148 -64
  132. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +31 -18
  133. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +143 -65
  134. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +22 -13
  135. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +51 -37
  136. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +78 -43
  137. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +265 -127
  138. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +145 -88
  139. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +438 -241
  140. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +115 -62
  141. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +559 -227
  142. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +18 -11
  143. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +35 -26
  144. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +175 -118
  145. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +857 -442
  146. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +172 -95
  147. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +864 -374
  148. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -27
  149. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +159 -110
  150. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +39 -18
  151. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +74 -56
  152. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +28 -15
  153. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +71 -45
  154. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +131 -74
  155. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +489 -249
  156. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +135 -80
  157. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +505 -245
  158. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +248 -139
  159. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +933 -433
  160. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +80 -49
  161. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +616 -201
  162. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +1283 -776
  163. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +5422 -2519
  164. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +49 -28
  165. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +164 -84
  166. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +228 -141
  167. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +738 -399
  168. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +20 -11
  169. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +48 -26
  170. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +21 -12
  171. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +45 -30
  172. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +32 -19
  173. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +70 -49
  174. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +27 -14
  175. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +110 -43
  176. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +46 -25
  177. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +259 -100
  178. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +21 -12
  179. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +45 -30
  180. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +18 -11
  181. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +35 -26
  182. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +42 -23
  183. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +108 -70
  184. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +7 -4
  185. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +21 -16
  186. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +43 -24
  187. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +110 -75
  188. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +30 -17
  189. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +95 -50
  190. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +16 -9
  191. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +73 -23
  192. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +60 -37
  193. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +150 -108
  194. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +74 -43
  195. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +357 -167
  196. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +44 -25
  197. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +114 -80
  198. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -20
  199. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +245 -82
  200. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +32 -19
  201. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +73 -51
  202. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +474 -296
  203. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2121 -1076
  204. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +18 -11
  205. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +35 -26
  206. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +34 -21
  207. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +112 -78
  208. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +72 -45
  209. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +193 -138
  210. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +34 -21
  211. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +119 -78
  212. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +18 -11
  213. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +35 -26
  214. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -4
  215. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +15 -10
  216. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +184 -96
  217. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +907 -360
  218. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +56 -33
  219. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -101
  220. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +188 -111
  221. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +816 -419
  222. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +32 -19
  223. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +109 -53
  224. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +10 -7
  225. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +18 -14
  226. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +300 -177
  227. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +1284 -522
  228. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +42 -23
  229. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +188 -75
  230. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +130 -83
  231. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +510 -238
  232. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +22 -13
  233. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +55 -34
  234. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +39 -26
  235. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +124 -68
  236. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +21 -12
  237. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +47 -30
  238. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +52 -29
  239. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +92 -62
  240. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +37 -20
  241. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +133 -63
  242. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +22 -13
  243. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +91 -40
  244. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -12
  245. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +50 -32
  246. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +18 -11
  247. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +37 -26
  248. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +46 -27
  249. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +101 -70
  250. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +13 -10
  251. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +25 -22
  252. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +40 -23
  253. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +161 -75
  254. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +31 -18
  255. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +114 -56
  256. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +46 -29
  257. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +139 -91
  258. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +65 -42
  259. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +200 -121
  260. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +80 -45
  261. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +208 -131
  262. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +34 -21
  263. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +74 -53
  264. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -4
  265. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +13 -8
  266. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +16 -9
  267. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +28 -18
  268. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +28 -15
  269. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +55 -34
  270. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +43 -22
  271. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +91 -53
  272. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +35 -20
  273. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +92 -57
  274. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +7 -4
  275. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +13 -8
  276. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -11
  277. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +48 -26
  278. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +23 -14
  279. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +61 -41
  280. data/src/core/ext/upb-generated/google/api/annotations.upb.c +14 -11
  281. data/src/core/ext/upb-generated/google/api/annotations.upb.h +30 -20
  282. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +255 -154
  283. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +934 -450
  284. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +299 -180
  285. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +946 -483
  286. data/src/core/ext/upb-generated/google/api/http.upb.c +68 -35
  287. data/src/core/ext/upb-generated/google/api/http.upb.h +284 -120
  288. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +22 -13
  289. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +95 -37
  290. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -10
  291. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +38 -22
  292. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +1018 -424
  293. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +3851 -1412
  294. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -10
  295. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +38 -22
  296. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +10 -7
  297. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +18 -14
  298. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +62 -39
  299. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +207 -102
  300. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -10
  301. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +38 -22
  302. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +90 -51
  303. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +157 -107
  304. data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -13
  305. data/src/core/ext/upb-generated/google/rpc/status.upb.h +95 -37
  306. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +59 -34
  307. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +154 -92
  308. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +43 -24
  309. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +118 -60
  310. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +250 -145
  311. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +919 -415
  312. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +34 -19
  313. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +76 -51
  314. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +25 -14
  315. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +45 -30
  316. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +144 -81
  317. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +405 -217
  318. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +51 -26
  319. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +153 -61
  320. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +173 -102
  321. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +855 -298
  322. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +68 -49
  323. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +155 -104
  324. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +26 -17
  325. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +55 -34
  326. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +12 -9
  327. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +31 -14
  328. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +26 -17
  329. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +55 -34
  330. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +23 -16
  331. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +45 -30
  332. data/src/core/ext/upb-generated/validate/validate.upb.c +845 -455
  333. data/src/core/ext/upb-generated/validate/validate.upb.h +4347 -1908
  334. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +68 -49
  335. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +155 -104
  336. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +26 -17
  337. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +55 -34
  338. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +12 -9
  339. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +31 -14
  340. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +65 -44
  341. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +137 -91
  342. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +23 -16
  343. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +45 -30
  344. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +16 -9
  345. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +28 -18
  346. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +21 -12
  347. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +45 -30
  348. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +37 -22
  349. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +96 -63
  350. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +26 -17
  351. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +52 -29
  352. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +21 -12
  353. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +45 -30
  354. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +23 -14
  355. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +62 -42
  356. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +44 -25
  357. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +169 -79
  358. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +27 -14
  359. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +65 -38
  360. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +69 -38
  361. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +167 -76
  362. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +21 -12
  363. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +89 -34
  364. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +18 -11
  365. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +35 -26
  366. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +32 -19
  367. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +150 -54
  368. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +10 -7
  369. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +18 -14
  370. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +34 -21
  371. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +161 -63
  372. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +162 -101
  373. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +501 -293
  374. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +85 -52
  375. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +430 -164
  376. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +24 -15
  377. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +53 -37
  378. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +40 -23
  379. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +161 -75
  380. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +37 -22
  381. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +92 -66
  382. data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +43 -22
  383. data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +91 -53
  384. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +21 -12
  385. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +45 -30
  386. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +1 -1
  387. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +6 -5
  388. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +1 -1
  389. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +6 -5
  390. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +1 -1
  391. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +6 -5
  392. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +1 -1
  393. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +6 -5
  394. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +1 -1
  395. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +6 -5
  396. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +1 -1
  397. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +6 -5
  398. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +1 -1
  399. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +6 -5
  400. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +1 -1
  401. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +6 -5
  402. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +1 -1
  403. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +6 -5
  404. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +1 -1
  405. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +6 -5
  406. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +1 -1
  407. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +6 -5
  408. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +1 -1
  409. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +6 -5
  410. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +1 -1
  411. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +6 -5
  412. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +1 -1
  413. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +6 -5
  414. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +252 -253
  415. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +6 -5
  416. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +1 -1
  417. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +6 -5
  418. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +1 -1
  419. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +6 -5
  420. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +1 -1
  421. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +6 -5
  422. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +1 -1
  423. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +6 -5
  424. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +1 -1
  425. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +6 -5
  426. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +1 -1
  427. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +6 -5
  428. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +1 -1
  429. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +6 -5
  430. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +1 -1
  431. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +6 -5
  432. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +13 -12
  433. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +11 -5
  434. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +1 -1
  435. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +6 -5
  436. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +1 -1
  437. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +6 -5
  438. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +1 -1
  439. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +6 -5
  440. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +1 -1
  441. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +6 -5
  442. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +1 -1
  443. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +6 -5
  444. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +1 -1
  445. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +6 -5
  446. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +44 -44
  447. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +6 -5
  448. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +1 -1
  449. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +6 -5
  450. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +1 -1
  451. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +6 -5
  452. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +1 -1
  453. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +6 -5
  454. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +1 -1
  455. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +6 -5
  456. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +1 -1
  457. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +6 -5
  458. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +1 -1
  459. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +6 -5
  460. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +1 -1
  461. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +6 -5
  462. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +1 -1
  463. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +6 -5
  464. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +1 -1
  465. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +6 -5
  466. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +1 -1
  467. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +6 -5
  468. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +1 -1
  469. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +6 -5
  470. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +1 -1
  471. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +6 -5
  472. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +1 -1
  473. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +6 -5
  474. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +1 -1
  475. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +6 -5
  476. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +1 -1
  477. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +6 -5
  478. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +1 -1
  479. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +6 -5
  480. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +134 -128
  481. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +11 -5
  482. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +1 -1
  483. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +6 -5
  484. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +1 -1
  485. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +6 -5
  486. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +1 -1
  487. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +6 -5
  488. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +1 -1
  489. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +6 -5
  490. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +1 -1
  491. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +6 -5
  492. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +1 -1
  493. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +6 -5
  494. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +1 -1
  495. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +6 -5
  496. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +1 -1
  497. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +6 -5
  498. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +1 -1
  499. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +6 -5
  500. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +1 -1
  501. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +6 -5
  502. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +1 -1
  503. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +6 -5
  504. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +1 -1
  505. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +6 -5
  506. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +1 -1
  507. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +6 -5
  508. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +1 -1
  509. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +6 -5
  510. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +1 -1
  511. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +6 -5
  512. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +1 -1
  513. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +6 -5
  514. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +1 -1
  515. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +6 -5
  516. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +1 -1
  517. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +6 -5
  518. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +1 -1
  519. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +6 -5
  520. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +1 -1
  521. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +6 -5
  522. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +1 -1
  523. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +6 -5
  524. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +379 -376
  525. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +6 -5
  526. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +1 -1
  527. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +6 -5
  528. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +1 -1
  529. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +6 -5
  530. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +138 -136
  531. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +6 -5
  532. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +1 -1
  533. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +6 -5
  534. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
  535. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +6 -5
  536. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +1 -1
  537. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +6 -5
  538. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +1 -1
  539. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +6 -5
  540. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +1 -1
  541. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +6 -5
  542. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +1 -1
  543. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +6 -5
  544. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +12 -13
  545. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +6 -5
  546. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +1 -1
  547. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +6 -5
  548. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +1 -1
  549. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +6 -5
  550. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +1 -1
  551. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +6 -5
  552. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +1 -1
  553. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +6 -5
  554. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +1 -1
  555. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +6 -5
  556. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +1 -1
  557. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +6 -5
  558. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +1 -1
  559. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +6 -5
  560. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +1 -1
  561. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +6 -5
  562. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +1 -1
  563. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +6 -5
  564. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +1 -1
  565. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +6 -5
  566. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +1 -1
  567. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +6 -5
  568. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +1 -1
  569. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +6 -5
  570. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +1 -1
  571. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +6 -5
  572. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +1 -1
  573. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +6 -5
  574. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +1 -1
  575. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +6 -5
  576. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +1 -1
  577. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +6 -5
  578. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +1 -1
  579. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +6 -5
  580. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +1 -1
  581. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +6 -5
  582. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +1 -1
  583. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +6 -5
  584. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +1 -1
  585. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +6 -5
  586. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +1 -1
  587. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +6 -5
  588. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +1 -1
  589. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +6 -5
  590. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +1 -1
  591. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +6 -5
  592. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +1 -1
  593. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +6 -5
  594. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +1 -1
  595. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +6 -5
  596. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +1 -1
  597. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +6 -5
  598. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +1 -1
  599. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +6 -5
  600. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +1 -1
  601. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +6 -5
  602. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +1 -1
  603. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +6 -5
  604. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +1 -1
  605. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +6 -5
  606. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +329 -273
  607. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +11 -5
  608. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +1 -1
  609. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +6 -5
  610. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +1 -1
  611. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +6 -5
  612. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +1 -1
  613. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +6 -5
  614. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +1 -1
  615. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +6 -5
  616. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +1 -1
  617. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +6 -5
  618. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +1 -1
  619. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +6 -5
  620. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +1 -1
  621. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +6 -5
  622. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +1 -1
  623. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +6 -5
  624. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +1 -1
  625. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +6 -5
  626. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +1 -1
  627. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +6 -5
  628. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +1 -1
  629. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +6 -5
  630. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +1 -1
  631. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +6 -5
  632. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +1 -1
  633. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +6 -5
  634. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +1 -1
  635. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +6 -5
  636. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +1 -1
  637. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +6 -5
  638. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +1 -1
  639. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +6 -5
  640. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +1 -1
  641. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +6 -5
  642. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +1 -1
  643. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +6 -5
  644. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +1 -1
  645. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +6 -5
  646. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +1 -1
  647. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +6 -5
  648. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +1 -1
  649. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +6 -5
  650. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +1 -1
  651. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +6 -5
  652. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +1 -1
  653. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +6 -5
  654. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +1 -1
  655. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +6 -5
  656. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +1 -1
  657. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +6 -5
  658. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +1 -1
  659. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +6 -5
  660. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +1 -1
  661. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +6 -5
  662. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +1 -1
  663. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +6 -5
  664. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +1 -1
  665. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +6 -5
  666. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +1 -1
  667. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +6 -5
  668. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +1 -1
  669. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +6 -5
  670. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +1 -1
  671. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +6 -5
  672. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +1 -1
  673. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +6 -5
  674. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +1 -1
  675. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +6 -5
  676. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +1 -1
  677. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +6 -5
  678. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +1 -1
  679. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +6 -5
  680. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +1 -1
  681. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +6 -5
  682. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +1 -1
  683. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +6 -5
  684. data/src/core/ext/xds/certificate_provider_store.cc +4 -4
  685. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +7 -7
  686. data/src/core/ext/xds/upb_utils.h +1 -1
  687. data/src/core/ext/xds/xds_api.cc +34 -14
  688. data/src/core/ext/xds/xds_api.h +2 -2
  689. data/src/core/ext/xds/xds_bootstrap.cc +3 -3
  690. data/src/core/ext/xds/xds_bootstrap_grpc.cc +15 -15
  691. data/src/core/ext/xds/xds_client.cc +24 -3
  692. data/src/core/ext/xds/xds_client.h +1 -1
  693. data/src/core/ext/xds/xds_cluster.cc +26 -34
  694. data/src/core/ext/xds/xds_cluster.h +1 -2
  695. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +4 -3
  696. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +2 -2
  697. data/src/core/ext/xds/xds_common_types.cc +5 -4
  698. data/src/core/ext/xds/xds_endpoint.cc +5 -2
  699. data/src/core/ext/xds/xds_endpoint.h +1 -1
  700. data/src/core/ext/xds/xds_http_fault_filter.cc +2 -2
  701. data/src/core/ext/xds/xds_http_fault_filter.h +1 -1
  702. data/src/core/ext/xds/xds_http_filters.h +3 -2
  703. data/src/core/ext/xds/xds_http_rbac_filter.cc +6 -8
  704. data/src/core/ext/xds/xds_http_rbac_filter.h +1 -1
  705. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +2 -2
  706. data/src/core/ext/xds/xds_http_stateful_session_filter.h +1 -1
  707. data/src/core/ext/xds/xds_lb_policy_registry.cc +4 -22
  708. data/src/core/ext/xds/xds_listener.cc +10 -4
  709. data/src/core/ext/xds/xds_listener.h +1 -1
  710. data/src/core/ext/xds/xds_resource_type.h +2 -2
  711. data/src/core/ext/xds/xds_route_config.cc +8 -5
  712. data/src/core/ext/xds/xds_route_config.h +1 -1
  713. data/src/core/lib/channel/channelz.cc +5 -4
  714. data/src/core/lib/channel/channelz_registry.cc +7 -6
  715. data/src/core/lib/channel/connected_channel.cc +82 -27
  716. data/src/core/lib/channel/promise_based_filter.cc +2 -8
  717. data/src/core/lib/debug/trace.cc +16 -7
  718. data/src/core/lib/debug/trace.h +12 -4
  719. data/src/core/lib/event_engine/event_engine.cc +4 -4
  720. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +8 -26
  721. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +6 -1
  722. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -0
  723. data/src/core/lib/event_engine/shim.cc +2 -0
  724. data/src/core/lib/event_engine/trace.cc +1 -0
  725. data/src/core/lib/event_engine/trace.h +6 -0
  726. data/src/core/lib/experiments/experiments.cc +3 -0
  727. data/src/core/lib/experiments/experiments.h +4 -1
  728. data/src/core/lib/gpr/posix/time.cc +5 -0
  729. data/src/core/lib/gprpp/status_helper.cc +2 -2
  730. data/src/core/lib/gprpp/validation_errors.cc +8 -3
  731. data/src/core/lib/gprpp/validation_errors.h +16 -9
  732. data/src/core/lib/iomgr/buffer_list.h +0 -1
  733. data/src/core/lib/iomgr/socket_utils_posix.cc +3 -0
  734. data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
  735. data/src/core/lib/iomgr/tcp_client_posix.cc +4 -0
  736. data/src/core/lib/iomgr/timer_generic.cc +17 -16
  737. data/src/core/lib/json/json.h +61 -113
  738. data/src/core/lib/json/json_object_loader.cc +20 -20
  739. data/src/core/lib/json/json_object_loader.h +8 -3
  740. data/src/core/lib/json/json_reader.cc +58 -38
  741. data/src/core/lib/json/json_reader.h +34 -0
  742. data/src/core/lib/json/json_util.cc +6 -6
  743. data/src/core/lib/json/json_util.h +5 -4
  744. data/src/core/lib/json/json_writer.cc +19 -19
  745. data/src/core/lib/json/json_writer.h +33 -0
  746. data/src/core/lib/load_balancing/lb_policy_registry.cc +7 -7
  747. data/src/core/lib/promise/pipe.h +7 -0
  748. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +35 -37
  749. data/src/core/lib/security/credentials/external/external_account_credentials.cc +60 -62
  750. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +22 -21
  751. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +28 -27
  752. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +4 -2
  753. data/src/core/lib/security/credentials/jwt/json_token.cc +6 -4
  754. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +8 -5
  755. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +39 -38
  756. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +17 -16
  757. data/src/core/lib/security/util/json_util.cc +5 -5
  758. data/src/core/lib/service_config/service_config_impl.cc +11 -5
  759. data/src/core/lib/slice/slice.h +2 -0
  760. data/src/core/lib/surface/call.cc +71 -26
  761. data/src/core/lib/surface/call.h +1 -5
  762. data/src/core/lib/surface/completion_queue.cc +2 -1
  763. data/src/core/lib/surface/server.cc +47 -19
  764. data/src/core/lib/surface/validate_metadata.cc +43 -42
  765. data/src/core/lib/surface/validate_metadata.h +9 -0
  766. data/src/core/lib/surface/version.cc +2 -2
  767. data/src/core/lib/transport/batch_builder.h +9 -1
  768. data/src/core/lib/transport/metadata_batch.h +71 -20
  769. data/src/core/lib/transport/metadata_compression_traits.h +67 -0
  770. data/src/core/lib/transport/parsed_metadata.h +16 -6
  771. data/src/core/lib/transport/simple_slice_based_metadata.h +48 -0
  772. data/src/core/lib/transport/transport.h +3 -0
  773. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -4
  774. data/src/ruby/lib/grpc/version.rb +1 -1
  775. data/third_party/abseil-cpp/absl/base/config.h +1 -1
  776. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +33 -47
  777. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +7 -4
  778. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +32 -2
  779. data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +11 -12
  780. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +826 -0
  781. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +10 -12
  782. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +8 -10
  783. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +2 -1
  784. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +2 -1
  785. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +18 -14
  786. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +17 -21
  787. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +7 -3
  788. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +3 -4
  789. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +1 -72
  790. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +4 -2
  791. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +4 -3
  792. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +7 -3
  793. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +4 -2
  794. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +1 -1
  795. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -8
  796. data/third_party/boringssl-with-bazel/src/include/openssl/kyber.h +128 -0
  797. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +8 -1
  798. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +1 -1
  799. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +8 -12
  800. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1 -10
  801. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +9 -2
  802. data/third_party/boringssl-with-bazel/src/ssl/internal.h +17 -17
  803. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +8 -4
  804. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +2 -2
  805. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +72 -5
  806. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +19 -21
  807. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +2 -1
  808. data/third_party/upb/upb/{table_internal.h → alloc.h} +6 -6
  809. data/third_party/upb/upb/arena.h +4 -193
  810. data/third_party/upb/upb/array.h +4 -51
  811. data/third_party/upb/upb/base/descriptor_constants.h +104 -0
  812. data/third_party/upb/upb/base/log2.h +57 -0
  813. data/third_party/upb/upb/{status.c → base/status.c} +2 -7
  814. data/third_party/upb/upb/base/status.h +66 -0
  815. data/third_party/upb/upb/base/string_view.h +75 -0
  816. data/third_party/upb/upb/{array.c → collections/array.c} +67 -36
  817. data/third_party/upb/upb/collections/array.h +85 -0
  818. data/third_party/upb/upb/collections/array_internal.h +135 -0
  819. data/third_party/upb/upb/{map.c → collections/map.c} +53 -26
  820. data/third_party/upb/upb/collections/map.h +135 -0
  821. data/third_party/upb/upb/collections/map_gencode_util.h +78 -0
  822. data/third_party/upb/upb/collections/map_internal.h +170 -0
  823. data/third_party/upb/upb/collections/map_sorter.c +166 -0
  824. data/third_party/upb/upb/collections/map_sorter_internal.h +109 -0
  825. data/third_party/upb/upb/{message_value.h → collections/message_value.h} +12 -13
  826. data/third_party/upb/upb/decode.h +3 -62
  827. data/third_party/upb/upb/def.h +4 -384
  828. data/third_party/upb/upb/def.hpp +3 -411
  829. data/third_party/upb/upb/encode.h +3 -48
  830. data/third_party/upb/upb/extension_registry.h +3 -52
  831. data/third_party/upb/upb/{table.c → hash/common.c} +52 -110
  832. data/third_party/upb/upb/hash/common.h +199 -0
  833. data/third_party/upb/upb/hash/int_table.h +102 -0
  834. data/third_party/upb/upb/hash/str_table.h +161 -0
  835. data/third_party/upb/upb/{json_decode.c → json/decode.c} +63 -98
  836. data/third_party/upb/upb/json/decode.h +52 -0
  837. data/third_party/upb/upb/{json_encode.c → json/encode.c} +69 -45
  838. data/third_party/upb/upb/json/encode.h +70 -0
  839. data/third_party/upb/upb/json_decode.h +4 -15
  840. data/third_party/upb/upb/json_encode.h +4 -33
  841. data/third_party/upb/upb/lex/atoi.c +68 -0
  842. data/third_party/upb/upb/lex/atoi.h +53 -0
  843. data/third_party/upb/upb/{upb.c → lex/round_trip.c} +2 -11
  844. data/third_party/upb/upb/{internal/upb.h → lex/round_trip.h} +17 -30
  845. data/third_party/upb/upb/lex/strtod.c +97 -0
  846. data/third_party/upb/upb/lex/strtod.h +46 -0
  847. data/third_party/upb/upb/lex/unicode.c +57 -0
  848. data/third_party/upb/upb/lex/unicode.h +77 -0
  849. data/third_party/upb/upb/map.h +4 -85
  850. data/third_party/upb/upb/mem/alloc.c +47 -0
  851. data/third_party/upb/upb/mem/alloc.h +98 -0
  852. data/third_party/upb/upb/mem/arena.c +367 -0
  853. data/third_party/upb/upb/mem/arena.h +160 -0
  854. data/third_party/upb/upb/mem/arena_internal.h +114 -0
  855. data/third_party/upb/upb/message/accessors.c +68 -0
  856. data/third_party/upb/upb/message/accessors.h +379 -0
  857. data/third_party/upb/upb/message/accessors_internal.h +325 -0
  858. data/third_party/upb/upb/message/extension_internal.h +83 -0
  859. data/third_party/upb/upb/message/internal.h +135 -0
  860. data/third_party/upb/upb/message/message.c +180 -0
  861. data/third_party/upb/upb/message/message.h +69 -0
  862. data/third_party/upb/upb/mini_table/common.c +128 -0
  863. data/third_party/upb/upb/mini_table/common.h +170 -0
  864. data/third_party/upb/upb/mini_table/common_internal.h +111 -0
  865. data/third_party/upb/upb/{mini_table.c → mini_table/decode.c} +513 -533
  866. data/third_party/upb/upb/mini_table/decode.h +179 -0
  867. data/third_party/upb/upb/mini_table/encode.c +300 -0
  868. data/third_party/upb/upb/mini_table/encode_internal.h +111 -0
  869. data/third_party/upb/upb/{mini_table.hpp → mini_table/encode_internal.hpp} +32 -8
  870. data/third_party/upb/upb/mini_table/enum_internal.h +88 -0
  871. data/third_party/upb/upb/mini_table/extension_internal.h +47 -0
  872. data/third_party/upb/upb/{extension_registry.c → mini_table/extension_registry.c} +27 -24
  873. data/third_party/upb/upb/mini_table/extension_registry.h +104 -0
  874. data/third_party/upb/upb/mini_table/field_internal.h +192 -0
  875. data/third_party/upb/upb/mini_table/file_internal.h +47 -0
  876. data/third_party/upb/upb/mini_table/message_internal.h +136 -0
  877. data/third_party/upb/upb/mini_table/sub_internal.h +38 -0
  878. data/third_party/upb/upb/mini_table/types.h +40 -0
  879. data/third_party/upb/upb/mini_table.h +4 -157
  880. data/third_party/upb/upb/msg.h +3 -38
  881. data/third_party/upb/upb/port/atomic.h +101 -0
  882. data/third_party/upb/upb/{port_def.inc → port/def.inc} +94 -27
  883. data/third_party/upb/upb/{port_undef.inc → port/undef.inc} +13 -3
  884. data/third_party/upb/upb/{internal → port}/vsnprintf_compat.h +5 -7
  885. data/third_party/upb/upb/reflection/common.h +67 -0
  886. data/third_party/upb/upb/reflection/def.h +42 -0
  887. data/third_party/upb/upb/reflection/def.hpp +610 -0
  888. data/third_party/upb/upb/reflection/def_builder.c +357 -0
  889. data/third_party/upb/upb/reflection/def_builder_internal.h +157 -0
  890. data/third_party/upb/upb/reflection/def_pool.c +462 -0
  891. data/third_party/upb/upb/reflection/def_pool.h +108 -0
  892. data/third_party/upb/upb/reflection/def_pool_internal.h +77 -0
  893. data/third_party/upb/upb/reflection/def_type.c +50 -0
  894. data/third_party/upb/upb/reflection/def_type.h +81 -0
  895. data/third_party/upb/upb/reflection/desc_state.c +53 -0
  896. data/third_party/upb/upb/reflection/desc_state_internal.h +64 -0
  897. data/third_party/upb/upb/reflection/enum_def.c +310 -0
  898. data/third_party/upb/upb/reflection/enum_def.h +80 -0
  899. data/third_party/upb/upb/reflection/enum_def_internal.h +56 -0
  900. data/third_party/upb/upb/reflection/enum_reserved_range.c +84 -0
  901. data/third_party/upb/upb/reflection/enum_reserved_range.h +51 -0
  902. data/third_party/upb/upb/reflection/enum_reserved_range_internal.h +55 -0
  903. data/third_party/upb/upb/reflection/enum_value_def.c +144 -0
  904. data/third_party/upb/upb/reflection/enum_value_def.h +57 -0
  905. data/third_party/upb/upb/reflection/enum_value_def_internal.h +57 -0
  906. data/third_party/upb/upb/reflection/extension_range.c +93 -0
  907. data/third_party/upb/upb/reflection/extension_range.h +55 -0
  908. data/third_party/upb/upb/reflection/extension_range_internal.h +54 -0
  909. data/third_party/upb/upb/reflection/field_def.c +930 -0
  910. data/third_party/upb/upb/reflection/field_def.h +91 -0
  911. data/third_party/upb/upb/reflection/field_def_internal.h +76 -0
  912. data/third_party/upb/upb/reflection/file_def.c +370 -0
  913. data/third_party/upb/upb/reflection/file_def.h +77 -0
  914. data/third_party/upb/upb/reflection/file_def_internal.h +57 -0
  915. data/third_party/upb/upb/reflection/message.c +233 -0
  916. data/third_party/upb/upb/reflection/message.h +102 -0
  917. data/third_party/upb/upb/reflection/message.hpp +37 -0
  918. data/third_party/upb/upb/reflection/message_def.c +718 -0
  919. data/third_party/upb/upb/reflection/message_def.h +174 -0
  920. data/third_party/upb/upb/reflection/message_def_internal.h +63 -0
  921. data/third_party/upb/upb/reflection/message_reserved_range.c +81 -0
  922. data/third_party/upb/upb/reflection/message_reserved_range.h +51 -0
  923. data/third_party/upb/upb/reflection/message_reserved_range_internal.h +55 -0
  924. data/third_party/upb/upb/reflection/method_def.c +124 -0
  925. data/third_party/upb/upb/reflection/method_def.h +59 -0
  926. data/third_party/upb/upb/reflection/method_def_internal.h +53 -0
  927. data/third_party/upb/upb/reflection/oneof_def.c +226 -0
  928. data/third_party/upb/upb/reflection/oneof_def.h +66 -0
  929. data/third_party/upb/upb/reflection/oneof_def_internal.h +57 -0
  930. data/third_party/upb/upb/reflection/service_def.c +128 -0
  931. data/third_party/upb/upb/reflection/service_def.h +60 -0
  932. data/third_party/upb/upb/reflection/service_def_internal.h +53 -0
  933. data/third_party/upb/upb/reflection.h +4 -78
  934. data/third_party/upb/upb/reflection.hpp +3 -7
  935. data/third_party/upb/upb/status.h +4 -34
  936. data/third_party/upb/upb/{collections.h → string_view.h} +7 -7
  937. data/third_party/upb/upb/{text_encode.c → text/encode.c} +74 -70
  938. data/third_party/upb/upb/text/encode.h +69 -0
  939. data/third_party/upb/upb/text_encode.h +4 -32
  940. data/third_party/upb/upb/upb.h +6 -151
  941. data/third_party/upb/upb/upb.hpp +10 -18
  942. data/third_party/upb/upb/wire/common.h +44 -0
  943. data/third_party/upb/upb/wire/common_internal.h +50 -0
  944. data/third_party/upb/upb/wire/decode.c +1343 -0
  945. data/third_party/upb/upb/wire/decode.h +108 -0
  946. data/third_party/upb/upb/{decode_fast.c → wire/decode_fast.c} +184 -225
  947. data/third_party/upb/upb/{decode_fast.h → wire/decode_fast.h} +21 -7
  948. data/third_party/upb/upb/{internal/decode.h → wire/decode_internal.h} +44 -92
  949. data/third_party/upb/upb/{encode.c → wire/encode.c} +114 -95
  950. data/third_party/upb/upb/wire/encode.h +92 -0
  951. data/third_party/upb/upb/wire/eps_copy_input_stream.c +39 -0
  952. data/third_party/upb/upb/wire/eps_copy_input_stream.h +425 -0
  953. data/third_party/upb/upb/wire/reader.c +67 -0
  954. data/third_party/upb/upb/wire/reader.h +227 -0
  955. data/third_party/upb/upb/wire/swap_internal.h +63 -0
  956. data/third_party/upb/upb/wire/types.h +41 -0
  957. data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-neon.c +1 -1
  958. data/third_party/{upb/third_party/utf8_range → utf8_range}/utf8_range.h +12 -0
  959. metadata +155 -40
  960. data/src/core/ext/transport/chttp2/transport/context_list.cc +0 -71
  961. data/src/core/ext/transport/chttp2/transport/context_list.h +0 -54
  962. data/third_party/upb/upb/arena.c +0 -277
  963. data/third_party/upb/upb/decode.c +0 -1221
  964. data/third_party/upb/upb/def.c +0 -3269
  965. data/third_party/upb/upb/internal/table.h +0 -385
  966. data/third_party/upb/upb/msg.c +0 -368
  967. data/third_party/upb/upb/msg_internal.h +0 -837
  968. data/third_party/upb/upb/reflection.c +0 -323
  969. /data/third_party/{upb/third_party/utf8_range → utf8_range}/naive.c +0 -0
  970. /data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-sse.c +0 -0
@@ -1,1221 +0,0 @@
1
- /*
2
- * Copyright (c) 2009-2021, Google LLC
3
- * All rights reserved.
4
- *
5
- * Redistribution and use in source and binary forms, with or without
6
- * modification, are permitted provided that the following conditions are met:
7
- * * Redistributions of source code must retain the above copyright
8
- * notice, this list of conditions and the following disclaimer.
9
- * * Redistributions in binary form must reproduce the above copyright
10
- * notice, this list of conditions and the following disclaimer in the
11
- * documentation and/or other materials provided with the distribution.
12
- * * Neither the name of Google LLC nor the
13
- * names of its contributors may be used to endorse or promote products
14
- * derived from this software without specific prior written permission.
15
- *
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
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
- */
27
-
28
- #include "upb/decode.h"
29
-
30
- #include <setjmp.h>
31
- #include <string.h>
32
-
33
- #include "upb/internal/decode.h"
34
- #include "upb/internal/upb.h"
35
- #include "upb/upb.h"
36
-
37
- /* Must be last. */
38
- #include "upb/port_def.inc"
39
-
40
- /* Maps descriptor type -> elem_size_lg2. */
41
- static const uint8_t desctype_to_elem_size_lg2[] = {
42
- -1, /* invalid descriptor type */
43
- 3, /* DOUBLE */
44
- 2, /* FLOAT */
45
- 3, /* INT64 */
46
- 3, /* UINT64 */
47
- 2, /* INT32 */
48
- 3, /* FIXED64 */
49
- 2, /* FIXED32 */
50
- 0, /* BOOL */
51
- UPB_SIZE(3, 4), /* STRING */
52
- UPB_SIZE(2, 3), /* GROUP */
53
- UPB_SIZE(2, 3), /* MESSAGE */
54
- UPB_SIZE(3, 4), /* BYTES */
55
- 2, /* UINT32 */
56
- 2, /* ENUM */
57
- 2, /* SFIXED32 */
58
- 3, /* SFIXED64 */
59
- 2, /* SINT32 */
60
- 3, /* SINT64 */
61
- };
62
-
63
- /* Maps descriptor type -> upb map size. */
64
- static const uint8_t desctype_to_mapsize[] = {
65
- -1, /* invalid descriptor type */
66
- 8, /* DOUBLE */
67
- 4, /* FLOAT */
68
- 8, /* INT64 */
69
- 8, /* UINT64 */
70
- 4, /* INT32 */
71
- 8, /* FIXED64 */
72
- 4, /* FIXED32 */
73
- 1, /* BOOL */
74
- UPB_MAPTYPE_STRING, /* STRING */
75
- sizeof(void*), /* GROUP */
76
- sizeof(void*), /* MESSAGE */
77
- UPB_MAPTYPE_STRING, /* BYTES */
78
- 4, /* UINT32 */
79
- 4, /* ENUM */
80
- 4, /* SFIXED32 */
81
- 8, /* SFIXED64 */
82
- 4, /* SINT32 */
83
- 8, /* SINT64 */
84
- };
85
-
86
- static const unsigned FIXED32_OK_MASK = (1 << kUpb_FieldType_Float) |
87
- (1 << kUpb_FieldType_Fixed32) |
88
- (1 << kUpb_FieldType_SFixed32);
89
-
90
- static const unsigned FIXED64_OK_MASK = (1 << kUpb_FieldType_Double) |
91
- (1 << kUpb_FieldType_Fixed64) |
92
- (1 << kUpb_FieldType_SFixed64);
93
-
94
- /* Three fake field types for MessageSet. */
95
- #define TYPE_MSGSET_ITEM 19
96
- #define TYPE_COUNT 19
97
-
98
- /* Op: an action to be performed for a wire-type/field-type combination. */
99
- #define OP_UNKNOWN -1 /* Unknown field. */
100
- #define OP_MSGSET_ITEM -2
101
- #define OP_SCALAR_LG2(n) (n) /* n in [0, 2, 3] => op in [0, 2, 3] */
102
- #define OP_ENUM 1
103
- #define OP_STRING 4
104
- #define OP_BYTES 5
105
- #define OP_SUBMSG 6
106
- /* Scalar fields use only ops above. Repeated fields can use any op. */
107
- #define OP_FIXPCK_LG2(n) (n + 5) /* n in [2, 3] => op in [7, 8] */
108
- #define OP_VARPCK_LG2(n) (n + 9) /* n in [0, 2, 3] => op in [9, 11, 12] */
109
- #define OP_PACKED_ENUM 13
110
-
111
- static const int8_t varint_ops[] = {
112
- OP_UNKNOWN, /* field not found */
113
- OP_UNKNOWN, /* DOUBLE */
114
- OP_UNKNOWN, /* FLOAT */
115
- OP_SCALAR_LG2(3), /* INT64 */
116
- OP_SCALAR_LG2(3), /* UINT64 */
117
- OP_SCALAR_LG2(2), /* INT32 */
118
- OP_UNKNOWN, /* FIXED64 */
119
- OP_UNKNOWN, /* FIXED32 */
120
- OP_SCALAR_LG2(0), /* BOOL */
121
- OP_UNKNOWN, /* STRING */
122
- OP_UNKNOWN, /* GROUP */
123
- OP_UNKNOWN, /* MESSAGE */
124
- OP_UNKNOWN, /* BYTES */
125
- OP_SCALAR_LG2(2), /* UINT32 */
126
- OP_ENUM, /* ENUM */
127
- OP_UNKNOWN, /* SFIXED32 */
128
- OP_UNKNOWN, /* SFIXED64 */
129
- OP_SCALAR_LG2(2), /* SINT32 */
130
- OP_SCALAR_LG2(3), /* SINT64 */
131
- OP_UNKNOWN, /* MSGSET_ITEM */
132
- };
133
-
134
- static const int8_t delim_ops[] = {
135
- /* For non-repeated field type. */
136
- OP_UNKNOWN, /* field not found */
137
- OP_UNKNOWN, /* DOUBLE */
138
- OP_UNKNOWN, /* FLOAT */
139
- OP_UNKNOWN, /* INT64 */
140
- OP_UNKNOWN, /* UINT64 */
141
- OP_UNKNOWN, /* INT32 */
142
- OP_UNKNOWN, /* FIXED64 */
143
- OP_UNKNOWN, /* FIXED32 */
144
- OP_UNKNOWN, /* BOOL */
145
- OP_STRING, /* STRING */
146
- OP_UNKNOWN, /* GROUP */
147
- OP_SUBMSG, /* MESSAGE */
148
- OP_BYTES, /* BYTES */
149
- OP_UNKNOWN, /* UINT32 */
150
- OP_UNKNOWN, /* ENUM */
151
- OP_UNKNOWN, /* SFIXED32 */
152
- OP_UNKNOWN, /* SFIXED64 */
153
- OP_UNKNOWN, /* SINT32 */
154
- OP_UNKNOWN, /* SINT64 */
155
- OP_UNKNOWN, /* MSGSET_ITEM */
156
- /* For repeated field type. */
157
- OP_FIXPCK_LG2(3), /* REPEATED DOUBLE */
158
- OP_FIXPCK_LG2(2), /* REPEATED FLOAT */
159
- OP_VARPCK_LG2(3), /* REPEATED INT64 */
160
- OP_VARPCK_LG2(3), /* REPEATED UINT64 */
161
- OP_VARPCK_LG2(2), /* REPEATED INT32 */
162
- OP_FIXPCK_LG2(3), /* REPEATED FIXED64 */
163
- OP_FIXPCK_LG2(2), /* REPEATED FIXED32 */
164
- OP_VARPCK_LG2(0), /* REPEATED BOOL */
165
- OP_STRING, /* REPEATED STRING */
166
- OP_SUBMSG, /* REPEATED GROUP */
167
- OP_SUBMSG, /* REPEATED MESSAGE */
168
- OP_BYTES, /* REPEATED BYTES */
169
- OP_VARPCK_LG2(2), /* REPEATED UINT32 */
170
- OP_PACKED_ENUM, /* REPEATED ENUM */
171
- OP_FIXPCK_LG2(2), /* REPEATED SFIXED32 */
172
- OP_FIXPCK_LG2(3), /* REPEATED SFIXED64 */
173
- OP_VARPCK_LG2(2), /* REPEATED SINT32 */
174
- OP_VARPCK_LG2(3), /* REPEATED SINT64 */
175
- /* Omitting MSGSET_*, because we never emit a repeated msgset type */
176
- };
177
-
178
- typedef union {
179
- bool bool_val;
180
- uint32_t uint32_val;
181
- uint64_t uint64_val;
182
- uint32_t size;
183
- } wireval;
184
-
185
- static const char* decode_msg(upb_Decoder* d, const char* ptr, upb_Message* msg,
186
- const upb_MiniTable* layout);
187
-
188
- UPB_NORETURN static void* decode_err(upb_Decoder* d, upb_DecodeStatus status) {
189
- assert(status != kUpb_DecodeStatus_Ok);
190
- UPB_LONGJMP(d->err, status);
191
- }
192
-
193
- const char* fastdecode_err(upb_Decoder* d, int status) {
194
- assert(status != kUpb_DecodeStatus_Ok);
195
- UPB_LONGJMP(d->err, status);
196
- return NULL;
197
- }
198
- static void decode_verifyutf8(upb_Decoder* d, const char* buf, int len) {
199
- if (!decode_verifyutf8_inl(buf, len))
200
- decode_err(d, kUpb_DecodeStatus_BadUtf8);
201
- }
202
-
203
- static bool decode_reserve(upb_Decoder* d, upb_Array* arr, size_t elem) {
204
- bool need_realloc = arr->size - arr->len < elem;
205
- if (need_realloc && !_upb_array_realloc(arr, arr->len + elem, &d->arena)) {
206
- decode_err(d, kUpb_DecodeStatus_OutOfMemory);
207
- }
208
- return need_realloc;
209
- }
210
-
211
- typedef struct {
212
- const char* ptr;
213
- uint64_t val;
214
- } decode_vret;
215
-
216
- UPB_NOINLINE
217
- static decode_vret decode_longvarint64(const char* ptr, uint64_t val) {
218
- decode_vret ret = {NULL, 0};
219
- uint64_t byte;
220
- int i;
221
- for (i = 1; i < 10; i++) {
222
- byte = (uint8_t)ptr[i];
223
- val += (byte - 1) << (i * 7);
224
- if (!(byte & 0x80)) {
225
- ret.ptr = ptr + i + 1;
226
- ret.val = val;
227
- return ret;
228
- }
229
- }
230
- return ret;
231
- }
232
-
233
- UPB_FORCEINLINE
234
- static const char* decode_varint64(upb_Decoder* d, const char* ptr,
235
- uint64_t* val) {
236
- uint64_t byte = (uint8_t)*ptr;
237
- if (UPB_LIKELY((byte & 0x80) == 0)) {
238
- *val = byte;
239
- return ptr + 1;
240
- } else {
241
- decode_vret res = decode_longvarint64(ptr, byte);
242
- if (!res.ptr) return decode_err(d, kUpb_DecodeStatus_Malformed);
243
- *val = res.val;
244
- return res.ptr;
245
- }
246
- }
247
-
248
- UPB_FORCEINLINE
249
- static const char* decode_tag(upb_Decoder* d, const char* ptr, uint32_t* val) {
250
- uint64_t byte = (uint8_t)*ptr;
251
- if (UPB_LIKELY((byte & 0x80) == 0)) {
252
- *val = byte;
253
- return ptr + 1;
254
- } else {
255
- const char* start = ptr;
256
- decode_vret res = decode_longvarint64(ptr, byte);
257
- if (!res.ptr || res.ptr - start > 5 || res.val > UINT32_MAX) {
258
- return decode_err(d, kUpb_DecodeStatus_Malformed);
259
- }
260
- *val = res.val;
261
- return res.ptr;
262
- }
263
- }
264
-
265
- UPB_FORCEINLINE
266
- static const char* upb_Decoder_DecodeSize(upb_Decoder* d, const char* ptr,
267
- uint32_t* size) {
268
- uint64_t size64;
269
- ptr = decode_varint64(d, ptr, &size64);
270
- if (size64 >= INT32_MAX || ptr - d->end + (int)size64 > d->limit) {
271
- decode_err(d, kUpb_DecodeStatus_Malformed);
272
- }
273
- *size = size64;
274
- return ptr;
275
- }
276
-
277
- static void decode_munge_int32(wireval* val) {
278
- if (!_upb_IsLittleEndian()) {
279
- /* The next stage will memcpy(dst, &val, 4) */
280
- val->uint32_val = val->uint64_val;
281
- }
282
- }
283
-
284
- static void decode_munge(int type, wireval* val) {
285
- switch (type) {
286
- case kUpb_FieldType_Bool:
287
- val->bool_val = val->uint64_val != 0;
288
- break;
289
- case kUpb_FieldType_SInt32: {
290
- uint32_t n = val->uint64_val;
291
- val->uint32_val = (n >> 1) ^ -(int32_t)(n & 1);
292
- break;
293
- }
294
- case kUpb_FieldType_SInt64: {
295
- uint64_t n = val->uint64_val;
296
- val->uint64_val = (n >> 1) ^ -(int64_t)(n & 1);
297
- break;
298
- }
299
- case kUpb_FieldType_Int32:
300
- case kUpb_FieldType_UInt32:
301
- case kUpb_FieldType_Enum:
302
- decode_munge_int32(val);
303
- break;
304
- }
305
- }
306
-
307
- static upb_Message* decode_newsubmsg(upb_Decoder* d,
308
- const upb_MiniTable_Sub* subs,
309
- const upb_MiniTable_Field* field) {
310
- const upb_MiniTable* subl = subs[field->submsg_index].submsg;
311
- upb_Message* msg = _upb_Message_New_inl(subl, &d->arena);
312
- if (!msg) decode_err(d, kUpb_DecodeStatus_OutOfMemory);
313
- return msg;
314
- }
315
-
316
- UPB_NOINLINE
317
- const char* decode_isdonefallback(upb_Decoder* d, const char* ptr,
318
- int overrun) {
319
- int status;
320
- ptr = decode_isdonefallback_inl(d, ptr, overrun, &status);
321
- if (ptr == NULL) {
322
- return decode_err(d, status);
323
- }
324
- return ptr;
325
- }
326
-
327
- static const char* decode_readstr(upb_Decoder* d, const char* ptr, int size,
328
- upb_StringView* str) {
329
- if (d->options & kUpb_DecodeOption_AliasString) {
330
- str->data = ptr;
331
- } else {
332
- char* data = upb_Arena_Malloc(&d->arena, size);
333
- if (!data) return decode_err(d, kUpb_DecodeStatus_OutOfMemory);
334
- memcpy(data, ptr, size);
335
- str->data = data;
336
- }
337
- str->size = size;
338
- return ptr + size;
339
- }
340
-
341
- UPB_FORCEINLINE
342
- static const char* decode_tosubmsg2(upb_Decoder* d, const char* ptr,
343
- upb_Message* submsg,
344
- const upb_MiniTable* subl, int size) {
345
- int saved_delta = decode_pushlimit(d, ptr, size);
346
- if (--d->depth < 0) return decode_err(d, kUpb_DecodeStatus_MaxDepthExceeded);
347
- ptr = decode_msg(d, ptr, submsg, subl);
348
- if (d->end_group != DECODE_NOGROUP)
349
- return decode_err(d, kUpb_DecodeStatus_Malformed);
350
- decode_poplimit(d, ptr, saved_delta);
351
- d->depth++;
352
- return ptr;
353
- }
354
-
355
- UPB_FORCEINLINE
356
- static const char* decode_tosubmsg(upb_Decoder* d, const char* ptr,
357
- upb_Message* submsg,
358
- const upb_MiniTable_Sub* subs,
359
- const upb_MiniTable_Field* field, int size) {
360
- return decode_tosubmsg2(d, ptr, submsg, subs[field->submsg_index].submsg,
361
- size);
362
- }
363
-
364
- UPB_FORCEINLINE
365
- static const char* decode_group(upb_Decoder* d, const char* ptr,
366
- upb_Message* submsg, const upb_MiniTable* subl,
367
- uint32_t number) {
368
- if (--d->depth < 0) return decode_err(d, kUpb_DecodeStatus_MaxDepthExceeded);
369
- if (decode_isdone(d, &ptr)) {
370
- return decode_err(d, kUpb_DecodeStatus_Malformed);
371
- }
372
- ptr = decode_msg(d, ptr, submsg, subl);
373
- if (d->end_group != number) return decode_err(d, kUpb_DecodeStatus_Malformed);
374
- d->end_group = DECODE_NOGROUP;
375
- d->depth++;
376
- return ptr;
377
- }
378
-
379
- UPB_FORCEINLINE
380
- static const char* decode_togroup(upb_Decoder* d, const char* ptr,
381
- upb_Message* submsg,
382
- const upb_MiniTable_Sub* subs,
383
- const upb_MiniTable_Field* field) {
384
- const upb_MiniTable* subl = subs[field->submsg_index].submsg;
385
- return decode_group(d, ptr, submsg, subl, field->number);
386
- }
387
-
388
- static char* upb_Decoder_EncodeVarint32(uint32_t val, char* ptr) {
389
- do {
390
- uint8_t byte = val & 0x7fU;
391
- val >>= 7;
392
- if (val) byte |= 0x80U;
393
- *(ptr++) = byte;
394
- } while (val);
395
- return ptr;
396
- }
397
-
398
- static void upb_Decode_AddUnknownVarints(upb_Decoder* d, upb_Message* msg,
399
- uint32_t val1, uint32_t val2) {
400
- char buf[20];
401
- char* end = buf;
402
- end = upb_Decoder_EncodeVarint32(val1, end);
403
- end = upb_Decoder_EncodeVarint32(val2, end);
404
-
405
- if (!_upb_Message_AddUnknown(msg, buf, end - buf, &d->arena)) {
406
- decode_err(d, kUpb_DecodeStatus_OutOfMemory);
407
- }
408
- }
409
-
410
- UPB_NOINLINE
411
- static bool decode_checkenum_slow(upb_Decoder* d, const char* ptr,
412
- upb_Message* msg, const upb_MiniTable_Enum* e,
413
- const upb_MiniTable_Field* field,
414
- uint32_t v) {
415
- // OPT: binary search long lists?
416
- int n = e->value_count;
417
- for (int i = 0; i < n; i++) {
418
- if ((uint32_t)e->values[i] == v) return true;
419
- }
420
-
421
- // Unrecognized enum goes into unknown fields.
422
- // For packed fields the tag could be arbitrarily far in the past, so we
423
- // just re-encode the tag and value here.
424
- uint32_t tag = ((uint32_t)field->number << 3) | kUpb_WireType_Varint;
425
- upb_Decode_AddUnknownVarints(d, msg, tag, v);
426
- return false;
427
- }
428
-
429
- UPB_FORCEINLINE
430
- static bool decode_checkenum(upb_Decoder* d, const char* ptr, upb_Message* msg,
431
- const upb_MiniTable_Enum* e,
432
- const upb_MiniTable_Field* field, wireval* val) {
433
- uint32_t v = val->uint32_val;
434
-
435
- if (UPB_LIKELY(v < 64) && UPB_LIKELY(((1ULL << v) & e->mask))) return true;
436
-
437
- return decode_checkenum_slow(d, ptr, msg, e, field, v);
438
- }
439
-
440
- UPB_NOINLINE
441
- static const char* decode_enum_toarray(upb_Decoder* d, const char* ptr,
442
- upb_Message* msg, upb_Array* arr,
443
- const upb_MiniTable_Sub* subs,
444
- const upb_MiniTable_Field* field,
445
- wireval* val) {
446
- const upb_MiniTable_Enum* e = subs[field->submsg_index].subenum;
447
- if (!decode_checkenum(d, ptr, msg, e, field, val)) return ptr;
448
- void* mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->len * 4, void);
449
- arr->len++;
450
- memcpy(mem, val, 4);
451
- return ptr;
452
- }
453
-
454
- UPB_FORCEINLINE
455
- static const char* decode_fixed_packed(upb_Decoder* d, const char* ptr,
456
- upb_Array* arr, wireval* val,
457
- const upb_MiniTable_Field* field,
458
- int lg2) {
459
- int mask = (1 << lg2) - 1;
460
- size_t count = val->size >> lg2;
461
- if ((val->size & mask) != 0) {
462
- // Length isn't a round multiple of elem size.
463
- return decode_err(d, kUpb_DecodeStatus_Malformed);
464
- }
465
- decode_reserve(d, arr, count);
466
- void* mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void);
467
- arr->len += count;
468
- // Note: if/when the decoder supports multi-buffer input, we will need to
469
- // handle buffer seams here.
470
- if (_upb_IsLittleEndian()) {
471
- memcpy(mem, ptr, val->size);
472
- ptr += val->size;
473
- } else {
474
- const char* end = ptr + val->size;
475
- char* dst = mem;
476
- while (ptr < end) {
477
- if (lg2 == 2) {
478
- uint32_t val;
479
- memcpy(&val, ptr, sizeof(val));
480
- val = _upb_BigEndian_Swap32(val);
481
- memcpy(dst, &val, sizeof(val));
482
- } else {
483
- UPB_ASSERT(lg2 == 3);
484
- uint64_t val;
485
- memcpy(&val, ptr, sizeof(val));
486
- val = _upb_BigEndian_Swap64(val);
487
- memcpy(dst, &val, sizeof(val));
488
- }
489
- ptr += 1 << lg2;
490
- dst += 1 << lg2;
491
- }
492
- }
493
-
494
- return ptr;
495
- }
496
-
497
- UPB_FORCEINLINE
498
- static const char* decode_varint_packed(upb_Decoder* d, const char* ptr,
499
- upb_Array* arr, wireval* val,
500
- const upb_MiniTable_Field* field,
501
- int lg2) {
502
- int scale = 1 << lg2;
503
- int saved_limit = decode_pushlimit(d, ptr, val->size);
504
- char* out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void);
505
- while (!decode_isdone(d, &ptr)) {
506
- wireval elem;
507
- ptr = decode_varint64(d, ptr, &elem.uint64_val);
508
- decode_munge(field->descriptortype, &elem);
509
- if (decode_reserve(d, arr, 1)) {
510
- out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void);
511
- }
512
- arr->len++;
513
- memcpy(out, &elem, scale);
514
- out += scale;
515
- }
516
- decode_poplimit(d, ptr, saved_limit);
517
- return ptr;
518
- }
519
-
520
- UPB_NOINLINE
521
- static const char* decode_enum_packed(upb_Decoder* d, const char* ptr,
522
- upb_Message* msg, upb_Array* arr,
523
- const upb_MiniTable_Sub* subs,
524
- const upb_MiniTable_Field* field,
525
- wireval* val) {
526
- const upb_MiniTable_Enum* e = subs[field->submsg_index].subenum;
527
- int saved_limit = decode_pushlimit(d, ptr, val->size);
528
- char* out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len * 4, void);
529
- while (!decode_isdone(d, &ptr)) {
530
- wireval elem;
531
- ptr = decode_varint64(d, ptr, &elem.uint64_val);
532
- decode_munge_int32(&elem);
533
- if (!decode_checkenum(d, ptr, msg, e, field, &elem)) {
534
- continue;
535
- }
536
- if (decode_reserve(d, arr, 1)) {
537
- out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len * 4, void);
538
- }
539
- arr->len++;
540
- memcpy(out, &elem, 4);
541
- out += 4;
542
- }
543
- decode_poplimit(d, ptr, saved_limit);
544
- return ptr;
545
- }
546
-
547
- static const char* decode_toarray(upb_Decoder* d, const char* ptr,
548
- upb_Message* msg,
549
- const upb_MiniTable_Sub* subs,
550
- const upb_MiniTable_Field* field,
551
- wireval* val, int op) {
552
- upb_Array** arrp = UPB_PTR_AT(msg, field->offset, void);
553
- upb_Array* arr = *arrp;
554
- void* mem;
555
-
556
- if (arr) {
557
- decode_reserve(d, arr, 1);
558
- } else {
559
- size_t lg2 = desctype_to_elem_size_lg2[field->descriptortype];
560
- arr = _upb_Array_New(&d->arena, 4, lg2);
561
- if (!arr) return decode_err(d, kUpb_DecodeStatus_OutOfMemory);
562
- *arrp = arr;
563
- }
564
-
565
- switch (op) {
566
- case OP_SCALAR_LG2(0):
567
- case OP_SCALAR_LG2(2):
568
- case OP_SCALAR_LG2(3):
569
- /* Append scalar value. */
570
- mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << op, void);
571
- arr->len++;
572
- memcpy(mem, val, 1 << op);
573
- return ptr;
574
- case OP_STRING:
575
- decode_verifyutf8(d, ptr, val->size);
576
- /* Fallthrough. */
577
- case OP_BYTES: {
578
- /* Append bytes. */
579
- upb_StringView* str = (upb_StringView*)_upb_array_ptr(arr) + arr->len;
580
- arr->len++;
581
- return decode_readstr(d, ptr, val->size, str);
582
- }
583
- case OP_SUBMSG: {
584
- /* Append submessage / group. */
585
- upb_Message* submsg = decode_newsubmsg(d, subs, field);
586
- *UPB_PTR_AT(_upb_array_ptr(arr), arr->len * sizeof(void*), upb_Message*) =
587
- submsg;
588
- arr->len++;
589
- if (UPB_UNLIKELY(field->descriptortype == kUpb_FieldType_Group)) {
590
- return decode_togroup(d, ptr, submsg, subs, field);
591
- } else {
592
- return decode_tosubmsg(d, ptr, submsg, subs, field, val->size);
593
- }
594
- }
595
- case OP_FIXPCK_LG2(2):
596
- case OP_FIXPCK_LG2(3):
597
- return decode_fixed_packed(d, ptr, arr, val, field,
598
- op - OP_FIXPCK_LG2(0));
599
- case OP_VARPCK_LG2(0):
600
- case OP_VARPCK_LG2(2):
601
- case OP_VARPCK_LG2(3):
602
- return decode_varint_packed(d, ptr, arr, val, field,
603
- op - OP_VARPCK_LG2(0));
604
- case OP_ENUM:
605
- return decode_enum_toarray(d, ptr, msg, arr, subs, field, val);
606
- case OP_PACKED_ENUM:
607
- return decode_enum_packed(d, ptr, msg, arr, subs, field, val);
608
- default:
609
- UPB_UNREACHABLE();
610
- }
611
- }
612
-
613
- static const char* decode_tomap(upb_Decoder* d, const char* ptr,
614
- upb_Message* msg, const upb_MiniTable_Sub* subs,
615
- const upb_MiniTable_Field* field,
616
- wireval* val) {
617
- upb_Map** map_p = UPB_PTR_AT(msg, field->offset, upb_Map*);
618
- upb_Map* map = *map_p;
619
- upb_MapEntry ent;
620
- const upb_MiniTable* entry = subs[field->submsg_index].submsg;
621
-
622
- if (!map) {
623
- /* Lazily create map. */
624
- const upb_MiniTable_Field* key_field = &entry->fields[0];
625
- const upb_MiniTable_Field* val_field = &entry->fields[1];
626
- char key_size = desctype_to_mapsize[key_field->descriptortype];
627
- char val_size = desctype_to_mapsize[val_field->descriptortype];
628
- UPB_ASSERT(key_field->offset == 0);
629
- UPB_ASSERT(val_field->offset == sizeof(upb_StringView));
630
- map = _upb_Map_New(&d->arena, key_size, val_size);
631
- *map_p = map;
632
- }
633
-
634
- /* Parse map entry. */
635
- memset(&ent, 0, sizeof(ent));
636
-
637
- if (entry->fields[1].descriptortype == kUpb_FieldType_Message ||
638
- entry->fields[1].descriptortype == kUpb_FieldType_Group) {
639
- /* Create proactively to handle the case where it doesn't appear. */
640
- ent.v.val =
641
- upb_value_ptr(_upb_Message_New(entry->subs[0].submsg, &d->arena));
642
- }
643
-
644
- const char* start = ptr;
645
- ptr = decode_tosubmsg(d, ptr, &ent.k, subs, field, val->size);
646
- // check if ent had any unknown fields
647
- size_t size;
648
- upb_Message_GetUnknown(&ent.k, &size);
649
- if (size != 0) {
650
- uint32_t tag = ((uint32_t)field->number << 3) | kUpb_WireType_Delimited;
651
- upb_Decode_AddUnknownVarints(d, msg, tag, (uint32_t)(ptr - start));
652
- if (!_upb_Message_AddUnknown(msg, start, ptr - start, &d->arena)) {
653
- decode_err(d, kUpb_DecodeStatus_OutOfMemory);
654
- }
655
- } else {
656
- if (_upb_Map_Insert(map, &ent.k, map->key_size, &ent.v, map->val_size,
657
- &d->arena) == _kUpb_MapInsertStatus_OutOfMemory) {
658
- decode_err(d, kUpb_DecodeStatus_OutOfMemory);
659
- }
660
- }
661
- return ptr;
662
- }
663
-
664
- static const char* decode_tomsg(upb_Decoder* d, const char* ptr,
665
- upb_Message* msg, const upb_MiniTable_Sub* subs,
666
- const upb_MiniTable_Field* field, wireval* val,
667
- int op) {
668
- void* mem = UPB_PTR_AT(msg, field->offset, void);
669
- int type = field->descriptortype;
670
-
671
- if (UPB_UNLIKELY(op == OP_ENUM) &&
672
- !decode_checkenum(d, ptr, msg, subs[field->submsg_index].subenum, field,
673
- val)) {
674
- return ptr;
675
- }
676
-
677
- /* Set presence if necessary. */
678
- if (field->presence > 0) {
679
- _upb_sethas_field(msg, field);
680
- } else if (field->presence < 0) {
681
- /* Oneof case */
682
- uint32_t* oneof_case = _upb_oneofcase_field(msg, field);
683
- if (op == OP_SUBMSG && *oneof_case != field->number) {
684
- memset(mem, 0, sizeof(void*));
685
- }
686
- *oneof_case = field->number;
687
- }
688
-
689
- /* Store into message. */
690
- switch (op) {
691
- case OP_SUBMSG: {
692
- upb_Message** submsgp = mem;
693
- upb_Message* submsg = *submsgp;
694
- if (!submsg) {
695
- submsg = decode_newsubmsg(d, subs, field);
696
- *submsgp = submsg;
697
- }
698
- if (UPB_UNLIKELY(type == kUpb_FieldType_Group)) {
699
- ptr = decode_togroup(d, ptr, submsg, subs, field);
700
- } else {
701
- ptr = decode_tosubmsg(d, ptr, submsg, subs, field, val->size);
702
- }
703
- break;
704
- }
705
- case OP_STRING:
706
- decode_verifyutf8(d, ptr, val->size);
707
- /* Fallthrough. */
708
- case OP_BYTES:
709
- return decode_readstr(d, ptr, val->size, mem);
710
- case OP_SCALAR_LG2(3):
711
- memcpy(mem, val, 8);
712
- break;
713
- case OP_ENUM:
714
- case OP_SCALAR_LG2(2):
715
- memcpy(mem, val, 4);
716
- break;
717
- case OP_SCALAR_LG2(0):
718
- memcpy(mem, val, 1);
719
- break;
720
- default:
721
- UPB_UNREACHABLE();
722
- }
723
-
724
- return ptr;
725
- }
726
-
727
- UPB_NOINLINE
728
- const char* decode_checkrequired(upb_Decoder* d, const char* ptr,
729
- const upb_Message* msg,
730
- const upb_MiniTable* l) {
731
- assert(l->required_count);
732
- if (UPB_LIKELY((d->options & kUpb_DecodeOption_CheckRequired) == 0)) {
733
- return ptr;
734
- }
735
- uint64_t msg_head;
736
- memcpy(&msg_head, msg, 8);
737
- msg_head = _upb_BigEndian_Swap64(msg_head);
738
- if (upb_MiniTable_requiredmask(l) & ~msg_head) {
739
- d->missing_required = true;
740
- }
741
- return ptr;
742
- }
743
-
744
- UPB_FORCEINLINE
745
- static bool decode_tryfastdispatch(upb_Decoder* d, const char** ptr,
746
- upb_Message* msg,
747
- const upb_MiniTable* layout) {
748
- #if UPB_FASTTABLE
749
- if (layout && layout->table_mask != (unsigned char)-1) {
750
- uint16_t tag = fastdecode_loadtag(*ptr);
751
- intptr_t table = decode_totable(layout);
752
- *ptr = fastdecode_tagdispatch(d, *ptr, msg, table, 0, tag);
753
- return true;
754
- }
755
- #endif
756
- return false;
757
- }
758
-
759
- static const char* upb_Decoder_SkipField(upb_Decoder* d, const char* ptr,
760
- uint32_t tag) {
761
- int field_number = tag >> 3;
762
- int wire_type = tag & 7;
763
- switch (wire_type) {
764
- case kUpb_WireType_Varint: {
765
- uint64_t val;
766
- return decode_varint64(d, ptr, &val);
767
- }
768
- case kUpb_WireType_64Bit:
769
- return ptr + 8;
770
- case kUpb_WireType_32Bit:
771
- return ptr + 4;
772
- case kUpb_WireType_Delimited: {
773
- uint32_t size;
774
- ptr = upb_Decoder_DecodeSize(d, ptr, &size);
775
- return ptr + size;
776
- }
777
- case kUpb_WireType_StartGroup:
778
- return decode_group(d, ptr, NULL, NULL, field_number);
779
- default:
780
- decode_err(d, kUpb_DecodeStatus_Malformed);
781
- }
782
- }
783
-
784
- enum {
785
- kStartItemTag = ((1 << 3) | kUpb_WireType_StartGroup),
786
- kEndItemTag = ((1 << 3) | kUpb_WireType_EndGroup),
787
- kTypeIdTag = ((2 << 3) | kUpb_WireType_Varint),
788
- kMessageTag = ((3 << 3) | kUpb_WireType_Delimited),
789
- };
790
-
791
- static void upb_Decoder_AddKnownMessageSetItem(
792
- upb_Decoder* d, upb_Message* msg, const upb_MiniTable_Extension* item_mt,
793
- const char* data, uint32_t size) {
794
- upb_Message_Extension* ext =
795
- _upb_Message_GetOrCreateExtension(msg, item_mt, &d->arena);
796
- if (UPB_UNLIKELY(!ext)) decode_err(d, kUpb_DecodeStatus_OutOfMemory);
797
- upb_Message* submsg = decode_newsubmsg(d, &ext->ext->sub, &ext->ext->field);
798
- upb_DecodeStatus status = upb_Decode(data, size, submsg, item_mt->sub.submsg,
799
- d->extreg, d->options, &d->arena);
800
- memcpy(&ext->data, &submsg, sizeof(submsg));
801
- if (status != kUpb_DecodeStatus_Ok) decode_err(d, status);
802
- }
803
-
804
- static void upb_Decoder_AddUnknownMessageSetItem(upb_Decoder* d,
805
- upb_Message* msg,
806
- uint32_t type_id,
807
- const char* message_data,
808
- uint32_t message_size) {
809
- char buf[60];
810
- char* ptr = buf;
811
- ptr = upb_Decoder_EncodeVarint32(kStartItemTag, ptr);
812
- ptr = upb_Decoder_EncodeVarint32(kTypeIdTag, ptr);
813
- ptr = upb_Decoder_EncodeVarint32(type_id, ptr);
814
- ptr = upb_Decoder_EncodeVarint32(kMessageTag, ptr);
815
- ptr = upb_Decoder_EncodeVarint32(message_size, ptr);
816
- char* split = ptr;
817
-
818
- ptr = upb_Decoder_EncodeVarint32(kEndItemTag, ptr);
819
- char* end = ptr;
820
-
821
- if (!_upb_Message_AddUnknown(msg, buf, split - buf, &d->arena) ||
822
- !_upb_Message_AddUnknown(msg, message_data, message_size, &d->arena) ||
823
- !_upb_Message_AddUnknown(msg, split, end - split, &d->arena)) {
824
- decode_err(d, kUpb_DecodeStatus_OutOfMemory);
825
- }
826
- }
827
-
828
- static void upb_Decoder_AddMessageSetItem(upb_Decoder* d, upb_Message* msg,
829
- const upb_MiniTable* layout,
830
- uint32_t type_id, const char* data,
831
- uint32_t size) {
832
- const upb_MiniTable_Extension* item_mt =
833
- _upb_extreg_get(d->extreg, layout, type_id);
834
- if (item_mt) {
835
- upb_Decoder_AddKnownMessageSetItem(d, msg, item_mt, data, size);
836
- } else {
837
- upb_Decoder_AddUnknownMessageSetItem(d, msg, type_id, data, size);
838
- }
839
- }
840
-
841
- static const char* upb_Decoder_DecodeMessageSetItem(
842
- upb_Decoder* d, const char* ptr, upb_Message* msg,
843
- const upb_MiniTable* layout) {
844
- uint32_t type_id = 0;
845
- upb_StringView preserved = {NULL, 0};
846
- typedef enum {
847
- kUpb_HaveId = 1 << 0,
848
- kUpb_HavePayload = 1 << 1,
849
- } StateMask;
850
- StateMask state_mask = 0;
851
- while (!decode_isdone(d, &ptr)) {
852
- uint32_t tag;
853
- ptr = decode_tag(d, ptr, &tag);
854
- switch (tag) {
855
- case kEndItemTag:
856
- return ptr;
857
- case kTypeIdTag: {
858
- uint64_t tmp;
859
- ptr = decode_varint64(d, ptr, &tmp);
860
- if (state_mask & kUpb_HaveId) break; // Ignore dup.
861
- state_mask |= kUpb_HaveId;
862
- type_id = tmp;
863
- if (state_mask & kUpb_HavePayload) {
864
- upb_Decoder_AddMessageSetItem(d, msg, layout, type_id, preserved.data,
865
- preserved.size);
866
- }
867
- break;
868
- }
869
- case kMessageTag: {
870
- uint32_t size;
871
- ptr = upb_Decoder_DecodeSize(d, ptr, &size);
872
- const char* data = ptr;
873
- ptr += size;
874
- if (state_mask & kUpb_HavePayload) break; // Ignore dup.
875
- state_mask |= kUpb_HavePayload;
876
- if (state_mask & kUpb_HaveId) {
877
- upb_Decoder_AddMessageSetItem(d, msg, layout, type_id, data, size);
878
- } else {
879
- // Out of order, we must preserve the payload.
880
- preserved.data = data;
881
- preserved.size = size;
882
- }
883
- break;
884
- }
885
- default:
886
- // We do not preserve unexpected fields inside a message set item.
887
- ptr = upb_Decoder_SkipField(d, ptr, tag);
888
- break;
889
- }
890
- }
891
- decode_err(d, kUpb_DecodeStatus_Malformed);
892
- }
893
-
894
- static const upb_MiniTable_Field* decode_findfield(upb_Decoder* d,
895
- const upb_MiniTable* l,
896
- uint32_t field_number,
897
- int* last_field_index) {
898
- static upb_MiniTable_Field none = {0, 0, 0, 0, 0, 0};
899
- if (l == NULL) return &none;
900
-
901
- size_t idx = ((size_t)field_number) - 1; // 0 wraps to SIZE_MAX
902
- if (idx < l->dense_below) {
903
- /* Fastest case: index into dense fields. */
904
- goto found;
905
- }
906
-
907
- if (l->dense_below < l->field_count) {
908
- /* Linear search non-dense fields. Resume scanning from last_field_index
909
- * since fields are usually in order. */
910
- int last = *last_field_index;
911
- for (idx = last; idx < l->field_count; idx++) {
912
- if (l->fields[idx].number == field_number) {
913
- goto found;
914
- }
915
- }
916
-
917
- for (idx = l->dense_below; idx < last; idx++) {
918
- if (l->fields[idx].number == field_number) {
919
- goto found;
920
- }
921
- }
922
- }
923
-
924
- if (d->extreg) {
925
- switch (l->ext) {
926
- case kUpb_ExtMode_Extendable: {
927
- const upb_MiniTable_Extension* ext =
928
- _upb_extreg_get(d->extreg, l, field_number);
929
- if (ext) return &ext->field;
930
- break;
931
- }
932
- case kUpb_ExtMode_IsMessageSet:
933
- if (field_number == _UPB_MSGSET_ITEM) {
934
- static upb_MiniTable_Field item = {0, 0, 0, 0, TYPE_MSGSET_ITEM, 0};
935
- return &item;
936
- }
937
- break;
938
- }
939
- }
940
-
941
- return &none; /* Unknown field. */
942
-
943
- found:
944
- UPB_ASSERT(l->fields[idx].number == field_number);
945
- *last_field_index = idx;
946
- return &l->fields[idx];
947
- }
948
-
949
- UPB_FORCEINLINE
950
- static const char* decode_wireval(upb_Decoder* d, const char* ptr,
951
- const upb_MiniTable_Field* field,
952
- int wire_type, wireval* val, int* op) {
953
- switch (wire_type) {
954
- case kUpb_WireType_Varint:
955
- ptr = decode_varint64(d, ptr, &val->uint64_val);
956
- *op = varint_ops[field->descriptortype];
957
- decode_munge(field->descriptortype, val);
958
- return ptr;
959
- case kUpb_WireType_32Bit:
960
- memcpy(&val->uint32_val, ptr, 4);
961
- val->uint32_val = _upb_BigEndian_Swap32(val->uint32_val);
962
- *op = OP_SCALAR_LG2(2);
963
- if (((1 << field->descriptortype) & FIXED32_OK_MASK) == 0) {
964
- *op = OP_UNKNOWN;
965
- }
966
- return ptr + 4;
967
- case kUpb_WireType_64Bit:
968
- memcpy(&val->uint64_val, ptr, 8);
969
- val->uint64_val = _upb_BigEndian_Swap64(val->uint64_val);
970
- *op = OP_SCALAR_LG2(3);
971
- if (((1 << field->descriptortype) & FIXED64_OK_MASK) == 0) {
972
- *op = OP_UNKNOWN;
973
- }
974
- return ptr + 8;
975
- case kUpb_WireType_Delimited: {
976
- int ndx = field->descriptortype;
977
- if (upb_FieldMode_Get(field) == kUpb_FieldMode_Array) ndx += TYPE_COUNT;
978
- ptr = upb_Decoder_DecodeSize(d, ptr, &val->size);
979
- *op = delim_ops[ndx];
980
- return ptr;
981
- }
982
- case kUpb_WireType_StartGroup:
983
- val->uint32_val = field->number;
984
- if (field->descriptortype == kUpb_FieldType_Group) {
985
- *op = OP_SUBMSG;
986
- } else if (field->descriptortype == TYPE_MSGSET_ITEM) {
987
- *op = OP_MSGSET_ITEM;
988
- } else {
989
- *op = OP_UNKNOWN;
990
- }
991
- return ptr;
992
- default:
993
- break;
994
- }
995
- return decode_err(d, kUpb_DecodeStatus_Malformed);
996
- }
997
-
998
- UPB_FORCEINLINE
999
- static const char* decode_known(upb_Decoder* d, const char* ptr,
1000
- upb_Message* msg, const upb_MiniTable* layout,
1001
- const upb_MiniTable_Field* field, int op,
1002
- wireval* val) {
1003
- const upb_MiniTable_Sub* subs = layout->subs;
1004
- uint8_t mode = field->mode;
1005
-
1006
- if (UPB_UNLIKELY(mode & kUpb_LabelFlags_IsExtension)) {
1007
- const upb_MiniTable_Extension* ext_layout =
1008
- (const upb_MiniTable_Extension*)field;
1009
- upb_Message_Extension* ext =
1010
- _upb_Message_GetOrCreateExtension(msg, ext_layout, &d->arena);
1011
- if (UPB_UNLIKELY(!ext)) return decode_err(d, kUpb_DecodeStatus_OutOfMemory);
1012
- msg = &ext->data;
1013
- subs = &ext->ext->sub;
1014
- }
1015
-
1016
- switch (mode & kUpb_FieldMode_Mask) {
1017
- case kUpb_FieldMode_Array:
1018
- return decode_toarray(d, ptr, msg, subs, field, val, op);
1019
- case kUpb_FieldMode_Map:
1020
- return decode_tomap(d, ptr, msg, subs, field, val);
1021
- case kUpb_FieldMode_Scalar:
1022
- return decode_tomsg(d, ptr, msg, subs, field, val, op);
1023
- default:
1024
- UPB_UNREACHABLE();
1025
- }
1026
- }
1027
-
1028
- static const char* decode_reverse_skip_varint(const char* ptr, uint32_t val) {
1029
- uint32_t seen = 0;
1030
- do {
1031
- ptr--;
1032
- seen <<= 7;
1033
- seen |= *ptr & 0x7f;
1034
- } while (seen != val);
1035
- return ptr;
1036
- }
1037
-
1038
- static const char* decode_unknown(upb_Decoder* d, const char* ptr,
1039
- upb_Message* msg, int field_number,
1040
- int wire_type, wireval val) {
1041
- if (field_number == 0) return decode_err(d, kUpb_DecodeStatus_Malformed);
1042
-
1043
- // Since unknown fields are the uncommon case, we do a little extra work here
1044
- // to walk backwards through the buffer to find the field start. This frees
1045
- // up a register in the fast paths (when the field is known), which leads to
1046
- // significant speedups in benchmarks.
1047
- const char* start = ptr;
1048
-
1049
- if (wire_type == kUpb_WireType_Delimited) ptr += val.size;
1050
- if (msg) {
1051
- switch (wire_type) {
1052
- case kUpb_WireType_Varint:
1053
- case kUpb_WireType_Delimited:
1054
- start--;
1055
- while (start[-1] & 0x80) start--;
1056
- break;
1057
- case kUpb_WireType_32Bit:
1058
- start -= 4;
1059
- break;
1060
- case kUpb_WireType_64Bit:
1061
- start -= 8;
1062
- break;
1063
- default:
1064
- break;
1065
- }
1066
-
1067
- assert(start == d->debug_valstart);
1068
- uint32_t tag = ((uint32_t)field_number << 3) | wire_type;
1069
- start = decode_reverse_skip_varint(start, tag);
1070
- assert(start == d->debug_tagstart);
1071
-
1072
- if (wire_type == kUpb_WireType_StartGroup) {
1073
- d->unknown = start;
1074
- d->unknown_msg = msg;
1075
- ptr = decode_group(d, ptr, NULL, NULL, field_number);
1076
- start = d->unknown;
1077
- d->unknown_msg = NULL;
1078
- d->unknown = NULL;
1079
- }
1080
- if (!_upb_Message_AddUnknown(msg, start, ptr - start, &d->arena)) {
1081
- return decode_err(d, kUpb_DecodeStatus_OutOfMemory);
1082
- }
1083
- } else if (wire_type == kUpb_WireType_StartGroup) {
1084
- ptr = decode_group(d, ptr, NULL, NULL, field_number);
1085
- }
1086
- return ptr;
1087
- }
1088
-
1089
- UPB_NOINLINE
1090
- static const char* decode_msg(upb_Decoder* d, const char* ptr, upb_Message* msg,
1091
- const upb_MiniTable* layout) {
1092
- int last_field_index = 0;
1093
-
1094
- #if UPB_FASTTABLE
1095
- // The first time we want to skip fast dispatch, because we may have just been
1096
- // invoked by the fast parser to handle a case that it bailed on.
1097
- if (!decode_isdone(d, &ptr)) goto nofast;
1098
- #endif
1099
-
1100
- while (!decode_isdone(d, &ptr)) {
1101
- uint32_t tag;
1102
- const upb_MiniTable_Field* field;
1103
- int field_number;
1104
- int wire_type;
1105
- wireval val;
1106
- int op;
1107
-
1108
- if (decode_tryfastdispatch(d, &ptr, msg, layout)) break;
1109
-
1110
- #if UPB_FASTTABLE
1111
- nofast:
1112
- #endif
1113
-
1114
- #ifndef NDEBUG
1115
- d->debug_tagstart = ptr;
1116
- #endif
1117
-
1118
- UPB_ASSERT(ptr < d->limit_ptr);
1119
- ptr = decode_tag(d, ptr, &tag);
1120
- field_number = tag >> 3;
1121
- wire_type = tag & 7;
1122
-
1123
- #ifndef NDEBUG
1124
- d->debug_valstart = ptr;
1125
- #endif
1126
-
1127
- if (wire_type == kUpb_WireType_EndGroup) {
1128
- d->end_group = field_number;
1129
- return ptr;
1130
- }
1131
-
1132
- field = decode_findfield(d, layout, field_number, &last_field_index);
1133
- ptr = decode_wireval(d, ptr, field, wire_type, &val, &op);
1134
-
1135
- if (op >= 0) {
1136
- ptr = decode_known(d, ptr, msg, layout, field, op, &val);
1137
- } else {
1138
- switch (op) {
1139
- case OP_UNKNOWN:
1140
- ptr = decode_unknown(d, ptr, msg, field_number, wire_type, val);
1141
- break;
1142
- case OP_MSGSET_ITEM:
1143
- ptr = upb_Decoder_DecodeMessageSetItem(d, ptr, msg, layout);
1144
- break;
1145
- }
1146
- }
1147
- }
1148
-
1149
- return UPB_UNLIKELY(layout && layout->required_count)
1150
- ? decode_checkrequired(d, ptr, msg, layout)
1151
- : ptr;
1152
- }
1153
-
1154
- const char* fastdecode_generic(struct upb_Decoder* d, const char* ptr,
1155
- upb_Message* msg, intptr_t table,
1156
- uint64_t hasbits, uint64_t data) {
1157
- (void)data;
1158
- *(uint32_t*)msg |= hasbits;
1159
- return decode_msg(d, ptr, msg, decode_totablep(table));
1160
- }
1161
-
1162
- static upb_DecodeStatus decode_top(struct upb_Decoder* d, const char* buf,
1163
- void* msg, const upb_MiniTable* l) {
1164
- if (!decode_tryfastdispatch(d, &buf, msg, l)) {
1165
- decode_msg(d, buf, msg, l);
1166
- }
1167
- if (d->end_group != DECODE_NOGROUP) return kUpb_DecodeStatus_Malformed;
1168
- if (d->missing_required) return kUpb_DecodeStatus_MissingRequired;
1169
- return kUpb_DecodeStatus_Ok;
1170
- }
1171
-
1172
- upb_DecodeStatus upb_Decode(const char* buf, size_t size, void* msg,
1173
- const upb_MiniTable* l,
1174
- const upb_ExtensionRegistry* extreg, int options,
1175
- upb_Arena* arena) {
1176
- upb_Decoder state;
1177
- unsigned depth = (unsigned)options >> 16;
1178
-
1179
- if (size <= 16) {
1180
- memset(&state.patch, 0, 32);
1181
- if (size) memcpy(&state.patch, buf, size);
1182
- buf = state.patch;
1183
- state.end = buf + size;
1184
- state.limit = 0;
1185
- options &= ~kUpb_DecodeOption_AliasString; // Can't alias patch buf.
1186
- } else {
1187
- state.end = buf + size - 16;
1188
- state.limit = 16;
1189
- }
1190
-
1191
- state.extreg = extreg;
1192
- state.limit_ptr = state.end;
1193
- state.unknown_msg = NULL;
1194
- state.depth = depth ? depth : 64;
1195
- state.end_group = DECODE_NOGROUP;
1196
- state.options = (uint16_t)options;
1197
- state.missing_required = false;
1198
- state.arena.head = arena->head;
1199
- state.arena.last_size = arena->last_size;
1200
- state.arena.cleanup_metadata = arena->cleanup_metadata;
1201
- state.arena.parent = arena;
1202
-
1203
- upb_DecodeStatus status = UPB_SETJMP(state.err);
1204
- if (UPB_LIKELY(status == kUpb_DecodeStatus_Ok)) {
1205
- status = decode_top(&state, buf, msg, l);
1206
- }
1207
-
1208
- arena->head.ptr = state.arena.head.ptr;
1209
- arena->head.end = state.arena.head.end;
1210
- arena->cleanup_metadata = state.arena.cleanup_metadata;
1211
- return status;
1212
- }
1213
-
1214
- #undef OP_UNKNOWN
1215
- #undef OP_SKIP
1216
- #undef OP_SCALAR_LG2
1217
- #undef OP_FIXPCK_LG2
1218
- #undef OP_VARPCK_LG2
1219
- #undef OP_STRING
1220
- #undef OP_BYTES
1221
- #undef OP_SUBMSG