grpc 1.56.2 → 1.57.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (383) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +29 -22
  3. data/include/grpc/event_engine/event_engine.h +22 -32
  4. data/include/grpc/impl/grpc_types.h +3 -0
  5. data/include/grpc/support/port_platform.h +29 -23
  6. data/src/core/ext/filters/client_channel/client_channel.cc +44 -8
  7. data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
  8. data/src/core/ext/filters/client_channel/http_proxy.cc +5 -0
  9. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +21 -52
  10. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +19 -7
  11. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +25 -35
  12. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +78 -132
  13. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +2 -1
  14. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +4 -3
  15. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +3 -1
  16. data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +38 -15
  17. data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +3 -5
  18. data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +22 -6
  19. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h +2 -0
  20. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +97 -71
  21. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +2 -16
  22. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +56 -11
  23. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.h +25 -0
  24. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +6 -32
  25. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +4 -6
  26. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +20 -79
  27. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +1 -1
  28. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +31 -19
  29. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +1 -1
  30. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +7 -41
  31. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +3 -67
  32. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +8 -0
  33. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +31 -74
  34. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +7 -51
  35. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +16 -87
  36. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +16 -50
  37. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +12 -74
  38. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +1 -4
  39. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +69 -59
  40. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +7 -2
  41. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -0
  42. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +25 -13
  43. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +366 -311
  44. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +17 -1
  45. data/src/core/ext/filters/client_channel/retry_filter.cc +39 -2498
  46. data/src/core/ext/filters/client_channel/retry_filter.h +91 -1
  47. data/src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc +2052 -0
  48. data/src/core/ext/filters/client_channel/retry_filter_legacy_call_data.h +442 -0
  49. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +38 -58
  50. data/src/core/ext/filters/client_channel/subchannel.h +3 -3
  51. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +3 -0
  52. data/src/core/ext/filters/rbac/rbac_filter.cc +40 -111
  53. data/src/core/ext/filters/rbac/rbac_filter.h +12 -30
  54. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +162 -86
  55. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +0 -6
  56. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +7 -4
  57. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +131 -186
  58. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +6569 -174
  59. data/src/core/ext/transport/chttp2/transport/decode_huff.h +2278 -441
  60. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -3
  61. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +4 -3
  62. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +9 -8
  63. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +4 -4
  64. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +3 -2
  65. data/src/core/ext/transport/chttp2/transport/internal.h +8 -4
  66. data/src/core/ext/transport/chttp2/transport/parsing.cc +15 -3
  67. data/src/core/ext/transport/chttp2/transport/writing.cc +2 -3
  68. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +27 -6
  69. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +143 -0
  70. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +2 -9
  71. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +0 -39
  72. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +13 -8
  73. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +35 -6
  74. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +17 -13
  75. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +85 -20
  76. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +26 -7
  77. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +45 -3
  78. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +4 -3
  79. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +21 -0
  80. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +30 -6
  81. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +180 -0
  82. data/src/core/ext/upb-generated/envoy/data/accesslog/v3/accesslog.upb.c +558 -0
  83. data/src/core/ext/upb-generated/envoy/data/accesslog/v3/accesslog.upb.h +2710 -0
  84. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +30 -11
  85. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +53 -24
  86. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +30 -5
  87. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +110 -0
  88. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +41 -15
  89. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +150 -27
  90. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +1 -0
  91. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.c +47 -0
  92. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +93 -0
  93. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +88 -76
  94. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +5 -0
  95. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +11 -12
  96. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +0 -5
  97. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +162 -160
  98. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +129 -118
  99. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +141 -135
  100. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +19 -12
  101. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +38 -30
  102. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +5 -0
  103. data/src/core/ext/upbdefs-generated/envoy/data/accesslog/v3/accesslog.upbdefs.c +402 -0
  104. data/src/core/ext/upbdefs-generated/envoy/data/accesslog/v3/accesslog.upbdefs.h +111 -0
  105. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +80 -74
  106. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +63 -47
  107. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +5 -0
  108. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +315 -293
  109. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -0
  110. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -29
  111. data/src/core/ext/xds/xds_bootstrap_grpc.cc +33 -30
  112. data/src/core/ext/xds/xds_bootstrap_grpc.h +5 -13
  113. data/src/core/ext/xds/xds_client_grpc.cc +11 -6
  114. data/src/core/ext/xds/xds_client_grpc.h +16 -2
  115. data/src/core/ext/xds/xds_client_stats.h +10 -0
  116. data/src/core/ext/xds/xds_cluster.cc +26 -16
  117. data/src/core/ext/xds/xds_endpoint.cc +4 -7
  118. data/src/core/ext/xds/xds_health_status.cc +0 -17
  119. data/src/core/ext/xds/xds_health_status.h +5 -25
  120. data/src/core/ext/xds/xds_lb_policy_registry.cc +39 -0
  121. data/src/core/ext/xds/xds_route_config.cc +4 -0
  122. data/src/core/ext/xds/xds_transport_grpc.cc +1 -3
  123. data/src/core/lib/address_utils/parse_address.cc +63 -1
  124. data/src/core/lib/address_utils/parse_address.h +8 -0
  125. data/src/core/lib/address_utils/sockaddr_utils.cc +46 -1
  126. data/src/core/lib/address_utils/sockaddr_utils.h +2 -2
  127. data/src/core/lib/channel/channel_args.cc +21 -10
  128. data/src/core/lib/channel/channel_args.h +3 -0
  129. data/src/core/lib/channel/connected_channel.cc +4 -1
  130. data/src/core/lib/channel/promise_based_filter.h +1 -0
  131. data/src/core/lib/debug/trace.cc +1 -4
  132. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +2 -1
  133. data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -1
  134. data/src/core/lib/event_engine/event_engine.cc +0 -12
  135. data/src/core/lib/event_engine/forkable.cc +47 -42
  136. data/src/core/lib/event_engine/handle_containers.h +0 -4
  137. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +4 -6
  138. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +4 -6
  139. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +25 -11
  140. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -1
  141. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +2 -1
  142. data/src/core/lib/event_engine/posix_engine/posix_engine.h +8 -12
  143. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +37 -27
  144. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +2 -0
  145. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +4 -2
  146. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +42 -2
  147. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +6 -0
  148. data/src/core/lib/event_engine/posix_engine/timer.h +10 -37
  149. data/src/core/lib/event_engine/tcp_socket_utils.cc +67 -7
  150. data/src/core/lib/event_engine/tcp_socket_utils.h +3 -0
  151. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +90 -37
  152. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +32 -12
  153. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +12 -21
  154. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +8 -12
  155. data/src/core/lib/event_engine/windows/windows_endpoint.cc +55 -54
  156. data/src/core/lib/event_engine/windows/windows_endpoint.h +15 -12
  157. data/src/core/lib/event_engine/windows/windows_engine.cc +2 -1
  158. data/src/core/lib/event_engine/windows/windows_engine.h +8 -12
  159. data/src/core/lib/experiments/config.cc +60 -22
  160. data/src/core/lib/experiments/config.h +20 -8
  161. data/src/core/lib/experiments/experiments.cc +278 -0
  162. data/src/core/lib/experiments/experiments.h +59 -1
  163. data/src/core/lib/gprpp/dual_ref_counted.h +9 -9
  164. data/src/core/lib/gprpp/fork.cc +8 -9
  165. data/src/core/lib/gprpp/fork.h +6 -5
  166. data/src/core/lib/gprpp/if_list.h +4530 -0
  167. data/src/core/lib/gprpp/orphanable.h +3 -3
  168. data/src/core/lib/gprpp/ref_counted.h +6 -6
  169. data/src/core/lib/gprpp/sorted_pack.h +3 -12
  170. data/src/core/lib/gprpp/status_helper.h +16 -15
  171. data/src/core/lib/gprpp/time.h +12 -0
  172. data/src/core/lib/gprpp/type_list.h +32 -0
  173. data/src/core/lib/http/httpcli.h +6 -9
  174. data/src/core/lib/iomgr/error.cc +32 -2
  175. data/src/core/lib/iomgr/error.h +9 -10
  176. data/src/core/lib/iomgr/ev_epoll1_linux.cc +5 -7
  177. data/src/core/lib/iomgr/ev_poll_posix.cc +6 -5
  178. data/src/core/lib/iomgr/exec_ctx.h +11 -0
  179. data/src/core/lib/iomgr/pollset.h +4 -5
  180. data/src/core/lib/iomgr/port.h +10 -0
  181. data/src/core/lib/iomgr/resolve_address.cc +13 -1
  182. data/src/core/lib/iomgr/resolve_address.h +17 -3
  183. data/src/core/lib/iomgr/sockaddr_posix.h +7 -0
  184. data/src/core/lib/iomgr/socket_utils_common_posix.cc +29 -0
  185. data/src/core/lib/iomgr/socket_utils_posix.cc +2 -0
  186. data/src/core/lib/iomgr/socket_utils_posix.h +6 -0
  187. data/src/core/lib/iomgr/tcp_client_posix.cc +4 -1
  188. data/src/core/lib/iomgr/tcp_posix.cc +21 -4
  189. data/src/core/lib/iomgr/tcp_server_posix.cc +3 -2
  190. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -2
  191. data/src/core/lib/iomgr/tcp_windows.cc +1 -3
  192. data/src/core/lib/iomgr/vsock.cc +59 -0
  193. data/src/core/lib/iomgr/vsock.h +38 -0
  194. data/src/core/lib/iomgr/wakeup_fd_posix.h +3 -6
  195. data/src/core/lib/load_balancing/delegating_helper.h +115 -0
  196. data/src/core/lib/load_balancing/lb_policy.h +20 -0
  197. data/src/core/lib/load_balancing/subchannel_interface.h +6 -0
  198. data/src/core/lib/promise/party.h +1 -1
  199. data/src/core/lib/resolver/resolver_factory.h +3 -2
  200. data/src/core/lib/resolver/server_address.cc +9 -94
  201. data/src/core/lib/resolver/server_address.h +10 -64
  202. data/src/core/lib/resource_quota/memory_quota.h +1 -1
  203. data/src/core/lib/security/credentials/channel_creds_registry.h +51 -27
  204. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +169 -9
  205. data/src/core/lib/security/credentials/composite/composite_credentials.cc +1 -1
  206. data/src/core/lib/security/credentials/composite/composite_credentials.h +3 -1
  207. data/src/core/lib/security/credentials/external/external_account_credentials.cc +40 -1
  208. data/src/core/lib/security/credentials/external/external_account_credentials.h +6 -0
  209. data/src/core/lib/security/credentials/fake/fake_credentials.cc +30 -38
  210. data/src/core/lib/security/credentials/fake/fake_credentials.h +28 -0
  211. data/src/core/lib/security/credentials/tls/tls_credentials.cc +1 -1
  212. data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -1
  213. data/src/core/lib/service_config/service_config_call_data.h +5 -0
  214. data/src/core/lib/slice/slice.h +16 -0
  215. data/src/core/lib/surface/call.cc +31 -29
  216. data/src/core/lib/surface/server.h +2 -2
  217. data/src/core/lib/surface/version.cc +2 -2
  218. data/src/core/lib/transport/metadata_batch.cc +7 -7
  219. data/src/core/lib/transport/metadata_batch.h +86 -48
  220. data/src/core/lib/transport/parsed_metadata.h +34 -20
  221. data/src/core/lib/transport/simple_slice_based_metadata.h +9 -2
  222. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +4 -6
  223. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +1 -2
  224. data/src/core/tsi/ssl_transport_security.cc +28 -7
  225. data/src/ruby/bin/math_pb.rb +24 -18
  226. data/src/ruby/ext/grpc/extconf.rb +19 -18
  227. data/src/ruby/ext/grpc/rb_call.c +62 -39
  228. data/src/ruby/ext/grpc/rb_call_credentials.c +0 -1
  229. data/src/ruby/ext/grpc/rb_channel.c +126 -49
  230. data/src/ruby/ext/grpc/rb_channel.h +1 -0
  231. data/src/ruby/ext/grpc/rb_channel_args.c +16 -2
  232. data/src/ruby/ext/grpc/rb_channel_args.h +4 -0
  233. data/src/ruby/ext/grpc/rb_channel_credentials.c +0 -1
  234. data/src/ruby/ext/grpc/rb_compression_options.c +0 -1
  235. data/src/ruby/ext/grpc/rb_event_thread.c +22 -6
  236. data/src/ruby/ext/grpc/rb_event_thread.h +1 -0
  237. data/src/ruby/ext/grpc/rb_grpc.c +192 -30
  238. data/src/ruby/ext/grpc/rb_grpc.h +8 -2
  239. data/src/ruby/ext/grpc/rb_server.c +62 -45
  240. data/src/ruby/ext/grpc/rb_server_credentials.c +0 -1
  241. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +0 -1
  242. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +0 -1
  243. data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
  244. data/src/ruby/lib/grpc/version.rb +1 -1
  245. data/src/ruby/pb/grpc/health/v1/health_pb.rb +24 -13
  246. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +24 -3
  247. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +25 -111
  248. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +25 -2
  249. data/third_party/boringssl-with-bazel/err_data.c +552 -552
  250. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +5 -5
  251. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +34 -1
  252. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +4 -1
  253. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +3 -3
  254. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +7 -8
  255. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +2 -2
  256. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +2 -2
  257. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +8 -8
  258. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +2 -2
  259. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -2
  260. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +19 -1
  261. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +8 -1
  262. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +28 -185
  263. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +3 -7
  264. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +8 -0
  265. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +3 -0
  266. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +49 -46
  267. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.c +18 -0
  268. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +2809 -7417
  269. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +27 -5
  270. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +20 -0
  271. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +110 -72
  272. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +4 -3
  273. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +15 -14
  274. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +13 -10
  275. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +35 -12
  276. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +2 -4
  277. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +3 -7
  278. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c +3 -3
  279. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +7 -6
  280. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +34 -72
  281. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -1
  282. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +12 -5
  283. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +5 -6
  284. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +12 -6
  285. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +17 -18
  286. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +51 -15
  287. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +7 -7
  288. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +5 -6
  289. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +2 -0
  290. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +277 -0
  291. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +180 -404
  292. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +3 -3
  293. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +24 -57
  294. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +17 -13
  295. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +33 -71
  296. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +18 -17
  297. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +5 -7
  298. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +15 -18
  299. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +9 -11
  300. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +24 -24
  301. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +11 -27
  302. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +8 -8
  303. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +4 -4
  304. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +9 -3
  305. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.c +1 -1
  306. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +40 -26
  307. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +21 -7
  308. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +38 -19
  309. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +2 -29
  310. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +55 -0
  311. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +33 -52
  312. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +3 -8
  313. data/third_party/boringssl-with-bazel/src/crypto/internal.h +198 -79
  314. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +5 -4
  315. data/third_party/boringssl-with-bazel/src/crypto/mem.c +7 -8
  316. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -23
  317. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +3 -3
  318. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +3 -3
  319. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +7 -7
  320. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +8 -5
  321. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
  322. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +7 -6
  323. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c +6 -12
  324. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +48 -0
  325. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{fuchsia.c → ios.c} +8 -8
  326. data/third_party/boringssl-with-bazel/src/crypto/{refcount_no_threads.c → rand_extra/trusty.c} +15 -19
  327. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +41 -19
  328. data/third_party/boringssl-with-bazel/src/crypto/{refcount_c11.c → refcount.c} +11 -17
  329. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +147 -72
  330. data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +0 -8
  331. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +6 -35
  332. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +5 -26
  333. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +14 -18
  334. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +54 -143
  335. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +7 -13
  336. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +1 -1
  337. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +1 -1
  338. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +2 -4
  339. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +2 -2
  340. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +1 -1
  341. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +8 -12
  342. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +19 -20
  343. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +11 -15
  344. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -5
  345. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +1 -1
  346. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +7 -7
  347. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +2 -3
  348. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +4 -6
  349. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +4 -119
  350. data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +207 -0
  351. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +5 -0
  352. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +2 -116
  353. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +0 -2
  354. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +6 -0
  355. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +5 -1
  356. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +0 -21
  357. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +21 -2
  358. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +19 -6
  359. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +11 -7
  360. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +13 -14
  361. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +0 -61
  362. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +127 -81
  363. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +224 -209
  364. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +154 -0
  365. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +1 -29
  366. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +4 -4
  367. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +3 -2
  368. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +9 -65
  369. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +20 -20
  370. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
  371. data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -11
  372. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +24 -18
  373. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +37 -30
  374. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +125 -26
  375. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +2 -3
  376. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +691 -0
  377. data/third_party/upb/upb/collections/map.c +3 -3
  378. metadata +27 -12
  379. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +0 -42
  380. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h +0 -64
  381. data/src/core/ext/transport/chttp2/transport/stream_map.cc +0 -177
  382. data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -68
  383. data/third_party/boringssl-with-bazel/src/crypto/refcount_win.c +0 -89
@@ -25,6 +25,7 @@
25
25
  #include <algorithm>
26
26
  #include <initializer_list>
27
27
 
28
+ #include "absl/container/flat_hash_map.h"
28
29
  #include "absl/status/status.h"
29
30
  #include "absl/strings/str_format.h"
30
31
 
@@ -32,7 +33,6 @@
32
33
  #include <grpc/support/log.h>
33
34
 
34
35
  #include "src/core/ext/transport/chttp2/transport/internal.h"
35
- #include "src/core/ext/transport/chttp2/transport/stream_map.h"
36
36
  #include "src/core/lib/gprpp/time.h"
37
37
 
38
38
  grpc_slice grpc_chttp2_ping_create(uint8_t ack, uint64_t opaque_8bytes) {
@@ -99,8 +99,7 @@ grpc_error_handle grpc_chttp2_ping_parser_parse(void* parser,
99
99
  t->ping_recv_state.last_ping_recv_time +
100
100
  t->ping_policy.min_recv_ping_interval_without_data;
101
101
 
102
- if (t->keepalive_permit_without_calls == 0 &&
103
- grpc_chttp2_stream_map_size(&t->stream_map) == 0) {
102
+ if (t->keepalive_permit_without_calls == 0 && t->stream_map.empty()) {
104
103
  // According to RFC1122, the interval of TCP Keep-Alive is default to
105
104
  // no less than two hours. When there is no outstanding streams, we
106
105
  // restrict the number of PINGS equivalent to TCP Keep-Alive.
@@ -19,6 +19,7 @@
19
19
 
20
20
  #include <stdint.h>
21
21
 
22
+ #include <memory>
22
23
  #include <string>
23
24
  #include <utility>
24
25
 
@@ -132,9 +133,9 @@ class HpackParseResult {
132
133
  bool connection_error() const { return IsConnectionError(status_.get()); }
133
134
  bool ephemeral() const { return IsEphemeralError(status_.get()); }
134
135
 
135
- HpackParseResult PersistentStreamErrorOrOk() const {
136
- if (connection_error() || ephemeral()) return HpackParseResult();
137
- return *this;
136
+ std::unique_ptr<HpackParseResult> PersistentStreamErrorOrNullptr() const {
137
+ if (ok() || connection_error() || ephemeral()) return nullptr;
138
+ return std::make_unique<HpackParseResult>(*this);
138
139
  }
139
140
 
140
141
  static HpackParseResult FromStatus(HpackParseStatus status) {
@@ -24,6 +24,7 @@
24
24
  #include <stdlib.h>
25
25
 
26
26
  #include <algorithm>
27
+ #include <memory>
27
28
  #include <string>
28
29
  #include <utility>
29
30
 
@@ -696,19 +697,19 @@ class HPackParser::Parser {
696
697
  gpr_log(
697
698
  GPR_DEBUG, "HTTP:%d:%s:%s: %s%s", log_info_.stream_id, type,
698
699
  log_info_.is_client ? "CLI" : "SVR", memento.md.DebugString().c_str(),
699
- memento.parse_status.ok()
700
+ memento.parse_status == nullptr
700
701
  ? ""
701
702
  : absl::StrCat(" (parse error: ",
702
- memento.parse_status.Materialize().ToString(), ")")
703
+ memento.parse_status->Materialize().ToString(), ")")
703
704
  .c_str());
704
705
  }
705
706
 
706
707
  void EmitHeader(const HPackTable::Memento& md) {
707
708
  // Pass up to the transport
708
709
  state_.frame_length += md.md.transport_size();
709
- if (!md.parse_status.ok()) {
710
+ if (md.parse_status != nullptr) {
710
711
  // Reject any requests with invalid metadata.
711
- input_->SetErrorAndContinueParsing(md.parse_status);
712
+ input_->SetErrorAndContinueParsing(*md.parse_status);
712
713
  }
713
714
  if (GPR_LIKELY(metadata_buffer_ != nullptr)) {
714
715
  metadata_buffer_->Set(md.md);
@@ -957,8 +958,8 @@ class HPackParser::Parser {
957
958
  } else {
958
959
  const auto* memento = absl::get<const HPackTable::Memento*>(state_.key);
959
960
  key_string = memento->md.key();
960
- if (status.ok() && !memento->parse_status.ok()) {
961
- input_->SetErrorAndContinueParsing(memento->parse_status);
961
+ if (status.ok() && memento->parse_status != nullptr) {
962
+ input_->SetErrorAndContinueParsing(*memento->parse_status);
962
963
  }
963
964
  }
964
965
  switch (value.status) {
@@ -983,7 +984,7 @@ class HPackParser::Parser {
983
984
  const auto transport_size =
984
985
  key_string.size() + value.wire_size + hpack_constants::kEntryOverhead;
985
986
  auto md = grpc_metadata_batch::Parse(
986
- key_string, std::move(value_slice), transport_size,
987
+ key_string, std::move(value_slice), state_.add_to_table, transport_size,
987
988
  [key_string, &status, this](absl::string_view message, const Slice&) {
988
989
  if (!status.ok()) return;
989
990
  input_->SetErrorAndContinueParsing(
@@ -993,7 +994,7 @@ class HPackParser::Parser {
993
994
  std::string(message).c_str());
994
995
  });
995
996
  HPackTable::Memento memento{std::move(md),
996
- status.PersistentStreamErrorOrOk()};
997
+ status.PersistentStreamErrorOrNullptr()};
997
998
  input_->UpdateFrontier();
998
999
  state_.parse_state = ParseState::kTop;
999
1000
  if (state_.add_to_table) {
@@ -161,10 +161,10 @@ void HPackTable::AddLargerThanCurrentTableSize() {
161
161
  std::string HPackTable::TestOnlyDynamicTableAsString() const {
162
162
  std::string out;
163
163
  entries_.ForEach([&out](uint32_t i, const Memento& m) {
164
- if (m.parse_status.ok()) {
164
+ if (m.parse_status == nullptr) {
165
165
  absl::StrAppend(&out, i, ": ", m.md.DebugString(), "\n");
166
166
  } else {
167
- absl::StrAppend(&out, i, ": ", m.parse_status.Materialize().ToString(),
167
+ absl::StrAppend(&out, i, ": ", m.parse_status->Materialize().ToString(),
168
168
  "\n");
169
169
  }
170
170
  });
@@ -245,12 +245,12 @@ HPackTable::Memento MakeMemento(size_t i) {
245
245
  auto sm = kStaticTable[i];
246
246
  return HPackTable::Memento{
247
247
  grpc_metadata_batch::Parse(
248
- sm.key, Slice::FromStaticString(sm.value),
248
+ sm.key, Slice::FromStaticString(sm.value), true,
249
249
  strlen(sm.key) + strlen(sm.value) + hpack_constants::kEntryOverhead,
250
250
  [](absl::string_view, const Slice&) {
251
251
  abort(); // not expecting to see this
252
252
  }),
253
- HpackParseResult()};
253
+ nullptr};
254
254
  }
255
255
 
256
256
  } // namespace
@@ -23,6 +23,7 @@
23
23
 
24
24
  #include <stdint.h>
25
25
 
26
+ #include <memory>
26
27
  #include <string>
27
28
  #include <vector>
28
29
 
@@ -51,7 +52,7 @@ class HPackTable {
51
52
 
52
53
  struct Memento {
53
54
  ParsedMetadata<grpc_metadata_batch> md;
54
- HpackParseResult parse_status;
55
+ std::unique_ptr<HpackParseResult> parse_status;
55
56
  };
56
57
 
57
58
  // Lookup, but don't ref.
@@ -70,7 +71,7 @@ class HPackTable {
70
71
  }
71
72
 
72
73
  // add a table entry to the index
73
- bool Add(Memento md) GRPC_MUST_USE_RESULT;
74
+ GRPC_MUST_USE_RESULT bool Add(Memento md);
74
75
  void AddLargerThanCurrentTableSize();
75
76
 
76
77
  // Current entry count in the table.
@@ -26,6 +26,8 @@
26
26
 
27
27
  #include <memory>
28
28
 
29
+ #include "absl/container/flat_hash_map.h"
30
+ #include "absl/meta/type_traits.h"
29
31
  #include "absl/strings/string_view.h"
30
32
  #include "absl/types/optional.h"
31
33
 
@@ -46,7 +48,6 @@
46
48
  #include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
47
49
  #include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
48
50
  #include "src/core/ext/transport/chttp2/transport/http2_settings.h"
49
- #include "src/core/ext/transport/chttp2/transport/stream_map.h"
50
51
  #include "src/core/lib/channel/channel_args.h"
51
52
  #include "src/core/lib/channel/channelz.h"
52
53
  #include "src/core/lib/debug/trace.h"
@@ -278,7 +279,7 @@ struct grpc_chttp2_transport : public grpc_core::KeepsGrpcInitialized {
278
279
  grpc_chttp2_stream_list lists[STREAM_LIST_COUNT] = {};
279
280
 
280
281
  /// maps stream id to grpc_chttp2_stream objects
281
- grpc_chttp2_stream_map stream_map;
282
+ absl::flat_hash_map<uint32_t, grpc_chttp2_stream*> stream_map;
282
283
 
283
284
  grpc_closure write_action_begin_locked;
284
285
  grpc_closure write_action;
@@ -679,8 +680,9 @@ void grpc_chttp2_act_on_flowctl_action(
679
680
 
680
681
  inline grpc_chttp2_stream* grpc_chttp2_parsing_lookup_stream(
681
682
  grpc_chttp2_transport* t, uint32_t id) {
682
- return static_cast<grpc_chttp2_stream*>(
683
- grpc_chttp2_stream_map_find(&t->stream_map, id));
683
+ auto it = t->stream_map.find(id);
684
+ if (it == t->stream_map.end()) return nullptr;
685
+ return it->second;
684
686
  }
685
687
  grpc_chttp2_stream* grpc_chttp2_parsing_accept_stream(grpc_chttp2_transport* t,
686
688
  uint32_t id);
@@ -805,6 +807,8 @@ void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
805
807
  /// initialization
806
808
  void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
807
809
  bool is_client);
810
+ void grpc_chttp2_config_default_keepalive_args(
811
+ const grpc_core::ChannelArgs& channel_args, bool is_client);
808
812
 
809
813
  void grpc_chttp2_retry_initiate_ping(grpc_chttp2_transport* t);
810
814
 
@@ -25,6 +25,7 @@
25
25
  #include <string>
26
26
 
27
27
  #include "absl/base/attributes.h"
28
+ #include "absl/container/flat_hash_map.h"
28
29
  #include "absl/status/status.h"
29
30
  #include "absl/strings/str_cat.h"
30
31
  #include "absl/strings/str_format.h"
@@ -46,7 +47,6 @@
46
47
  #include "src/core/ext/transport/chttp2/transport/http2_settings.h"
47
48
  #include "src/core/ext/transport/chttp2/transport/http_trace.h"
48
49
  #include "src/core/ext/transport/chttp2/transport/internal.h"
49
- #include "src/core/ext/transport/chttp2/transport/stream_map.h"
50
50
  #include "src/core/lib/channel/channelz.h"
51
51
  #include "src/core/lib/debug/trace.h"
52
52
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
@@ -54,6 +54,7 @@
54
54
  #include "src/core/lib/gprpp/time.h"
55
55
  #include "src/core/lib/iomgr/closure.h"
56
56
  #include "src/core/lib/iomgr/combiner.h"
57
+ #include "src/core/lib/iomgr/endpoint.h"
57
58
  #include "src/core/lib/iomgr/error.h"
58
59
  #include "src/core/lib/slice/slice.h"
59
60
  #include "src/core/lib/transport/bdp_estimator.h"
@@ -64,6 +65,8 @@
64
65
 
65
66
  using grpc_core::HPackParser;
66
67
 
68
+ grpc_core::TraceFlag grpc_trace_chttp2_new_stream(false, "chttp2_new_stream");
69
+
67
70
  static grpc_error_handle init_frame_parser(grpc_chttp2_transport* t);
68
71
  static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
69
72
  int is_continuation);
@@ -620,11 +623,13 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
620
623
  t->incoming_stream_id));
621
624
  return init_header_skip_frame_parser(t, priority_type, is_eoh);
622
625
  } else if (GPR_UNLIKELY(
623
- grpc_chttp2_stream_map_size(&t->stream_map) >=
626
+ t->stream_map.size() >=
624
627
  t->settings[GRPC_ACKED_SETTINGS]
625
628
  [GRPC_CHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS])) {
626
629
  return GRPC_ERROR_CREATE("Max stream count exceeded");
627
- } else if (t->sent_goaway_state == GRPC_CHTTP2_FINAL_GOAWAY_SENT) {
630
+ } else if (t->sent_goaway_state == GRPC_CHTTP2_FINAL_GOAWAY_SENT ||
631
+ t->sent_goaway_state ==
632
+ GRPC_CHTTP2_FINAL_GOAWAY_SEND_SCHEDULED) {
628
633
  GRPC_CHTTP2_IF_TRACING(gpr_log(
629
634
  GPR_INFO,
630
635
  "transport:%p SERVER peer:%s Final GOAWAY sent. Ignoring new "
@@ -641,6 +646,12 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
641
646
  gpr_log(GPR_ERROR, "grpc_chttp2_stream not accepted"));
642
647
  return init_header_skip_frame_parser(t, priority_type, is_eoh);
643
648
  }
649
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
650
+ GRPC_TRACE_FLAG_ENABLED(grpc_trace_chttp2_new_stream)) {
651
+ gpr_log(GPR_INFO, "[t:%p fd:%d peer:%s] Accepting new stream", t,
652
+ grpc_endpoint_get_fd(t->ep),
653
+ std::string(t->peer_string.as_string_view()).c_str());
654
+ }
644
655
  if (t->channelz_socket != nullptr) {
645
656
  t->channelz_socket->RecordStreamStartedFromRemote();
646
657
  }
@@ -671,6 +682,7 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
671
682
  }
672
683
  s->parsed_trailers_only = true;
673
684
  s->trailing_metadata_buffer.Set(grpc_core::GrpcTrailersOnly(), true);
685
+ s->initial_metadata_buffer.Set(grpc_core::GrpcTrailersOnly(), true);
674
686
  incoming_metadata_buffer = &s->trailing_metadata_buffer;
675
687
  frame_type = HPackParser::LogInfo::kTrailers;
676
688
  } else {
@@ -25,6 +25,7 @@
25
25
  #include <memory>
26
26
  #include <string>
27
27
 
28
+ #include "absl/container/flat_hash_map.h"
28
29
  #include "absl/status/status.h"
29
30
  #include "absl/strings/string_view.h"
30
31
  #include "absl/types/optional.h"
@@ -50,7 +51,6 @@
50
51
  #include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
51
52
  #include "src/core/ext/transport/chttp2/transport/http2_settings.h"
52
53
  #include "src/core/ext/transport/chttp2/transport/internal.h"
53
- #include "src/core/ext/transport/chttp2/transport/stream_map.h"
54
54
  #include "src/core/lib/channel/channelz.h"
55
55
  #include "src/core/lib/debug/stats.h"
56
56
  #include "src/core/lib/debug/stats_data.h"
@@ -123,8 +123,7 @@ static void maybe_initiate_ping(grpc_chttp2_transport* t) {
123
123
  grpc_core::Duration next_allowed_ping_interval = grpc_core::Duration::Zero();
124
124
  if (t->is_client) {
125
125
  next_allowed_ping_interval =
126
- (t->keepalive_permit_without_calls == 0 &&
127
- grpc_chttp2_stream_map_size(&t->stream_map) == 0)
126
+ (t->keepalive_permit_without_calls == 0 && t->stream_map.empty())
128
127
  ? grpc_core::Duration::Hours(2)
129
128
  : grpc_core::Duration::Seconds(
130
129
  1); // A second is added to deal with
@@ -13,6 +13,7 @@
13
13
  #include "envoy/config/accesslog/v3/accesslog.upb.h"
14
14
  #include "envoy/config/core/v3/base.upb.h"
15
15
  #include "envoy/config/route/v3/route_components.upb.h"
16
+ #include "envoy/data/accesslog/v3/accesslog.upb.h"
16
17
  #include "envoy/type/matcher/v3/metadata.upb.h"
17
18
  #include "envoy/type/v3/percent.upb.h"
18
19
  #include "google/protobuf/any.upb.h"
@@ -51,7 +52,7 @@ const upb_MiniTable envoy_config_accesslog_v3_AccessLog_msg_init = {
51
52
  })
52
53
  };
53
54
 
54
- static const upb_MiniTableSub envoy_config_accesslog_v3_AccessLogFilter_submsgs[12] = {
55
+ static const upb_MiniTableSub envoy_config_accesslog_v3_AccessLogFilter_submsgs[13] = {
55
56
  {.submsg = &envoy_config_accesslog_v3_StatusCodeFilter_msg_init},
56
57
  {.submsg = &envoy_config_accesslog_v3_DurationFilter_msg_init},
57
58
  {.submsg = &envoy_config_accesslog_v3_NotHealthCheckFilter_msg_init},
@@ -64,9 +65,10 @@ static const upb_MiniTableSub envoy_config_accesslog_v3_AccessLogFilter_submsgs[
64
65
  {.submsg = &envoy_config_accesslog_v3_GrpcStatusFilter_msg_init},
65
66
  {.submsg = &envoy_config_accesslog_v3_ExtensionFilter_msg_init},
66
67
  {.submsg = &envoy_config_accesslog_v3_MetadataFilter_msg_init},
68
+ {.submsg = &envoy_config_accesslog_v3_LogTypeFilter_msg_init},
67
69
  };
68
70
 
69
- static const upb_MiniTableField envoy_config_accesslog_v3_AccessLogFilter__fields[12] = {
71
+ static const upb_MiniTableField envoy_config_accesslog_v3_AccessLogFilter__fields[13] = {
70
72
  {1, UPB_SIZE(4, 8), -1, 0, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
71
73
  {2, UPB_SIZE(4, 8), -1, 1, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
72
74
  {3, UPB_SIZE(4, 8), -1, 2, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
@@ -79,12 +81,13 @@ static const upb_MiniTableField envoy_config_accesslog_v3_AccessLogFilter__field
79
81
  {10, UPB_SIZE(4, 8), -1, 9, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
80
82
  {11, UPB_SIZE(4, 8), -1, 10, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
81
83
  {12, UPB_SIZE(4, 8), -1, 11, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
84
+ {13, UPB_SIZE(4, 8), -1, 12, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
82
85
  };
83
86
 
84
87
  const upb_MiniTable envoy_config_accesslog_v3_AccessLogFilter_msg_init = {
85
88
  &envoy_config_accesslog_v3_AccessLogFilter_submsgs[0],
86
89
  &envoy_config_accesslog_v3_AccessLogFilter__fields[0],
87
- UPB_SIZE(8, 16), 12, kUpb_ExtMode_NonExtendable, 12, UPB_FASTTABLE_MASK(120), 0,
90
+ UPB_SIZE(8, 16), 13, kUpb_ExtMode_NonExtendable, 13, UPB_FASTTABLE_MASK(120), 0,
88
91
  UPB_FASTTABLE_INIT({
89
92
  {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
90
93
  {0x000800000100000a, &upb_pom_1bt_max64b},
@@ -99,7 +102,7 @@ const upb_MiniTable envoy_config_accesslog_v3_AccessLogFilter_msg_init = {
99
102
  {0x000800000a090052, &upb_pom_1bt_max64b},
100
103
  {0x000800000b0a005a, &upb_pom_1bt_max64b},
101
104
  {0x000800000c0b0062, &upb_pom_1bt_max64b},
102
- {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
105
+ {0x000800000d0c006a, &upb_pom_1bt_max64b},
103
106
  {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
104
107
  {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
105
108
  })
@@ -305,6 +308,23 @@ const upb_MiniTable envoy_config_accesslog_v3_MetadataFilter_msg_init = {
305
308
  })
306
309
  };
307
310
 
311
+ static const upb_MiniTableField envoy_config_accesslog_v3_LogTypeFilter__fields[2] = {
312
+ {1, UPB_SIZE(0, 8), 0, kUpb_NoSub, 5, kUpb_FieldMode_Array | kUpb_LabelFlags_IsPacked | kUpb_LabelFlags_IsAlternate | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
313
+ {2, UPB_SIZE(4, 0), 0, kUpb_NoSub, 8, kUpb_FieldMode_Scalar | (kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)},
314
+ };
315
+
316
+ const upb_MiniTable envoy_config_accesslog_v3_LogTypeFilter_msg_init = {
317
+ NULL,
318
+ &envoy_config_accesslog_v3_LogTypeFilter__fields[0],
319
+ UPB_SIZE(8, 16), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0,
320
+ UPB_FASTTABLE_INIT({
321
+ {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
322
+ {0x000800003f00000a, &upb_ppv4_1bt},
323
+ {0x000000003f000010, &upb_psb1_1bt},
324
+ {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
325
+ })
326
+ };
327
+
308
328
  static const upb_MiniTableSub envoy_config_accesslog_v3_ExtensionFilter_submsgs[1] = {
309
329
  {.submsg = &google_protobuf_Any_msg_init},
310
330
  };
@@ -326,7 +346,7 @@ const upb_MiniTable envoy_config_accesslog_v3_ExtensionFilter_msg_init = {
326
346
  })
327
347
  };
328
348
 
329
- static const upb_MiniTable *messages_layout[15] = {
349
+ static const upb_MiniTable *messages_layout[16] = {
330
350
  &envoy_config_accesslog_v3_AccessLog_msg_init,
331
351
  &envoy_config_accesslog_v3_AccessLogFilter_msg_init,
332
352
  &envoy_config_accesslog_v3_ComparisonFilter_msg_init,
@@ -341,6 +361,7 @@ static const upb_MiniTable *messages_layout[15] = {
341
361
  &envoy_config_accesslog_v3_ResponseFlagFilter_msg_init,
342
362
  &envoy_config_accesslog_v3_GrpcStatusFilter_msg_init,
343
363
  &envoy_config_accesslog_v3_MetadataFilter_msg_init,
364
+ &envoy_config_accesslog_v3_LogTypeFilter_msg_init,
344
365
  &envoy_config_accesslog_v3_ExtensionFilter_msg_init,
345
366
  };
346
367
 
@@ -348,7 +369,7 @@ const upb_MiniTableFile envoy_config_accesslog_v3_accesslog_proto_upb_file_layou
348
369
  messages_layout,
349
370
  NULL,
350
371
  NULL,
351
- 15,
372
+ 16,
352
373
  0,
353
374
  0,
354
375
  };
@@ -39,6 +39,7 @@ typedef struct envoy_config_accesslog_v3_HeaderFilter envoy_config_accesslog_v3_
39
39
  typedef struct envoy_config_accesslog_v3_ResponseFlagFilter envoy_config_accesslog_v3_ResponseFlagFilter;
40
40
  typedef struct envoy_config_accesslog_v3_GrpcStatusFilter envoy_config_accesslog_v3_GrpcStatusFilter;
41
41
  typedef struct envoy_config_accesslog_v3_MetadataFilter envoy_config_accesslog_v3_MetadataFilter;
42
+ typedef struct envoy_config_accesslog_v3_LogTypeFilter envoy_config_accesslog_v3_LogTypeFilter;
42
43
  typedef struct envoy_config_accesslog_v3_ExtensionFilter envoy_config_accesslog_v3_ExtensionFilter;
43
44
  extern const upb_MiniTable envoy_config_accesslog_v3_AccessLog_msg_init;
44
45
  extern const upb_MiniTable envoy_config_accesslog_v3_AccessLogFilter_msg_init;
@@ -54,6 +55,7 @@ extern const upb_MiniTable envoy_config_accesslog_v3_HeaderFilter_msg_init;
54
55
  extern const upb_MiniTable envoy_config_accesslog_v3_ResponseFlagFilter_msg_init;
55
56
  extern const upb_MiniTable envoy_config_accesslog_v3_GrpcStatusFilter_msg_init;
56
57
  extern const upb_MiniTable envoy_config_accesslog_v3_MetadataFilter_msg_init;
58
+ extern const upb_MiniTable envoy_config_accesslog_v3_LogTypeFilter_msg_init;
57
59
  extern const upb_MiniTable envoy_config_accesslog_v3_ExtensionFilter_msg_init;
58
60
  struct envoy_config_core_v3_RuntimeUInt32;
59
61
  struct envoy_config_route_v3_HeaderMatcher;
@@ -258,6 +260,7 @@ typedef enum {
258
260
  envoy_config_accesslog_v3_AccessLogFilter_filter_specifier_grpc_status_filter = 10,
259
261
  envoy_config_accesslog_v3_AccessLogFilter_filter_specifier_extension_filter = 11,
260
262
  envoy_config_accesslog_v3_AccessLogFilter_filter_specifier_metadata_filter = 12,
263
+ envoy_config_accesslog_v3_AccessLogFilter_filter_specifier_log_type_filter = 13,
261
264
  envoy_config_accesslog_v3_AccessLogFilter_filter_specifier_NOT_SET = 0
262
265
  } envoy_config_accesslog_v3_AccessLogFilter_filter_specifier_oneofcases;
263
266
  UPB_INLINE envoy_config_accesslog_v3_AccessLogFilter_filter_specifier_oneofcases envoy_config_accesslog_v3_AccessLogFilter_filter_specifier_case(const envoy_config_accesslog_v3_AccessLogFilter* msg) {
@@ -444,6 +447,21 @@ UPB_INLINE bool envoy_config_accesslog_v3_AccessLogFilter_has_metadata_filter(co
444
447
  const upb_MiniTableField field = {12, UPB_SIZE(4, 8), -1, 11, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
445
448
  return _upb_Message_HasNonExtensionField(msg, &field);
446
449
  }
450
+ UPB_INLINE void envoy_config_accesslog_v3_AccessLogFilter_clear_log_type_filter(envoy_config_accesslog_v3_AccessLogFilter* msg) {
451
+ const upb_MiniTableField field = {13, UPB_SIZE(4, 8), -1, 12, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
452
+ _upb_Message_ClearNonExtensionField(msg, &field);
453
+ }
454
+ UPB_INLINE const envoy_config_accesslog_v3_LogTypeFilter* envoy_config_accesslog_v3_AccessLogFilter_log_type_filter(const envoy_config_accesslog_v3_AccessLogFilter* msg) {
455
+ const envoy_config_accesslog_v3_LogTypeFilter* default_val = NULL;
456
+ const envoy_config_accesslog_v3_LogTypeFilter* ret;
457
+ const upb_MiniTableField field = {13, UPB_SIZE(4, 8), -1, 12, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
458
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
459
+ return ret;
460
+ }
461
+ UPB_INLINE bool envoy_config_accesslog_v3_AccessLogFilter_has_log_type_filter(const envoy_config_accesslog_v3_AccessLogFilter* msg) {
462
+ const upb_MiniTableField field = {13, UPB_SIZE(4, 8), -1, 12, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
463
+ return _upb_Message_HasNonExtensionField(msg, &field);
464
+ }
447
465
 
448
466
  UPB_INLINE void envoy_config_accesslog_v3_AccessLogFilter_set_status_code_filter(envoy_config_accesslog_v3_AccessLogFilter *msg, envoy_config_accesslog_v3_StatusCodeFilter* value) {
449
467
  const upb_MiniTableField field = {1, UPB_SIZE(4, 8), -1, 0, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
@@ -589,6 +607,18 @@ UPB_INLINE struct envoy_config_accesslog_v3_MetadataFilter* envoy_config_accessl
589
607
  }
590
608
  return sub;
591
609
  }
610
+ UPB_INLINE void envoy_config_accesslog_v3_AccessLogFilter_set_log_type_filter(envoy_config_accesslog_v3_AccessLogFilter *msg, envoy_config_accesslog_v3_LogTypeFilter* value) {
611
+ const upb_MiniTableField field = {13, UPB_SIZE(4, 8), -1, 12, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
612
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
613
+ }
614
+ UPB_INLINE struct envoy_config_accesslog_v3_LogTypeFilter* envoy_config_accesslog_v3_AccessLogFilter_mutable_log_type_filter(envoy_config_accesslog_v3_AccessLogFilter* msg, upb_Arena* arena) {
615
+ struct envoy_config_accesslog_v3_LogTypeFilter* sub = (struct envoy_config_accesslog_v3_LogTypeFilter*)envoy_config_accesslog_v3_AccessLogFilter_log_type_filter(msg);
616
+ if (sub == NULL) {
617
+ sub = (struct envoy_config_accesslog_v3_LogTypeFilter*)_upb_Message_New(&envoy_config_accesslog_v3_LogTypeFilter_msg_init, arena);
618
+ if (sub) envoy_config_accesslog_v3_AccessLogFilter_set_log_type_filter(msg, sub);
619
+ }
620
+ return sub;
621
+ }
592
622
 
593
623
  /* envoy.config.accesslog.v3.ComparisonFilter */
594
624
 
@@ -1531,6 +1561,119 @@ UPB_INLINE struct google_protobuf_BoolValue* envoy_config_accesslog_v3_MetadataF
1531
1561
  return sub;
1532
1562
  }
1533
1563
 
1564
+ /* envoy.config.accesslog.v3.LogTypeFilter */
1565
+
1566
+ UPB_INLINE envoy_config_accesslog_v3_LogTypeFilter* envoy_config_accesslog_v3_LogTypeFilter_new(upb_Arena* arena) {
1567
+ return (envoy_config_accesslog_v3_LogTypeFilter*)_upb_Message_New(&envoy_config_accesslog_v3_LogTypeFilter_msg_init, arena);
1568
+ }
1569
+ UPB_INLINE envoy_config_accesslog_v3_LogTypeFilter* envoy_config_accesslog_v3_LogTypeFilter_parse(const char* buf, size_t size, upb_Arena* arena) {
1570
+ envoy_config_accesslog_v3_LogTypeFilter* ret = envoy_config_accesslog_v3_LogTypeFilter_new(arena);
1571
+ if (!ret) return NULL;
1572
+ if (upb_Decode(buf, size, ret, &envoy_config_accesslog_v3_LogTypeFilter_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
1573
+ return NULL;
1574
+ }
1575
+ return ret;
1576
+ }
1577
+ UPB_INLINE envoy_config_accesslog_v3_LogTypeFilter* envoy_config_accesslog_v3_LogTypeFilter_parse_ex(const char* buf, size_t size,
1578
+ const upb_ExtensionRegistry* extreg,
1579
+ int options, upb_Arena* arena) {
1580
+ envoy_config_accesslog_v3_LogTypeFilter* ret = envoy_config_accesslog_v3_LogTypeFilter_new(arena);
1581
+ if (!ret) return NULL;
1582
+ if (upb_Decode(buf, size, ret, &envoy_config_accesslog_v3_LogTypeFilter_msg_init, extreg, options, arena) !=
1583
+ kUpb_DecodeStatus_Ok) {
1584
+ return NULL;
1585
+ }
1586
+ return ret;
1587
+ }
1588
+ UPB_INLINE char* envoy_config_accesslog_v3_LogTypeFilter_serialize(const envoy_config_accesslog_v3_LogTypeFilter* msg, upb_Arena* arena, size_t* len) {
1589
+ char* ptr;
1590
+ (void)upb_Encode(msg, &envoy_config_accesslog_v3_LogTypeFilter_msg_init, 0, arena, &ptr, len);
1591
+ return ptr;
1592
+ }
1593
+ UPB_INLINE char* envoy_config_accesslog_v3_LogTypeFilter_serialize_ex(const envoy_config_accesslog_v3_LogTypeFilter* msg, int options,
1594
+ upb_Arena* arena, size_t* len) {
1595
+ char* ptr;
1596
+ (void)upb_Encode(msg, &envoy_config_accesslog_v3_LogTypeFilter_msg_init, options, arena, &ptr, len);
1597
+ return ptr;
1598
+ }
1599
+ UPB_INLINE void envoy_config_accesslog_v3_LogTypeFilter_clear_types(envoy_config_accesslog_v3_LogTypeFilter* msg) {
1600
+ const upb_MiniTableField field = {1, UPB_SIZE(0, 8), 0, kUpb_NoSub, 5, kUpb_FieldMode_Array | kUpb_LabelFlags_IsPacked | kUpb_LabelFlags_IsAlternate | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
1601
+ _upb_Message_ClearNonExtensionField(msg, &field);
1602
+ }
1603
+ UPB_INLINE int32_t const* envoy_config_accesslog_v3_LogTypeFilter_types(const envoy_config_accesslog_v3_LogTypeFilter* msg, size_t* size) {
1604
+ const upb_MiniTableField field = {1, UPB_SIZE(0, 8), 0, kUpb_NoSub, 5, kUpb_FieldMode_Array | kUpb_LabelFlags_IsPacked | kUpb_LabelFlags_IsAlternate | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
1605
+ const upb_Array* arr = upb_Message_GetArray(msg, &field);
1606
+ if (arr) {
1607
+ if (size) *size = arr->size;
1608
+ return (int32_t const*)_upb_array_constptr(arr);
1609
+ } else {
1610
+ if (size) *size = 0;
1611
+ return NULL;
1612
+ }
1613
+ }
1614
+ UPB_INLINE const upb_Array* _envoy_config_accesslog_v3_LogTypeFilter_types_upb_array(const envoy_config_accesslog_v3_LogTypeFilter* msg, size_t* size) {
1615
+ const upb_MiniTableField field = {1, UPB_SIZE(0, 8), 0, kUpb_NoSub, 5, kUpb_FieldMode_Array | kUpb_LabelFlags_IsPacked | kUpb_LabelFlags_IsAlternate | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
1616
+ const upb_Array* arr = upb_Message_GetArray(msg, &field);
1617
+ if (size) {
1618
+ *size = arr ? arr->size : 0;
1619
+ }
1620
+ return arr;
1621
+ }
1622
+ UPB_INLINE upb_Array* _envoy_config_accesslog_v3_LogTypeFilter_types_mutable_upb_array(const envoy_config_accesslog_v3_LogTypeFilter* msg, size_t* size, upb_Arena* arena) {
1623
+ const upb_MiniTableField field = {1, UPB_SIZE(0, 8), 0, kUpb_NoSub, 5, kUpb_FieldMode_Array | kUpb_LabelFlags_IsPacked | kUpb_LabelFlags_IsAlternate | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
1624
+ upb_Array* arr = upb_Message_GetOrCreateMutableArray(
1625
+ (upb_Message*)msg, &field, arena);
1626
+ if (size) {
1627
+ *size = arr ? arr->size : 0;
1628
+ }
1629
+ return arr;
1630
+ }
1631
+ UPB_INLINE bool envoy_config_accesslog_v3_LogTypeFilter_has_types(const envoy_config_accesslog_v3_LogTypeFilter* msg) {
1632
+ size_t size;
1633
+ envoy_config_accesslog_v3_LogTypeFilter_types(msg, &size);
1634
+ return size != 0;
1635
+ }
1636
+ UPB_INLINE void envoy_config_accesslog_v3_LogTypeFilter_clear_exclude(envoy_config_accesslog_v3_LogTypeFilter* msg) {
1637
+ const upb_MiniTableField field = {2, UPB_SIZE(4, 0), 0, kUpb_NoSub, 8, kUpb_FieldMode_Scalar | (kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
1638
+ _upb_Message_ClearNonExtensionField(msg, &field);
1639
+ }
1640
+ UPB_INLINE bool envoy_config_accesslog_v3_LogTypeFilter_exclude(const envoy_config_accesslog_v3_LogTypeFilter* msg) {
1641
+ bool default_val = false;
1642
+ bool ret;
1643
+ const upb_MiniTableField field = {2, UPB_SIZE(4, 0), 0, kUpb_NoSub, 8, kUpb_FieldMode_Scalar | (kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
1644
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
1645
+ return ret;
1646
+ }
1647
+
1648
+ UPB_INLINE int32_t* envoy_config_accesslog_v3_LogTypeFilter_mutable_types(envoy_config_accesslog_v3_LogTypeFilter* msg, size_t* size) {
1649
+ upb_MiniTableField field = {1, UPB_SIZE(0, 8), 0, kUpb_NoSub, 5, kUpb_FieldMode_Array | kUpb_LabelFlags_IsPacked | kUpb_LabelFlags_IsAlternate | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
1650
+ upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
1651
+ if (arr) {
1652
+ if (size) *size = arr->size;
1653
+ return (int32_t*)_upb_array_ptr(arr);
1654
+ } else {
1655
+ if (size) *size = 0;
1656
+ return NULL;
1657
+ }
1658
+ }
1659
+ UPB_INLINE int32_t* envoy_config_accesslog_v3_LogTypeFilter_resize_types(envoy_config_accesslog_v3_LogTypeFilter* msg, size_t size, upb_Arena* arena) {
1660
+ upb_MiniTableField field = {1, UPB_SIZE(0, 8), 0, kUpb_NoSub, 5, kUpb_FieldMode_Array | kUpb_LabelFlags_IsPacked | kUpb_LabelFlags_IsAlternate | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
1661
+ return (int32_t*)upb_Message_ResizeArray(msg, &field, size, arena);
1662
+ }
1663
+ UPB_INLINE bool envoy_config_accesslog_v3_LogTypeFilter_add_types(envoy_config_accesslog_v3_LogTypeFilter* msg, int32_t val, upb_Arena* arena) {
1664
+ upb_MiniTableField field = {1, UPB_SIZE(0, 8), 0, kUpb_NoSub, 5, kUpb_FieldMode_Array | kUpb_LabelFlags_IsPacked | kUpb_LabelFlags_IsAlternate | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
1665
+ upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
1666
+ if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
1667
+ return false;
1668
+ }
1669
+ _upb_Array_Set(arr, arr->size - 1, &val, sizeof(val));
1670
+ return true;
1671
+ }
1672
+ UPB_INLINE void envoy_config_accesslog_v3_LogTypeFilter_set_exclude(envoy_config_accesslog_v3_LogTypeFilter *msg, bool value) {
1673
+ const upb_MiniTableField field = {2, UPB_SIZE(4, 0), 0, kUpb_NoSub, 8, kUpb_FieldMode_Scalar | (kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
1674
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
1675
+ }
1676
+
1534
1677
  /* envoy.config.accesslog.v3.ExtensionFilter */
1535
1678
 
1536
1679
  UPB_INLINE envoy_config_accesslog_v3_ExtensionFilter* envoy_config_accesslog_v3_ExtensionFilter_new(upb_Arena* arena) {
@@ -205,13 +205,7 @@ const upb_MiniTable envoy_config_core_v3_ExtensionConfigSource_msg_init = {
205
205
  })
206
206
  };
207
207
 
208
- const upb_MiniTable envoy_config_core_v3_RestSubscription_msg_init = {
209
- NULL,
210
- NULL,
211
- 0, 0, kUpb_ExtMode_NonExtendable, 0, UPB_FASTTABLE_MASK(255), 0,
212
- };
213
-
214
- static const upb_MiniTable *messages_layout[8] = {
208
+ static const upb_MiniTable *messages_layout[7] = {
215
209
  &envoy_config_core_v3_ApiConfigSource_msg_init,
216
210
  &envoy_config_core_v3_AggregatedConfigSource_msg_init,
217
211
  &envoy_config_core_v3_SelfConfigSource_msg_init,
@@ -219,14 +213,13 @@ static const upb_MiniTable *messages_layout[8] = {
219
213
  &envoy_config_core_v3_PathConfigSource_msg_init,
220
214
  &envoy_config_core_v3_ConfigSource_msg_init,
221
215
  &envoy_config_core_v3_ExtensionConfigSource_msg_init,
222
- &envoy_config_core_v3_RestSubscription_msg_init,
223
216
  };
224
217
 
225
218
  const upb_MiniTableFile envoy_config_core_v3_config_source_proto_upb_file_layout = {
226
219
  messages_layout,
227
220
  NULL,
228
221
  NULL,
229
- 8,
222
+ 7,
230
223
  0,
231
224
  0,
232
225
  };