grpc 1.36.0 → 1.37.0.pre1

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 (221) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +65 -37
  3. data/include/grpc/grpc.h +15 -1
  4. data/include/grpc/impl/codegen/port_platform.h +2 -0
  5. data/src/core/ext/filters/client_channel/client_channel.cc +327 -305
  6. data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
  7. data/src/core/ext/filters/client_channel/config_selector.h +8 -0
  8. data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -4
  9. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
  10. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
  11. data/src/core/ext/filters/client_channel/lb_policy.cc +3 -0
  12. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +23 -0
  13. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +27 -0
  14. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +7 -22
  15. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +1 -1
  16. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +2 -2
  17. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
  18. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
  19. data/src/core/ext/filters/client_channel/resolver.cc +3 -0
  20. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  21. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +3 -1
  22. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +5 -9
  23. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +18 -3
  24. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +295 -91
  25. data/src/core/ext/filters/client_channel/server_address.cc +3 -0
  26. data/src/core/ext/filters/client_channel/subchannel.cc +69 -146
  27. data/src/core/ext/filters/client_channel/subchannel.h +63 -95
  28. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
  29. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +10 -8
  30. data/src/core/ext/filters/client_idle/client_idle_filter.cc +1 -1
  31. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +495 -0
  32. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
  33. data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
  34. data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
  35. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +1 -1
  36. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
  37. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +3 -2
  38. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
  39. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -2
  40. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +457 -170
  41. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +1 -1
  42. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +39 -7
  43. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
  44. data/src/core/ext/transport/chttp2/transport/frame_data.cc +5 -1
  45. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
  46. data/src/core/ext/transport/chttp2/transport/internal.h +1 -0
  47. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
  48. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
  49. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +350 -0
  50. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1348 -0
  51. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +6 -0
  52. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +25 -0
  53. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
  54. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
  55. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
  56. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
  57. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +15 -0
  58. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +44 -0
  59. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
  60. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
  61. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +78 -0
  62. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +281 -0
  63. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -0
  64. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -0
  65. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +6 -5
  66. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +13 -9
  67. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +93 -0
  68. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +323 -0
  69. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
  70. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
  71. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
  72. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
  73. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
  74. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
  75. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
  76. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
  77. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +383 -0
  78. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +115 -0
  79. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +10 -7
  80. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +5 -0
  81. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
  82. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
  83. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
  84. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
  85. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +13 -7
  86. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
  87. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
  88. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
  89. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +120 -0
  90. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
  91. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +76 -0
  92. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
  93. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +21 -20
  94. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +130 -0
  95. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +50 -0
  96. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
  97. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
  98. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
  99. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
  100. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
  101. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
  102. data/src/core/ext/xds/xds_api.cc +1591 -279
  103. data/src/core/ext/xds/xds_api.h +279 -39
  104. data/src/core/ext/xds/xds_bootstrap.cc +21 -5
  105. data/src/core/ext/xds/xds_bootstrap.h +5 -1
  106. data/src/core/ext/xds/xds_client.cc +168 -23
  107. data/src/core/ext/xds/xds_client.h +26 -0
  108. data/src/core/ext/xds/xds_client_stats.h +2 -2
  109. data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
  110. data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
  111. data/src/core/ext/xds/xds_http_filters.cc +114 -0
  112. data/src/core/ext/xds/xds_http_filters.h +130 -0
  113. data/src/core/ext/xds/xds_server_config_fetcher.cc +391 -126
  114. data/src/core/lib/channel/channel_stack.cc +12 -0
  115. data/src/core/lib/channel/channel_stack.h +7 -0
  116. data/src/core/lib/channel/channelz.cc +92 -4
  117. data/src/core/lib/channel/channelz.h +30 -1
  118. data/src/core/lib/channel/channelz_registry.cc +14 -0
  119. data/src/core/lib/channel/handshaker.cc +0 -39
  120. data/src/core/lib/channel/handshaker.h +0 -17
  121. data/src/core/lib/channel/status_util.cc +12 -2
  122. data/src/core/lib/channel/status_util.h +5 -0
  123. data/src/core/lib/gpr/sync_abseil.cc +3 -6
  124. data/src/core/lib/gpr/sync_windows.cc +2 -2
  125. data/src/core/lib/gprpp/atomic.h +3 -3
  126. data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
  127. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -0
  128. data/src/core/lib/gprpp/thd.h +1 -1
  129. data/src/core/lib/iomgr/buffer_list.h +1 -1
  130. data/src/core/lib/iomgr/cfstream_handle.cc +2 -2
  131. data/src/core/lib/iomgr/error.h +1 -1
  132. data/src/core/lib/iomgr/ev_apple.cc +1 -1
  133. data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -3
  134. data/src/core/lib/iomgr/ev_posix.cc +3 -3
  135. data/src/core/lib/iomgr/exec_ctx.cc +6 -2
  136. data/src/core/lib/iomgr/resource_quota.cc +1 -1
  137. data/src/core/lib/iomgr/sockaddr_utils.cc +120 -0
  138. data/src/core/lib/iomgr/sockaddr_utils.h +25 -0
  139. data/src/core/lib/iomgr/tcp_posix.cc +1 -4
  140. data/src/core/lib/iomgr/tcp_uv.cc +2 -2
  141. data/src/core/lib/iomgr/timer_generic.cc +2 -2
  142. data/src/core/lib/iomgr/timer_manager.cc +1 -1
  143. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
  144. data/src/core/lib/{security/authorization → matchers}/matchers.cc +8 -8
  145. data/src/core/lib/{security/authorization → matchers}/matchers.h +14 -12
  146. data/src/core/lib/security/security_connector/ssl_utils.cc +6 -4
  147. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +6 -0
  148. data/src/core/lib/security/transport/security_handshaker.cc +32 -2
  149. data/src/core/lib/slice/slice_intern.cc +6 -7
  150. data/src/core/lib/surface/channel.h +3 -3
  151. data/src/core/lib/surface/completion_queue.cc +1 -1
  152. data/src/core/lib/surface/lame_client.cc +38 -19
  153. data/src/core/lib/surface/lame_client.h +4 -3
  154. data/src/core/lib/surface/server.cc +40 -33
  155. data/src/core/lib/surface/server.h +74 -15
  156. data/src/core/lib/surface/version.cc +1 -1
  157. data/src/core/lib/transport/metadata_batch.cc +27 -0
  158. data/src/core/lib/transport/metadata_batch.h +14 -0
  159. data/src/core/plugin_registry/grpc_plugin_registry.cc +6 -0
  160. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -4
  161. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
  162. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
  163. data/src/core/tsi/fake_transport_security.cc +10 -1
  164. data/src/ruby/ext/grpc/extconf.rb +9 -1
  165. data/src/ruby/ext/grpc/rb_channel.c +10 -1
  166. data/src/ruby/ext/grpc/rb_channel_credentials.c +11 -1
  167. data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
  168. data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
  169. data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
  170. data/src/ruby/ext/grpc/rb_grpc.c +4 -0
  171. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  172. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
  173. data/src/ruby/ext/grpc/rb_server.c +13 -1
  174. data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
  175. data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
  176. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
  177. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
  178. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
  179. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
  180. data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
  181. data/src/ruby/lib/grpc/version.rb +1 -1
  182. data/src/ruby/spec/call_spec.rb +1 -1
  183. data/src/ruby/spec/channel_credentials_spec.rb +32 -0
  184. data/src/ruby/spec/channel_spec.rb +17 -6
  185. data/src/ruby/spec/client_auth_spec.rb +27 -1
  186. data/src/ruby/spec/errors_spec.rb +1 -1
  187. data/src/ruby/spec/generic/active_call_spec.rb +2 -2
  188. data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
  189. data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
  190. data/src/ruby/spec/server_credentials_spec.rb +25 -0
  191. data/src/ruby/spec/server_spec.rb +22 -0
  192. data/third_party/boringssl-with-bazel/err_data.c +255 -255
  193. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
  194. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
  195. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +21 -13
  196. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +7 -5
  197. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +0 -28
  198. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +22 -17
  199. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +3 -1
  200. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +4 -0
  201. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
  202. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +25 -9
  203. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -1
  204. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +33 -19
  205. data/third_party/xxhash/xxhash.h +5443 -0
  206. metadata +93 -49
  207. data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
  208. data/src/core/lib/security/authorization/authorization_engine.h +0 -84
  209. data/src/core/lib/security/authorization/evaluate_args.cc +0 -148
  210. data/src/core/lib/security/authorization/evaluate_args.h +0 -59
  211. data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
  212. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -44
  213. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -69
  214. data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -99
  215. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
  216. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -57
  217. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -504
  218. data/third_party/upb/upb/json_decode.c +0 -1443
  219. data/third_party/upb/upb/json_decode.h +0 -23
  220. data/third_party/upb/upb/json_encode.c +0 -713
  221. data/third_party/upb/upb/json_encode.h +0 -36
@@ -57,7 +57,7 @@ void grpc_server_add_insecure_channel_from_fd(grpc_server* server,
57
57
  for (grpc_pollset* pollset : core_server->pollsets()) {
58
58
  grpc_endpoint_add_to_pollset(server_endpoint, pollset);
59
59
  }
60
- grpc_chttp2_transport_start_reading(transport, nullptr, nullptr);
60
+ grpc_chttp2_transport_start_reading(transport, nullptr, nullptr, nullptr);
61
61
  } else {
62
62
  gpr_log(GPR_ERROR, "Failed to create channel: %s",
63
63
  grpc_error_string(error));
@@ -165,6 +165,26 @@ static void reset_byte_stream(void* arg, grpc_error* error);
165
165
  // GRPC_EXPERIMENTAL_DISABLE_FLOW_CONTROL
166
166
  bool g_flow_control_enabled = true;
167
167
 
168
+ namespace grpc_core {
169
+
170
+ namespace {
171
+ TestOnlyGlobalHttp2TransportInitCallback test_only_init_callback = nullptr;
172
+ TestOnlyGlobalHttp2TransportDestructCallback test_only_destruct_callback =
173
+ nullptr;
174
+ } // namespace
175
+
176
+ void TestOnlySetGlobalHttp2TransportInitCallback(
177
+ TestOnlyGlobalHttp2TransportInitCallback callback) {
178
+ test_only_init_callback = callback;
179
+ }
180
+
181
+ void TestOnlySetGlobalHttp2TransportDestructCallback(
182
+ TestOnlyGlobalHttp2TransportDestructCallback callback) {
183
+ test_only_destruct_callback = callback;
184
+ }
185
+
186
+ } // namespace grpc_core
187
+
168
188
  //
169
189
  // CONSTRUCTION/DESTRUCTION/REFCOUNTING
170
190
  //
@@ -221,6 +241,9 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
221
241
 
222
242
  GRPC_ERROR_UNREF(closed_with_error);
223
243
  gpr_free(ping_acks);
244
+ if (grpc_core::test_only_destruct_callback != nullptr) {
245
+ grpc_core::test_only_destruct_callback();
246
+ }
224
247
  }
225
248
 
226
249
  static const grpc_transport_vtable* get_vtable(void);
@@ -366,7 +389,9 @@ static bool read_channel_args(grpc_chttp2_transport* t,
366
389
  t->channelz_socket =
367
390
  grpc_core::MakeRefCounted<grpc_core::channelz::SocketNode>(
368
391
  std::string(grpc_endpoint_get_local_address(t->ep)), t->peer_string,
369
- absl::StrFormat("%s %s", get_vtable()->name, t->peer_string));
392
+ absl::StrFormat("%s %s", get_vtable()->name, t->peer_string),
393
+ grpc_core::channelz::SocketNode::Security::GetFromChannelArgs(
394
+ channel_args));
370
395
  }
371
396
  return enable_bdp;
372
397
  }
@@ -504,6 +529,9 @@ grpc_chttp2_transport::grpc_chttp2_transport(
504
529
 
505
530
  grpc_chttp2_initiate_write(this, GRPC_CHTTP2_INITIATE_WRITE_INITIAL_WRITE);
506
531
  post_benign_reclaimer(this);
532
+ if (grpc_core::test_only_init_callback != nullptr) {
533
+ grpc_core::test_only_init_callback();
534
+ }
507
535
  }
508
536
 
509
537
  static void destroy_transport_locked(void* tp, grpc_error* /*error*/) {
@@ -579,6 +607,11 @@ static void close_transport_locked(grpc_chttp2_transport* t,
579
607
  GRPC_ERROR_REF(error));
580
608
  t->notify_on_receive_settings = nullptr;
581
609
  }
610
+ if (t->notify_on_close != nullptr) {
611
+ grpc_core::ExecCtx::Run(DEBUG_LOCATION, t->notify_on_close,
612
+ GRPC_ERROR_REF(error));
613
+ t->notify_on_close = nullptr;
614
+ }
582
615
  GRPC_ERROR_UNREF(error);
583
616
  }
584
617
 
@@ -2097,7 +2130,7 @@ static void add_error(grpc_error* error, grpc_error** refs, size_t* nrefs) {
2097
2130
  }
2098
2131
 
2099
2132
  static grpc_error* removal_error(grpc_error* extra_error, grpc_chttp2_stream* s,
2100
- const char* master_error_msg) {
2133
+ const char* main_error_msg) {
2101
2134
  grpc_error* refs[3];
2102
2135
  size_t nrefs = 0;
2103
2136
  add_error(s->read_closed_error, refs, &nrefs);
@@ -2105,7 +2138,7 @@ static grpc_error* removal_error(grpc_error* extra_error, grpc_chttp2_stream* s,
2105
2138
  add_error(extra_error, refs, &nrefs);
2106
2139
  grpc_error* error = GRPC_ERROR_NONE;
2107
2140
  if (nrefs > 0) {
2108
- error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(master_error_msg,
2141
+ error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(main_error_msg,
2109
2142
  refs, nrefs);
2110
2143
  }
2111
2144
  GRPC_ERROR_UNREF(extra_error);
@@ -2569,9 +2602,7 @@ void schedule_bdp_ping_locked(grpc_chttp2_transport* t) {
2569
2602
  grpc_schedule_on_exec_ctx),
2570
2603
  GRPC_CLOSURE_INIT(&t->finish_bdp_ping_locked, finish_bdp_ping, t,
2571
2604
  grpc_schedule_on_exec_ctx));
2572
- // TODO(yashykt): Enabling this causes internal b/168345569. Re-enable once
2573
- // fixed.
2574
- // grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_BDP_PING);
2605
+ grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_BDP_PING);
2575
2606
  }
2576
2607
 
2577
2608
  static void start_bdp_ping(void* tp, grpc_error* error) {
@@ -3293,7 +3324,7 @@ grpc_transport* grpc_create_chttp2_transport(
3293
3324
 
3294
3325
  void grpc_chttp2_transport_start_reading(
3295
3326
  grpc_transport* transport, grpc_slice_buffer* read_buffer,
3296
- grpc_closure* notify_on_receive_settings) {
3327
+ grpc_closure* notify_on_receive_settings, grpc_closure* notify_on_close) {
3297
3328
  grpc_chttp2_transport* t =
3298
3329
  reinterpret_cast<grpc_chttp2_transport*>(transport);
3299
3330
  GRPC_CHTTP2_REF_TRANSPORT(
@@ -3303,6 +3334,7 @@ void grpc_chttp2_transport_start_reading(
3303
3334
  gpr_free(read_buffer);
3304
3335
  }
3305
3336
  t->notify_on_receive_settings = notify_on_receive_settings;
3337
+ t->notify_on_close = notify_on_close;
3306
3338
  t->combiner->Run(
3307
3339
  GRPC_CLOSURE_INIT(&t->read_action_locked, read_action_locked, t, nullptr),
3308
3340
  GRPC_ERROR_NONE);
@@ -47,6 +47,17 @@ grpc_chttp2_transport_get_socket_node(grpc_transport* transport);
47
47
  /// HTTP/2 settings are received from the peer.
48
48
  void grpc_chttp2_transport_start_reading(
49
49
  grpc_transport* transport, grpc_slice_buffer* read_buffer,
50
- grpc_closure* notify_on_receive_settings);
50
+ grpc_closure* notify_on_receive_settings, grpc_closure* notify_on_close);
51
+
52
+ namespace grpc_core {
53
+ typedef void (*TestOnlyGlobalHttp2TransportInitCallback)();
54
+ typedef void (*TestOnlyGlobalHttp2TransportDestructCallback)();
55
+
56
+ void TestOnlySetGlobalHttp2TransportInitCallback(
57
+ TestOnlyGlobalHttp2TransportInitCallback callback);
58
+
59
+ void TestOnlySetGlobalHttp2TransportDestructCallback(
60
+ TestOnlyGlobalHttp2TransportDestructCallback callback);
61
+ } // namespace grpc_core
51
62
 
52
63
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_CHTTP2_TRANSPORT_H */
@@ -297,7 +297,11 @@ grpc_error* grpc_chttp2_data_parser_parse(void* /*parser*/,
297
297
  }
298
298
 
299
299
  if (is_last && s->received_last_frame) {
300
- grpc_chttp2_mark_stream_closed(t, s, true, false, GRPC_ERROR_NONE);
300
+ grpc_chttp2_mark_stream_closed(
301
+ t, s, true, false,
302
+ t->is_client ? GRPC_ERROR_CREATE_FROM_STATIC_STRING(
303
+ "Data frame with END_STREAM flag received")
304
+ : GRPC_ERROR_NONE);
301
305
  }
302
306
 
303
307
  return GRPC_ERROR_NONE;
@@ -104,7 +104,7 @@ struct SliceRefComparator {
104
104
 
105
105
  struct MetadataComparator {
106
106
  typedef grpc_mdelem Type;
107
- static const grpc_mdelem Null() { return {0}; }
107
+ static grpc_mdelem Null() { return {0}; }
108
108
  static bool IsNull(const grpc_mdelem md) { return md.payload == 0; }
109
109
  static bool Equals(const grpc_mdelem md1, const grpc_mdelem md2) {
110
110
  return md1.payload == md2.payload;
@@ -301,6 +301,7 @@ struct grpc_chttp2_transport {
301
301
  grpc_core::Combiner* combiner;
302
302
 
303
303
  grpc_closure* notify_on_receive_settings = nullptr;
304
+ grpc_closure* notify_on_close = nullptr;
304
305
 
305
306
  /** write execution state of the transport */
306
307
  grpc_chttp2_write_state write_state = GRPC_CHTTP2_WRITE_STATE_IDLE;
@@ -0,0 +1,406 @@
1
+ /* This file was generated by upbc (the upb compiler) from the input
2
+ * file:
3
+ *
4
+ * envoy/admin/v3/config_dump.proto
5
+ *
6
+ * Do not edit -- your changes will be discarded when the file is
7
+ * regenerated. */
8
+
9
+ #include <stddef.h>
10
+ #include "upb/msg.h"
11
+ #include "envoy/admin/v3/config_dump.upb.h"
12
+ #include "envoy/config/bootstrap/v3/bootstrap.upb.h"
13
+ #include "google/protobuf/any.upb.h"
14
+ #include "google/protobuf/timestamp.upb.h"
15
+ #include "udpa/annotations/status.upb.h"
16
+ #include "udpa/annotations/versioning.upb.h"
17
+
18
+ #include "upb/port_def.inc"
19
+
20
+ static const upb_msglayout *const envoy_admin_v3_ConfigDump_submsgs[1] = {
21
+ &google_protobuf_Any_msginit,
22
+ };
23
+
24
+ static const upb_msglayout_field envoy_admin_v3_ConfigDump__fields[1] = {
25
+ {1, UPB_SIZE(0, 0), 0, 0, 11, 3},
26
+ };
27
+
28
+ const upb_msglayout envoy_admin_v3_ConfigDump_msginit = {
29
+ &envoy_admin_v3_ConfigDump_submsgs[0],
30
+ &envoy_admin_v3_ConfigDump__fields[0],
31
+ UPB_SIZE(8, 8), 1, false, 255,
32
+ };
33
+
34
+ static const upb_msglayout *const envoy_admin_v3_UpdateFailureState_submsgs[2] = {
35
+ &google_protobuf_Any_msginit,
36
+ &google_protobuf_Timestamp_msginit,
37
+ };
38
+
39
+ static const upb_msglayout_field envoy_admin_v3_UpdateFailureState__fields[4] = {
40
+ {1, UPB_SIZE(20, 40), 1, 0, 11, 1},
41
+ {2, UPB_SIZE(24, 48), 2, 1, 11, 1},
42
+ {3, UPB_SIZE(4, 8), 0, 0, 9, 1},
43
+ {4, UPB_SIZE(12, 24), 0, 0, 9, 1},
44
+ };
45
+
46
+ const upb_msglayout envoy_admin_v3_UpdateFailureState_msginit = {
47
+ &envoy_admin_v3_UpdateFailureState_submsgs[0],
48
+ &envoy_admin_v3_UpdateFailureState__fields[0],
49
+ UPB_SIZE(32, 64), 4, false, 255,
50
+ };
51
+
52
+ static const upb_msglayout *const envoy_admin_v3_BootstrapConfigDump_submsgs[2] = {
53
+ &envoy_config_bootstrap_v3_Bootstrap_msginit,
54
+ &google_protobuf_Timestamp_msginit,
55
+ };
56
+
57
+ static const upb_msglayout_field envoy_admin_v3_BootstrapConfigDump__fields[2] = {
58
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
59
+ {2, UPB_SIZE(8, 16), 2, 1, 11, 1},
60
+ };
61
+
62
+ const upb_msglayout envoy_admin_v3_BootstrapConfigDump_msginit = {
63
+ &envoy_admin_v3_BootstrapConfigDump_submsgs[0],
64
+ &envoy_admin_v3_BootstrapConfigDump__fields[0],
65
+ UPB_SIZE(16, 24), 2, false, 255,
66
+ };
67
+
68
+ static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_submsgs[2] = {
69
+ &envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit,
70
+ &envoy_admin_v3_ListenersConfigDump_StaticListener_msginit,
71
+ };
72
+
73
+ static const upb_msglayout_field envoy_admin_v3_ListenersConfigDump__fields[3] = {
74
+ {1, UPB_SIZE(0, 0), 0, 0, 9, 1},
75
+ {2, UPB_SIZE(8, 16), 0, 1, 11, 3},
76
+ {3, UPB_SIZE(12, 24), 0, 0, 11, 3},
77
+ };
78
+
79
+ const upb_msglayout envoy_admin_v3_ListenersConfigDump_msginit = {
80
+ &envoy_admin_v3_ListenersConfigDump_submsgs[0],
81
+ &envoy_admin_v3_ListenersConfigDump__fields[0],
82
+ UPB_SIZE(16, 32), 3, false, 255,
83
+ };
84
+
85
+ static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_StaticListener_submsgs[2] = {
86
+ &google_protobuf_Any_msginit,
87
+ &google_protobuf_Timestamp_msginit,
88
+ };
89
+
90
+ static const upb_msglayout_field envoy_admin_v3_ListenersConfigDump_StaticListener__fields[2] = {
91
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
92
+ {2, UPB_SIZE(8, 16), 2, 1, 11, 1},
93
+ };
94
+
95
+ const upb_msglayout envoy_admin_v3_ListenersConfigDump_StaticListener_msginit = {
96
+ &envoy_admin_v3_ListenersConfigDump_StaticListener_submsgs[0],
97
+ &envoy_admin_v3_ListenersConfigDump_StaticListener__fields[0],
98
+ UPB_SIZE(16, 24), 2, false, 255,
99
+ };
100
+
101
+ static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_DynamicListenerState_submsgs[2] = {
102
+ &google_protobuf_Any_msginit,
103
+ &google_protobuf_Timestamp_msginit,
104
+ };
105
+
106
+ static const upb_msglayout_field envoy_admin_v3_ListenersConfigDump_DynamicListenerState__fields[3] = {
107
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
108
+ {2, UPB_SIZE(12, 24), 1, 0, 11, 1},
109
+ {3, UPB_SIZE(16, 32), 2, 1, 11, 1},
110
+ };
111
+
112
+ const upb_msglayout envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit = {
113
+ &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_submsgs[0],
114
+ &envoy_admin_v3_ListenersConfigDump_DynamicListenerState__fields[0],
115
+ UPB_SIZE(24, 48), 3, false, 255,
116
+ };
117
+
118
+ static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_DynamicListener_submsgs[2] = {
119
+ &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit,
120
+ &envoy_admin_v3_UpdateFailureState_msginit,
121
+ };
122
+
123
+ static const upb_msglayout_field envoy_admin_v3_ListenersConfigDump_DynamicListener__fields[6] = {
124
+ {1, UPB_SIZE(8, 8), 0, 0, 9, 1},
125
+ {2, UPB_SIZE(16, 24), 1, 0, 11, 1},
126
+ {3, UPB_SIZE(20, 32), 2, 0, 11, 1},
127
+ {4, UPB_SIZE(24, 40), 3, 0, 11, 1},
128
+ {5, UPB_SIZE(28, 48), 4, 1, 11, 1},
129
+ {6, UPB_SIZE(4, 4), 0, 0, 14, 1},
130
+ };
131
+
132
+ const upb_msglayout envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit = {
133
+ &envoy_admin_v3_ListenersConfigDump_DynamicListener_submsgs[0],
134
+ &envoy_admin_v3_ListenersConfigDump_DynamicListener__fields[0],
135
+ UPB_SIZE(32, 64), 6, false, 255,
136
+ };
137
+
138
+ static const upb_msglayout *const envoy_admin_v3_ClustersConfigDump_submsgs[2] = {
139
+ &envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit,
140
+ &envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit,
141
+ };
142
+
143
+ static const upb_msglayout_field envoy_admin_v3_ClustersConfigDump__fields[4] = {
144
+ {1, UPB_SIZE(0, 0), 0, 0, 9, 1},
145
+ {2, UPB_SIZE(8, 16), 0, 1, 11, 3},
146
+ {3, UPB_SIZE(12, 24), 0, 0, 11, 3},
147
+ {4, UPB_SIZE(16, 32), 0, 0, 11, 3},
148
+ };
149
+
150
+ const upb_msglayout envoy_admin_v3_ClustersConfigDump_msginit = {
151
+ &envoy_admin_v3_ClustersConfigDump_submsgs[0],
152
+ &envoy_admin_v3_ClustersConfigDump__fields[0],
153
+ UPB_SIZE(24, 48), 4, false, 255,
154
+ };
155
+
156
+ static const upb_msglayout *const envoy_admin_v3_ClustersConfigDump_StaticCluster_submsgs[2] = {
157
+ &google_protobuf_Any_msginit,
158
+ &google_protobuf_Timestamp_msginit,
159
+ };
160
+
161
+ static const upb_msglayout_field envoy_admin_v3_ClustersConfigDump_StaticCluster__fields[2] = {
162
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
163
+ {2, UPB_SIZE(8, 16), 2, 1, 11, 1},
164
+ };
165
+
166
+ const upb_msglayout envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit = {
167
+ &envoy_admin_v3_ClustersConfigDump_StaticCluster_submsgs[0],
168
+ &envoy_admin_v3_ClustersConfigDump_StaticCluster__fields[0],
169
+ UPB_SIZE(16, 24), 2, false, 255,
170
+ };
171
+
172
+ static const upb_msglayout *const envoy_admin_v3_ClustersConfigDump_DynamicCluster_submsgs[3] = {
173
+ &envoy_admin_v3_UpdateFailureState_msginit,
174
+ &google_protobuf_Any_msginit,
175
+ &google_protobuf_Timestamp_msginit,
176
+ };
177
+
178
+ static const upb_msglayout_field envoy_admin_v3_ClustersConfigDump_DynamicCluster__fields[5] = {
179
+ {1, UPB_SIZE(8, 8), 0, 0, 9, 1},
180
+ {2, UPB_SIZE(16, 24), 1, 1, 11, 1},
181
+ {3, UPB_SIZE(20, 32), 2, 2, 11, 1},
182
+ {4, UPB_SIZE(24, 40), 3, 0, 11, 1},
183
+ {5, UPB_SIZE(4, 4), 0, 0, 14, 1},
184
+ };
185
+
186
+ const upb_msglayout envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit = {
187
+ &envoy_admin_v3_ClustersConfigDump_DynamicCluster_submsgs[0],
188
+ &envoy_admin_v3_ClustersConfigDump_DynamicCluster__fields[0],
189
+ UPB_SIZE(32, 48), 5, false, 255,
190
+ };
191
+
192
+ static const upb_msglayout *const envoy_admin_v3_RoutesConfigDump_submsgs[2] = {
193
+ &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit,
194
+ &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit,
195
+ };
196
+
197
+ static const upb_msglayout_field envoy_admin_v3_RoutesConfigDump__fields[2] = {
198
+ {2, UPB_SIZE(0, 0), 0, 1, 11, 3},
199
+ {3, UPB_SIZE(4, 8), 0, 0, 11, 3},
200
+ };
201
+
202
+ const upb_msglayout envoy_admin_v3_RoutesConfigDump_msginit = {
203
+ &envoy_admin_v3_RoutesConfigDump_submsgs[0],
204
+ &envoy_admin_v3_RoutesConfigDump__fields[0],
205
+ UPB_SIZE(8, 16), 2, false, 255,
206
+ };
207
+
208
+ static const upb_msglayout *const envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_submsgs[2] = {
209
+ &google_protobuf_Any_msginit,
210
+ &google_protobuf_Timestamp_msginit,
211
+ };
212
+
213
+ static const upb_msglayout_field envoy_admin_v3_RoutesConfigDump_StaticRouteConfig__fields[2] = {
214
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
215
+ {2, UPB_SIZE(8, 16), 2, 1, 11, 1},
216
+ };
217
+
218
+ const upb_msglayout envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit = {
219
+ &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_submsgs[0],
220
+ &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig__fields[0],
221
+ UPB_SIZE(16, 24), 2, false, 255,
222
+ };
223
+
224
+ static const upb_msglayout *const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_submsgs[3] = {
225
+ &envoy_admin_v3_UpdateFailureState_msginit,
226
+ &google_protobuf_Any_msginit,
227
+ &google_protobuf_Timestamp_msginit,
228
+ };
229
+
230
+ static const upb_msglayout_field envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig__fields[5] = {
231
+ {1, UPB_SIZE(8, 8), 0, 0, 9, 1},
232
+ {2, UPB_SIZE(16, 24), 1, 1, 11, 1},
233
+ {3, UPB_SIZE(20, 32), 2, 2, 11, 1},
234
+ {4, UPB_SIZE(24, 40), 3, 0, 11, 1},
235
+ {5, UPB_SIZE(4, 4), 0, 0, 14, 1},
236
+ };
237
+
238
+ const upb_msglayout envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit = {
239
+ &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_submsgs[0],
240
+ &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig__fields[0],
241
+ UPB_SIZE(32, 48), 5, false, 255,
242
+ };
243
+
244
+ static const upb_msglayout *const envoy_admin_v3_ScopedRoutesConfigDump_submsgs[2] = {
245
+ &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit,
246
+ &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit,
247
+ };
248
+
249
+ static const upb_msglayout_field envoy_admin_v3_ScopedRoutesConfigDump__fields[2] = {
250
+ {1, UPB_SIZE(0, 0), 0, 1, 11, 3},
251
+ {2, UPB_SIZE(4, 8), 0, 0, 11, 3},
252
+ };
253
+
254
+ const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_msginit = {
255
+ &envoy_admin_v3_ScopedRoutesConfigDump_submsgs[0],
256
+ &envoy_admin_v3_ScopedRoutesConfigDump__fields[0],
257
+ UPB_SIZE(8, 16), 2, false, 255,
258
+ };
259
+
260
+ static const upb_msglayout *const envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_submsgs[2] = {
261
+ &google_protobuf_Any_msginit,
262
+ &google_protobuf_Timestamp_msginit,
263
+ };
264
+
265
+ static const upb_msglayout_field envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs__fields[3] = {
266
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
267
+ {2, UPB_SIZE(16, 32), 0, 0, 11, 3},
268
+ {3, UPB_SIZE(12, 24), 1, 1, 11, 1},
269
+ };
270
+
271
+ const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit = {
272
+ &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_submsgs[0],
273
+ &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs__fields[0],
274
+ UPB_SIZE(24, 48), 3, false, 255,
275
+ };
276
+
277
+ static const upb_msglayout *const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_submsgs[3] = {
278
+ &envoy_admin_v3_UpdateFailureState_msginit,
279
+ &google_protobuf_Any_msginit,
280
+ &google_protobuf_Timestamp_msginit,
281
+ };
282
+
283
+ static const upb_msglayout_field envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs__fields[6] = {
284
+ {1, UPB_SIZE(8, 8), 0, 0, 9, 1},
285
+ {2, UPB_SIZE(16, 24), 0, 0, 9, 1},
286
+ {3, UPB_SIZE(32, 56), 0, 1, 11, 3},
287
+ {4, UPB_SIZE(24, 40), 1, 2, 11, 1},
288
+ {5, UPB_SIZE(28, 48), 2, 0, 11, 1},
289
+ {6, UPB_SIZE(4, 4), 0, 0, 14, 1},
290
+ };
291
+
292
+ const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit = {
293
+ &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_submsgs[0],
294
+ &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs__fields[0],
295
+ UPB_SIZE(40, 64), 6, false, 255,
296
+ };
297
+
298
+ static const upb_msglayout *const envoy_admin_v3_SecretsConfigDump_submsgs[2] = {
299
+ &envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit,
300
+ &envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit,
301
+ };
302
+
303
+ static const upb_msglayout_field envoy_admin_v3_SecretsConfigDump__fields[3] = {
304
+ {1, UPB_SIZE(0, 0), 0, 1, 11, 3},
305
+ {2, UPB_SIZE(4, 8), 0, 0, 11, 3},
306
+ {3, UPB_SIZE(8, 16), 0, 0, 11, 3},
307
+ };
308
+
309
+ const upb_msglayout envoy_admin_v3_SecretsConfigDump_msginit = {
310
+ &envoy_admin_v3_SecretsConfigDump_submsgs[0],
311
+ &envoy_admin_v3_SecretsConfigDump__fields[0],
312
+ UPB_SIZE(16, 24), 3, false, 255,
313
+ };
314
+
315
+ static const upb_msglayout *const envoy_admin_v3_SecretsConfigDump_DynamicSecret_submsgs[3] = {
316
+ &envoy_admin_v3_UpdateFailureState_msginit,
317
+ &google_protobuf_Any_msginit,
318
+ &google_protobuf_Timestamp_msginit,
319
+ };
320
+
321
+ static const upb_msglayout_field envoy_admin_v3_SecretsConfigDump_DynamicSecret__fields[6] = {
322
+ {1, UPB_SIZE(8, 8), 0, 0, 9, 1},
323
+ {2, UPB_SIZE(16, 24), 0, 0, 9, 1},
324
+ {3, UPB_SIZE(24, 40), 1, 2, 11, 1},
325
+ {4, UPB_SIZE(28, 48), 2, 1, 11, 1},
326
+ {5, UPB_SIZE(32, 56), 3, 0, 11, 1},
327
+ {6, UPB_SIZE(4, 4), 0, 0, 14, 1},
328
+ };
329
+
330
+ const upb_msglayout envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit = {
331
+ &envoy_admin_v3_SecretsConfigDump_DynamicSecret_submsgs[0],
332
+ &envoy_admin_v3_SecretsConfigDump_DynamicSecret__fields[0],
333
+ UPB_SIZE(40, 64), 6, false, 255,
334
+ };
335
+
336
+ static const upb_msglayout *const envoy_admin_v3_SecretsConfigDump_StaticSecret_submsgs[2] = {
337
+ &google_protobuf_Any_msginit,
338
+ &google_protobuf_Timestamp_msginit,
339
+ };
340
+
341
+ static const upb_msglayout_field envoy_admin_v3_SecretsConfigDump_StaticSecret__fields[3] = {
342
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
343
+ {2, UPB_SIZE(12, 24), 1, 1, 11, 1},
344
+ {3, UPB_SIZE(16, 32), 2, 0, 11, 1},
345
+ };
346
+
347
+ const upb_msglayout envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit = {
348
+ &envoy_admin_v3_SecretsConfigDump_StaticSecret_submsgs[0],
349
+ &envoy_admin_v3_SecretsConfigDump_StaticSecret__fields[0],
350
+ UPB_SIZE(24, 48), 3, false, 255,
351
+ };
352
+
353
+ static const upb_msglayout *const envoy_admin_v3_EndpointsConfigDump_submsgs[2] = {
354
+ &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit,
355
+ &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit,
356
+ };
357
+
358
+ static const upb_msglayout_field envoy_admin_v3_EndpointsConfigDump__fields[2] = {
359
+ {2, UPB_SIZE(0, 0), 0, 1, 11, 3},
360
+ {3, UPB_SIZE(4, 8), 0, 0, 11, 3},
361
+ };
362
+
363
+ const upb_msglayout envoy_admin_v3_EndpointsConfigDump_msginit = {
364
+ &envoy_admin_v3_EndpointsConfigDump_submsgs[0],
365
+ &envoy_admin_v3_EndpointsConfigDump__fields[0],
366
+ UPB_SIZE(8, 16), 2, false, 255,
367
+ };
368
+
369
+ static const upb_msglayout *const envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_submsgs[2] = {
370
+ &google_protobuf_Any_msginit,
371
+ &google_protobuf_Timestamp_msginit,
372
+ };
373
+
374
+ static const upb_msglayout_field envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig__fields[2] = {
375
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
376
+ {2, UPB_SIZE(8, 16), 2, 1, 11, 1},
377
+ };
378
+
379
+ const upb_msglayout envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit = {
380
+ &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_submsgs[0],
381
+ &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig__fields[0],
382
+ UPB_SIZE(16, 24), 2, false, 255,
383
+ };
384
+
385
+ static const upb_msglayout *const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_submsgs[3] = {
386
+ &envoy_admin_v3_UpdateFailureState_msginit,
387
+ &google_protobuf_Any_msginit,
388
+ &google_protobuf_Timestamp_msginit,
389
+ };
390
+
391
+ static const upb_msglayout_field envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig__fields[5] = {
392
+ {1, UPB_SIZE(8, 8), 0, 0, 9, 1},
393
+ {2, UPB_SIZE(16, 24), 1, 1, 11, 1},
394
+ {3, UPB_SIZE(20, 32), 2, 2, 11, 1},
395
+ {4, UPB_SIZE(24, 40), 3, 0, 11, 1},
396
+ {5, UPB_SIZE(4, 4), 0, 0, 14, 1},
397
+ };
398
+
399
+ const upb_msglayout envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit = {
400
+ &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_submsgs[0],
401
+ &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig__fields[0],
402
+ UPB_SIZE(32, 48), 5, false, 255,
403
+ };
404
+
405
+ #include "upb/port_undef.inc"
406
+