• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2022 gRPC authors.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15load(
16    "//bazel:grpc_build_system.bzl",
17    "grpc_cc_library",
18    "grpc_cc_proto_library",
19    "grpc_generate_one_off_internal_targets",
20    "grpc_internal_proto_library",
21    "grpc_upb_proto_library",
22    "grpc_upb_proto_reflection_library",
23)
24
25licenses(["reciprocal"])
26
27package(
28    default_visibility = ["//:__subpackages__"],
29    features = [
30        "layering_check",
31    ],
32)
33
34config_setting(
35    name = "enable_latent_see",
36    values = {"define": "GRPC_ENABLE_LATENT_SEE=1"},
37)
38
39# This is needed as a transitionary mechanism to build the src/core targets in
40# the top-level BUILD file that have not yet been moved here. Should go away
41# once the transition is complete.
42exports_files(
43    glob(["**"]),
44    visibility = ["//:__subpackages__"],
45)
46
47grpc_cc_library(
48    name = "channel_fwd",
49    hdrs = [
50        "lib/channel/channel_fwd.h",
51    ],
52    language = "c++",
53)
54
55grpc_cc_library(
56    name = "dump_args",
57    srcs = [
58        "util/dump_args.cc",
59    ],
60    hdrs = [
61        "util/dump_args.h",
62    ],
63    external_deps = [
64        "absl/functional:any_invocable",
65        "absl/log:check",
66        "absl/strings",
67        "absl/strings:str_format",
68    ],
69    language = "c++",
70)
71
72grpc_cc_library(
73    name = "slice_cast",
74    hdrs = [
75        "//:include/grpc/event_engine/internal/slice_cast.h",
76    ],
77)
78
79grpc_cc_library(
80    name = "event_engine_extensions",
81    hdrs = [
82        "lib/event_engine/extensions/can_track_errors.h",
83        "lib/event_engine/extensions/chaotic_good_extension.h",
84        "lib/event_engine/extensions/supports_fd.h",
85        "lib/event_engine/extensions/tcp_trace.h",
86    ],
87    external_deps = [
88        "absl/status:statusor",
89        "absl/functional:any_invocable",
90        "absl/strings",
91    ],
92    visibility = [
93        "@grpc:event_engine_base_hdrs",
94    ],
95    deps = [
96        ":memory_quota",
97        ":slice_buffer",
98        "//:event_engine_base_hdrs",
99        "//:gpr_platform",
100        "//:tcp_tracer",
101    ],
102)
103
104grpc_cc_library(
105    name = "event_engine_common",
106    srcs = [
107        "lib/event_engine/event_engine.cc",
108        "lib/event_engine/resolved_address.cc",
109        "lib/event_engine/slice.cc",
110        "lib/event_engine/slice_buffer.cc",
111    ],
112    hdrs = [
113        "lib/event_engine/extensions/can_track_errors.h",
114        "lib/event_engine/handle_containers.h",
115        "lib/event_engine/resolved_address_internal.h",
116        "//:include/grpc/event_engine/slice.h",
117        "//:include/grpc/event_engine/slice_buffer.h",
118    ],
119    external_deps = [
120        "absl/container:flat_hash_set",
121        "absl/hash",
122        "absl/log:check",
123        "absl/strings",
124        "absl/utility",
125    ],
126    deps = [
127        "resolved_address",
128        "slice",
129        "slice_buffer",
130        "slice_cast",
131        "slice_refcount",
132        "//:event_engine_base_hdrs",
133        "//:gpr",
134        "//:gpr_platform",
135    ],
136)
137
138grpc_cc_library(
139    name = "transport_framing_endpoint_extension",
140    hdrs = [
141        "lib/transport/transport_framing_endpoint_extension.h",
142    ],
143    external_deps = [
144        "absl/functional:any_invocable",
145        "absl/strings",
146    ],
147    deps = [
148        "slice_buffer",
149        "//:event_engine_base_hdrs",
150        "//:gpr_platform",
151    ],
152)
153
154grpc_cc_library(
155    name = "latent_see",
156    srcs = [
157        "util/latent_see.cc",
158    ],
159    hdrs = [
160        "util/latent_see.h",
161    ],
162    defines = select({
163        ":enable_latent_see": ["GRPC_ENABLE_LATENT_SEE"],
164        "//conditions:default": [],
165    }),
166    external_deps = [
167        "absl/base:core_headers",
168        "absl/functional:any_invocable",
169        "absl/functional:function_ref",
170        "absl/log",
171        "absl/strings",
172        "absl/types:optional",
173    ],
174    visibility = ["@grpc:latent_see"],
175    deps = [
176        "per_cpu",
177        "ring_buffer",
178        "//:gpr",
179    ],
180)
181
182grpc_cc_library(
183    name = "ring_buffer",
184    srcs = [],
185    hdrs = [
186        "util/ring_buffer.h",
187    ],
188    external_deps = [
189        "absl/types:optional",
190    ],
191    deps = [
192        "//:gpr_platform",
193    ],
194)
195
196grpc_cc_library(
197    name = "transport_fwd",
198    hdrs = [
199        "lib/transport/transport_fwd.h",
200    ],
201    language = "c++",
202)
203
204grpc_cc_library(
205    name = "server_call_tracer_filter",
206    srcs = [
207        "server/server_call_tracer_filter.cc",
208    ],
209    hdrs = [
210        "server/server_call_tracer_filter.h",
211    ],
212    external_deps = [
213        "absl/status",
214        "absl/status:statusor",
215    ],
216    language = "c++",
217    visibility = ["@grpc:alt_grpc_base_legacy"],
218    deps = [
219        "arena_promise",
220        "call_finalization",
221        "cancel_callback",
222        "channel_args",
223        "channel_fwd",
224        "channel_stack_type",
225        "context",
226        "latent_see",
227        "map",
228        "pipe",
229        "//:call_tracer",
230        "//:config",
231        "//:gpr_platform",
232        "//:grpc_base",
233    ],
234)
235
236grpc_cc_library(
237    name = "atomic_utils",
238    language = "c++",
239    public_hdrs = ["util/atomic_utils.h"],
240    deps = ["//:gpr"],
241)
242
243grpc_cc_library(
244    name = "metadata_compression_traits",
245    hdrs = [
246        "lib/transport/metadata_compression_traits.h",
247    ],
248    deps = ["//:gpr_platform"],
249)
250
251grpc_cc_library(
252    name = "metadata_info",
253    srcs = ["lib/transport/metadata_info.cc"],
254    hdrs = ["lib/transport/metadata_info.h"],
255    deps = [
256        "channel_args",
257        "hpack_constants",
258        "metadata_batch",
259        "slice",
260        "//:call_tracer",
261        "//:gpr_platform",
262        "//:grpc_base",
263    ],
264)
265
266grpc_cc_library(
267    name = "experiments",
268    srcs = [
269        "lib/experiments/config.cc",
270        "lib/experiments/experiments.cc",
271    ],
272    hdrs = [
273        "lib/experiments/config.h",
274        "lib/experiments/experiments.h",
275    ],
276    defines = select(
277        {
278            "//:grpc_experiments_are_final": ["GRPC_EXPERIMENTS_ARE_FINAL"],
279            "//conditions:default": [],
280        },
281    ),
282    external_deps = [
283        "absl/functional:any_invocable",
284        "absl/log:check",
285        "absl/log:log",
286        "absl/strings",
287    ],
288    language = "c++",
289    tags = ["nofixdeps"],
290    visibility = ["@grpc:grpc_experiments"],
291    deps = [
292        "no_destruct",
293        "//:config_vars",
294        "//:gpr",
295    ],
296)
297
298grpc_cc_library(
299    name = "init_internally",
300    srcs = ["lib/surface/init_internally.cc"],
301    hdrs = ["lib/surface/init_internally.h"],
302    deps = ["//:gpr_platform"],
303)
304
305grpc_cc_library(
306    name = "useful",
307    hdrs = ["util/useful.h"],
308    external_deps = [
309        "absl/log:check",
310        "absl/numeric:bits",
311        "absl/strings",
312        "absl/types:variant",
313    ],
314    language = "c++",
315    visibility = ["@grpc:useful"],
316    deps = ["//:gpr_platform"],
317)
318
319grpc_cc_library(
320    name = "unique_ptr_with_bitset",
321    hdrs = ["util/unique_ptr_with_bitset.h"],
322    external_deps = [
323        "absl/log:check",
324        "absl/numeric:bits",
325    ],
326    language = "c++",
327    deps = ["//:gpr_platform"],
328)
329
330grpc_cc_library(
331    name = "examine_stack",
332    srcs = [
333        "util/examine_stack.cc",
334    ],
335    hdrs = [
336        "util/examine_stack.h",
337    ],
338    external_deps = ["absl/types:optional"],
339    deps = ["//:gpr_platform"],
340)
341
342grpc_cc_library(
343    name = "gpr_atm",
344    language = "c++",
345    public_hdrs = [
346        "//:include/grpc/support/atm.h",
347        "//:include/grpc/support/atm_gcc_atomic.h",
348        "//:include/grpc/support/atm_gcc_sync.h",
349        "//:include/grpc/support/atm_windows.h",
350        "//:include/grpc/impl/codegen/atm.h",
351        "//:include/grpc/impl/codegen/atm_gcc_atomic.h",
352        "//:include/grpc/impl/codegen/atm_gcc_sync.h",
353        "//:include/grpc/impl/codegen/atm_windows.h",
354    ],
355    deps = [
356        "useful",
357        "//:gpr_platform",
358    ],
359)
360
361grpc_cc_library(
362    name = "gpr_manual_constructor",
363    srcs = [],
364    hdrs = [
365        "util/manual_constructor.h",
366    ],
367    language = "c++",
368    deps = [
369        "construct_destruct",
370        "//:gpr_platform",
371    ],
372)
373
374grpc_cc_library(
375    name = "gpr_spinlock",
376    srcs = [],
377    hdrs = [
378        "util/spinlock.h",
379    ],
380    language = "c++",
381    deps = [
382        "gpr_atm",
383        "//:gpr_platform",
384    ],
385)
386
387grpc_cc_library(
388    name = "env",
389    srcs = [
390        "util/linux/env.cc",
391        "util/posix/env.cc",
392        "util/windows/env.cc",
393    ],
394    hdrs = [
395        "util/env.h",
396    ],
397    external_deps = ["absl/types:optional"],
398    deps = [
399        "tchar",
400        "//:gpr_platform",
401    ],
402)
403
404grpc_cc_library(
405    name = "directory_reader",
406    srcs = [
407        "util/posix/directory_reader.cc",
408        "util/windows/directory_reader.cc",
409    ],
410    hdrs = [
411        "util/directory_reader.h",
412    ],
413    external_deps = [
414        "absl/functional:function_ref",
415        "absl/status",
416        "absl/status:statusor",
417        "absl/strings",
418    ],
419    deps = [
420        "//:gpr",
421        "//:gpr_platform",
422    ],
423)
424
425grpc_cc_library(
426    name = "chunked_vector",
427    hdrs = ["util/chunked_vector.h"],
428    external_deps = [
429        "absl/log:check",
430    ],
431    deps = [
432        "arena",
433        "gpr_manual_constructor",
434        "//:gpr",
435    ],
436)
437
438grpc_cc_library(
439    name = "construct_destruct",
440    language = "c++",
441    public_hdrs = ["util/construct_destruct.h"],
442    deps = ["//:gpr_platform"],
443)
444
445grpc_cc_library(
446    name = "status_helper",
447    srcs = [
448        "util/status_helper.cc",
449    ],
450    hdrs = [
451        "util/status_helper.h",
452    ],
453    external_deps = [
454        "absl/log:check",
455        "absl/status",
456        "absl/strings",
457        "absl/strings:cord",
458        "absl/time",
459        "absl/types:optional",
460        "@com_google_protobuf//upb:base",
461        "@com_google_protobuf//upb:mem",
462    ],
463    language = "c++",
464    deps = [
465        "percent_encoding",
466        "slice",
467        "//:debug_location",
468        "//:google_rpc_status_upb",
469        "//:gpr",
470        "//:protobuf_any_upb",
471    ],
472)
473
474grpc_cc_library(
475    name = "unique_type_name",
476    hdrs = ["util/unique_type_name.h"],
477    external_deps = ["absl/strings"],
478    language = "c++",
479    deps = [
480        "useful",
481        "//:gpr_platform",
482    ],
483)
484
485grpc_cc_library(
486    name = "validation_errors",
487    srcs = [
488        "util/validation_errors.cc",
489    ],
490    hdrs = [
491        "util/validation_errors.h",
492    ],
493    external_deps = [
494        "absl/log:log",
495        "absl/status",
496        "absl/strings",
497    ],
498    language = "c++",
499    deps = ["//:gpr"],
500)
501
502grpc_cc_library(
503    name = "overload",
504    language = "c++",
505    public_hdrs = ["util/overload.h"],
506    deps = ["//:gpr_platform"],
507)
508
509grpc_cc_library(
510    name = "match",
511    external_deps = ["absl/types:variant"],
512    language = "c++",
513    public_hdrs = ["util/match.h"],
514    deps = [
515        "overload",
516        "//:gpr_platform",
517    ],
518)
519
520grpc_cc_library(
521    name = "table",
522    external_deps = [
523        "absl/meta:type_traits",
524        "absl/utility",
525    ],
526    language = "c++",
527    public_hdrs = ["util/table.h"],
528    deps = [
529        "bitset",
530        "//:gpr_platform",
531    ],
532)
533
534grpc_cc_library(
535    name = "packed_table",
536    hdrs = ["util/packed_table.h"],
537    language = "c++",
538    deps = [
539        "sorted_pack",
540        "table",
541        "//:gpr_platform",
542    ],
543)
544
545grpc_cc_library(
546    name = "bitset",
547    language = "c++",
548    public_hdrs = ["util/bitset.h"],
549    deps = [
550        "useful",
551        "//:gpr_platform",
552    ],
553)
554
555grpc_cc_library(
556    name = "no_destruct",
557    language = "c++",
558    public_hdrs = ["util/no_destruct.h"],
559    deps = [
560        "construct_destruct",
561        "//:gpr_platform",
562    ],
563)
564
565grpc_cc_library(
566    name = "tchar",
567    srcs = [
568        "util/tchar.cc",
569    ],
570    hdrs = [
571        "util/tchar.h",
572    ],
573    deps = ["//:gpr_platform"],
574)
575
576grpc_cc_library(
577    name = "poll",
578    external_deps = [
579        "absl/log:check",
580        "absl/strings:str_format",
581        "absl/types:optional",
582    ],
583    language = "c++",
584    public_hdrs = [
585        "lib/promise/poll.h",
586    ],
587    deps = [
588        "construct_destruct",
589        "//:gpr",
590        "//:gpr_platform",
591    ],
592)
593
594grpc_cc_library(
595    name = "status_flag",
596    external_deps = [
597        "absl/log:check",
598        "absl/status",
599        "absl/status:statusor",
600        "absl/strings",
601        "absl/types:optional",
602    ],
603    language = "c++",
604    public_hdrs = [
605        "lib/promise/status_flag.h",
606    ],
607    deps = [
608        "promise_status",
609        "//:gpr",
610        "//:gpr_platform",
611    ],
612)
613
614grpc_cc_library(
615    name = "map_pipe",
616    external_deps = [
617        "absl/log:log",
618        "absl/status",
619    ],
620    language = "c++",
621    public_hdrs = [
622        "lib/promise/map_pipe.h",
623    ],
624    deps = [
625        "for_each",
626        "map",
627        "pipe",
628        "poll",
629        "promise_factory",
630        "try_seq",
631        "//:gpr",
632        "//:gpr_platform",
633    ],
634)
635
636grpc_cc_library(
637    name = "1999",
638    srcs = [
639        "lib/promise/party.cc",
640    ],
641    hdrs = [
642        "lib/promise/party.h",
643    ],
644    external_deps = [
645        "absl/base:core_headers",
646        "absl/log:check",
647        "absl/log:log",
648        "absl/strings",
649        "absl/strings:str_format",
650        "absl/random",
651    ],
652    language = "c++",
653    deps = [
654        "activity",
655        "arena",
656        "construct_destruct",
657        "context",
658        "event_engine_context",
659        "latent_see",
660        "poll",
661        "promise_factory",
662        "ref_counted",
663        "useful",
664        "//:event_engine_base_hdrs",
665        "//:exec_ctx",
666        "//:gpr",
667        "//:grpc_trace",
668        "//:ref_counted_ptr",
669    ],
670)
671
672grpc_cc_library(
673    name = "context",
674    external_deps = [
675        "absl/log:check",
676        "absl/meta:type_traits",
677    ],
678    language = "c++",
679    public_hdrs = [
680        "lib/promise/context.h",
681    ],
682    deps = [
683        "down_cast",
684        "//:gpr",
685    ],
686)
687
688grpc_cc_library(
689    name = "map",
690    external_deps = [
691        "absl/status",
692        "absl/status:statusor",
693        "absl/strings",
694    ],
695    language = "c++",
696    public_hdrs = ["lib/promise/map.h"],
697    deps = [
698        "poll",
699        "promise_like",
700        "//:gpr_platform",
701    ],
702)
703
704grpc_cc_library(
705    name = "promise_variant",
706    external_deps = [
707        "absl/types:variant",
708    ],
709    language = "c++",
710    public_hdrs = ["lib/promise/detail/promise_variant.h"],
711    deps = [
712    ],
713)
714
715grpc_cc_library(
716    name = "match_promise",
717    external_deps = [
718        "absl/strings",
719        "absl/types:variant",
720    ],
721    language = "c++",
722    public_hdrs = ["lib/promise/match_promise.h"],
723    deps = [
724        "overload",
725        "poll",
726        "promise_factory",
727        "promise_like",
728        "promise_variant",
729        "//:gpr_platform",
730    ],
731)
732
733grpc_cc_library(
734    name = "sleep",
735    srcs = [
736        "lib/promise/sleep.cc",
737    ],
738    hdrs = [
739        "lib/promise/sleep.h",
740    ],
741    external_deps = ["absl/status"],
742    deps = [
743        "activity",
744        "context",
745        "event_engine_context",
746        "poll",
747        "time",
748        "//:event_engine_base_hdrs",
749        "//:exec_ctx",
750        "//:gpr",
751    ],
752)
753
754grpc_cc_library(
755    name = "wait_for_callback",
756    hdrs = [
757        "lib/promise/wait_for_callback.h",
758    ],
759    external_deps = ["absl/base:core_headers"],
760    deps = [
761        "activity",
762        "poll",
763        "//:gpr",
764    ],
765)
766
767grpc_cc_library(
768    name = "arena_promise",
769    external_deps = ["absl/meta:type_traits"],
770    language = "c++",
771    public_hdrs = [
772        "lib/promise/arena_promise.h",
773    ],
774    deps = [
775        "arena",
776        "construct_destruct",
777        "context",
778        "poll",
779        "//:gpr_platform",
780    ],
781)
782
783grpc_cc_library(
784    name = "promise_like",
785    external_deps = [
786        "absl/functional:any_invocable",
787        "absl/meta:type_traits",
788    ],
789    language = "c++",
790    public_hdrs = [
791        "lib/promise/detail/promise_like.h",
792    ],
793    deps = [
794        "poll",
795        "//:gpr_platform",
796    ],
797)
798
799grpc_cc_library(
800    name = "cancel_callback",
801    language = "c++",
802    public_hdrs = [
803        "lib/promise/cancel_callback.h",
804    ],
805    deps = [
806        "arena",
807        "context",
808        "promise_like",
809        "//:gpr_platform",
810    ],
811)
812
813grpc_cc_library(
814    name = "promise_factory",
815    external_deps = ["absl/meta:type_traits"],
816    language = "c++",
817    public_hdrs = [
818        "lib/promise/detail/promise_factory.h",
819    ],
820    deps = [
821        "promise_like",
822        "//:gpr_platform",
823    ],
824)
825
826grpc_cc_library(
827    name = "if",
828    external_deps = [
829        "absl/status:statusor",
830        "absl/types:variant",
831    ],
832    language = "c++",
833    public_hdrs = ["lib/promise/if.h"],
834    deps = [
835        "construct_destruct",
836        "poll",
837        "promise_factory",
838        "promise_like",
839        "//:gpr_platform",
840    ],
841)
842
843grpc_cc_library(
844    name = "switch",
845    language = "c++",
846    public_hdrs = ["lib/promise/switch.h"],
847    deps = [
848        "if",
849        "promise_factory",
850        "promise_variant",
851        "//:gpr",
852        "//:gpr_platform",
853    ],
854)
855
856grpc_cc_library(
857    name = "promise_status",
858    external_deps = [
859        "absl/log:check",
860        "absl/status",
861        "absl/status:statusor",
862    ],
863    language = "c++",
864    public_hdrs = [
865        "lib/promise/detail/status.h",
866    ],
867    deps = ["//:gpr_platform"],
868)
869
870grpc_cc_library(
871    name = "race",
872    language = "c++",
873    public_hdrs = ["lib/promise/race.h"],
874    deps = ["//:gpr_platform"],
875)
876
877grpc_cc_library(
878    name = "prioritized_race",
879    language = "c++",
880    public_hdrs = ["lib/promise/prioritized_race.h"],
881    deps = ["//:gpr_platform"],
882)
883
884grpc_cc_library(
885    name = "loop",
886    external_deps = [
887        "absl/status",
888        "absl/status:statusor",
889        "absl/types:variant",
890    ],
891    language = "c++",
892    public_hdrs = [
893        "lib/promise/loop.h",
894    ],
895    deps = [
896        "construct_destruct",
897        "poll",
898        "promise_factory",
899        "//:gpr_platform",
900        "//:grpc_trace",
901    ],
902)
903
904grpc_cc_library(
905    name = "join_state",
906    external_deps = [
907        "absl/log:check",
908        "absl/log:log",
909    ],
910    language = "c++",
911    public_hdrs = [
912        "lib/promise/detail/join_state.h",
913    ],
914    deps = [
915        "bitset",
916        "construct_destruct",
917        "poll",
918        "promise_like",
919        "//:gpr",
920        "//:grpc_trace",
921    ],
922)
923
924grpc_cc_library(
925    name = "join",
926    external_deps = ["absl/meta:type_traits"],
927    language = "c++",
928    public_hdrs = [
929        "lib/promise/join.h",
930    ],
931    deps = [
932        "join_state",
933        "map",
934        "promise_factory",
935        "//:gpr_platform",
936    ],
937)
938
939grpc_cc_library(
940    name = "try_join",
941    external_deps = [
942        "absl/log:check",
943        "absl/meta:type_traits",
944        "absl/status",
945        "absl/status:statusor",
946    ],
947    language = "c++",
948    public_hdrs = [
949        "lib/promise/try_join.h",
950    ],
951    deps = [
952        "join_state",
953        "map",
954        "poll",
955        "status_flag",
956        "//:gpr_platform",
957    ],
958)
959
960grpc_cc_library(
961    name = "all_ok",
962    external_deps = [
963        "absl/meta:type_traits",
964        "absl/status",
965        "absl/status:statusor",
966    ],
967    language = "c++",
968    public_hdrs = [
969        "lib/promise/all_ok.h",
970    ],
971    deps = [
972        "join_state",
973        "map",
974        "poll",
975        "promise_factory",
976        "status_flag",
977        "//:gpr_platform",
978    ],
979)
980
981grpc_cc_library(
982    name = "basic_seq",
983    language = "c++",
984    public_hdrs = [
985        "lib/promise/detail/basic_seq.h",
986    ],
987    deps = [
988        "construct_destruct",
989        "poll",
990        "promise_factory",
991        "//:gpr_platform",
992    ],
993)
994
995grpc_cc_library(
996    name = "seq_state",
997    external_deps = [
998        "absl/base:core_headers",
999        "absl/log:check",
1000        "absl/log:log",
1001        "absl/strings",
1002    ],
1003    language = "c++",
1004    public_hdrs = [
1005        "lib/promise/detail/seq_state.h",
1006    ],
1007    deps = [
1008        "construct_destruct",
1009        "poll",
1010        "promise_factory",
1011        "promise_like",
1012        "//:debug_location",
1013        "//:gpr",
1014        "//:grpc_trace",
1015    ],
1016)
1017
1018grpc_cc_library(
1019    name = "seq",
1020    external_deps = ["absl/log:log"],
1021    language = "c++",
1022    public_hdrs = [
1023        "lib/promise/seq.h",
1024    ],
1025    deps = [
1026        "basic_seq",
1027        "poll",
1028        "promise_like",
1029        "seq_state",
1030        "//:debug_location",
1031        "//:gpr_platform",
1032    ],
1033)
1034
1035grpc_cc_library(
1036    name = "try_seq",
1037    external_deps = [
1038        "absl/log:check",
1039        "absl/meta:type_traits",
1040        "absl/status",
1041        "absl/status:statusor",
1042    ],
1043    language = "c++",
1044    public_hdrs = [
1045        "lib/promise/try_seq.h",
1046    ],
1047    deps = [
1048        "basic_seq",
1049        "poll",
1050        "promise_like",
1051        "promise_status",
1052        "seq_state",
1053        "status_flag",
1054        "//:gpr_platform",
1055    ],
1056)
1057
1058grpc_cc_library(
1059    name = "activity",
1060    srcs = [
1061        "lib/promise/activity.cc",
1062    ],
1063    external_deps = [
1064        "absl/base:core_headers",
1065        "absl/log:check",
1066        "absl/status",
1067        "absl/strings",
1068        "absl/strings:str_format",
1069        "absl/types:optional",
1070    ],
1071    language = "c++",
1072    public_hdrs = [
1073        "lib/promise/activity.h",
1074    ],
1075    deps = [
1076        "atomic_utils",
1077        "construct_destruct",
1078        "context",
1079        "dump_args",
1080        "latent_see",
1081        "no_destruct",
1082        "poll",
1083        "promise_factory",
1084        "promise_status",
1085        "//:gpr",
1086        "//:grpc_trace",
1087        "//:orphanable",
1088    ],
1089)
1090
1091grpc_cc_library(
1092    name = "exec_ctx_wakeup_scheduler",
1093    hdrs = [
1094        "lib/promise/exec_ctx_wakeup_scheduler.h",
1095    ],
1096    external_deps = ["absl/status"],
1097    language = "c++",
1098    deps = [
1099        "closure",
1100        "error",
1101        "//:debug_location",
1102        "//:exec_ctx",
1103        "//:gpr_platform",
1104    ],
1105)
1106
1107grpc_cc_library(
1108    name = "event_engine_wakeup_scheduler",
1109    hdrs = [
1110        "lib/promise/event_engine_wakeup_scheduler.h",
1111    ],
1112    external_deps = ["absl/log:check"],
1113    language = "c++",
1114    deps = [
1115        "//:event_engine_base_hdrs",
1116        "//:exec_ctx",
1117        "//:gpr_platform",
1118    ],
1119)
1120
1121grpc_cc_library(
1122    name = "wait_set",
1123    external_deps = [
1124        "absl/container:flat_hash_set",
1125        "absl/hash",
1126    ],
1127    language = "c++",
1128    public_hdrs = [
1129        "lib/promise/wait_set.h",
1130    ],
1131    deps = [
1132        "activity",
1133        "poll",
1134        "//:gpr_platform",
1135    ],
1136)
1137
1138grpc_cc_library(
1139    name = "latch",
1140    external_deps = [
1141        "absl/log:check",
1142        "absl/log:log",
1143        "absl/strings",
1144    ],
1145    language = "c++",
1146    public_hdrs = [
1147        "lib/promise/latch.h",
1148    ],
1149    deps = [
1150        "activity",
1151        "poll",
1152        "//:gpr",
1153        "//:grpc_trace",
1154    ],
1155)
1156
1157grpc_cc_library(
1158    name = "inter_activity_latch",
1159    external_deps = [
1160        "absl/base:core_headers",
1161        "absl/log:log",
1162        "absl/strings",
1163    ],
1164    language = "c++",
1165    public_hdrs = [
1166        "lib/promise/inter_activity_latch.h",
1167    ],
1168    deps = [
1169        "activity",
1170        "poll",
1171        "wait_set",
1172        "//:gpr",
1173        "//:grpc_trace",
1174    ],
1175)
1176
1177grpc_cc_library(
1178    name = "interceptor_list",
1179    hdrs = [
1180        "lib/promise/interceptor_list.h",
1181    ],
1182    external_deps = [
1183        "absl/log:check",
1184        "absl/log:log",
1185        "absl/strings",
1186        "absl/strings:str_format",
1187        "absl/types:optional",
1188    ],
1189    deps = [
1190        "arena",
1191        "construct_destruct",
1192        "context",
1193        "poll",
1194        "promise_factory",
1195        "//:debug_location",
1196        "//:gpr",
1197    ],
1198)
1199
1200grpc_cc_library(
1201    name = "pipe",
1202    hdrs = [
1203        "lib/promise/pipe.h",
1204    ],
1205    external_deps = [
1206        "absl/log:check",
1207        "absl/log:log",
1208        "absl/strings",
1209        "absl/types:optional",
1210        "absl/types:variant",
1211    ],
1212    language = "c++",
1213    deps = [
1214        "activity",
1215        "arena",
1216        "context",
1217        "if",
1218        "interceptor_list",
1219        "map",
1220        "poll",
1221        "seq",
1222        "//:debug_location",
1223        "//:gpr",
1224        "//:ref_counted_ptr",
1225    ],
1226)
1227
1228grpc_cc_library(
1229    name = "promise_mutex",
1230    hdrs = [
1231        "lib/promise/promise_mutex.h",
1232    ],
1233    external_deps = ["absl/log:check"],
1234    language = "c++",
1235    deps = [
1236        "activity",
1237        "poll",
1238        "//:gpr",
1239    ],
1240)
1241
1242grpc_cc_library(
1243    name = "inter_activity_pipe",
1244    hdrs = [
1245        "lib/promise/inter_activity_pipe.h",
1246    ],
1247    external_deps = [
1248        "absl/base:core_headers",
1249        "absl/types:optional",
1250    ],
1251    language = "c++",
1252    deps = [
1253        "activity",
1254        "poll",
1255        "ref_counted",
1256        "//:gpr",
1257        "//:ref_counted_ptr",
1258    ],
1259)
1260
1261grpc_cc_library(
1262    name = "mpsc",
1263    hdrs = [
1264        "lib/promise/mpsc.h",
1265    ],
1266    external_deps = [
1267        "absl/base:core_headers",
1268        "absl/log:check",
1269    ],
1270    language = "c++",
1271    deps = [
1272        "activity",
1273        "dump_args",
1274        "poll",
1275        "ref_counted",
1276        "status_flag",
1277        "wait_set",
1278        "//:gpr",
1279        "//:ref_counted_ptr",
1280    ],
1281)
1282
1283grpc_cc_library(
1284    name = "observable",
1285    hdrs = [
1286        "lib/promise/observable.h",
1287    ],
1288    external_deps = [
1289        "absl/container:flat_hash_set",
1290        "absl/functional:any_invocable",
1291        "absl/log:check",
1292    ],
1293    language = "c++",
1294    deps = [
1295        "activity",
1296        "poll",
1297        "//:gpr",
1298    ],
1299)
1300
1301grpc_cc_library(
1302    name = "for_each",
1303    external_deps = [
1304        "absl/log:check",
1305        "absl/log:log",
1306        "absl/status",
1307        "absl/strings",
1308    ],
1309    language = "c++",
1310    public_hdrs = ["lib/promise/for_each.h"],
1311    deps = [
1312        "activity",
1313        "construct_destruct",
1314        "poll",
1315        "promise_factory",
1316        "promise_status",
1317        "status_flag",
1318        "//:gpr",
1319        "//:gpr_platform",
1320        "//:grpc_trace",
1321    ],
1322)
1323
1324grpc_cc_library(
1325    name = "ref_counted",
1326    external_deps = [
1327        "absl/log:check",
1328        "absl/log:log",
1329    ],
1330    language = "c++",
1331    public_hdrs = ["util/ref_counted.h"],
1332    deps = [
1333        "atomic_utils",
1334        "down_cast",
1335        "//:debug_location",
1336        "//:gpr",
1337        "//:ref_counted_ptr",
1338    ],
1339)
1340
1341grpc_cc_library(
1342    name = "dual_ref_counted",
1343    external_deps = [
1344        "absl/log:check",
1345        "absl/log:log",
1346    ],
1347    language = "c++",
1348    public_hdrs = ["util/dual_ref_counted.h"],
1349    deps = [
1350        "down_cast",
1351        "ref_counted",
1352        "//:debug_location",
1353        "//:gpr",
1354        "//:orphanable",
1355        "//:ref_counted_ptr",
1356    ],
1357)
1358
1359grpc_cc_library(
1360    name = "ref_counted_string",
1361    srcs = [
1362        "util/ref_counted_string.cc",
1363    ],
1364    hdrs = [
1365        "util/ref_counted_string.h",
1366    ],
1367    external_deps = ["absl/strings"],
1368    language = "c++",
1369    deps = [
1370        "ref_counted",
1371        "//:gpr",
1372        "//:ref_counted_ptr",
1373    ],
1374)
1375
1376grpc_cc_library(
1377    name = "uuid_v4",
1378    srcs = ["util/uuid_v4.cc"],
1379    external_deps = ["absl/strings:str_format"],
1380    language = "c++",
1381    public_hdrs = ["util/uuid_v4.h"],
1382    deps = ["//:gpr"],
1383)
1384
1385grpc_cc_library(
1386    name = "handshaker_factory",
1387    language = "c++",
1388    public_hdrs = [
1389        "handshaker/handshaker_factory.h",
1390    ],
1391    visibility = ["@grpc:alt_grpc_base_legacy"],
1392    deps = [
1393        "channel_args",
1394        "iomgr_fwd",
1395        "//:gpr_platform",
1396    ],
1397)
1398
1399grpc_cc_library(
1400    name = "handshaker_registry",
1401    srcs = [
1402        "handshaker/handshaker_registry.cc",
1403    ],
1404    language = "c++",
1405    public_hdrs = [
1406        "handshaker/handshaker_registry.h",
1407    ],
1408    visibility = ["@grpc:alt_grpc_base_legacy"],
1409    deps = [
1410        "channel_args",
1411        "handshaker_factory",
1412        "iomgr_fwd",
1413        "//:gpr_platform",
1414    ],
1415)
1416
1417grpc_cc_library(
1418    name = "tcp_connect_handshaker",
1419    srcs = [
1420        "handshaker/tcp_connect/tcp_connect_handshaker.cc",
1421    ],
1422    external_deps = [
1423        "absl/base:core_headers",
1424        "absl/functional:any_invocable",
1425        "absl/log:check",
1426        "absl/status",
1427        "absl/status:statusor",
1428        "absl/types:optional",
1429    ],
1430    language = "c++",
1431    public_hdrs = [
1432        "handshaker/tcp_connect/tcp_connect_handshaker.h",
1433    ],
1434    deps = [
1435        "channel_args",
1436        "channel_args_endpoint_config",
1437        "closure",
1438        "error",
1439        "handshaker_factory",
1440        "handshaker_registry",
1441        "iomgr_fwd",
1442        "pollset_set",
1443        "resolved_address",
1444        "slice",
1445        "//:config",
1446        "//:debug_location",
1447        "//:exec_ctx",
1448        "//:gpr",
1449        "//:grpc_base",
1450        "//:handshaker",
1451        "//:iomgr",
1452        "//:parse_address",
1453        "//:ref_counted_ptr",
1454        "//:uri",
1455    ],
1456)
1457
1458grpc_cc_library(
1459    name = "endpoint_info_handshaker",
1460    srcs = [
1461        "handshaker/endpoint_info/endpoint_info_handshaker.cc",
1462    ],
1463    hdrs = [
1464        "handshaker/endpoint_info/endpoint_info_handshaker.h",
1465    ],
1466    external_deps = [
1467        "absl/functional:any_invocable",
1468        "absl/status",
1469    ],
1470    language = "c++",
1471    deps = [
1472        "channel_args",
1473        "closure",
1474        "handshaker_factory",
1475        "handshaker_registry",
1476        "//:config",
1477        "//:debug_location",
1478        "//:exec_ctx",
1479        "//:gpr",
1480        "//:handshaker",
1481        "//:iomgr",
1482        "//:ref_counted_ptr",
1483    ],
1484)
1485
1486grpc_cc_library(
1487    name = "channel_creds_registry",
1488    hdrs = [
1489        "lib/security/credentials/channel_creds_registry.h",
1490    ],
1491    external_deps = ["absl/strings"],
1492    language = "c++",
1493    deps = [
1494        "json",
1495        "json_args",
1496        "ref_counted",
1497        "validation_errors",
1498        "//:gpr_platform",
1499        "//:ref_counted_ptr",
1500    ],
1501)
1502
1503grpc_cc_library(
1504    name = "event_engine_memory_allocator",
1505    hdrs = [
1506        "//:include/grpc/event_engine/internal/memory_allocator_impl.h",
1507        "//:include/grpc/event_engine/memory_allocator.h",
1508        "//:include/grpc/event_engine/memory_request.h",
1509    ],
1510    external_deps = ["absl/strings"],
1511    language = "c++",
1512    deps = [
1513        "slice",
1514        "//:gpr_platform",
1515    ],
1516)
1517
1518grpc_cc_library(
1519    name = "event_engine_memory_allocator_factory",
1520    hdrs = [
1521        "lib/event_engine/memory_allocator_factory.h",
1522    ],
1523    external_deps = ["absl/strings"],
1524    language = "c++",
1525    deps = [
1526        "event_engine_memory_allocator",
1527        "memory_quota",
1528        "//:gpr_platform",
1529    ],
1530)
1531
1532grpc_cc_library(
1533    name = "memory_quota",
1534    srcs = [
1535        "lib/resource_quota/memory_quota.cc",
1536    ],
1537    hdrs = [
1538        "lib/resource_quota/memory_quota.h",
1539    ],
1540    external_deps = [
1541        "absl/base:core_headers",
1542        "absl/container:flat_hash_set",
1543        "absl/log:check",
1544        "absl/log:log",
1545        "absl/status",
1546        "absl/strings",
1547        "absl/types:optional",
1548    ],
1549    deps = [
1550        "activity",
1551        "event_engine_memory_allocator",
1552        "exec_ctx_wakeup_scheduler",
1553        "experiments",
1554        "loop",
1555        "map",
1556        "periodic_update",
1557        "poll",
1558        "race",
1559        "seq",
1560        "slice_refcount",
1561        "time",
1562        "useful",
1563        "//:gpr",
1564        "//:grpc_trace",
1565        "//:orphanable",
1566        "//:ref_counted_ptr",
1567    ],
1568)
1569
1570grpc_cc_library(
1571    name = "periodic_update",
1572    srcs = [
1573        "lib/resource_quota/periodic_update.cc",
1574    ],
1575    hdrs = [
1576        "lib/resource_quota/periodic_update.h",
1577    ],
1578    external_deps = ["absl/functional:function_ref"],
1579    deps = [
1580        "time",
1581        "useful",
1582        "//:gpr_platform",
1583    ],
1584)
1585
1586grpc_cc_library(
1587    name = "arena",
1588    srcs = [
1589        "lib/resource_quota/arena.cc",
1590    ],
1591    hdrs = [
1592        "lib/resource_quota/arena.h",
1593    ],
1594    external_deps = [
1595        "absl/log:log",
1596    ],
1597    visibility = [
1598        "@grpc:alt_grpc_base_legacy",
1599    ],
1600    deps = [
1601        "construct_destruct",
1602        "context",
1603        "event_engine_memory_allocator",
1604        "memory_quota",
1605        "resource_quota",
1606        "//:gpr",
1607    ],
1608)
1609
1610grpc_cc_library(
1611    name = "thread_quota",
1612    srcs = [
1613        "lib/resource_quota/thread_quota.cc",
1614    ],
1615    hdrs = [
1616        "lib/resource_quota/thread_quota.h",
1617    ],
1618    external_deps = [
1619        "absl/base:core_headers",
1620        "absl/log:check",
1621    ],
1622    deps = [
1623        "ref_counted",
1624        "//:gpr",
1625        "//:ref_counted_ptr",
1626    ],
1627)
1628
1629grpc_cc_library(
1630    name = "connection_quota",
1631    srcs = [
1632        "lib/resource_quota/connection_quota.cc",
1633    ],
1634    hdrs = [
1635        "lib/resource_quota/connection_quota.h",
1636    ],
1637    external_deps = [
1638        "absl/base:core_headers",
1639        "absl/log:check",
1640    ],
1641    deps = [
1642        "memory_quota",
1643        "ref_counted",
1644        "//:gpr",
1645        "//:ref_counted_ptr",
1646    ],
1647)
1648
1649grpc_cc_library(
1650    name = "resource_quota",
1651    srcs = [
1652        "lib/resource_quota/resource_quota.cc",
1653    ],
1654    hdrs = [
1655        "lib/resource_quota/resource_quota.h",
1656    ],
1657    external_deps = ["absl/strings"],
1658    visibility = [
1659        "@grpc:alt_grpc_base_legacy",
1660    ],
1661    deps = [
1662        "connection_quota",
1663        "memory_quota",
1664        "ref_counted",
1665        "thread_quota",
1666        "useful",
1667        "//:channel_arg_names",
1668        "//:cpp_impl_of",
1669        "//:event_engine_base_hdrs",
1670        "//:gpr_platform",
1671        "//:ref_counted_ptr",
1672    ],
1673)
1674
1675grpc_cc_library(
1676    name = "request_buffer",
1677    srcs = [
1678        "call/request_buffer.cc",
1679    ],
1680    hdrs = [
1681        "call/request_buffer.h",
1682    ],
1683    external_deps = [
1684        "absl/strings",
1685        "absl/types:optional",
1686    ],
1687    deps = [
1688        "call_spine",
1689        "match",
1690        "message",
1691        "metadata",
1692    ],
1693)
1694
1695grpc_cc_library(
1696    name = "slice_refcount",
1697    hdrs = [
1698        "lib/slice/slice_refcount.h",
1699    ],
1700    external_deps = [
1701        "absl/log:log",
1702    ],
1703    public_hdrs = [
1704        "//:include/grpc/slice.h",
1705    ],
1706    deps = [
1707        "//:debug_location",
1708        "//:event_engine_base_hdrs",
1709        "//:gpr",
1710        "//:grpc_trace",
1711    ],
1712)
1713
1714grpc_cc_library(
1715    name = "slice",
1716    srcs = [
1717        "lib/slice/slice.cc",
1718        "lib/slice/slice_string_helpers.cc",
1719    ],
1720    hdrs = [
1721        "lib/slice/slice.h",
1722        "lib/slice/slice_internal.h",
1723        "lib/slice/slice_string_helpers.h",
1724        "//:include/grpc/slice.h",
1725    ],
1726    external_deps = [
1727        "absl/hash",
1728        "absl/log:check",
1729        "absl/strings",
1730    ],
1731    visibility = ["@grpc:alt_grpc_base_legacy"],
1732    deps = [
1733        "slice_cast",
1734        "slice_refcount",
1735        "//:debug_location",
1736        "//:event_engine_base_hdrs",
1737        "//:gpr",
1738    ],
1739)
1740
1741grpc_cc_library(
1742    name = "slice_buffer",
1743    srcs = [
1744        "lib/slice/slice_buffer.cc",
1745    ],
1746    hdrs = [
1747        "lib/slice/slice_buffer.h",
1748        "//:include/grpc/slice_buffer.h",
1749    ],
1750    external_deps = [
1751        "absl/log:check",
1752    ],
1753    deps = [
1754        "slice",
1755        "slice_refcount",
1756        "//:gpr",
1757    ],
1758)
1759
1760grpc_cc_library(
1761    name = "error",
1762    srcs = [
1763        "lib/iomgr/error.cc",
1764    ],
1765    hdrs = [
1766        "lib/iomgr/error.h",
1767    ],
1768    external_deps = [
1769        "absl/log:check",
1770        "absl/log:log",
1771        "absl/status",
1772        "absl/strings",
1773        "absl/strings:str_format",
1774    ],
1775    visibility = ["@grpc:alt_grpc_base_legacy"],
1776    deps = [
1777        "gpr_spinlock",
1778        "slice",
1779        "slice_refcount",
1780        "status_helper",
1781        "strerror",
1782        "useful",
1783        "//:gpr",
1784        "//:grpc_public_hdrs",
1785        "//:grpc_trace",
1786    ],
1787)
1788
1789grpc_cc_library(
1790    name = "closure",
1791    srcs = [
1792        "lib/iomgr/closure.cc",
1793    ],
1794    hdrs = [
1795        "lib/iomgr/closure.h",
1796    ],
1797    external_deps = [
1798        "absl/log:check",
1799        "absl/log:log",
1800        "absl/strings:str_format",
1801    ],
1802    visibility = ["@grpc:alt_grpc_base_legacy"],
1803    deps = [
1804        "error",
1805        "gpr_manual_constructor",
1806        "//:debug_location",
1807        "//:gpr",
1808    ],
1809)
1810
1811grpc_cc_library(
1812    name = "time",
1813    srcs = [
1814        "util/time.cc",
1815    ],
1816    hdrs = [
1817        "util/time.h",
1818    ],
1819    external_deps = [
1820        "absl/log:check",
1821        "absl/log:log",
1822        "absl/strings:str_format",
1823        "absl/types:optional",
1824    ],
1825    deps = [
1826        "no_destruct",
1827        "useful",
1828        "//:event_engine_base_hdrs",
1829        "//:gpr",
1830    ],
1831)
1832
1833grpc_cc_library(
1834    name = "iomgr_port",
1835    hdrs = [
1836        "lib/iomgr/port.h",
1837    ],
1838    deps = ["//:gpr_platform"],
1839)
1840
1841grpc_cc_library(
1842    name = "iomgr_fwd",
1843    hdrs = [
1844        "lib/iomgr/iomgr_fwd.h",
1845    ],
1846    visibility = ["@grpc:alt_grpc_base_legacy"],
1847    deps = ["//:gpr_platform"],
1848)
1849
1850grpc_cc_library(
1851    name = "grpc_sockaddr",
1852    srcs = [
1853        "lib/iomgr/sockaddr_utils_posix.cc",
1854        "lib/iomgr/socket_utils_windows.cc",
1855    ],
1856    hdrs = [
1857        "lib/iomgr/sockaddr.h",
1858        "lib/iomgr/sockaddr_posix.h",
1859        "lib/iomgr/sockaddr_windows.h",
1860        "lib/iomgr/socket_utils.h",
1861    ],
1862    external_deps = [
1863        "absl/log:check",
1864    ],
1865    deps = [
1866        "iomgr_port",
1867        "//:gpr",
1868    ],
1869)
1870
1871grpc_cc_library(
1872    name = "avl",
1873    hdrs = [
1874        "util/avl.h",
1875    ],
1876    deps = [
1877        "ref_counted",
1878        "useful",
1879        "//:gpr_platform",
1880        "//:ref_counted_ptr",
1881    ],
1882)
1883
1884grpc_cc_library(
1885    name = "time_averaged_stats",
1886    srcs = ["util/time_averaged_stats.cc"],
1887    hdrs = [
1888        "util/time_averaged_stats.h",
1889    ],
1890    deps = ["//:gpr"],
1891)
1892
1893grpc_cc_library(
1894    name = "forkable",
1895    srcs = [
1896        "lib/event_engine/forkable.cc",
1897    ],
1898    hdrs = [
1899        "lib/event_engine/forkable.h",
1900    ],
1901    external_deps = [
1902        "absl/log:check",
1903        "absl/log:log",
1904    ],
1905    deps = [
1906        "//:config_vars",
1907        "//:gpr",
1908        "//:gpr_platform",
1909        "//:grpc_trace",
1910    ],
1911)
1912
1913grpc_cc_library(
1914    name = "event_engine_poller",
1915    hdrs = [
1916        "lib/event_engine/poller.h",
1917    ],
1918    external_deps = ["absl/functional:function_ref"],
1919    deps = [
1920        "//:event_engine_base_hdrs",
1921        "//:gpr_platform",
1922    ],
1923)
1924
1925grpc_cc_library(
1926    name = "event_engine_time_util",
1927    srcs = ["lib/event_engine/time_util.cc"],
1928    hdrs = ["lib/event_engine/time_util.h"],
1929    deps = [
1930        "//:event_engine_base_hdrs",
1931        "//:gpr_platform",
1932    ],
1933)
1934
1935grpc_cc_library(
1936    name = "event_engine_query_extensions",
1937    hdrs = [
1938        "lib/event_engine/query_extensions.h",
1939    ],
1940    external_deps = ["absl/strings"],
1941    deps = [
1942        "//:event_engine_base_hdrs",
1943        "//:gpr_platform",
1944    ],
1945)
1946
1947grpc_cc_library(
1948    name = "event_engine_work_queue",
1949    hdrs = [
1950        "lib/event_engine/work_queue/work_queue.h",
1951    ],
1952    external_deps = ["absl/functional:any_invocable"],
1953    deps = [
1954        "//:event_engine_base_hdrs",
1955        "//:gpr",
1956    ],
1957)
1958
1959grpc_cc_library(
1960    name = "event_engine_basic_work_queue",
1961    srcs = [
1962        "lib/event_engine/work_queue/basic_work_queue.cc",
1963    ],
1964    hdrs = [
1965        "lib/event_engine/work_queue/basic_work_queue.h",
1966    ],
1967    external_deps = [
1968        "absl/base:core_headers",
1969        "absl/functional:any_invocable",
1970    ],
1971    deps = [
1972        "common_event_engine_closures",
1973        "event_engine_work_queue",
1974        "//:event_engine_base_hdrs",
1975        "//:gpr",
1976    ],
1977)
1978
1979grpc_cc_library(
1980    name = "common_event_engine_closures",
1981    hdrs = ["lib/event_engine/common_closures.h"],
1982    external_deps = ["absl/functional:any_invocable"],
1983    deps = [
1984        "//:event_engine_base_hdrs",
1985        "//:gpr_platform",
1986    ],
1987)
1988
1989grpc_cc_library(
1990    name = "posix_event_engine_timer",
1991    srcs = [
1992        "lib/event_engine/posix_engine/timer.cc",
1993        "lib/event_engine/posix_engine/timer_heap.cc",
1994    ],
1995    hdrs = [
1996        "lib/event_engine/posix_engine/timer.h",
1997        "lib/event_engine/posix_engine/timer_heap.h",
1998    ],
1999    external_deps = [
2000        "absl/base:core_headers",
2001        "absl/types:optional",
2002    ],
2003    deps = [
2004        "time",
2005        "time_averaged_stats",
2006        "useful",
2007        "//:event_engine_base_hdrs",
2008        "//:gpr",
2009    ],
2010)
2011
2012grpc_cc_library(
2013    name = "event_engine_thread_local",
2014    srcs = ["lib/event_engine/thread_local.cc"],
2015    hdrs = ["lib/event_engine/thread_local.h"],
2016    deps = ["//:gpr_platform"],
2017)
2018
2019grpc_cc_library(
2020    name = "event_engine_thread_count",
2021    srcs = [
2022        "lib/event_engine/thread_pool/thread_count.cc",
2023    ],
2024    hdrs = ["lib/event_engine/thread_pool/thread_count.h"],
2025    external_deps = [
2026        "absl/log:log",
2027        "absl/base:core_headers",
2028        "absl/time",
2029        "absl/status",
2030        "absl/strings:str_format",
2031    ],
2032    deps = [
2033        "time",
2034        "useful",
2035        "//:gpr",
2036    ],
2037)
2038
2039grpc_cc_library(
2040    name = "event_engine_thread_pool",
2041    srcs = [
2042        "lib/event_engine/thread_pool/thread_pool_factory.cc",
2043        "lib/event_engine/thread_pool/work_stealing_thread_pool.cc",
2044    ],
2045    hdrs = [
2046        "lib/event_engine/thread_pool/thread_pool.h",
2047        "lib/event_engine/thread_pool/work_stealing_thread_pool.h",
2048    ],
2049    external_deps = [
2050        "absl/base:core_headers",
2051        "absl/container:flat_hash_set",
2052        "absl/functional:any_invocable",
2053        "absl/log",
2054        "absl/log:check",
2055        "absl/time",
2056        "absl/types:optional",
2057    ],
2058    deps = [
2059        "common_event_engine_closures",
2060        "env",
2061        "event_engine_basic_work_queue",
2062        "event_engine_thread_count",
2063        "event_engine_thread_local",
2064        "event_engine_work_queue",
2065        "examine_stack",
2066        "forkable",
2067        "no_destruct",
2068        "notification",
2069        "time",
2070        "//:backoff",
2071        "//:event_engine_base_hdrs",
2072        "//:gpr",
2073        "//:grpc_trace",
2074    ],
2075)
2076
2077grpc_cc_library(
2078    name = "posix_event_engine_base_hdrs",
2079    srcs = [],
2080    hdrs = [
2081        "lib/event_engine/posix.h",
2082    ],
2083    external_deps = [
2084        "absl/functional:any_invocable",
2085        "absl/status",
2086        "absl/status:statusor",
2087    ],
2088    deps = [
2089        "event_engine_extensions",
2090        "event_engine_query_extensions",
2091        "//:event_engine_base_hdrs",
2092        "//:gpr",
2093    ],
2094)
2095
2096grpc_cc_library(
2097    name = "posix_event_engine_timer_manager",
2098    srcs = ["lib/event_engine/posix_engine/timer_manager.cc"],
2099    hdrs = [
2100        "lib/event_engine/posix_engine/timer_manager.h",
2101    ],
2102    external_deps = [
2103        "absl/base:core_headers",
2104        "absl/log:check",
2105        "absl/log:log",
2106        "absl/time",
2107        "absl/types:optional",
2108    ],
2109    deps = [
2110        "event_engine_thread_pool",
2111        "forkable",
2112        "notification",
2113        "posix_event_engine_timer",
2114        "time",
2115        "//:event_engine_base_hdrs",
2116        "//:gpr",
2117        "//:grpc_trace",
2118    ],
2119)
2120
2121grpc_cc_library(
2122    name = "posix_event_engine_event_poller",
2123    srcs = [],
2124    hdrs = [
2125        "lib/event_engine/posix_engine/event_poller.h",
2126    ],
2127    external_deps = [
2128        "absl/functional:any_invocable",
2129        "absl/status",
2130        "absl/strings",
2131    ],
2132    deps = [
2133        "event_engine_poller",
2134        "forkable",
2135        "posix_event_engine_closure",
2136        "//:event_engine_base_hdrs",
2137        "//:gpr_platform",
2138    ],
2139)
2140
2141grpc_cc_library(
2142    name = "posix_event_engine_closure",
2143    srcs = [],
2144    hdrs = [
2145        "lib/event_engine/posix_engine/posix_engine_closure.h",
2146    ],
2147    external_deps = [
2148        "absl/functional:any_invocable",
2149        "absl/status",
2150    ],
2151    deps = [
2152        "//:event_engine_base_hdrs",
2153        "//:gpr_platform",
2154    ],
2155)
2156
2157grpc_cc_library(
2158    name = "posix_event_engine_lockfree_event",
2159    srcs = [
2160        "lib/event_engine/posix_engine/lockfree_event.cc",
2161    ],
2162    hdrs = [
2163        "lib/event_engine/posix_engine/lockfree_event.h",
2164    ],
2165    external_deps = [
2166        "absl/log:check",
2167        "absl/status",
2168    ],
2169    deps = [
2170        "gpr_atm",
2171        "posix_event_engine_closure",
2172        "posix_event_engine_event_poller",
2173        "status_helper",
2174        "//:gpr",
2175    ],
2176)
2177
2178grpc_cc_library(
2179    name = "posix_event_engine_wakeup_fd_posix",
2180    hdrs = [
2181        "lib/event_engine/posix_engine/wakeup_fd_posix.h",
2182    ],
2183    external_deps = ["absl/status"],
2184    deps = ["//:gpr_platform"],
2185)
2186
2187grpc_cc_library(
2188    name = "posix_event_engine_wakeup_fd_posix_pipe",
2189    srcs = [
2190        "lib/event_engine/posix_engine/wakeup_fd_pipe.cc",
2191    ],
2192    hdrs = [
2193        "lib/event_engine/posix_engine/wakeup_fd_pipe.h",
2194    ],
2195    external_deps = [
2196        "absl/status",
2197        "absl/status:statusor",
2198        "absl/strings",
2199    ],
2200    deps = [
2201        "iomgr_port",
2202        "posix_event_engine_wakeup_fd_posix",
2203        "strerror",
2204        "//:gpr",
2205    ],
2206)
2207
2208grpc_cc_library(
2209    name = "posix_event_engine_wakeup_fd_posix_eventfd",
2210    srcs = [
2211        "lib/event_engine/posix_engine/wakeup_fd_eventfd.cc",
2212    ],
2213    hdrs = [
2214        "lib/event_engine/posix_engine/wakeup_fd_eventfd.h",
2215    ],
2216    external_deps = [
2217        "absl/status",
2218        "absl/status:statusor",
2219        "absl/strings",
2220    ],
2221    deps = [
2222        "iomgr_port",
2223        "posix_event_engine_wakeup_fd_posix",
2224        "strerror",
2225        "//:gpr",
2226    ],
2227)
2228
2229grpc_cc_library(
2230    name = "posix_event_engine_wakeup_fd_posix_default",
2231    srcs = [
2232        "lib/event_engine/posix_engine/wakeup_fd_posix_default.cc",
2233    ],
2234    hdrs = [
2235        "lib/event_engine/posix_engine/wakeup_fd_posix_default.h",
2236    ],
2237    external_deps = [
2238        "absl/status",
2239        "absl/status:statusor",
2240    ],
2241    deps = [
2242        "iomgr_port",
2243        "posix_event_engine_wakeup_fd_posix",
2244        "posix_event_engine_wakeup_fd_posix_eventfd",
2245        "posix_event_engine_wakeup_fd_posix_pipe",
2246        "//:gpr_platform",
2247    ],
2248)
2249
2250grpc_cc_library(
2251    name = "posix_event_engine_poller_posix_epoll1",
2252    srcs = [
2253        "lib/event_engine/posix_engine/ev_epoll1_linux.cc",
2254    ],
2255    hdrs = [
2256        "lib/event_engine/posix_engine/ev_epoll1_linux.h",
2257    ],
2258    external_deps = [
2259        "absl/base:core_headers",
2260        "absl/container:inlined_vector",
2261        "absl/functional:function_ref",
2262        "absl/log:check",
2263        "absl/log:log",
2264        "absl/status",
2265        "absl/status:statusor",
2266        "absl/strings",
2267        "absl/strings:str_format",
2268    ],
2269    deps = [
2270        "event_engine_poller",
2271        "event_engine_time_util",
2272        "iomgr_port",
2273        "posix_event_engine_closure",
2274        "posix_event_engine_event_poller",
2275        "posix_event_engine_internal_errqueue",
2276        "posix_event_engine_lockfree_event",
2277        "posix_event_engine_wakeup_fd_posix",
2278        "posix_event_engine_wakeup_fd_posix_default",
2279        "status_helper",
2280        "strerror",
2281        "//:event_engine_base_hdrs",
2282        "//:gpr",
2283        "//:grpc_public_hdrs",
2284    ],
2285)
2286
2287grpc_cc_library(
2288    name = "posix_event_engine_poller_posix_poll",
2289    srcs = [
2290        "lib/event_engine/posix_engine/ev_poll_posix.cc",
2291    ],
2292    hdrs = [
2293        "lib/event_engine/posix_engine/ev_poll_posix.h",
2294    ],
2295    external_deps = [
2296        "absl/base:core_headers",
2297        "absl/container:inlined_vector",
2298        "absl/functional:any_invocable",
2299        "absl/functional:function_ref",
2300        "absl/log:check",
2301        "absl/status",
2302        "absl/status:statusor",
2303        "absl/strings",
2304        "absl/strings:str_format",
2305    ],
2306    deps = [
2307        "common_event_engine_closures",
2308        "event_engine_poller",
2309        "event_engine_time_util",
2310        "iomgr_port",
2311        "posix_event_engine_closure",
2312        "posix_event_engine_event_poller",
2313        "posix_event_engine_wakeup_fd_posix",
2314        "posix_event_engine_wakeup_fd_posix_default",
2315        "status_helper",
2316        "strerror",
2317        "time",
2318        "//:event_engine_base_hdrs",
2319        "//:gpr",
2320        "//:grpc_public_hdrs",
2321    ],
2322)
2323
2324grpc_cc_library(
2325    name = "posix_event_engine_poller_posix_default",
2326    srcs = [
2327        "lib/event_engine/posix_engine/event_poller_posix_default.cc",
2328    ],
2329    hdrs = [
2330        "lib/event_engine/posix_engine/event_poller_posix_default.h",
2331    ],
2332    external_deps = ["absl/strings"],
2333    deps = [
2334        "forkable",
2335        "iomgr_port",
2336        "no_destruct",
2337        "posix_event_engine_event_poller",
2338        "posix_event_engine_poller_posix_epoll1",
2339        "posix_event_engine_poller_posix_poll",
2340        "//:config_vars",
2341        "//:gpr",
2342    ],
2343)
2344
2345grpc_cc_library(
2346    name = "posix_event_engine_internal_errqueue",
2347    srcs = [
2348        "lib/event_engine/posix_engine/internal_errqueue.cc",
2349    ],
2350    hdrs = [
2351        "lib/event_engine/posix_engine/internal_errqueue.h",
2352    ],
2353    external_deps = [
2354        "absl/log:log",
2355    ],
2356    deps = [
2357        "iomgr_port",
2358        "strerror",
2359        "//:gpr",
2360    ],
2361)
2362
2363grpc_cc_library(
2364    name = "posix_event_engine_traced_buffer_list",
2365    srcs = [
2366        "lib/event_engine/posix_engine/traced_buffer_list.cc",
2367    ],
2368    hdrs = [
2369        "lib/event_engine/posix_engine/traced_buffer_list.h",
2370    ],
2371    external_deps = [
2372        "absl/functional:any_invocable",
2373        "absl/log:log",
2374        "absl/status",
2375        "absl/types:optional",
2376    ],
2377    deps = [
2378        "iomgr_port",
2379        "posix_event_engine_internal_errqueue",
2380        "//:gpr",
2381    ],
2382)
2383
2384grpc_cc_library(
2385    name = "posix_event_engine_endpoint",
2386    srcs = [
2387        "lib/event_engine/posix_engine/posix_endpoint.cc",
2388    ],
2389    hdrs = [
2390        "lib/event_engine/posix_engine/posix_endpoint.h",
2391    ],
2392    external_deps = [
2393        "absl/base:core_headers",
2394        "absl/container:flat_hash_map",
2395        "absl/functional:any_invocable",
2396        "absl/hash",
2397        "absl/log:log",
2398        "absl/log:check",
2399        "absl/status",
2400        "absl/status:statusor",
2401        "absl/strings",
2402        "absl/types:optional",
2403    ],
2404    deps = [
2405        "event_engine_common",
2406        "event_engine_extensions",
2407        "event_engine_tcp_socket_utils",
2408        "experiments",
2409        "iomgr_port",
2410        "load_file",
2411        "memory_quota",
2412        "posix_event_engine_base_hdrs",
2413        "posix_event_engine_closure",
2414        "posix_event_engine_event_poller",
2415        "posix_event_engine_internal_errqueue",
2416        "posix_event_engine_tcp_socket_utils",
2417        "posix_event_engine_traced_buffer_list",
2418        "ref_counted",
2419        "resource_quota",
2420        "slice",
2421        "stats_data",
2422        "status_helper",
2423        "strerror",
2424        "time",
2425        "//:debug_location",
2426        "//:event_engine_base_hdrs",
2427        "//:exec_ctx",
2428        "//:gpr",
2429        "//:grpc_public_hdrs",
2430        "//:grpc_trace",
2431        "//:ref_counted_ptr",
2432        "//:stats",
2433    ],
2434)
2435
2436grpc_cc_library(
2437    name = "event_engine_utils",
2438    srcs = ["lib/event_engine/utils.cc"],
2439    hdrs = ["lib/event_engine/utils.h"],
2440    external_deps = [
2441        "absl/log:check",
2442        "absl/status:statusor",
2443        "absl/strings",
2444    ],
2445    deps = [
2446        "notification",
2447        "time",
2448        "//:event_engine_base_hdrs",
2449        "//:gpr_platform",
2450    ],
2451)
2452
2453grpc_cc_library(
2454    name = "posix_event_engine_tcp_socket_utils",
2455    srcs = [
2456        "lib/event_engine/posix_engine/tcp_socket_utils.cc",
2457    ],
2458    hdrs = [
2459        "lib/event_engine/posix_engine/tcp_socket_utils.h",
2460    ],
2461    external_deps = [
2462        "absl/cleanup",
2463        "absl/log:check",
2464        "absl/log:log",
2465        "absl/status",
2466        "absl/status:statusor",
2467        "absl/strings",
2468        "absl/types:optional",
2469    ],
2470    deps = [
2471        "event_engine_tcp_socket_utils",
2472        "iomgr_port",
2473        "resource_quota",
2474        "socket_mutator",
2475        "status_helper",
2476        "strerror",
2477        "time",
2478        "useful",
2479        "//:channel_arg_names",
2480        "//:event_engine_base_hdrs",
2481        "//:gpr",
2482        "//:ref_counted_ptr",
2483    ],
2484)
2485
2486grpc_cc_library(
2487    name = "posix_event_engine_listener_utils",
2488    srcs = [
2489        "lib/event_engine/posix_engine/posix_engine_listener_utils.cc",
2490    ],
2491    hdrs = [
2492        "lib/event_engine/posix_engine/posix_engine_listener_utils.h",
2493    ],
2494    external_deps = [
2495        "absl/cleanup",
2496        "absl/log:check",
2497        "absl/log:log",
2498        "absl/status",
2499        "absl/status:statusor",
2500        "absl/strings",
2501    ],
2502    deps = [
2503        "event_engine_tcp_socket_utils",
2504        "iomgr_port",
2505        "posix_event_engine_tcp_socket_utils",
2506        "socket_mutator",
2507        "status_helper",
2508        "//:event_engine_base_hdrs",
2509        "//:gpr",
2510    ],
2511)
2512
2513grpc_cc_library(
2514    name = "posix_event_engine_listener",
2515    srcs = [
2516        "lib/event_engine/posix_engine/posix_engine_listener.cc",
2517    ],
2518    hdrs = [
2519        "lib/event_engine/posix_engine/posix_engine_listener.h",
2520    ],
2521    external_deps = [
2522        "absl/base:core_headers",
2523        "absl/functional:any_invocable",
2524        "absl/log",
2525        "absl/log:check",
2526        "absl/status",
2527        "absl/status:statusor",
2528        "absl/strings",
2529        "absl/types:optional",
2530    ],
2531    deps = [
2532        "event_engine_tcp_socket_utils",
2533        "iomgr_port",
2534        "posix_event_engine_base_hdrs",
2535        "posix_event_engine_closure",
2536        "posix_event_engine_endpoint",
2537        "posix_event_engine_event_poller",
2538        "posix_event_engine_listener_utils",
2539        "posix_event_engine_tcp_socket_utils",
2540        "socket_mutator",
2541        "status_helper",
2542        "strerror",
2543        "time",
2544        "//:event_engine_base_hdrs",
2545        "//:exec_ctx",
2546        "//:gpr",
2547        "//:grpc_trace",
2548    ],
2549)
2550
2551grpc_cc_library(
2552    name = "posix_event_engine",
2553    srcs = ["lib/event_engine/posix_engine/posix_engine.cc"],
2554    hdrs = ["lib/event_engine/posix_engine/posix_engine.h"],
2555    external_deps = [
2556        "absl/base:core_headers",
2557        "absl/cleanup",
2558        "absl/container:flat_hash_map",
2559        "absl/functional:any_invocable",
2560        "absl/hash",
2561        "absl/log:check",
2562        "absl/log:log",
2563        "absl/status",
2564        "absl/status:statusor",
2565        "absl/strings",
2566    ],
2567    deps = [
2568        "ares_resolver",
2569        "event_engine_common",
2570        "event_engine_poller",
2571        "event_engine_tcp_socket_utils",
2572        "event_engine_thread_pool",
2573        "event_engine_utils",
2574        "experiments",
2575        "forkable",
2576        "init_internally",
2577        "iomgr_port",
2578        "native_posix_dns_resolver",
2579        "no_destruct",
2580        "posix_event_engine_base_hdrs",
2581        "posix_event_engine_closure",
2582        "posix_event_engine_endpoint",
2583        "posix_event_engine_event_poller",
2584        "posix_event_engine_listener",
2585        "posix_event_engine_poller_posix_default",
2586        "posix_event_engine_tcp_socket_utils",
2587        "posix_event_engine_timer",
2588        "posix_event_engine_timer_manager",
2589        "ref_counted_dns_resolver_interface",
2590        "useful",
2591        "//:event_engine_base_hdrs",
2592        "//:gpr",
2593        "//:grpc_trace",
2594        "//:orphanable",
2595    ],
2596)
2597
2598grpc_cc_library(
2599    name = "windows_event_engine",
2600    srcs = ["lib/event_engine/windows/windows_engine.cc"],
2601    hdrs = ["lib/event_engine/windows/windows_engine.h"],
2602    external_deps = [
2603        "absl/log:check",
2604        "absl/log:log",
2605        "absl/status",
2606        "absl/status:statusor",
2607        "absl/strings",
2608    ],
2609    deps = [
2610        "ares_resolver",
2611        "channel_args_endpoint_config",
2612        "common_event_engine_closures",
2613        "dump_args",
2614        "error",
2615        "event_engine_common",
2616        "event_engine_tcp_socket_utils",
2617        "event_engine_thread_pool",
2618        "event_engine_utils",
2619        "init_internally",
2620        "iomgr_port",
2621        "posix_event_engine_timer_manager",
2622        "time",
2623        "windows_endpoint",
2624        "windows_event_engine_listener",
2625        "windows_iocp",
2626        "windows_native_resolver",
2627        "//:event_engine_base_hdrs",
2628        "//:gpr",
2629    ],
2630)
2631
2632grpc_cc_library(
2633    name = "windows_native_resolver",
2634    srcs = ["lib/event_engine/windows/native_windows_dns_resolver.cc"],
2635    hdrs = ["lib/event_engine/windows/native_windows_dns_resolver.h"],
2636    external_deps = ["absl/strings:str_format"],
2637    deps = [
2638        "error",
2639        "status_helper",
2640        "//:event_engine_base_hdrs",
2641        "//:gpr",
2642    ],
2643)
2644
2645grpc_cc_library(
2646    name = "windows_iocp",
2647    srcs = [
2648        "lib/event_engine/windows/iocp.cc",
2649        "lib/event_engine/windows/win_socket.cc",
2650    ],
2651    hdrs = [
2652        "lib/event_engine/windows/iocp.h",
2653        "lib/event_engine/windows/win_socket.h",
2654    ],
2655    external_deps = [
2656        "absl/base:core_headers",
2657        "absl/functional:any_invocable",
2658        "absl/log:check",
2659        "absl/log:log",
2660        "absl/status",
2661        "absl/strings:str_format",
2662    ],
2663    deps = [
2664        "error",
2665        "event_engine_poller",
2666        "event_engine_tcp_socket_utils",
2667        "event_engine_thread_pool",
2668        "event_engine_time_util",
2669        "//:debug_location",
2670        "//:event_engine_base_hdrs",
2671        "//:gpr",
2672        "//:gpr_platform",
2673    ],
2674)
2675
2676grpc_cc_library(
2677    name = "windows_endpoint",
2678    srcs = [
2679        "lib/event_engine/windows/windows_endpoint.cc",
2680    ],
2681    hdrs = [
2682        "lib/event_engine/windows/windows_endpoint.h",
2683    ],
2684    external_deps = [
2685        "absl/cleanup",
2686        "absl/functional:any_invocable",
2687        "absl/log:check",
2688        "absl/log:log",
2689        "absl/status",
2690        "absl/strings:str_format",
2691    ],
2692    deps = [
2693        "error",
2694        "event_engine_tcp_socket_utils",
2695        "event_engine_thread_pool",
2696        "status_helper",
2697        "windows_iocp",
2698        "//:debug_location",
2699        "//:event_engine_base_hdrs",
2700        "//:gpr",
2701        "//:gpr_platform",
2702    ],
2703)
2704
2705grpc_cc_library(
2706    name = "windows_event_engine_listener",
2707    srcs = [
2708        "lib/event_engine/windows/windows_listener.cc",
2709    ],
2710    hdrs = [
2711        "lib/event_engine/windows/windows_listener.h",
2712    ],
2713    external_deps = [
2714        "absl/base:core_headers",
2715        "absl/log:check",
2716        "absl/log:log",
2717        "absl/status",
2718        "absl/status:statusor",
2719        "absl/strings:str_format",
2720    ],
2721    deps = [
2722        "common_event_engine_closures",
2723        "error",
2724        "event_engine_tcp_socket_utils",
2725        "event_engine_thread_pool",
2726        "windows_endpoint",
2727        "windows_iocp",
2728        "//:event_engine_base_hdrs",
2729        "//:gpr",
2730        "//:gpr_platform",
2731    ],
2732)
2733
2734grpc_cc_library(
2735    name = "cf_event_engine",
2736    srcs = [
2737        "lib/event_engine/cf_engine/cf_engine.cc",
2738        "lib/event_engine/cf_engine/cfstream_endpoint.cc",
2739        "lib/event_engine/cf_engine/dns_service_resolver.cc",
2740    ],
2741    hdrs = [
2742        "lib/event_engine/cf_engine/cf_engine.h",
2743        "lib/event_engine/cf_engine/cfstream_endpoint.h",
2744        "lib/event_engine/cf_engine/cftype_unique_ref.h",
2745        "lib/event_engine/cf_engine/dns_service_resolver.h",
2746    ],
2747    external_deps = [
2748        "absl/container:flat_hash_map",
2749        "absl/log:check",
2750        "absl/log:log",
2751        "absl/status",
2752        "absl/strings",
2753        "absl/strings:str_format",
2754    ],
2755    deps = [
2756        "event_engine_common",
2757        "event_engine_tcp_socket_utils",
2758        "event_engine_thread_pool",
2759        "event_engine_utils",
2760        "init_internally",
2761        "posix_event_engine_closure",
2762        "posix_event_engine_event_poller",
2763        "posix_event_engine_lockfree_event",
2764        "posix_event_engine_timer_manager",
2765        "ref_counted",
2766        "strerror",
2767        "//:event_engine_base_hdrs",
2768        "//:gpr",
2769        "//:parse_address",
2770        "//:ref_counted_ptr",
2771        "//:sockaddr_utils",
2772    ],
2773)
2774
2775grpc_cc_library(
2776    name = "event_engine_tcp_socket_utils",
2777    srcs = [
2778        "lib/event_engine/tcp_socket_utils.cc",
2779    ],
2780    hdrs = [
2781        "lib/event_engine/tcp_socket_utils.h",
2782    ],
2783    external_deps = [
2784        "absl/log:check",
2785        "absl/log:log",
2786        "absl/status",
2787        "absl/status:statusor",
2788        "absl/strings",
2789        "absl/strings:str_format",
2790        "absl/types:optional",
2791    ],
2792    deps = [
2793        "iomgr_port",
2794        "resolved_address",
2795        "status_helper",
2796        "//:event_engine_base_hdrs",
2797        "//:gpr",
2798        "//:gpr_platform",
2799        "//:parse_address",
2800        "//:uri",
2801    ],
2802)
2803
2804grpc_cc_library(
2805    name = "event_engine_shim",
2806    srcs = [
2807        "lib/event_engine/shim.cc",
2808    ],
2809    hdrs = [
2810        "lib/event_engine/shim.h",
2811    ],
2812    deps = [
2813        "experiments",
2814        "iomgr_port",
2815        "//:gpr_platform",
2816    ],
2817)
2818
2819# NOTE: this target gets replaced inside Google's build system to be one that
2820# integrates with other internal systems better. Please do not rename or fold
2821# this into other targets.
2822grpc_cc_library(
2823    name = "default_event_engine_factory",
2824    srcs = ["lib/event_engine/default_event_engine_factory.cc"],
2825    hdrs = ["lib/event_engine/default_event_engine_factory.h"],
2826    external_deps = ["absl/memory"],
2827    select_deps = [
2828        {
2829            "//:windows": ["windows_event_engine"],
2830            "//:windows_os": ["windows_event_engine"],
2831            "//:windows_msvc": ["windows_event_engine"],
2832            "//:windows_clang": ["windows_event_engine"],
2833            "//:windows_other": ["windows_event_engine"],
2834            "//:mac": [
2835                "posix_event_engine",
2836                "cf_event_engine",
2837            ],
2838            "//:mac_x86_64": [
2839                "posix_event_engine",
2840                "cf_event_engine",
2841            ],
2842            "//:mac_arm64": [
2843                "posix_event_engine",
2844                "cf_event_engine",
2845            ],
2846            "//:ios": ["cf_event_engine"],
2847            "//:tvos": ["cf_event_engine"],
2848            "//:visionos": ["cf_event_engine"],
2849            "//:watchos": ["cf_event_engine"],
2850            "//conditions:default": ["posix_event_engine"],
2851        },
2852    ],
2853    deps = [
2854        "//:event_engine_base_hdrs",
2855        "//:gpr_platform",
2856    ],
2857)
2858
2859grpc_cc_library(
2860    name = "channel_args_endpoint_config",
2861    srcs = [
2862        "lib/event_engine/channel_args_endpoint_config.cc",
2863    ],
2864    hdrs = [
2865        "lib/event_engine/channel_args_endpoint_config.h",
2866    ],
2867    external_deps = [
2868        "absl/strings",
2869        "absl/types:optional",
2870    ],
2871    visibility = ["@grpc:alt_grpc_base_legacy"],
2872    deps = [
2873        "channel_args",
2874        "//:event_engine_base_hdrs",
2875        "//:gpr_platform",
2876    ],
2877)
2878
2879grpc_cc_library(
2880    name = "thready_event_engine",
2881    srcs = ["lib/event_engine/thready_event_engine/thready_event_engine.cc"],
2882    hdrs = ["lib/event_engine/thready_event_engine/thready_event_engine.h"],
2883    external_deps = [
2884        "absl/functional:any_invocable",
2885        "absl/status",
2886        "absl/status:statusor",
2887        "absl/strings",
2888    ],
2889    deps = [
2890        "//:event_engine_base_hdrs",
2891        "//:gpr",
2892    ],
2893)
2894
2895grpc_cc_library(
2896    name = "event_engine_context",
2897    hdrs = [
2898        "lib/event_engine/event_engine_context.h",
2899    ],
2900    visibility = [
2901        "@grpc:alt_grpc_base_legacy",
2902    ],
2903    deps = [
2904        "arena",
2905        "//:event_engine_base_hdrs",
2906        "//:gpr",
2907    ],
2908)
2909
2910grpc_cc_library(
2911    name = "default_event_engine",
2912    srcs = [
2913        "lib/event_engine/default_event_engine.cc",
2914    ],
2915    hdrs = [
2916        "lib/event_engine/default_event_engine.h",
2917    ],
2918    external_deps = ["absl/functional:any_invocable"],
2919    visibility = [
2920        "@grpc:alt_grpc_base_legacy",
2921    ],
2922    deps = [
2923        "channel_args",
2924        "default_event_engine_factory",
2925        "no_destruct",
2926        "thready_event_engine",
2927        "//:config",
2928        "//:debug_location",
2929        "//:event_engine_base_hdrs",
2930        "//:gpr",
2931        "//:grpc_trace",
2932    ],
2933)
2934
2935grpc_cc_library(
2936    name = "ref_counted_dns_resolver_interface",
2937    hdrs = ["lib/event_engine/ref_counted_dns_resolver_interface.h"],
2938    external_deps = ["absl/strings"],
2939    deps = [
2940        "//:event_engine_base_hdrs",
2941        "//:gpr_platform",
2942        "//:orphanable",
2943    ],
2944)
2945
2946grpc_cc_library(
2947    name = "native_posix_dns_resolver",
2948    srcs = [
2949        "lib/event_engine/posix_engine/native_posix_dns_resolver.cc",
2950    ],
2951    hdrs = [
2952        "lib/event_engine/posix_engine/native_posix_dns_resolver.h",
2953    ],
2954    external_deps = [
2955        "absl/functional:any_invocable",
2956        "absl/status",
2957        "absl/status:statusor",
2958        "absl/strings",
2959        "absl/strings:str_format",
2960    ],
2961    deps = [
2962        "iomgr_port",
2963        "useful",
2964        "//:event_engine_base_hdrs",
2965        "//:gpr",
2966    ],
2967)
2968
2969grpc_cc_library(
2970    name = "ares_resolver",
2971    srcs = [
2972        "lib/event_engine/ares_resolver.cc",
2973        "lib/event_engine/windows/grpc_polled_fd_windows.cc",
2974    ],
2975    hdrs = [
2976        "lib/event_engine/ares_resolver.h",
2977        "lib/event_engine/grpc_polled_fd.h",
2978        "lib/event_engine/nameser.h",
2979        "lib/event_engine/posix_engine/grpc_polled_fd_posix.h",
2980        "lib/event_engine/windows/grpc_polled_fd_windows.h",
2981    ],
2982    external_deps = [
2983        "absl/base:core_headers",
2984        "absl/container:flat_hash_map",
2985        "absl/functional:any_invocable",
2986        "absl/hash",
2987        "absl/log:check",
2988        "absl/log:log",
2989        "absl/status",
2990        "absl/status:statusor",
2991        "absl/strings",
2992        "absl/strings:str_format",
2993        "absl/types:optional",
2994        "absl/types:variant",
2995        "address_sorting",
2996        "cares",
2997    ],
2998    deps = [
2999        "common_event_engine_closures",
3000        "error",
3001        "event_engine_time_util",
3002        "grpc_sockaddr",
3003        "iomgr_port",
3004        "posix_event_engine_closure",
3005        "posix_event_engine_event_poller",
3006        "posix_event_engine_tcp_socket_utils",
3007        "ref_counted_dns_resolver_interface",
3008        "resolved_address",
3009        "slice",
3010        "windows_iocp",
3011        "//:config_vars",
3012        "//:debug_location",
3013        "//:event_engine_base_hdrs",
3014        "//:gpr",
3015        "//:grpc_trace",
3016        "//:orphanable",
3017        "//:parse_address",
3018        "//:ref_counted_ptr",
3019        "//:sockaddr_utils",
3020    ],
3021)
3022
3023grpc_cc_library(
3024    name = "channel_args_preconditioning",
3025    srcs = [
3026        "lib/channel/channel_args_preconditioning.cc",
3027    ],
3028    hdrs = [
3029        "lib/channel/channel_args_preconditioning.h",
3030    ],
3031    deps = [
3032        "channel_args",
3033        "//:event_engine_base_hdrs",
3034        "//:gpr_platform",
3035    ],
3036)
3037
3038grpc_cc_library(
3039    name = "bdp_estimator",
3040    srcs = [
3041        "lib/transport/bdp_estimator.cc",
3042    ],
3043    hdrs = ["lib/transport/bdp_estimator.h"],
3044    external_deps = [
3045        "absl/log:check",
3046        "absl/log:log",
3047        "absl/strings",
3048    ],
3049    deps = [
3050        "time",
3051        "//:gpr",
3052        "//:grpc_trace",
3053    ],
3054)
3055
3056grpc_cc_library(
3057    name = "percent_encoding",
3058    srcs = [
3059        "lib/slice/percent_encoding.cc",
3060    ],
3061    hdrs = [
3062        "lib/slice/percent_encoding.h",
3063    ],
3064    external_deps = [
3065        "absl/log:check",
3066    ],
3067    deps = [
3068        "bitset",
3069        "slice",
3070        "//:gpr",
3071    ],
3072)
3073
3074grpc_cc_library(
3075    name = "socket_mutator",
3076    srcs = [
3077        "lib/iomgr/socket_mutator.cc",
3078    ],
3079    hdrs = [
3080        "lib/iomgr/socket_mutator.h",
3081    ],
3082    visibility = ["@grpc:alt_grpc_base_legacy"],
3083    deps = [
3084        "channel_args",
3085        "useful",
3086        "//:event_engine_base_hdrs",
3087        "//:gpr",
3088    ],
3089)
3090
3091grpc_cc_library(
3092    name = "pollset_set",
3093    srcs = [
3094        "lib/iomgr/pollset_set.cc",
3095    ],
3096    hdrs = [
3097        "lib/iomgr/pollset_set.h",
3098    ],
3099    deps = [
3100        "iomgr_fwd",
3101        "//:gpr",
3102    ],
3103)
3104
3105grpc_cc_library(
3106    name = "histogram_view",
3107    srcs = [
3108        "telemetry/histogram_view.cc",
3109    ],
3110    hdrs = [
3111        "telemetry/histogram_view.h",
3112    ],
3113    deps = ["//:gpr"],
3114)
3115
3116grpc_cc_library(
3117    name = "stats_data",
3118    srcs = [
3119        "telemetry/stats_data.cc",
3120    ],
3121    hdrs = [
3122        "telemetry/stats_data.h",
3123    ],
3124    external_deps = ["absl/strings"],
3125    deps = [
3126        "histogram_view",
3127        "per_cpu",
3128        "//:gpr_platform",
3129    ],
3130)
3131
3132grpc_cc_library(
3133    name = "per_cpu",
3134    srcs = [
3135        "util/per_cpu.cc",
3136    ],
3137    hdrs = [
3138        "util/per_cpu.h",
3139    ],
3140    deps = [
3141        "useful",
3142        "//:gpr",
3143    ],
3144)
3145
3146grpc_cc_library(
3147    name = "event_log",
3148    srcs = [
3149        "util/event_log.cc",
3150    ],
3151    hdrs = [
3152        "util/event_log.h",
3153    ],
3154    external_deps = [
3155        "absl/base:core_headers",
3156        "absl/log:check",
3157        "absl/strings",
3158        "absl/types:span",
3159    ],
3160    deps = [
3161        "per_cpu",
3162        "//:gpr",
3163    ],
3164)
3165
3166grpc_cc_library(
3167    name = "load_file",
3168    srcs = [
3169        "util/load_file.cc",
3170    ],
3171    hdrs = [
3172        "util/load_file.h",
3173    ],
3174    external_deps = [
3175        "absl/cleanup",
3176        "absl/status",
3177        "absl/status:statusor",
3178        "absl/strings",
3179    ],
3180    language = "c++",
3181    deps = [
3182        "slice",
3183        "//:gpr",
3184    ],
3185)
3186
3187grpc_cc_library(
3188    name = "http2_errors",
3189    hdrs = [
3190        "lib/transport/http2_errors.h",
3191    ],
3192)
3193
3194grpc_cc_library(
3195    name = "channel_stack_type",
3196    srcs = [
3197        "lib/surface/channel_stack_type.cc",
3198    ],
3199    hdrs = [
3200        "lib/surface/channel_stack_type.h",
3201    ],
3202    language = "c++",
3203    deps = ["//:gpr_platform"],
3204)
3205
3206grpc_cc_library(
3207    name = "channel_init",
3208    srcs = [
3209        "lib/surface/channel_init.cc",
3210    ],
3211    hdrs = [
3212        "lib/surface/channel_init.h",
3213    ],
3214    external_deps = [
3215        "absl/functional:any_invocable",
3216        "absl/log:check",
3217        "absl/log:log",
3218        "absl/strings",
3219        "absl/types:optional",
3220    ],
3221    language = "c++",
3222    deps = [
3223        "call_filters",
3224        "channel_args",
3225        "channel_fwd",
3226        "channel_stack_type",
3227        "interception_chain",
3228        "unique_type_name",
3229        "//:channel_stack_builder",
3230        "//:debug_location",
3231        "//:gpr",
3232        "//:gpr_platform",
3233        "//:grpc_trace",
3234    ],
3235)
3236
3237grpc_cc_library(
3238    name = "server_interface",
3239    hdrs = [
3240        "server/server_interface.h",
3241    ],
3242    language = "c++",
3243    deps = [
3244        "channel_args",
3245        "//:channelz",
3246        "//:event_engine_base_hdrs",
3247        "//:gpr_platform",
3248    ],
3249)
3250
3251grpc_cc_library(
3252    name = "single_set_ptr",
3253    hdrs = [
3254        "util/single_set_ptr.h",
3255    ],
3256    external_deps = [
3257        "absl/log:check",
3258    ],
3259    language = "c++",
3260    deps = ["//:gpr"],
3261)
3262
3263grpc_cc_library(
3264    name = "grpc_service_config",
3265    hdrs = [
3266        "service_config/service_config.h",
3267        "service_config/service_config_call_data.h",
3268    ],
3269    external_deps = [
3270        "absl/log:check",
3271        "absl/strings",
3272    ],
3273    language = "c++",
3274    deps = [
3275        "arena",
3276        "chunked_vector",
3277        "down_cast",
3278        "ref_counted",
3279        "service_config_parser",
3280        "slice_refcount",
3281        "unique_type_name",
3282        "useful",
3283        "//:gpr_platform",
3284        "//:ref_counted_ptr",
3285    ],
3286)
3287
3288grpc_cc_library(
3289    name = "service_config_parser",
3290    srcs = [
3291        "service_config/service_config_parser.cc",
3292    ],
3293    hdrs = [
3294        "service_config/service_config_parser.h",
3295    ],
3296    external_deps = [
3297        "absl/log:log",
3298        "absl/strings",
3299    ],
3300    language = "c++",
3301    deps = [
3302        "channel_args",
3303        "json",
3304        "validation_errors",
3305        "//:gpr",
3306    ],
3307)
3308
3309grpc_cc_library(
3310    name = "notification",
3311    hdrs = [
3312        "util/notification.h",
3313    ],
3314    external_deps = ["absl/time"],
3315    deps = ["//:gpr"],
3316)
3317
3318grpc_cc_library(
3319    name = "channel_args",
3320    srcs = [
3321        "lib/channel/channel_args.cc",
3322    ],
3323    hdrs = [
3324        "lib/channel/channel_args.h",
3325    ],
3326    external_deps = [
3327        "absl/log:check",
3328        "absl/log:log",
3329        "absl/meta:type_traits",
3330        "absl/strings",
3331        "absl/strings:str_format",
3332        "absl/types:optional",
3333    ],
3334    language = "c++",
3335    visibility = [
3336        "@grpc:alt_grpc_base_legacy",
3337    ],
3338    deps = [
3339        "avl",
3340        "channel_stack_type",
3341        "dual_ref_counted",
3342        "ref_counted",
3343        "ref_counted_string",
3344        "time",
3345        "useful",
3346        "//:channel_arg_names",
3347        "//:debug_location",
3348        "//:event_engine_base_hdrs",
3349        "//:gpr",
3350        "//:ref_counted_ptr",
3351    ],
3352)
3353
3354grpc_cc_library(
3355    name = "resolved_address",
3356    hdrs = ["lib/iomgr/resolved_address.h"],
3357    language = "c++",
3358    deps = [
3359        "iomgr_port",
3360        "//:gpr_platform",
3361    ],
3362)
3363
3364grpc_cc_library(
3365    name = "client_channel_internal_header",
3366    hdrs = [
3367        "client_channel/client_channel_internal.h",
3368    ],
3369    external_deps = [
3370        "absl/functional:any_invocable",
3371        "absl/log:check",
3372    ],
3373    language = "c++",
3374    deps = [
3375        "arena",
3376        "call_destination",
3377        "down_cast",
3378        "grpc_service_config",
3379        "lb_policy",
3380        "unique_type_name",
3381        "//:call_tracer",
3382        "//:gpr",
3383    ],
3384)
3385
3386grpc_cc_library(
3387    name = "blackboard",
3388    srcs = [
3389        "filter/blackboard.cc",
3390    ],
3391    hdrs = [
3392        "filter/blackboard.h",
3393    ],
3394    external_deps = [
3395        "absl/container:flat_hash_map",
3396        "absl/strings",
3397    ],
3398    language = "c++",
3399    deps = [
3400        "ref_counted",
3401        "unique_type_name",
3402        "useful",
3403        "//:debug_location",
3404        "//:endpoint_addresses",
3405        "//:ref_counted_ptr",
3406    ],
3407)
3408
3409grpc_cc_library(
3410    name = "filter_args",
3411    hdrs = [
3412        "filter/filter_args.h",
3413    ],
3414    deps = [
3415        "blackboard",
3416        "channel_fwd",
3417        "match",
3418    ],
3419)
3420
3421grpc_cc_library(
3422    name = "subchannel_connector",
3423    hdrs = [
3424        "client_channel/connector.h",
3425    ],
3426    language = "c++",
3427    deps = [
3428        "channel_args",
3429        "closure",
3430        "error",
3431        "iomgr_fwd",
3432        "resolved_address",
3433        "time",
3434        "//:channelz",
3435        "//:gpr_platform",
3436        "//:grpc_base",
3437        "//:iomgr",
3438        "//:orphanable",
3439        "//:ref_counted_ptr",
3440    ],
3441)
3442
3443grpc_cc_library(
3444    name = "subchannel_pool_interface",
3445    srcs = [
3446        "client_channel/subchannel_pool_interface.cc",
3447    ],
3448    hdrs = [
3449        "client_channel/subchannel_pool_interface.h",
3450    ],
3451    external_deps = [
3452        "absl/status",
3453        "absl/status:statusor",
3454        "absl/strings",
3455    ],
3456    language = "c++",
3457    deps = [
3458        "channel_args",
3459        "ref_counted",
3460        "resolved_address",
3461        "useful",
3462        "//:gpr_platform",
3463        "//:grpc_trace",
3464        "//:ref_counted_ptr",
3465        "//:sockaddr_utils",
3466    ],
3467)
3468
3469grpc_cc_library(
3470    name = "config_selector",
3471    hdrs = [
3472        "client_channel/config_selector.h",
3473    ],
3474    external_deps = [
3475        "absl/log:check",
3476        "absl/status",
3477        "absl/strings",
3478    ],
3479    language = "c++",
3480    deps = [
3481        "arena",
3482        "channel_args",
3483        "channel_fwd",
3484        "client_channel_internal_header",
3485        "grpc_service_config",
3486        "interception_chain",
3487        "metadata_batch",
3488        "ref_counted",
3489        "slice",
3490        "unique_type_name",
3491        "useful",
3492        "//:gpr_public_hdrs",
3493        "//:grpc_public_hdrs",
3494        "//:ref_counted_ptr",
3495    ],
3496)
3497
3498grpc_cc_library(
3499    name = "client_channel_service_config",
3500    srcs = [
3501        "client_channel/client_channel_service_config.cc",
3502    ],
3503    hdrs = [
3504        "client_channel/client_channel_service_config.h",
3505    ],
3506    external_deps = [
3507        "absl/status",
3508        "absl/status:statusor",
3509        "absl/strings",
3510        "absl/types:optional",
3511    ],
3512    language = "c++",
3513    deps = [
3514        "channel_args",
3515        "json",
3516        "json_args",
3517        "json_object_loader",
3518        "lb_policy",
3519        "lb_policy_registry",
3520        "service_config_parser",
3521        "time",
3522        "validation_errors",
3523        "//:config",
3524        "//:gpr_platform",
3525        "//:ref_counted_ptr",
3526    ],
3527)
3528
3529grpc_cc_library(
3530    name = "client_channel_args",
3531    hdrs = [
3532        "client_channel/client_channel_args.h",
3533    ],
3534)
3535
3536grpc_cc_library(
3537    name = "retry_interceptor",
3538    srcs = [
3539        "client_channel/retry_interceptor.cc",
3540    ],
3541    hdrs = [
3542        "client_channel/retry_interceptor.h",
3543    ],
3544    deps = [
3545        "cancel_callback",
3546        "client_channel_args",
3547        "filter_args",
3548        "for_each",
3549        "grpc_service_config",
3550        "interception_chain",
3551        "map",
3552        "request_buffer",
3553        "retry_service_config",
3554        "retry_throttle",
3555        "sleep",
3556        "//:backoff",
3557    ],
3558)
3559
3560grpc_cc_library(
3561    name = "retry_service_config",
3562    srcs = [
3563        "client_channel/retry_service_config.cc",
3564    ],
3565    hdrs = [
3566        "client_channel/retry_service_config.h",
3567    ],
3568    external_deps = [
3569        "absl/log:log",
3570        "absl/strings",
3571        "absl/types:optional",
3572    ],
3573    language = "c++",
3574    deps = [
3575        "channel_args",
3576        "json",
3577        "json_args",
3578        "json_channel_args",
3579        "json_object_loader",
3580        "service_config_parser",
3581        "time",
3582        "validation_errors",
3583        "//:channel_arg_names",
3584        "//:config",
3585        "//:gpr_public_hdrs",
3586        "//:grpc_base",
3587        "//:grpc_public_hdrs",
3588    ],
3589)
3590
3591grpc_cc_library(
3592    name = "retry_throttle",
3593    srcs = [
3594        "client_channel/retry_throttle.cc",
3595    ],
3596    hdrs = [
3597        "client_channel/retry_throttle.h",
3598    ],
3599    external_deps = ["absl/base:core_headers"],
3600    language = "c++",
3601    deps = [
3602        "ref_counted",
3603        "useful",
3604        "//:gpr",
3605        "//:ref_counted_ptr",
3606    ],
3607)
3608
3609grpc_cc_library(
3610    name = "client_channel_backup_poller",
3611    srcs = [
3612        "client_channel/backup_poller.cc",
3613    ],
3614    hdrs = [
3615        "client_channel/backup_poller.h",
3616    ],
3617    external_deps = [
3618        "absl/log:log",
3619        "absl/status",
3620    ],
3621    language = "c++",
3622    deps = [
3623        "closure",
3624        "error",
3625        "iomgr_fwd",
3626        "pollset_set",
3627        "time",
3628        "//:config_vars",
3629        "//:gpr",
3630        "//:gpr_platform",
3631        "//:iomgr",
3632        "//:iomgr_timer",
3633    ],
3634)
3635
3636grpc_cc_library(
3637    name = "service_config_channel_arg_filter",
3638    srcs = [
3639        "service_config/service_config_channel_arg_filter.cc",
3640    ],
3641    external_deps = [
3642        "absl/log:log",
3643        "absl/status",
3644        "absl/status:statusor",
3645        "absl/types:optional",
3646    ],
3647    language = "c++",
3648    deps = [
3649        "arena",
3650        "arena_promise",
3651        "channel_args",
3652        "channel_fwd",
3653        "channel_stack_type",
3654        "context",
3655        "grpc_message_size_filter",
3656        "grpc_service_config",
3657        "latent_see",
3658        "metadata_batch",
3659        "service_config_parser",
3660        "//:channel_arg_names",
3661        "//:config",
3662        "//:gpr_platform",
3663        "//:gpr_public_hdrs",
3664        "//:grpc_base",
3665        "//:grpc_service_config_impl",
3666        "//:ref_counted_ptr",
3667    ],
3668)
3669
3670grpc_cc_library(
3671    name = "lb_policy",
3672    srcs = ["load_balancing/lb_policy.cc"],
3673    hdrs = ["load_balancing/lb_policy.h"],
3674    external_deps = [
3675        "absl/base:core_headers",
3676        "absl/container:inlined_vector",
3677        "absl/status",
3678        "absl/status:statusor",
3679        "absl/strings",
3680        "absl/types:optional",
3681        "absl/types:variant",
3682    ],
3683    deps = [
3684        "channel_args",
3685        "closure",
3686        "dual_ref_counted",
3687        "error",
3688        "grpc_backend_metric_data",
3689        "iomgr_fwd",
3690        "metrics",
3691        "pollset_set",
3692        "ref_counted",
3693        "resolved_address",
3694        "subchannel_interface",
3695        "//:debug_location",
3696        "//:endpoint_addresses",
3697        "//:event_engine_base_hdrs",
3698        "//:exec_ctx",
3699        "//:gpr",
3700        "//:gpr_platform",
3701        "//:grpc_trace",
3702        "//:orphanable",
3703        "//:ref_counted_ptr",
3704        "//:work_serializer",
3705    ],
3706)
3707
3708grpc_cc_library(
3709    name = "lb_policy_factory",
3710    hdrs = ["load_balancing/lb_policy_factory.h"],
3711    external_deps = [
3712        "absl/status:statusor",
3713        "absl/strings",
3714    ],
3715    deps = [
3716        "json",
3717        "lb_policy",
3718        "//:gpr_platform",
3719        "//:orphanable",
3720        "//:ref_counted_ptr",
3721    ],
3722)
3723
3724grpc_cc_library(
3725    name = "lb_policy_registry",
3726    srcs = ["load_balancing/lb_policy_registry.cc"],
3727    hdrs = ["load_balancing/lb_policy_registry.h"],
3728    external_deps = [
3729        "absl/log:check",
3730        "absl/log:log",
3731        "absl/status",
3732        "absl/status:statusor",
3733        "absl/strings",
3734        "absl/strings:str_format",
3735    ],
3736    deps = [
3737        "json",
3738        "lb_policy",
3739        "lb_policy_factory",
3740        "//:gpr",
3741        "//:orphanable",
3742        "//:ref_counted_ptr",
3743    ],
3744)
3745
3746grpc_cc_library(
3747    name = "lb_metadata",
3748    srcs = ["client_channel/lb_metadata.cc"],
3749    hdrs = ["client_channel/lb_metadata.h"],
3750    external_deps = [
3751        "absl/log:log",
3752        "absl/strings",
3753        "absl/types:optional",
3754    ],
3755    deps = [
3756        "event_engine_common",
3757        "lb_policy",
3758        "metadata_batch",
3759    ],
3760)
3761
3762grpc_cc_library(
3763    name = "connection_context",
3764    srcs = ["lib/surface/connection_context.cc"],
3765    hdrs = ["lib/surface/connection_context.h"],
3766    deps = [
3767        "no_destruct",
3768        "//:gpr",
3769        "//:gpr_platform",
3770        "//:orphanable",
3771    ],
3772)
3773
3774grpc_cc_library(
3775    name = "subchannel_interface",
3776    hdrs = ["load_balancing/subchannel_interface.h"],
3777    external_deps = [
3778        "absl/status",
3779        "absl/strings",
3780    ],
3781    deps = [
3782        "dual_ref_counted",
3783        "iomgr_fwd",
3784        "//:event_engine_base_hdrs",
3785        "//:gpr_platform",
3786        "//:ref_counted_ptr",
3787    ],
3788)
3789
3790grpc_cc_library(
3791    name = "delegating_helper",
3792    hdrs = ["load_balancing/delegating_helper.h"],
3793    external_deps = [
3794        "absl/status",
3795        "absl/strings",
3796    ],
3797    deps = [
3798        "channel_args",
3799        "lb_policy",
3800        "resolved_address",
3801        "subchannel_interface",
3802        "//:debug_location",
3803        "//:event_engine_base_hdrs",
3804        "//:gpr_platform",
3805        "//:grpc_security_base",
3806        "//:ref_counted_ptr",
3807    ],
3808)
3809
3810grpc_cc_library(
3811    name = "backend_metric_parser",
3812    srcs = [
3813        "load_balancing/backend_metric_parser.cc",
3814    ],
3815    hdrs = [
3816        "load_balancing/backend_metric_parser.h",
3817    ],
3818    external_deps = [
3819        "absl/strings",
3820        "@com_google_protobuf//upb:base",
3821        "@com_google_protobuf//upb:mem",
3822        "@com_google_protobuf//upb:message",
3823    ],
3824    language = "c++",
3825    deps = [
3826        "grpc_backend_metric_data",
3827        "xds_orca_upb",
3828        "//:gpr_platform",
3829    ],
3830)
3831
3832grpc_cc_library(
3833    name = "proxy_mapper",
3834    hdrs = ["handshaker/proxy_mapper.h"],
3835    external_deps = [
3836        "absl/strings",
3837        "absl/types:optional",
3838    ],
3839    deps = [
3840        "channel_args",
3841        "resolved_address",
3842        "//:gpr_platform",
3843    ],
3844)
3845
3846grpc_cc_library(
3847    name = "proxy_mapper_registry",
3848    srcs = ["handshaker/proxy_mapper_registry.cc"],
3849    hdrs = ["handshaker/proxy_mapper_registry.h"],
3850    external_deps = [
3851        "absl/strings",
3852        "absl/types:optional",
3853    ],
3854    deps = [
3855        "channel_args",
3856        "proxy_mapper",
3857        "resolved_address",
3858        "//:gpr_platform",
3859    ],
3860)
3861
3862grpc_cc_library(
3863    name = "http_proxy_mapper",
3864    srcs = [
3865        "handshaker/http_connect/http_proxy_mapper.cc",
3866    ],
3867    hdrs = [
3868        "handshaker/http_connect/http_proxy_mapper.h",
3869    ],
3870    external_deps = [
3871        "absl/log:check",
3872        "absl/log:log",
3873        "absl/status",
3874        "absl/status:statusor",
3875        "absl/strings",
3876        "absl/types:optional",
3877    ],
3878    language = "c++",
3879    deps = [
3880        "channel_args",
3881        "env",
3882        "experiments",
3883        "proxy_mapper",
3884        "resolved_address",
3885        "//:channel_arg_names",
3886        "//:config",
3887        "//:gpr",
3888        "//:grpc_base",
3889        "//:http_connect_handshaker",
3890        "//:iomgr",
3891        "//:parse_address",
3892        "//:sockaddr_utils",
3893        "//:uri",
3894    ],
3895)
3896
3897grpc_cc_library(
3898    name = "xds_http_proxy_mapper",
3899    srcs = [
3900        "handshaker/http_connect/xds_http_proxy_mapper.cc",
3901    ],
3902    hdrs = [
3903        "handshaker/http_connect/xds_http_proxy_mapper.h",
3904    ],
3905    external_deps = [
3906        "absl/log:log",
3907        "absl/strings",
3908        "absl/types:optional",
3909    ],
3910    language = "c++",
3911    deps = [
3912        "channel_args",
3913        "proxy_mapper",
3914        "resolved_address",
3915        "xds_endpoint",
3916        "//:config",
3917        "//:grpc_base",
3918        "//:http_connect_handshaker",
3919        "//:parse_address",
3920        "//:sockaddr_utils",
3921    ],
3922)
3923
3924grpc_cc_library(
3925    name = "grpc_server_config_selector",
3926    hdrs = [
3927        "server/server_config_selector.h",
3928    ],
3929    external_deps = [
3930        "absl/status:statusor",
3931        "absl/strings",
3932    ],
3933    language = "c++",
3934    deps = [
3935        "dual_ref_counted",
3936        "grpc_service_config",
3937        "metadata_batch",
3938        "ref_counted",
3939        "service_config_parser",
3940        "useful",
3941        "//:gpr_platform",
3942        "//:grpc_base",
3943        "//:ref_counted_ptr",
3944    ],
3945)
3946
3947grpc_cc_library(
3948    name = "grpc_server_config_selector_filter",
3949    srcs = [
3950        "server/server_config_selector_filter.cc",
3951    ],
3952    hdrs = [
3953        "server/server_config_selector_filter.h",
3954    ],
3955    external_deps = [
3956        "absl/base:core_headers",
3957        "absl/log:check",
3958        "absl/status",
3959        "absl/status:statusor",
3960        "absl/types:optional",
3961    ],
3962    language = "c++",
3963    deps = [
3964        "arena",
3965        "arena_promise",
3966        "channel_args",
3967        "channel_fwd",
3968        "context",
3969        "event_engine_context",
3970        "grpc_server_config_selector",
3971        "grpc_service_config",
3972        "latent_see",
3973        "metadata_batch",
3974        "status_helper",
3975        "//:gpr",
3976        "//:grpc_base",
3977        "//:promise",
3978        "//:ref_counted_ptr",
3979    ],
3980)
3981
3982grpc_cc_library(
3983    name = "sorted_pack",
3984    hdrs = [
3985        "util/sorted_pack.h",
3986    ],
3987    language = "c++",
3988    deps = [
3989        "type_list",
3990        "//:gpr_platform",
3991    ],
3992)
3993
3994grpc_cc_library(
3995    name = "type_list",
3996    hdrs = [
3997        "util/type_list.h",
3998    ],
3999    language = "c++",
4000)
4001
4002grpc_cc_library(
4003    name = "if_list",
4004    hdrs = [
4005        "util/if_list.h",
4006    ],
4007    language = "c++",
4008    deps = ["//:gpr_platform"],
4009)
4010
4011grpc_cc_library(
4012    name = "tdigest",
4013    srcs = [
4014        "util/tdigest.cc",
4015    ],
4016    hdrs = [
4017        "util/tdigest.h",
4018    ],
4019    external_deps = [
4020        "absl/strings",
4021        "absl/status",
4022        "absl/log:check",
4023        "absl/log",
4024    ],
4025    language = "c++",
4026    deps = ["//:gpr_platform"],
4027)
4028
4029grpc_cc_library(
4030    name = "certificate_provider_factory",
4031    hdrs = [
4032        "lib/security/certificate_provider/certificate_provider_factory.h",
4033    ],
4034    external_deps = ["absl/strings"],
4035    deps = [
4036        "json",
4037        "json_args",
4038        "ref_counted",
4039        "validation_errors",
4040        "//:alts_util",
4041        "//:gpr",
4042        "//:grpc_core_credentials_header",
4043        "//:ref_counted_ptr",
4044    ],
4045)
4046
4047grpc_cc_library(
4048    name = "certificate_provider_registry",
4049    srcs = [
4050        "lib/security/certificate_provider/certificate_provider_registry.cc",
4051    ],
4052    hdrs = [
4053        "lib/security/certificate_provider/certificate_provider_registry.h",
4054    ],
4055    external_deps = [
4056        "absl/log:check",
4057        "absl/log:log",
4058        "absl/strings",
4059    ],
4060    deps = [
4061        "certificate_provider_factory",
4062        "//:gpr",
4063    ],
4064)
4065
4066grpc_cc_library(
4067    name = "grpc_audit_logging",
4068    srcs = [
4069        "lib/security/authorization/audit_logging.cc",
4070        "lib/security/authorization/stdout_logger.cc",
4071    ],
4072    hdrs = [
4073        "lib/security/authorization/audit_logging.h",
4074        "lib/security/authorization/stdout_logger.h",
4075    ],
4076    external_deps = [
4077        "absl/base:core_headers",
4078        "absl/log:check",
4079        "absl/status",
4080        "absl/status:statusor",
4081        "absl/strings",
4082        "absl/strings:str_format",
4083        "absl/time",
4084    ],
4085    deps = [
4086        "//:gpr",
4087        "//:grpc_base",
4088    ],
4089)
4090
4091grpc_cc_library(
4092    name = "grpc_authorization_base",
4093    srcs = [
4094        "lib/security/authorization/authorization_policy_provider_vtable.cc",
4095        "lib/security/authorization/evaluate_args.cc",
4096        "lib/security/authorization/grpc_server_authz_filter.cc",
4097    ],
4098    hdrs = [
4099        "lib/security/authorization/authorization_engine.h",
4100        "lib/security/authorization/authorization_policy_provider.h",
4101        "lib/security/authorization/evaluate_args.h",
4102        "lib/security/authorization/grpc_server_authz_filter.h",
4103    ],
4104    external_deps = [
4105        "absl/log:log",
4106        "absl/status",
4107        "absl/status:statusor",
4108        "absl/strings",
4109        "absl/types:optional",
4110    ],
4111    language = "c++",
4112    deps = [
4113        "arena_promise",
4114        "channel_args",
4115        "channel_fwd",
4116        "dual_ref_counted",
4117        "endpoint_info_handshaker",
4118        "latent_see",
4119        "load_file",
4120        "metadata_batch",
4121        "ref_counted",
4122        "resolved_address",
4123        "slice",
4124        "useful",
4125        "//:channel_arg_names",
4126        "//:gpr",
4127        "//:grpc_base",
4128        "//:grpc_credentials_util",
4129        "//:grpc_security_base",
4130        "//:grpc_trace",
4131        "//:parse_address",
4132        "//:promise",
4133        "//:ref_counted_ptr",
4134        "//:uri",
4135    ],
4136)
4137
4138grpc_cc_library(
4139    name = "grpc_crl_provider",
4140    srcs = [
4141        "lib/security/credentials/tls/grpc_tls_crl_provider.cc",
4142    ],
4143    hdrs = [
4144        "lib/security/credentials/tls/grpc_tls_crl_provider.h",
4145    ],
4146    external_deps = [
4147        "absl/base:core_headers",
4148        "absl/container:flat_hash_map",
4149        "absl/log:log",
4150        "absl/status",
4151        "absl/status:statusor",
4152        "absl/strings",
4153        "absl/types:optional",
4154        "absl/types:span",
4155        "libcrypto",
4156        "libssl",
4157    ],
4158    deps = [
4159        "default_event_engine",
4160        "directory_reader",
4161        "load_file",
4162        "slice",
4163        "time",
4164        "//:exec_ctx",
4165        "//:gpr",
4166        "//:grpc_base",
4167    ],
4168)
4169
4170grpc_cc_library(
4171    name = "grpc_fake_credentials",
4172    srcs = [
4173        "lib/security/credentials/fake/fake_credentials.cc",
4174        "lib/security/security_connector/fake/fake_security_connector.cc",
4175    ],
4176    hdrs = [
4177        "lib/security/credentials/fake/fake_credentials.h",
4178        "lib/security/security_connector/fake/fake_security_connector.h",
4179        "load_balancing/grpclb/grpclb.h",
4180    ],
4181    external_deps = [
4182        "absl/log:check",
4183        "absl/log:log",
4184        "absl/status",
4185        "absl/status:statusor",
4186        "absl/strings",
4187        "absl/strings:str_format",
4188        "absl/types:optional",
4189    ],
4190    language = "c++",
4191    deps = [
4192        "arena_promise",
4193        "channel_args",
4194        "closure",
4195        "error",
4196        "iomgr_fwd",
4197        "metadata_batch",
4198        "slice",
4199        "unique_type_name",
4200        "useful",
4201        "//:channel_arg_names",
4202        "//:debug_location",
4203        "//:exec_ctx",
4204        "//:gpr",
4205        "//:grpc_base",
4206        "//:grpc_core_credentials_header",
4207        "//:grpc_security_base",
4208        "//:handshaker",
4209        "//:iomgr",
4210        "//:promise",
4211        "//:ref_counted_ptr",
4212        "//:resource_quota_api",
4213        "//:tsi_base",
4214        "//:tsi_fake_credentials",
4215    ],
4216)
4217
4218grpc_cc_library(
4219    name = "grpc_insecure_credentials",
4220    srcs = [
4221        "lib/security/credentials/insecure/insecure_credentials.cc",
4222        "lib/security/security_connector/insecure/insecure_security_connector.cc",
4223    ],
4224    hdrs = [
4225        "lib/security/credentials/insecure/insecure_credentials.h",
4226        "lib/security/security_connector/insecure/insecure_security_connector.h",
4227    ],
4228    external_deps = [
4229        "absl/log:check",
4230        "absl/status",
4231        "absl/strings",
4232    ],
4233    language = "c++",
4234    deps = [
4235        "arena_promise",
4236        "channel_args",
4237        "closure",
4238        "error",
4239        "iomgr_fwd",
4240        "tsi_local_credentials",
4241        "unique_type_name",
4242        "//:debug_location",
4243        "//:exec_ctx",
4244        "//:gpr",
4245        "//:grpc_base",
4246        "//:grpc_core_credentials_header",
4247        "//:grpc_security_base",
4248        "//:handshaker",
4249        "//:iomgr",
4250        "//:promise",
4251        "//:ref_counted_ptr",
4252        "//:tsi_base",
4253    ],
4254)
4255
4256grpc_cc_library(
4257    name = "tsi_local_credentials",
4258    srcs = [
4259        "tsi/local_transport_security.cc",
4260    ],
4261    hdrs = [
4262        "tsi/local_transport_security.h",
4263    ],
4264    external_deps = [
4265        "absl/log:log",
4266    ],
4267    language = "c++",
4268    deps = [
4269        "//:event_engine_base_hdrs",
4270        "//:exec_ctx",
4271        "//:gpr",
4272        "//:tsi_base",
4273    ],
4274)
4275
4276grpc_cc_library(
4277    name = "grpc_local_credentials",
4278    srcs = [
4279        "lib/security/credentials/local/local_credentials.cc",
4280        "lib/security/security_connector/local/local_security_connector.cc",
4281    ],
4282    hdrs = [
4283        "lib/security/credentials/local/local_credentials.h",
4284        "lib/security/security_connector/local/local_security_connector.h",
4285    ],
4286    external_deps = [
4287        "absl/log:check",
4288        "absl/log:log",
4289        "absl/status",
4290        "absl/status:statusor",
4291        "absl/strings",
4292        "absl/types:optional",
4293    ],
4294    language = "c++",
4295    deps = [
4296        "arena_promise",
4297        "channel_args",
4298        "closure",
4299        "error",
4300        "experiments",
4301        "grpc_sockaddr",
4302        "iomgr_fwd",
4303        "resolved_address",
4304        "tsi_local_credentials",
4305        "unique_type_name",
4306        "useful",
4307        "//:debug_location",
4308        "//:exec_ctx",
4309        "//:gpr",
4310        "//:grpc_base",
4311        "//:grpc_client_channel",
4312        "//:grpc_core_credentials_header",
4313        "//:grpc_security_base",
4314        "//:handshaker",
4315        "//:iomgr",
4316        "//:parse_address",
4317        "//:promise",
4318        "//:ref_counted_ptr",
4319        "//:sockaddr_utils",
4320        "//:tsi_base",
4321        "//:uri",
4322    ],
4323)
4324
4325grpc_cc_library(
4326    name = "grpc_ssl_credentials",
4327    srcs = [
4328        "lib/security/credentials/ssl/ssl_credentials.cc",
4329        "lib/security/security_connector/ssl/ssl_security_connector.cc",
4330    ],
4331    hdrs = [
4332        "lib/security/credentials/ssl/ssl_credentials.h",
4333        "lib/security/security_connector/ssl/ssl_security_connector.h",
4334    ],
4335    external_deps = [
4336        "absl/log:check",
4337        "absl/log:log",
4338        "absl/status",
4339        "absl/strings",
4340        "absl/strings:str_format",
4341        "absl/types:optional",
4342    ],
4343    language = "c++",
4344    deps = [
4345        "arena_promise",
4346        "channel_args",
4347        "closure",
4348        "error",
4349        "iomgr_fwd",
4350        "unique_type_name",
4351        "useful",
4352        "//:channel_arg_names",
4353        "//:debug_location",
4354        "//:exec_ctx",
4355        "//:gpr",
4356        "//:grpc_base",
4357        "//:grpc_core_credentials_header",
4358        "//:grpc_security_base",
4359        "//:grpc_trace",
4360        "//:handshaker",
4361        "//:iomgr",
4362        "//:promise",
4363        "//:ref_counted_ptr",
4364        "//:tsi_base",
4365        "//:tsi_ssl_credentials",
4366        "//:tsi_ssl_session_cache",
4367    ],
4368)
4369
4370grpc_cc_library(
4371    name = "grpc_google_default_credentials",
4372    srcs = [
4373        "lib/security/credentials/google_default/credentials_generic.cc",
4374        "lib/security/credentials/google_default/google_default_credentials.cc",
4375    ],
4376    hdrs = [
4377        "lib/security/credentials/google_default/google_default_credentials.h",
4378        "load_balancing/grpclb/grpclb.h",
4379    ],
4380    external_deps = [
4381        "absl/log:check",
4382        "absl/log:log",
4383        "absl/status:statusor",
4384        "absl/strings",
4385        "absl/types:optional",
4386    ],
4387    language = "c++",
4388    tags = ["nofixdeps"],
4389    deps = [
4390        "channel_args",
4391        "closure",
4392        "env",
4393        "error",
4394        "error_utils",
4395        "grpc_external_account_credentials",
4396        "grpc_lb_xds_channel_args",
4397        "grpc_oauth2_credentials",
4398        "grpc_ssl_credentials",
4399        "iomgr_fwd",
4400        "json",
4401        "json_reader",
4402        "load_file",
4403        "slice",
4404        "slice_refcount",
4405        "status_helper",
4406        "time",
4407        "unique_type_name",
4408        "useful",
4409        "//:alts_util",
4410        "//:channel_arg_names",
4411        "//:exec_ctx",
4412        "//:gpr",
4413        "//:grpc_alts_credentials",
4414        "//:grpc_base",
4415        "//:grpc_core_credentials_header",
4416        "//:grpc_jwt_credentials",
4417        "//:grpc_public_hdrs",
4418        "//:grpc_security_base",
4419        "//:grpc_trace",
4420        "//:httpcli",
4421        "//:iomgr",
4422        "//:orphanable",
4423        "//:ref_counted_ptr",
4424        "//:uri",
4425    ],
4426)
4427
4428grpc_cc_library(
4429    name = "strerror",
4430    srcs = [
4431        "util/strerror.cc",
4432    ],
4433    hdrs = [
4434        "util/strerror.h",
4435    ],
4436    external_deps = ["absl/strings:str_format"],
4437    deps = ["//:gpr_platform"],
4438)
4439
4440grpc_cc_library(
4441    name = "grpc_tls_credentials",
4442    srcs = [
4443        "lib/security/credentials/tls/grpc_tls_certificate_distributor.cc",
4444        "lib/security/credentials/tls/grpc_tls_certificate_match.cc",
4445        "lib/security/credentials/tls/grpc_tls_certificate_provider.cc",
4446        "lib/security/credentials/tls/grpc_tls_certificate_verifier.cc",
4447        "lib/security/credentials/tls/grpc_tls_credentials_options.cc",
4448        "lib/security/credentials/tls/tls_credentials.cc",
4449        "lib/security/security_connector/tls/tls_security_connector.cc",
4450    ],
4451    hdrs = [
4452        "lib/security/credentials/tls/grpc_tls_certificate_distributor.h",
4453        "lib/security/credentials/tls/grpc_tls_certificate_provider.h",
4454        "lib/security/credentials/tls/grpc_tls_certificate_verifier.h",
4455        "lib/security/credentials/tls/grpc_tls_credentials_options.h",
4456        "lib/security/credentials/tls/tls_credentials.h",
4457        "lib/security/security_connector/tls/tls_security_connector.h",
4458    ],
4459    external_deps = [
4460        "absl/base:core_headers",
4461        "absl/container:inlined_vector",
4462        "absl/functional:bind_front",
4463        "absl/log:check",
4464        "absl/log:log",
4465        "absl/status",
4466        "absl/status:statusor",
4467        "absl/strings",
4468        "absl/types:optional",
4469        "libcrypto",
4470        "libssl",
4471    ],
4472    language = "c++",
4473    deps = [
4474        "arena_promise",
4475        "channel_args",
4476        "closure",
4477        "error",
4478        "iomgr_fwd",
4479        "load_file",
4480        "ref_counted",
4481        "slice",
4482        "slice_refcount",
4483        "status_helper",
4484        "unique_type_name",
4485        "useful",
4486        "//:channel_arg_names",
4487        "//:debug_location",
4488        "//:exec_ctx",
4489        "//:gpr",
4490        "//:grpc_base",
4491        "//:grpc_core_credentials_header",
4492        "//:grpc_credentials_util",
4493        "//:grpc_public_hdrs",
4494        "//:grpc_security_base",
4495        "//:grpc_trace",
4496        "//:handshaker",
4497        "//:iomgr",
4498        "//:promise",
4499        "//:ref_counted_ptr",
4500        "//:tsi_base",
4501        "//:tsi_ssl_credentials",
4502        "//:tsi_ssl_session_cache",
4503    ],
4504)
4505
4506grpc_cc_library(
4507    name = "grpc_iam_credentials",
4508    srcs = [
4509        "lib/security/credentials/iam/iam_credentials.cc",
4510    ],
4511    hdrs = [
4512        "lib/security/credentials/iam/iam_credentials.h",
4513    ],
4514    external_deps = [
4515        "absl/log:check",
4516        "absl/status:statusor",
4517        "absl/strings",
4518        "absl/strings:str_format",
4519        "absl/types:optional",
4520    ],
4521    language = "c++",
4522    deps = [
4523        "arena_promise",
4524        "metadata_batch",
4525        "slice",
4526        "unique_type_name",
4527        "useful",
4528        "//:exec_ctx",
4529        "//:gpr",
4530        "//:grpc_base",
4531        "//:grpc_core_credentials_header",
4532        "//:grpc_security_base",
4533        "//:grpc_trace",
4534        "//:promise",
4535        "//:ref_counted_ptr",
4536    ],
4537)
4538
4539grpc_cc_library(
4540    name = "token_fetcher_credentials",
4541    srcs = [
4542        "lib/security/credentials/token_fetcher/token_fetcher_credentials.cc",
4543    ],
4544    hdrs = [
4545        "lib/security/credentials/token_fetcher/token_fetcher_credentials.h",
4546    ],
4547    external_deps = [
4548        "absl/container:flat_hash_set",
4549        "absl/functional:any_invocable",
4550        "absl/status:statusor",
4551        "absl/types:variant",
4552    ],
4553    language = "c++",
4554    deps = [
4555        "arena_promise",
4556        "context",
4557        "default_event_engine",
4558        "metadata",
4559        "poll",
4560        "pollset_set",
4561        "ref_counted",
4562        "time",
4563        "useful",
4564        "//:backoff",
4565        "//:gpr",
4566        "//:grpc_security_base",
4567        "//:grpc_trace",
4568        "//:httpcli",
4569        "//:iomgr",
4570        "//:orphanable",
4571        "//:promise",
4572        "//:ref_counted_ptr",
4573    ],
4574)
4575
4576grpc_cc_library(
4577    name = "gcp_service_account_identity_credentials",
4578    srcs = [
4579        "lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.cc",
4580    ],
4581    hdrs = [
4582        "lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.h",
4583    ],
4584    external_deps = [
4585        "absl/functional:any_invocable",
4586        "absl/status",
4587        "absl/status:statusor",
4588        "absl/strings",
4589    ],
4590    language = "c++",
4591    deps = [
4592        "activity",
4593        "arena_promise",
4594        "closure",
4595        "error",
4596        "json",
4597        "json_args",
4598        "json_object_loader",
4599        "json_reader",
4600        "metadata",
4601        "pollset_set",
4602        "ref_counted",
4603        "slice",
4604        "status_conversion",
4605        "status_helper",
4606        "time",
4607        "token_fetcher_credentials",
4608        "unique_type_name",
4609        "//:gpr",
4610        "//:grpc_base",
4611        "//:grpc_core_credentials_header",
4612        "//:grpc_security_base",
4613        "//:httpcli",
4614        "//:iomgr",
4615        "//:orphanable",
4616        "//:promise",
4617        "//:ref_counted_ptr",
4618        "//:uri",
4619    ],
4620)
4621
4622grpc_cc_library(
4623    name = "grpc_oauth2_credentials",
4624    srcs = [
4625        "lib/security/credentials/oauth2/oauth2_credentials.cc",
4626    ],
4627    hdrs = [
4628        "lib/security/credentials/oauth2/oauth2_credentials.h",
4629    ],
4630    external_deps = [
4631        "absl/log:check",
4632        "absl/log:log",
4633        "absl/status",
4634        "absl/status:statusor",
4635        "absl/strings",
4636        "absl/strings:str_format",
4637        "absl/types:optional",
4638    ],
4639    language = "c++",
4640    deps = [
4641        "activity",
4642        "arena_promise",
4643        "closure",
4644        "context",
4645        "error",
4646        "error_utils",
4647        "httpcli_ssl_credentials",
4648        "json",
4649        "json_reader",
4650        "load_file",
4651        "metadata_batch",
4652        "poll",
4653        "pollset_set",
4654        "ref_counted",
4655        "slice",
4656        "slice_refcount",
4657        "status_helper",
4658        "time",
4659        "token_fetcher_credentials",
4660        "unique_type_name",
4661        "useful",
4662        "//:gpr",
4663        "//:grpc_base",
4664        "//:grpc_core_credentials_header",
4665        "//:grpc_credentials_util",
4666        "//:grpc_security_base",
4667        "//:grpc_trace",
4668        "//:httpcli",
4669        "//:iomgr",
4670        "//:orphanable",
4671        "//:promise",
4672        "//:ref_counted_ptr",
4673        "//:uri",
4674    ],
4675)
4676
4677grpc_cc_library(
4678    name = "grpc_external_account_credentials",
4679    srcs = [
4680        "lib/security/credentials/external/aws_external_account_credentials.cc",
4681        "lib/security/credentials/external/aws_request_signer.cc",
4682        "lib/security/credentials/external/external_account_credentials.cc",
4683        "lib/security/credentials/external/file_external_account_credentials.cc",
4684        "lib/security/credentials/external/url_external_account_credentials.cc",
4685    ],
4686    hdrs = [
4687        "lib/security/credentials/external/aws_external_account_credentials.h",
4688        "lib/security/credentials/external/aws_request_signer.h",
4689        "lib/security/credentials/external/external_account_credentials.h",
4690        "lib/security/credentials/external/file_external_account_credentials.h",
4691        "lib/security/credentials/external/url_external_account_credentials.h",
4692    ],
4693    external_deps = [
4694        "absl/log:check",
4695        "absl/log:log",
4696        "absl/status",
4697        "absl/status:statusor",
4698        "absl/strings",
4699        "absl/strings:str_format",
4700        "absl/time",
4701        "absl/types:optional",
4702        "libcrypto",
4703    ],
4704    language = "c++",
4705    deps = [
4706        "closure",
4707        "env",
4708        "error",
4709        "error_utils",
4710        "grpc_oauth2_credentials",
4711        "httpcli_ssl_credentials",
4712        "json",
4713        "json_reader",
4714        "json_writer",
4715        "load_file",
4716        "slice",
4717        "slice_refcount",
4718        "status_helper",
4719        "time",
4720        "token_fetcher_credentials",
4721        "//:gpr",
4722        "//:grpc_base",
4723        "//:grpc_core_credentials_header",
4724        "//:grpc_credentials_util",
4725        "//:grpc_security_base",
4726        "//:httpcli",
4727        "//:iomgr",
4728        "//:orphanable",
4729        "//:ref_counted_ptr",
4730        "//:uri",
4731    ],
4732)
4733
4734grpc_cc_library(
4735    name = "httpcli_ssl_credentials",
4736    srcs = [
4737        "util/http_client/httpcli_security_connector.cc",
4738    ],
4739    hdrs = [
4740        "util/http_client/httpcli_ssl_credentials.h",
4741    ],
4742    external_deps = [
4743        "absl/log:log",
4744        "absl/status",
4745        "absl/strings",
4746        "absl/types:optional",
4747    ],
4748    language = "c++",
4749    deps = [
4750        "arena_promise",
4751        "channel_args",
4752        "closure",
4753        "error",
4754        "iomgr_fwd",
4755        "unique_type_name",
4756        "//:channel_arg_names",
4757        "//:debug_location",
4758        "//:exec_ctx",
4759        "//:gpr",
4760        "//:grpc_base",
4761        "//:grpc_core_credentials_header",
4762        "//:grpc_security_base",
4763        "//:handshaker",
4764        "//:iomgr",
4765        "//:promise",
4766        "//:ref_counted_ptr",
4767        "//:tsi_base",
4768        "//:tsi_ssl_credentials",
4769    ],
4770)
4771
4772grpc_cc_library(
4773    name = "tsi_ssl_types",
4774    hdrs = [
4775        "tsi/ssl_types.h",
4776    ],
4777    external_deps = ["libssl"],
4778    language = "c++",
4779    deps = ["//:gpr_platform"],
4780)
4781
4782# This target depends on RE2 and should not be linked into grpc by default for binary-size reasons.
4783grpc_cc_library(
4784    name = "grpc_matchers",
4785    srcs = [
4786        "util/matchers.cc",
4787    ],
4788    hdrs = [
4789        "util/matchers.h",
4790    ],
4791    external_deps = [
4792        "absl/status",
4793        "absl/status:statusor",
4794        "absl/strings",
4795        "absl/strings:str_format",
4796        "absl/types:optional",
4797        "re2",
4798    ],
4799    language = "c++",
4800    deps = ["//:gpr"],
4801)
4802
4803# This target pulls in a dependency on RE2 and should not be linked into grpc by default for binary-size reasons.
4804grpc_cc_library(
4805    name = "grpc_rbac_engine",
4806    srcs = [
4807        "lib/security/authorization/grpc_authorization_engine.cc",
4808        "lib/security/authorization/matchers.cc",
4809        "lib/security/authorization/rbac_policy.cc",
4810    ],
4811    hdrs = [
4812        "lib/security/authorization/grpc_authorization_engine.h",
4813        "lib/security/authorization/matchers.h",
4814        "lib/security/authorization/rbac_policy.h",
4815    ],
4816    external_deps = [
4817        "absl/log:check",
4818        "absl/log:log",
4819        "absl/status",
4820        "absl/status:statusor",
4821        "absl/strings",
4822        "absl/strings:str_format",
4823        "absl/types:optional",
4824    ],
4825    language = "c++",
4826    deps = [
4827        "grpc_audit_logging",
4828        "grpc_authorization_base",
4829        "grpc_matchers",
4830        "resolved_address",
4831        "//:gpr",
4832        "//:grpc_base",
4833        "//:parse_address",
4834        "//:sockaddr_utils",
4835    ],
4836)
4837
4838grpc_cc_library(
4839    name = "json",
4840    hdrs = [
4841        "util/json/json.h",
4842    ],
4843    deps = ["//:gpr"],
4844)
4845
4846grpc_cc_library(
4847    name = "json_reader",
4848    srcs = [
4849        "util/json/json_reader.cc",
4850    ],
4851    hdrs = [
4852        "util/json/json_reader.h",
4853    ],
4854    external_deps = [
4855        "absl/base:core_headers",
4856        "absl/log:check",
4857        "absl/status",
4858        "absl/status:statusor",
4859        "absl/strings",
4860        "absl/strings:str_format",
4861        "absl/types:variant",
4862    ],
4863    visibility = ["@grpc:json_reader_legacy"],
4864    deps = [
4865        "json",
4866        "match",
4867        "//:gpr",
4868    ],
4869)
4870
4871grpc_cc_library(
4872    name = "json_writer",
4873    srcs = [
4874        "util/json/json_writer.cc",
4875    ],
4876    hdrs = [
4877        "util/json/json_writer.h",
4878    ],
4879    external_deps = ["absl/strings"],
4880    deps = [
4881        "json",
4882        "//:gpr",
4883    ],
4884)
4885
4886grpc_cc_library(
4887    name = "json_util",
4888    srcs = ["util/json/json_util.cc"],
4889    hdrs = ["util/json/json_util.h"],
4890    external_deps = ["absl/strings"],
4891    deps = [
4892        "error",
4893        "json",
4894        "json_args",
4895        "json_object_loader",
4896        "no_destruct",
4897        "time",
4898        "validation_errors",
4899        "//:gpr",
4900    ],
4901)
4902
4903grpc_cc_library(
4904    name = "json_args",
4905    hdrs = ["util/json/json_args.h"],
4906    external_deps = ["absl/strings"],
4907    deps = ["//:gpr"],
4908)
4909
4910grpc_cc_library(
4911    name = "json_object_loader",
4912    srcs = ["util/json/json_object_loader.cc"],
4913    hdrs = ["util/json/json_object_loader.h"],
4914    external_deps = [
4915        "absl/meta:type_traits",
4916        "absl/status",
4917        "absl/status:statusor",
4918        "absl/strings",
4919        "absl/types:optional",
4920    ],
4921    deps = [
4922        "json",
4923        "json_args",
4924        "no_destruct",
4925        "time",
4926        "validation_errors",
4927        "//:gpr",
4928        "//:ref_counted_ptr",
4929    ],
4930)
4931
4932grpc_cc_library(
4933    name = "json_channel_args",
4934    hdrs = ["util/json/json_channel_args.h"],
4935    external_deps = [
4936        "absl/strings",
4937        "absl/types:optional",
4938    ],
4939    deps = [
4940        "channel_args",
4941        "json_args",
4942        "//:gpr",
4943    ],
4944)
4945
4946grpc_cc_library(
4947    name = "idle_filter_state",
4948    srcs = [
4949        "ext/filters/channel_idle/idle_filter_state.cc",
4950    ],
4951    hdrs = [
4952        "ext/filters/channel_idle/idle_filter_state.h",
4953    ],
4954    language = "c++",
4955    deps = ["//:gpr_platform"],
4956)
4957
4958grpc_cc_library(
4959    name = "grpc_channel_idle_filter",
4960    srcs = [
4961        "ext/filters/channel_idle/legacy_channel_idle_filter.cc",
4962    ],
4963    hdrs = [
4964        "ext/filters/channel_idle/legacy_channel_idle_filter.h",
4965    ],
4966    external_deps = [
4967        "absl/base:core_headers",
4968        "absl/meta:type_traits",
4969        "absl/random",
4970        "absl/status",
4971        "absl/status:statusor",
4972        "absl/types:optional",
4973    ],
4974    deps = [
4975        "activity",
4976        "arena",
4977        "arena_promise",
4978        "channel_args",
4979        "channel_fwd",
4980        "channel_stack_type",
4981        "closure",
4982        "connectivity_state",
4983        "error",
4984        "exec_ctx_wakeup_scheduler",
4985        "experiments",
4986        "http2_errors",
4987        "idle_filter_state",
4988        "loop",
4989        "metadata_batch",
4990        "no_destruct",
4991        "per_cpu",
4992        "poll",
4993        "single_set_ptr",
4994        "sleep",
4995        "status_helper",
4996        "time",
4997        "try_seq",
4998        "//:channel_arg_names",
4999        "//:config",
5000        "//:debug_location",
5001        "//:exec_ctx",
5002        "//:gpr",
5003        "//:grpc_base",
5004        "//:grpc_trace",
5005        "//:orphanable",
5006        "//:promise",
5007        "//:ref_counted_ptr",
5008    ],
5009)
5010
5011grpc_cc_library(
5012    name = "grpc_client_authority_filter",
5013    srcs = [
5014        "ext/filters/http/client_authority_filter.cc",
5015    ],
5016    hdrs = [
5017        "ext/filters/http/client_authority_filter.h",
5018    ],
5019    external_deps = [
5020        "absl/status",
5021        "absl/status:statusor",
5022        "absl/strings",
5023        "absl/types:optional",
5024    ],
5025    language = "c++",
5026    deps = [
5027        "arena_promise",
5028        "channel_args",
5029        "channel_fwd",
5030        "channel_stack_type",
5031        "latent_see",
5032        "metadata_batch",
5033        "slice",
5034        "//:channel_arg_names",
5035        "//:config",
5036        "//:gpr_platform",
5037        "//:grpc_base",
5038        "//:grpc_security_base",
5039    ],
5040)
5041
5042grpc_cc_library(
5043    name = "grpc_message_size_filter",
5044    srcs = [
5045        "ext/filters/message_size/message_size_filter.cc",
5046    ],
5047    hdrs = [
5048        "ext/filters/message_size/message_size_filter.h",
5049    ],
5050    external_deps = [
5051        "absl/log:log",
5052        "absl/status:statusor",
5053        "absl/strings",
5054        "absl/strings:str_format",
5055        "absl/types:optional",
5056    ],
5057    language = "c++",
5058    deps = [
5059        "activity",
5060        "arena",
5061        "arena_promise",
5062        "channel_args",
5063        "channel_fwd",
5064        "channel_stack_type",
5065        "context",
5066        "grpc_service_config",
5067        "json",
5068        "json_args",
5069        "json_object_loader",
5070        "latch",
5071        "latent_see",
5072        "metadata_batch",
5073        "race",
5074        "service_config_parser",
5075        "slice",
5076        "slice_buffer",
5077        "validation_errors",
5078        "//:channel_arg_names",
5079        "//:config",
5080        "//:gpr",
5081        "//:grpc_base",
5082        "//:grpc_public_hdrs",
5083        "//:grpc_trace",
5084    ],
5085)
5086
5087grpc_cc_library(
5088    name = "grpc_fault_injection_filter",
5089    srcs = [
5090        "ext/filters/fault_injection/fault_injection_filter.cc",
5091        "ext/filters/fault_injection/fault_injection_service_config_parser.cc",
5092    ],
5093    hdrs = [
5094        "ext/filters/fault_injection/fault_injection_filter.h",
5095        "ext/filters/fault_injection/fault_injection_service_config_parser.h",
5096    ],
5097    external_deps = [
5098        "absl/base:core_headers",
5099        "absl/log:log",
5100        "absl/meta:type_traits",
5101        "absl/random",
5102        "absl/status",
5103        "absl/status:statusor",
5104        "absl/strings",
5105        "absl/types:optional",
5106    ],
5107    language = "c++",
5108    deps = [
5109        "arena_promise",
5110        "channel_args",
5111        "channel_fwd",
5112        "context",
5113        "grpc_service_config",
5114        "json",
5115        "json_args",
5116        "json_object_loader",
5117        "metadata_batch",
5118        "service_config_parser",
5119        "sleep",
5120        "time",
5121        "try_seq",
5122        "validation_errors",
5123        "//:config",
5124        "//:gpr",
5125        "//:grpc_base",
5126        "//:grpc_public_hdrs",
5127        "//:grpc_trace",
5128    ],
5129)
5130
5131grpc_cc_library(
5132    name = "grpc_rbac_filter",
5133    srcs = [
5134        "ext/filters/rbac/rbac_filter.cc",
5135        "ext/filters/rbac/rbac_service_config_parser.cc",
5136    ],
5137    hdrs = [
5138        "ext/filters/rbac/rbac_filter.h",
5139        "ext/filters/rbac/rbac_service_config_parser.h",
5140    ],
5141    external_deps = [
5142        "absl/status",
5143        "absl/status:statusor",
5144        "absl/strings",
5145        "absl/types:optional",
5146    ],
5147    language = "c++",
5148    deps = [
5149        "arena_promise",
5150        "channel_args",
5151        "channel_fwd",
5152        "context",
5153        "error",
5154        "grpc_audit_logging",
5155        "grpc_authorization_base",
5156        "grpc_matchers",
5157        "grpc_rbac_engine",
5158        "grpc_service_config",
5159        "json",
5160        "json_args",
5161        "json_object_loader",
5162        "latent_see",
5163        "metadata_batch",
5164        "service_config_parser",
5165        "validation_errors",
5166        "//:config",
5167        "//:gpr",
5168        "//:grpc_base",
5169        "//:grpc_security_base",
5170        "//:promise",
5171    ],
5172)
5173
5174grpc_cc_library(
5175    name = "grpc_stateful_session_filter",
5176    srcs = [
5177        "ext/filters/stateful_session/stateful_session_filter.cc",
5178        "ext/filters/stateful_session/stateful_session_service_config_parser.cc",
5179    ],
5180    hdrs = [
5181        "ext/filters/stateful_session/stateful_session_filter.h",
5182        "ext/filters/stateful_session/stateful_session_service_config_parser.h",
5183    ],
5184    external_deps = [
5185        "absl/log:check",
5186        "absl/status:statusor",
5187        "absl/strings",
5188        "absl/types:optional",
5189    ],
5190    language = "c++",
5191    deps = [
5192        "arena",
5193        "arena_promise",
5194        "channel_args",
5195        "channel_fwd",
5196        "context",
5197        "grpc_resolver_xds_attributes",
5198        "grpc_service_config",
5199        "json",
5200        "json_args",
5201        "json_object_loader",
5202        "latent_see",
5203        "map",
5204        "metadata_batch",
5205        "pipe",
5206        "ref_counted_string",
5207        "service_config_parser",
5208        "slice",
5209        "time",
5210        "unique_type_name",
5211        "validation_errors",
5212        "//:config",
5213        "//:gpr",
5214        "//:grpc_base",
5215        "//:grpc_trace",
5216    ],
5217)
5218
5219grpc_cc_library(
5220    name = "gcp_authentication_filter",
5221    srcs = [
5222        "ext/filters/gcp_authentication/gcp_authentication_filter.cc",
5223        "ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc",
5224    ],
5225    hdrs = [
5226        "ext/filters/gcp_authentication/gcp_authentication_filter.h",
5227        "ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h",
5228    ],
5229    external_deps = [
5230        "absl/log:check",
5231        "absl/status",
5232        "absl/status:statusor",
5233        "absl/strings",
5234        "absl/types:optional",
5235    ],
5236    language = "c++",
5237    deps = [
5238        "arena",
5239        "blackboard",
5240        "channel_args",
5241        "channel_fwd",
5242        "context",
5243        "gcp_service_account_identity_credentials",
5244        "grpc_resolver_xds_attributes",
5245        "grpc_service_config",
5246        "json",
5247        "json_args",
5248        "json_object_loader",
5249        "lru_cache",
5250        "service_config_parser",
5251        "validation_errors",
5252        "xds_config",
5253        "//:config",
5254        "//:gpr",
5255        "//:grpc_base",
5256        "//:grpc_security_base",
5257        "//:grpc_trace",
5258        "//:ref_counted_ptr",
5259    ],
5260)
5261
5262grpc_cc_library(
5263    name = "grpc_lb_policy_grpclb",
5264    srcs = [
5265        "load_balancing/grpclb/client_load_reporting_filter.cc",
5266        "load_balancing/grpclb/grpclb.cc",
5267        "load_balancing/grpclb/grpclb_client_stats.cc",
5268        "load_balancing/grpclb/load_balancer_api.cc",
5269    ],
5270    hdrs = [
5271        "load_balancing/grpclb/client_load_reporting_filter.h",
5272        "load_balancing/grpclb/grpclb.h",
5273        "load_balancing/grpclb/grpclb_client_stats.h",
5274        "load_balancing/grpclb/load_balancer_api.h",
5275    ],
5276    external_deps = [
5277        "absl/base:core_headers",
5278        "absl/container:inlined_vector",
5279        "absl/functional:function_ref",
5280        "absl/log:check",
5281        "absl/log:globals",
5282        "absl/log:log",
5283        "absl/status",
5284        "absl/status:statusor",
5285        "absl/strings",
5286        "absl/strings:str_format",
5287        "absl/types:optional",
5288        "absl/types:variant",
5289        "@com_google_protobuf//upb:base",
5290        "@com_google_protobuf//upb:mem",
5291    ],
5292    language = "c++",
5293    deps = [
5294        "arena",
5295        "arena_promise",
5296        "channel_args",
5297        "channel_fwd",
5298        "channel_stack_type",
5299        "closure",
5300        "connectivity_state",
5301        "context",
5302        "delegating_helper",
5303        "error",
5304        "experiments",
5305        "gpr_atm",
5306        "grpc_sockaddr",
5307        "json",
5308        "json_args",
5309        "json_object_loader",
5310        "latent_see",
5311        "lb_policy",
5312        "lb_policy_factory",
5313        "lb_policy_registry",
5314        "map",
5315        "metadata_batch",
5316        "pipe",
5317        "pollset_set",
5318        "ref_counted",
5319        "resolved_address",
5320        "slice",
5321        "slice_refcount",
5322        "status_helper",
5323        "subchannel_interface",
5324        "time",
5325        "useful",
5326        "validation_errors",
5327        "//:backoff",
5328        "//:channel",
5329        "//:channel_arg_names",
5330        "//:channel_create",
5331        "//:channelz",
5332        "//:config",
5333        "//:debug_location",
5334        "//:endpoint_addresses",
5335        "//:exec_ctx",
5336        "//:gpr",
5337        "//:grpc_base",
5338        "//:grpc_client_channel",
5339        "//:grpc_grpclb_balancer_addresses",
5340        "//:grpc_lb_upb",
5341        "//:grpc_public_hdrs",
5342        "//:grpc_resolver",
5343        "//:grpc_resolver_fake",
5344        "//:grpc_security_base",
5345        "//:grpc_trace",
5346        "//:lb_child_policy_handler",
5347        "//:orphanable",
5348        "//:protobuf_duration_upb",
5349        "//:protobuf_timestamp_upb",
5350        "//:ref_counted_ptr",
5351        "//:sockaddr_utils",
5352        "//:work_serializer",
5353    ],
5354)
5355
5356grpc_cc_library(
5357    name = "random_early_detection",
5358    srcs = [
5359        "util/random_early_detection.cc",
5360    ],
5361    hdrs = [
5362        "util/random_early_detection.h",
5363    ],
5364    external_deps = [
5365        "absl/random:bit_gen_ref",
5366        "absl/random:distributions",
5367    ],
5368    deps = ["//:gpr_platform"],
5369)
5370
5371grpc_cc_library(
5372    name = "grpc_backend_metric_data",
5373    hdrs = [
5374        "load_balancing/backend_metric_data.h",
5375    ],
5376    external_deps = ["absl/strings"],
5377    language = "c++",
5378    deps = ["//:gpr_platform"],
5379)
5380
5381grpc_cc_library(
5382    name = "grpc_backend_metric_provider",
5383    hdrs = [
5384        "ext/filters/backend_metrics/backend_metric_provider.h",
5385    ],
5386    language = "c++",
5387    deps = ["arena"],
5388)
5389
5390grpc_cc_library(
5391    name = "grpc_lb_policy_rls",
5392    srcs = [
5393        "load_balancing/rls/rls.cc",
5394    ],
5395    hdrs = [
5396        "load_balancing/rls/rls.h",
5397    ],
5398    external_deps = [
5399        "absl/base:core_headers",
5400        "absl/hash",
5401        "absl/log:check",
5402        "absl/log:log",
5403        "absl/random",
5404        "absl/status",
5405        "absl/status:statusor",
5406        "absl/strings",
5407        "absl/strings:str_format",
5408        "absl/types:optional",
5409        "@com_google_protobuf//upb:base",
5410        "@com_google_protobuf//upb:mem",
5411    ],
5412    language = "c++",
5413    deps = [
5414        "channel_args",
5415        "closure",
5416        "connectivity_state",
5417        "delegating_helper",
5418        "dual_ref_counted",
5419        "error",
5420        "error_utils",
5421        "grpc_fake_credentials",
5422        "json",
5423        "json_args",
5424        "json_object_loader",
5425        "json_writer",
5426        "lb_policy",
5427        "lb_policy_factory",
5428        "lb_policy_registry",
5429        "match",
5430        "metrics",
5431        "pollset_set",
5432        "slice",
5433        "slice_refcount",
5434        "status_helper",
5435        "time",
5436        "upb_utils",
5437        "uuid_v4",
5438        "validation_errors",
5439        "//:backoff",
5440        "//:channel",
5441        "//:channel_arg_names",
5442        "//:channel_create",
5443        "//:channelz",
5444        "//:config",
5445        "//:debug_location",
5446        "//:endpoint_addresses",
5447        "//:exec_ctx",
5448        "//:gpr",
5449        "//:grpc_base",
5450        "//:grpc_client_channel",
5451        "//:grpc_public_hdrs",
5452        "//:grpc_resolver",
5453        "//:grpc_security_base",
5454        "//:grpc_service_config_impl",
5455        "//:grpc_trace",
5456        "//:lb_child_policy_handler",
5457        "//:orphanable",
5458        "//:ref_counted_ptr",
5459        "//:rls_upb",
5460        "//:work_serializer",
5461    ],
5462)
5463
5464grpc_cc_library(
5465    name = "lru_cache",
5466    hdrs = [
5467        "util/lru_cache.h",
5468    ],
5469    external_deps = [
5470        "absl/container:flat_hash_map",
5471        "absl/functional:any_invocable",
5472        "absl/log:check",
5473        "absl/types:optional",
5474    ],
5475    language = "c++",
5476    # TODO(roth): Remove this unnecessary dependency once
5477    # yaqs/eng/q/6510477728410501120 is resolved.
5478    deps = ["//:grpc_public_hdrs"],
5479)
5480
5481grpc_cc_library(
5482    name = "upb_utils",
5483    hdrs = [
5484        "util/upb_utils.h",
5485    ],
5486    external_deps = [
5487        "absl/strings",
5488        "@com_google_protobuf//upb:base",
5489    ],
5490    language = "c++",
5491)
5492
5493grpc_cc_library(
5494    name = "xds_enabled_server",
5495    hdrs = [
5496        "xds/grpc/xds_enabled_server.h",
5497    ],
5498    language = "c++",
5499)
5500
5501grpc_cc_library(
5502    name = "xds_certificate_provider",
5503    srcs = [
5504        "xds/grpc/xds_certificate_provider.cc",
5505    ],
5506    hdrs = [
5507        "xds/grpc/xds_certificate_provider.h",
5508    ],
5509    external_deps = [
5510        "absl/base:core_headers",
5511        "absl/functional:bind_front",
5512        "absl/log:check",
5513        "absl/log:log",
5514        "absl/strings",
5515        "absl/types:optional",
5516    ],
5517    language = "c++",
5518    tags = ["nofixdeps"],
5519    deps = [
5520        "channel_args",
5521        "error",
5522        "grpc_matchers",
5523        "grpc_tls_credentials",
5524        "unique_type_name",
5525        "useful",
5526        "//:gpr",
5527        "//:grpc_base",
5528        "//:ref_counted_ptr",
5529        "//:tsi_ssl_credentials",
5530    ],
5531)
5532
5533grpc_cc_library(
5534    name = "xds_certificate_provider_store",
5535    srcs = [
5536        "xds/grpc/certificate_provider_store.cc",
5537    ],
5538    hdrs = [
5539        "xds/grpc/certificate_provider_store.h",
5540    ],
5541    external_deps = [
5542        "absl/base:core_headers",
5543        "absl/log:log",
5544        "absl/strings",
5545    ],
5546    language = "c++",
5547    tags = ["nofixdeps"],
5548    deps = [
5549        "certificate_provider_factory",
5550        "certificate_provider_registry",
5551        "grpc_tls_credentials",
5552        "json",
5553        "json_args",
5554        "json_object_loader",
5555        "unique_type_name",
5556        "useful",
5557        "validation_errors",
5558        "//:config",
5559        "//:gpr",
5560        "//:grpc_base",
5561        "//:orphanable",
5562        "//:ref_counted_ptr",
5563    ],
5564)
5565
5566grpc_cc_library(
5567    name = "xds_credentials",
5568    srcs = [
5569        "lib/security/credentials/xds/xds_credentials.cc",
5570    ],
5571    hdrs = [
5572        "lib/security/credentials/xds/xds_credentials.h",
5573    ],
5574    external_deps = [
5575        "absl/status",
5576        "absl/log:check",
5577        "absl/log:log",
5578        "absl/types:optional",
5579    ],
5580    language = "c++",
5581    tags = ["nofixdeps"],
5582    deps = [
5583        "channel_args",
5584        "grpc_lb_xds_channel_args",
5585        "grpc_matchers",
5586        "grpc_tls_credentials",
5587        "unique_type_name",
5588        "useful",
5589        "xds_certificate_provider",
5590        "//:channel_arg_names",
5591        "//:gpr",
5592        "//:grpc_base",
5593        "//:grpc_core_credentials_header",
5594        "//:grpc_credentials_util",
5595        "//:grpc_security_base",
5596        "//:ref_counted_ptr",
5597    ],
5598)
5599
5600grpc_cc_library(
5601    name = "xds_file_watcher_certificate_provider_factory",
5602    srcs = [
5603        "xds/grpc/file_watcher_certificate_provider_factory.cc",
5604    ],
5605    hdrs = [
5606        "xds/grpc/file_watcher_certificate_provider_factory.h",
5607    ],
5608    external_deps = [
5609        "absl/log:log",
5610        "absl/strings",
5611        "absl/strings:str_format",
5612    ],
5613    language = "c++",
5614    tags = ["nofixdeps"],
5615    deps = [
5616        "certificate_provider_factory",
5617        "grpc_tls_credentials",
5618        "json",
5619        "json_args",
5620        "json_object_loader",
5621        "time",
5622        "validation_errors",
5623        "//:config",
5624        "//:gpr",
5625        "//:grpc_base",
5626        "//:ref_counted_ptr",
5627    ],
5628)
5629
5630grpc_cc_library(
5631    name = "xds_common_types",
5632    srcs = [
5633        "xds/grpc/xds_common_types.cc",
5634    ],
5635    hdrs = [
5636        "xds/grpc/xds_common_types.h",
5637    ],
5638    external_deps = [
5639        "absl/strings",
5640        "absl/strings:str_format",
5641        "absl/types:variant",
5642    ],
5643    language = "c++",
5644    tags = ["nofixdeps"],
5645    deps = [
5646        "grpc_matchers",
5647        "json",
5648        "match",
5649        "validation_errors",
5650    ],
5651)
5652
5653grpc_cc_library(
5654    name = "xds_http_filter",
5655    hdrs = [
5656        "xds/grpc/xds_http_filter.h",
5657    ],
5658    external_deps = [
5659        "absl/status:statusor",
5660        "absl/strings",
5661        "absl/types:optional",
5662        "@com_google_protobuf//upb:reflection",
5663    ],
5664    language = "c++",
5665    tags = ["nofixdeps"],
5666    deps = [
5667        "channel_args",
5668        "channel_fwd",
5669        "interception_chain",
5670        "json",
5671        "json_writer",
5672        "validation_errors",
5673        "xds_common_types",
5674        "//:xds_client",
5675    ],
5676)
5677
5678grpc_cc_library(
5679    name = "xds_route_config",
5680    srcs = [
5681        "xds/grpc/xds_route_config.cc",
5682    ],
5683    hdrs = [
5684        "xds/grpc/xds_route_config.h",
5685    ],
5686    external_deps = [
5687        "absl/strings",
5688        "absl/strings:str_format",
5689        "absl/types:optional",
5690        "absl/types:variant",
5691        "re2",
5692    ],
5693    language = "c++",
5694    tags = ["nofixdeps"],
5695    deps = [
5696        "grpc_matchers",
5697        "match",
5698        "time",
5699        "xds_http_filter",
5700        "//:grpc_base",
5701        "//:xds_client",
5702    ],
5703)
5704
5705grpc_cc_library(
5706    name = "xds_listener",
5707    srcs = [
5708        "xds/grpc/xds_listener.cc",
5709    ],
5710    hdrs = [
5711        "xds/grpc/xds_listener.h",
5712    ],
5713    external_deps = [
5714        "absl/strings",
5715        "absl/strings:str_format",
5716        "absl/types:optional",
5717        "absl/types:variant",
5718    ],
5719    language = "c++",
5720    tags = ["nofixdeps"],
5721    deps = [
5722        "match",
5723        "resolved_address",
5724        "time",
5725        "xds_common_types",
5726        "xds_http_filter",
5727        "xds_route_config",
5728        "//:sockaddr_utils",
5729        "//:xds_client",
5730    ],
5731)
5732
5733grpc_cc_library(
5734    name = "xds_health_status",
5735    srcs = [
5736        "xds/grpc/xds_health_status.cc",
5737    ],
5738    hdrs = [
5739        "xds/grpc/xds_health_status.h",
5740    ],
5741    external_deps = [
5742        "absl/strings",
5743        "absl/types:optional",
5744        "absl/types:span",
5745    ],
5746    language = "c++",
5747    tags = ["nofixdeps"],
5748    deps = [
5749        "envoy_config_core_upb",
5750        "//:endpoint_addresses",
5751    ],
5752)
5753
5754grpc_cc_library(
5755    name = "xds_server_grpc",
5756    srcs = [
5757        "xds/grpc/xds_server_grpc.cc",
5758    ],
5759    hdrs = [
5760        "xds/grpc/xds_server_grpc.h",
5761    ],
5762    external_deps = [
5763        "absl/strings",
5764    ],
5765    language = "c++",
5766    tags = ["nofixdeps"],
5767    deps = [
5768        "channel_creds_registry",
5769        "json",
5770        "json_args",
5771        "json_object_loader",
5772        "json_reader",
5773        "json_writer",
5774        "validation_errors",
5775        "//:config",
5776        "//:ref_counted_ptr",
5777        "//:xds_client",
5778    ],
5779)
5780
5781grpc_cc_library(
5782    name = "xds_metadata",
5783    srcs = [
5784        "xds/grpc/xds_metadata.cc",
5785    ],
5786    hdrs = [
5787        "xds/grpc/xds_metadata.h",
5788    ],
5789    external_deps = [
5790        "absl/log:check",
5791        "absl/container:flat_hash_map",
5792        "absl/strings",
5793    ],
5794    language = "c++",
5795    tags = ["nofixdeps"],
5796    deps = [
5797        "down_cast",
5798        "json",
5799        "json_writer",
5800        "validation_errors",
5801    ],
5802)
5803
5804grpc_cc_library(
5805    name = "xds_cluster",
5806    srcs = [
5807        "xds/grpc/xds_cluster.cc",
5808    ],
5809    hdrs = [
5810        "xds/grpc/xds_cluster.h",
5811    ],
5812    external_deps = [
5813        "absl/container:flat_hash_map",
5814        "absl/strings",
5815        "absl/types:optional",
5816        "absl/types:variant",
5817    ],
5818    language = "c++",
5819    tags = ["nofixdeps"],
5820    deps = [
5821        "grpc_outlier_detection_header",
5822        "json",
5823        "json_writer",
5824        "match",
5825        "time",
5826        "xds_backend_metric_propagation",
5827        "xds_common_types",
5828        "xds_health_status",
5829        "xds_metadata",
5830        "xds_server_grpc",
5831        "//:xds_client",
5832    ],
5833)
5834
5835grpc_cc_library(
5836    name = "xds_endpoint",
5837    srcs = [
5838        "xds/grpc/xds_endpoint.cc",
5839    ],
5840    hdrs = [
5841        "xds/grpc/xds_endpoint.h",
5842    ],
5843    external_deps = [
5844        "absl/base:core_headers",
5845        "absl/random",
5846        "absl/strings",
5847    ],
5848    language = "c++",
5849    tags = ["nofixdeps"],
5850    deps = [
5851        "ref_counted",
5852        "//:endpoint_addresses",
5853        "//:gpr",
5854        "//:ref_counted_ptr",
5855        "//:xds_client",
5856    ],
5857)
5858
5859grpc_cc_library(
5860    name = "xds_backend_metric_propagation",
5861    srcs = [
5862        "xds/xds_client/xds_backend_metric_propagation.cc",
5863    ],
5864    hdrs = [
5865        "xds/xds_client/xds_backend_metric_propagation.h",
5866    ],
5867    external_deps = [
5868        "absl/container:flat_hash_set",
5869        "absl/strings",
5870    ],
5871    language = "c++",
5872    tags = ["nofixdeps"],
5873    visibility = ["@grpc:xds_client_core"],
5874    deps = [
5875        "ref_counted",
5876        "useful",
5877        "//:ref_counted_ptr",
5878    ],
5879)
5880
5881# TODO(roth): Split this up into individual targets.
5882grpc_cc_library(
5883    name = "grpc_xds_client",
5884    srcs = [
5885        "xds/grpc/xds_audit_logger_registry.cc",
5886        "xds/grpc/xds_bootstrap_grpc.cc",
5887        "xds/grpc/xds_client_grpc.cc",
5888        "xds/grpc/xds_cluster_parser.cc",
5889        "xds/grpc/xds_cluster_specifier_plugin.cc",
5890        "xds/grpc/xds_common_types_parser.cc",
5891        "xds/grpc/xds_endpoint_parser.cc",
5892        "xds/grpc/xds_http_fault_filter.cc",
5893        "xds/grpc/xds_http_filter_registry.cc",
5894        "xds/grpc/xds_http_gcp_authn_filter.cc",
5895        "xds/grpc/xds_http_rbac_filter.cc",
5896        "xds/grpc/xds_http_stateful_session_filter.cc",
5897        "xds/grpc/xds_lb_policy_registry.cc",
5898        "xds/grpc/xds_listener_parser.cc",
5899        "xds/grpc/xds_metadata_parser.cc",
5900        "xds/grpc/xds_route_config_parser.cc",
5901        "xds/grpc/xds_routing.cc",
5902        "xds/grpc/xds_transport_grpc.cc",
5903    ],
5904    hdrs = [
5905        "xds/grpc/xds_audit_logger_registry.h",
5906        "xds/grpc/xds_bootstrap_grpc.h",
5907        "xds/grpc/xds_client_grpc.h",
5908        "xds/grpc/xds_cluster_parser.h",
5909        "xds/grpc/xds_cluster_specifier_plugin.h",
5910        "xds/grpc/xds_common_types_parser.h",
5911        "xds/grpc/xds_endpoint_parser.h",
5912        "xds/grpc/xds_http_fault_filter.h",
5913        "xds/grpc/xds_http_filter_registry.h",
5914        "xds/grpc/xds_http_gcp_authn_filter.h",
5915        "xds/grpc/xds_http_rbac_filter.h",
5916        "xds/grpc/xds_http_stateful_session_filter.h",
5917        "xds/grpc/xds_lb_policy_registry.h",
5918        "xds/grpc/xds_listener_parser.h",
5919        "xds/grpc/xds_metadata_parser.h",
5920        "xds/grpc/xds_route_config_parser.h",
5921        "xds/grpc/xds_routing.h",
5922        "xds/grpc/xds_transport_grpc.h",
5923    ],
5924    external_deps = [
5925        "absl/base:core_headers",
5926        "absl/cleanup",
5927        "absl/container:flat_hash_map",
5928        "absl/functional:bind_front",
5929        "absl/log:check",
5930        "absl/log:log",
5931        "absl/memory",
5932        "absl/random",
5933        "absl/status",
5934        "absl/status:statusor",
5935        "absl/strings",
5936        "absl/strings:str_format",
5937        "absl/synchronization",
5938        "absl/types:optional",
5939        "absl/types:span",
5940        "absl/types:variant",
5941        "@com_google_protobuf//upb:base",
5942        "@com_google_protobuf//upb:mem",
5943        "@com_google_protobuf//upb:text",
5944        "@com_google_protobuf//upb:json",
5945        "re2",
5946        "@com_google_protobuf//upb:reflection",
5947        "@com_google_protobuf//upb:message",
5948    ],
5949    language = "c++",
5950    tags = ["nofixdeps"],
5951    deps = [
5952        "certificate_provider_factory",
5953        "certificate_provider_registry",
5954        "channel_args",
5955        "channel_args_endpoint_config",
5956        "channel_creds_registry",
5957        "channel_fwd",
5958        "closure",
5959        "connectivity_state",
5960        "default_event_engine",
5961        "down_cast",
5962        "env",
5963        "envoy_admin_upb",
5964        "envoy_config_cluster_upb",
5965        "envoy_config_cluster_upbdefs",
5966        "envoy_config_core_upb",
5967        "envoy_config_core_upbdefs",
5968        "envoy_config_endpoint_upb",
5969        "envoy_config_endpoint_upbdefs",
5970        "envoy_config_listener_upb",
5971        "envoy_config_listener_upbdefs",
5972        "envoy_config_rbac_upb",
5973        "envoy_config_route_upb",
5974        "envoy_config_route_upbdefs",
5975        "envoy_extensions_clusters_aggregate_upb",
5976        "envoy_extensions_clusters_aggregate_upbdefs",
5977        "envoy_extensions_filters_common_fault_upb",
5978        "envoy_extensions_filters_http_fault_upb",
5979        "envoy_extensions_filters_http_fault_upbdefs",
5980        "envoy_extensions_filters_http_gcp_authn_upb",
5981        "envoy_extensions_filters_http_gcp_authn_upbdefs",
5982        "envoy_extensions_filters_http_rbac_upb",
5983        "envoy_extensions_filters_http_rbac_upbdefs",
5984        "envoy_extensions_filters_http_router_upb",
5985        "envoy_extensions_filters_http_router_upbdefs",
5986        "envoy_extensions_filters_http_stateful_session_upb",
5987        "envoy_extensions_filters_http_stateful_session_upbdefs",
5988        "envoy_extensions_filters_network_http_connection_manager_upb",
5989        "envoy_extensions_filters_network_http_connection_manager_upbdefs",
5990        "envoy_extensions_http_stateful_session_cookie_upb",
5991        "envoy_extensions_http_stateful_session_cookie_upbdefs",
5992        "envoy_extensions_load_balancing_policies_client_side_weighted_round_robin_upb",
5993        "envoy_extensions_load_balancing_policies_pick_first_upb",
5994        "envoy_extensions_load_balancing_policies_ring_hash_upb",
5995        "envoy_extensions_load_balancing_policies_wrr_locality_upb",
5996        "envoy_extensions_transport_sockets_http_11_proxy_upb",
5997        "envoy_extensions_transport_sockets_http_11_proxy_upbdefs",
5998        "envoy_extensions_transport_sockets_tls_upb",
5999        "envoy_extensions_transport_sockets_tls_upbdefs",
6000        "envoy_extensions_upstreams_http_upb",
6001        "envoy_extensions_upstreams_http_upbdefs",
6002        "envoy_service_discovery_upb",
6003        "envoy_service_discovery_upbdefs",
6004        "envoy_service_load_stats_upb",
6005        "envoy_service_load_stats_upbdefs",
6006        "envoy_service_status_upb",
6007        "envoy_service_status_upbdefs",
6008        "envoy_type_http_upb",
6009        "envoy_type_matcher_upb",
6010        "envoy_type_upb",
6011        "error",
6012        "error_utils",
6013        "gcp_authentication_filter",
6014        "google_rpc_status_upb",
6015        "grpc_audit_logging",
6016        "grpc_fake_credentials",
6017        "grpc_fault_injection_filter",
6018        "grpc_lb_policy_pick_first",
6019        "grpc_lb_policy_ring_hash",
6020        "grpc_lb_xds_channel_args",
6021        "grpc_matchers",
6022        "grpc_outlier_detection_header",
6023        "grpc_rbac_filter",
6024        "grpc_sockaddr",
6025        "grpc_stateful_session_filter",
6026        "grpc_tls_credentials",
6027        "grpc_transport_chttp2_client_connector",
6028        "init_internally",
6029        "interception_chain",
6030        "iomgr_fwd",
6031        "json",
6032        "json_args",
6033        "json_object_loader",
6034        "json_reader",
6035        "json_util",
6036        "json_writer",
6037        "lb_policy_registry",
6038        "load_file",
6039        "match",
6040        "metadata_batch",
6041        "metrics",
6042        "pollset_set",
6043        "protobuf_any_upb",
6044        "protobuf_duration_upb",
6045        "protobuf_struct_upb",
6046        "protobuf_struct_upbdefs",
6047        "protobuf_timestamp_upb",
6048        "protobuf_wrappers_upb",
6049        "ref_counted",
6050        "resolved_address",
6051        "rls_config_upb",
6052        "rls_config_upbdefs",
6053        "slice",
6054        "slice_refcount",
6055        "status_conversion",
6056        "status_helper",
6057        "time",
6058        "unique_type_name",
6059        "upb_utils",
6060        "useful",
6061        "validation_errors",
6062        "xds_backend_metric_propagation",
6063        "xds_certificate_provider",
6064        "xds_certificate_provider_store",
6065        "xds_cluster",
6066        "xds_common_types",
6067        "xds_credentials",
6068        "xds_endpoint",
6069        "xds_file_watcher_certificate_provider_factory",
6070        "xds_health_status",
6071        "xds_http_filter",
6072        "xds_listener",
6073        "xds_metadata",
6074        "xds_route_config",
6075        "xds_server_grpc",
6076        "xds_type_upb",
6077        "xds_type_upbdefs",
6078        "//:channel",
6079        "//:channel_arg_names",
6080        "//:channel_create",
6081        "//:config",
6082        "//:debug_location",
6083        "//:endpoint_addresses",
6084        "//:exec_ctx",
6085        "//:gpr",
6086        "//:grpc_base",
6087        "//:grpc_client_channel",
6088        "//:grpc_core_credentials_header",
6089        "//:grpc_credentials_util",
6090        "//:grpc_public_hdrs",
6091        "//:grpc_security_base",
6092        "//:grpc_trace",
6093        "//:iomgr",
6094        "//:iomgr_timer",
6095        "//:orphanable",
6096        "//:parse_address",
6097        "//:ref_counted_ptr",
6098        "//:sockaddr_utils",
6099        "//:tsi_ssl_credentials",
6100        "//:uri",
6101        "//:work_serializer",
6102        "//:xds_client",
6103    ],
6104)
6105
6106grpc_cc_library(
6107    name = "grpc_xds_channel_stack_modifier",
6108    srcs = [
6109        "server/xds_channel_stack_modifier.cc",
6110    ],
6111    hdrs = [
6112        "server/xds_channel_stack_modifier.h",
6113    ],
6114    external_deps = ["absl/strings"],
6115    language = "c++",
6116    deps = [
6117        "channel_args",
6118        "channel_fwd",
6119        "channel_init",
6120        "channel_stack_type",
6121        "ref_counted",
6122        "useful",
6123        "//:channel_stack_builder",
6124        "//:config",
6125        "//:gpr_platform",
6126        "//:grpc_base",
6127        "//:ref_counted_ptr",
6128    ],
6129)
6130
6131grpc_cc_library(
6132    name = "grpc_xds_server_config_fetcher",
6133    srcs = [
6134        "server/xds_server_config_fetcher.cc",
6135    ],
6136    external_deps = [
6137        "absl/base:core_headers",
6138        "absl/log:check",
6139        "absl/log:log",
6140        "absl/status",
6141        "absl/status:statusor",
6142        "absl/strings",
6143        "absl/types:optional",
6144        "absl/types:variant",
6145    ],
6146    language = "c++",
6147    deps = [
6148        "channel_args",
6149        "channel_args_preconditioning",
6150        "channel_fwd",
6151        "grpc_server_config_selector",
6152        "grpc_server_config_selector_filter",
6153        "grpc_service_config",
6154        "grpc_sockaddr",
6155        "grpc_tls_credentials",
6156        "grpc_xds_channel_stack_modifier",
6157        "grpc_xds_client",
6158        "iomgr_fwd",
6159        "match",
6160        "metadata_batch",
6161        "resolved_address",
6162        "slice_refcount",
6163        "unique_type_name",
6164        "xds_certificate_provider",
6165        "xds_certificate_provider_store",
6166        "xds_common_types",
6167        "xds_credentials",
6168        "xds_http_filter",
6169        "xds_listener",
6170        "xds_route_config",
6171        "//:config",
6172        "//:debug_location",
6173        "//:exec_ctx",
6174        "//:gpr",
6175        "//:grpc_base",
6176        "//:grpc_core_credentials_header",
6177        "//:grpc_public_hdrs",
6178        "//:grpc_security_base",
6179        "//:grpc_service_config_impl",
6180        "//:grpc_trace",
6181        "//:iomgr",
6182        "//:parse_address",
6183        "//:ref_counted_ptr",
6184        "//:server",
6185        "//:sockaddr_utils",
6186        "//:uri",
6187        "//:xds_client",
6188    ],
6189)
6190
6191grpc_cc_library(
6192    name = "channel_creds_registry_init",
6193    srcs = [
6194        "lib/security/credentials/channel_creds_registry_init.cc",
6195    ],
6196    external_deps = ["absl/strings"],
6197    language = "c++",
6198    deps = [
6199        "channel_creds_registry",
6200        "grpc_fake_credentials",
6201        "grpc_google_default_credentials",
6202        "grpc_tls_credentials",
6203        "json",
6204        "json_args",
6205        "json_object_loader",
6206        "time",
6207        "validation_errors",
6208        "//:config",
6209        "//:gpr",
6210        "//:gpr_platform",
6211        "//:grpc_core_credentials_header",
6212        "//:grpc_security_base",
6213        "//:ref_counted_ptr",
6214    ],
6215)
6216
6217grpc_cc_library(
6218    name = "grpc_lb_policy_cds",
6219    srcs = [
6220        "load_balancing/xds/cds.cc",
6221    ],
6222    external_deps = [
6223        "absl/log:check",
6224        "absl/log:log",
6225        "absl/status",
6226        "absl/status:statusor",
6227        "absl/strings",
6228        "absl/types:optional",
6229        "absl/types:variant",
6230    ],
6231    language = "c++",
6232    deps = [
6233        "channel_args",
6234        "delegating_helper",
6235        "env",
6236        "grpc_lb_address_filtering",
6237        "grpc_lb_xds_channel_args",
6238        "grpc_outlier_detection_header",
6239        "grpc_xds_client",
6240        "json",
6241        "json_args",
6242        "json_object_loader",
6243        "json_writer",
6244        "lb_policy",
6245        "lb_policy_factory",
6246        "lb_policy_registry",
6247        "match",
6248        "pollset_set",
6249        "time",
6250        "unique_type_name",
6251        "xds_cluster",
6252        "xds_common_types",
6253        "xds_config",
6254        "xds_dependency_manager",
6255        "xds_health_status",
6256        "//:config",
6257        "//:debug_location",
6258        "//:gpr",
6259        "//:grpc_base",
6260        "//:grpc_security_base",
6261        "//:grpc_trace",
6262        "//:orphanable",
6263        "//:ref_counted_ptr",
6264        "//:work_serializer",
6265        "//:xds_client",
6266    ],
6267)
6268
6269grpc_cc_library(
6270    name = "grpc_lb_xds_channel_args",
6271    hdrs = [
6272        "load_balancing/xds/xds_channel_args.h",
6273    ],
6274    language = "c++",
6275    deps = [
6276        "//:endpoint_addresses",
6277        "//:gpr_platform",
6278    ],
6279)
6280
6281grpc_cc_library(
6282    name = "grpc_lb_policy_xds_cluster_impl",
6283    srcs = [
6284        "load_balancing/xds/xds_cluster_impl.cc",
6285    ],
6286    external_deps = [
6287        "absl/base:core_headers",
6288        "absl/log:check",
6289        "absl/log:log",
6290        "absl/status",
6291        "absl/status:statusor",
6292        "absl/strings",
6293        "absl/types:optional",
6294        "absl/types:variant",
6295    ],
6296    language = "c++",
6297    deps = [
6298        "channel_args",
6299        "client_channel_internal_header",
6300        "connectivity_state",
6301        "delegating_helper",
6302        "grpc_backend_metric_data",
6303        "grpc_lb_xds_channel_args",
6304        "grpc_resolver_xds_attributes",
6305        "grpc_xds_client",
6306        "json",
6307        "json_args",
6308        "json_object_loader",
6309        "lb_policy",
6310        "lb_policy_factory",
6311        "lb_policy_registry",
6312        "match",
6313        "pollset_set",
6314        "ref_counted",
6315        "ref_counted_string",
6316        "resolved_address",
6317        "subchannel_interface",
6318        "validation_errors",
6319        "xds_config",
6320        "xds_credentials",
6321        "xds_endpoint",
6322        "//:call_tracer",
6323        "//:config",
6324        "//:debug_location",
6325        "//:endpoint_addresses",
6326        "//:gpr",
6327        "//:grpc_base",
6328        "//:grpc_client_channel",
6329        "//:grpc_trace",
6330        "//:lb_child_policy_handler",
6331        "//:orphanable",
6332        "//:ref_counted_ptr",
6333        "//:xds_client",
6334    ],
6335)
6336
6337grpc_cc_library(
6338    name = "grpc_lb_policy_xds_cluster_manager",
6339    srcs = [
6340        "load_balancing/xds/xds_cluster_manager.cc",
6341    ],
6342    external_deps = [
6343        "absl/log:log",
6344        "absl/status",
6345        "absl/status:statusor",
6346        "absl/strings",
6347        "absl/types:optional",
6348    ],
6349    language = "c++",
6350    deps = [
6351        "channel_args",
6352        "client_channel_internal_header",
6353        "connectivity_state",
6354        "delegating_helper",
6355        "grpc_resolver_xds_attributes",
6356        "json",
6357        "json_args",
6358        "json_object_loader",
6359        "lb_policy",
6360        "lb_policy_factory",
6361        "lb_policy_registry",
6362        "pollset_set",
6363        "time",
6364        "validation_errors",
6365        "//:config",
6366        "//:debug_location",
6367        "//:endpoint_addresses",
6368        "//:exec_ctx",
6369        "//:gpr",
6370        "//:gpr_platform",
6371        "//:grpc_base",
6372        "//:grpc_client_channel",
6373        "//:grpc_trace",
6374        "//:lb_child_policy_handler",
6375        "//:orphanable",
6376        "//:ref_counted_ptr",
6377        "//:work_serializer",
6378    ],
6379)
6380
6381grpc_cc_library(
6382    name = "grpc_lb_policy_xds_wrr_locality",
6383    srcs = [
6384        "load_balancing/xds/xds_wrr_locality.cc",
6385    ],
6386    external_deps = [
6387        "absl/log:log",
6388        "absl/status",
6389        "absl/status:statusor",
6390        "absl/strings",
6391        "absl/types:optional",
6392    ],
6393    language = "c++",
6394    deps = [
6395        "channel_args",
6396        "delegating_helper",
6397        "grpc_lb_xds_channel_args",
6398        "json",
6399        "json_args",
6400        "json_object_loader",
6401        "json_writer",
6402        "lb_policy",
6403        "lb_policy_factory",
6404        "lb_policy_registry",
6405        "pollset_set",
6406        "ref_counted_string",
6407        "validation_errors",
6408        "//:config",
6409        "//:debug_location",
6410        "//:endpoint_addresses",
6411        "//:gpr",
6412        "//:grpc_base",
6413        "//:grpc_trace",
6414        "//:orphanable",
6415        "//:ref_counted_ptr",
6416        "//:xds_client",
6417    ],
6418)
6419
6420grpc_cc_library(
6421    name = "grpc_lb_address_filtering",
6422    srcs = [
6423        "load_balancing/address_filtering.cc",
6424    ],
6425    hdrs = [
6426        "load_balancing/address_filtering.h",
6427    ],
6428    external_deps = [
6429        "absl/functional:function_ref",
6430        "absl/status:statusor",
6431        "absl/strings",
6432    ],
6433    language = "c++",
6434    deps = [
6435        "channel_args",
6436        "ref_counted",
6437        "ref_counted_string",
6438        "resolved_address",
6439        "//:endpoint_addresses",
6440        "//:gpr_platform",
6441        "//:ref_counted_ptr",
6442    ],
6443)
6444
6445grpc_cc_library(
6446    name = "health_check_client",
6447    srcs = [
6448        "load_balancing/health_check_client.cc",
6449    ],
6450    hdrs = [
6451        "load_balancing/health_check_client.h",
6452        "load_balancing/health_check_client_internal.h",
6453    ],
6454    external_deps = [
6455        "absl/base:core_headers",
6456        "absl/log:check",
6457        "absl/log:log",
6458        "absl/status",
6459        "absl/status:statusor",
6460        "absl/strings",
6461        "absl/types:optional",
6462        "@com_google_protobuf//upb:base",
6463        "@com_google_protobuf//upb:mem",
6464    ],
6465    language = "c++",
6466    deps = [
6467        "channel_args",
6468        "client_channel_internal_header",
6469        "closure",
6470        "connectivity_state",
6471        "error",
6472        "iomgr_fwd",
6473        "pollset_set",
6474        "slice",
6475        "subchannel_interface",
6476        "unique_type_name",
6477        "//:channel_arg_names",
6478        "//:channelz",
6479        "//:debug_location",
6480        "//:exec_ctx",
6481        "//:gpr",
6482        "//:grpc_base",
6483        "//:grpc_client_channel",
6484        "//:grpc_health_upb",
6485        "//:grpc_public_hdrs",
6486        "//:grpc_trace",
6487        "//:orphanable",
6488        "//:ref_counted_ptr",
6489        "//:sockaddr_utils",
6490        "//:work_serializer",
6491    ],
6492)
6493
6494grpc_cc_library(
6495    name = "lb_endpoint_list",
6496    srcs = [
6497        "load_balancing/endpoint_list.cc",
6498    ],
6499    hdrs = [
6500        "load_balancing/endpoint_list.h",
6501    ],
6502    external_deps = [
6503        "absl/functional:function_ref",
6504        "absl/log:check",
6505        "absl/log:log",
6506        "absl/status",
6507        "absl/status:statusor",
6508        "absl/types:optional",
6509    ],
6510    language = "c++",
6511    deps = [
6512        "channel_args",
6513        "delegating_helper",
6514        "down_cast",
6515        "grpc_lb_policy_pick_first",
6516        "json",
6517        "lb_policy",
6518        "lb_policy_registry",
6519        "pollset_set",
6520        "resolved_address",
6521        "subchannel_interface",
6522        "//:config",
6523        "//:debug_location",
6524        "//:endpoint_addresses",
6525        "//:gpr",
6526        "//:grpc_base",
6527        "//:orphanable",
6528        "//:ref_counted_ptr",
6529        "//:work_serializer",
6530    ],
6531)
6532
6533grpc_cc_library(
6534    name = "grpc_lb_policy_pick_first",
6535    srcs = [
6536        "load_balancing/pick_first/pick_first.cc",
6537    ],
6538    hdrs = [
6539        "load_balancing/pick_first/pick_first.h",
6540    ],
6541    external_deps = [
6542        "absl/algorithm:container",
6543        "absl/log:check",
6544        "absl/log:log",
6545        "absl/random",
6546        "absl/status",
6547        "absl/status:statusor",
6548        "absl/strings",
6549        "absl/types:optional",
6550    ],
6551    language = "c++",
6552    deps = [
6553        "channel_args",
6554        "connectivity_state",
6555        "experiments",
6556        "health_check_client",
6557        "iomgr_fwd",
6558        "json",
6559        "json_args",
6560        "json_object_loader",
6561        "lb_policy",
6562        "lb_policy_factory",
6563        "metrics",
6564        "resolved_address",
6565        "subchannel_interface",
6566        "time",
6567        "useful",
6568        "//:channel_arg_names",
6569        "//:config",
6570        "//:debug_location",
6571        "//:endpoint_addresses",
6572        "//:exec_ctx",
6573        "//:gpr",
6574        "//:grpc_base",
6575        "//:grpc_trace",
6576        "//:orphanable",
6577        "//:ref_counted_ptr",
6578        "//:sockaddr_utils",
6579        "//:work_serializer",
6580    ],
6581)
6582
6583grpc_cc_library(
6584    name = "down_cast",
6585    hdrs = ["util/down_cast.h"],
6586    external_deps = [
6587        "absl/base:config",
6588        "absl/log:check",
6589    ],
6590    deps = ["//:gpr"],
6591)
6592
6593grpc_cc_library(
6594    name = "glob",
6595    srcs = ["util/glob.cc"],
6596    hdrs = ["util/glob.h"],
6597    external_deps = ["absl/strings"],
6598)
6599
6600grpc_cc_library(
6601    name = "status_conversion",
6602    srcs = ["lib/transport/status_conversion.cc"],
6603    hdrs = ["lib/transport/status_conversion.h"],
6604    deps = [
6605        "http2_errors",
6606        "time",
6607        "//:gpr_platform",
6608        "//:grpc_public_hdrs",
6609    ],
6610)
6611
6612grpc_cc_library(
6613    name = "error_utils",
6614    srcs = ["lib/transport/error_utils.cc"],
6615    hdrs = [
6616        "lib/transport/error_utils.h",
6617    ],
6618    external_deps = ["absl/status"],
6619    deps = [
6620        "error",
6621        "http2_errors",
6622        "status_conversion",
6623        "status_helper",
6624        "time",
6625        "//:gpr",
6626        "//:grpc_public_hdrs",
6627    ],
6628)
6629
6630grpc_cc_library(
6631    name = "connectivity_state",
6632    srcs = [
6633        "lib/transport/connectivity_state.cc",
6634    ],
6635    hdrs = [
6636        "lib/transport/connectivity_state.h",
6637    ],
6638    external_deps = [
6639        "absl/log:log",
6640        "absl/status",
6641    ],
6642    deps = [
6643        "closure",
6644        "error",
6645        "//:debug_location",
6646        "//:exec_ctx",
6647        "//:gpr",
6648        "//:grpc_public_hdrs",
6649        "//:grpc_trace",
6650        "//:orphanable",
6651        "//:ref_counted_ptr",
6652        "//:work_serializer",
6653    ],
6654)
6655
6656grpc_cc_library(
6657    name = "xxhash_inline",
6658    hdrs = ["util/xxhash_inline.h"],
6659    external_deps = ["xxhash"],
6660    language = "c++",
6661    deps = ["//:gpr_platform"],
6662)
6663
6664grpc_cc_library(
6665    name = "grpc_lb_policy_ring_hash",
6666    srcs = [
6667        "load_balancing/ring_hash/ring_hash.cc",
6668    ],
6669    hdrs = [
6670        "load_balancing/ring_hash/ring_hash.h",
6671    ],
6672    external_deps = [
6673        "absl/base:core_headers",
6674        "absl/container:inlined_vector",
6675        "absl/log:check",
6676        "absl/log:log",
6677        "absl/random",
6678        "absl/status",
6679        "absl/status:statusor",
6680        "absl/strings",
6681        "absl/types:optional",
6682    ],
6683    language = "c++",
6684    deps = [
6685        "channel_args",
6686        "client_channel_internal_header",
6687        "closure",
6688        "connectivity_state",
6689        "delegating_helper",
6690        "env",
6691        "error",
6692        "grpc_lb_policy_pick_first",
6693        "grpc_service_config",
6694        "json",
6695        "json_args",
6696        "json_object_loader",
6697        "lb_policy",
6698        "lb_policy_factory",
6699        "lb_policy_registry",
6700        "pollset_set",
6701        "ref_counted",
6702        "ref_counted_string",
6703        "resolved_address",
6704        "unique_type_name",
6705        "validation_errors",
6706        "xxhash_inline",
6707        "//:channel_arg_names",
6708        "//:config",
6709        "//:debug_location",
6710        "//:endpoint_addresses",
6711        "//:exec_ctx",
6712        "//:gpr",
6713        "//:grpc_base",
6714        "//:grpc_client_channel",
6715        "//:grpc_trace",
6716        "//:orphanable",
6717        "//:ref_counted_ptr",
6718        "//:sockaddr_utils",
6719        "//:work_serializer",
6720    ],
6721)
6722
6723grpc_cc_library(
6724    name = "grpc_lb_policy_round_robin",
6725    srcs = [
6726        "load_balancing/round_robin/round_robin.cc",
6727    ],
6728    external_deps = [
6729        "absl/log:check",
6730        "absl/log:log",
6731        "absl/meta:type_traits",
6732        "absl/random",
6733        "absl/status",
6734        "absl/status:statusor",
6735        "absl/strings",
6736        "absl/types:optional",
6737    ],
6738    language = "c++",
6739    deps = [
6740        "channel_args",
6741        "connectivity_state",
6742        "json",
6743        "lb_endpoint_list",
6744        "lb_policy",
6745        "lb_policy_factory",
6746        "//:config",
6747        "//:debug_location",
6748        "//:endpoint_addresses",
6749        "//:gpr",
6750        "//:grpc_base",
6751        "//:grpc_trace",
6752        "//:orphanable",
6753        "//:ref_counted_ptr",
6754        "//:work_serializer",
6755    ],
6756)
6757
6758grpc_cc_library(
6759    name = "static_stride_scheduler",
6760    srcs = [
6761        "load_balancing/weighted_round_robin/static_stride_scheduler.cc",
6762    ],
6763    hdrs = [
6764        "load_balancing/weighted_round_robin/static_stride_scheduler.h",
6765    ],
6766    external_deps = [
6767        "absl/functional:any_invocable",
6768        "absl/log:check",
6769        "absl/types:optional",
6770        "absl/types:span",
6771    ],
6772    language = "c++",
6773    deps = ["//:gpr"],
6774)
6775
6776grpc_cc_library(
6777    name = "grpc_lb_policy_weighted_round_robin",
6778    srcs = [
6779        "load_balancing/weighted_round_robin/weighted_round_robin.cc",
6780    ],
6781    external_deps = [
6782        "absl/base:core_headers",
6783        "absl/log:check",
6784        "absl/log:log",
6785        "absl/meta:type_traits",
6786        "absl/random",
6787        "absl/status",
6788        "absl/status:statusor",
6789        "absl/strings",
6790        "absl/types:optional",
6791        "absl/types:variant",
6792    ],
6793    language = "c++",
6794    deps = [
6795        "channel_args",
6796        "connectivity_state",
6797        "experiments",
6798        "grpc_backend_metric_data",
6799        "grpc_lb_policy_weighted_target",
6800        "json",
6801        "json_args",
6802        "json_object_loader",
6803        "lb_endpoint_list",
6804        "lb_policy",
6805        "lb_policy_factory",
6806        "metrics",
6807        "ref_counted",
6808        "resolved_address",
6809        "static_stride_scheduler",
6810        "stats_data",
6811        "subchannel_interface",
6812        "time",
6813        "validation_errors",
6814        "//:config",
6815        "//:debug_location",
6816        "//:endpoint_addresses",
6817        "//:exec_ctx",
6818        "//:gpr",
6819        "//:grpc_base",
6820        "//:grpc_client_channel",
6821        "//:grpc_trace",
6822        "//:oob_backend_metric",
6823        "//:orphanable",
6824        "//:ref_counted_ptr",
6825        "//:stats",
6826        "//:work_serializer",
6827    ],
6828)
6829
6830grpc_cc_library(
6831    name = "grpc_outlier_detection_header",
6832    hdrs = [
6833        "load_balancing/outlier_detection/outlier_detection.h",
6834    ],
6835    external_deps = ["absl/types:optional"],
6836    language = "c++",
6837    deps = [
6838        "json",
6839        "json_args",
6840        "json_object_loader",
6841        "time",
6842        "validation_errors",
6843        "//:gpr_platform",
6844    ],
6845)
6846
6847grpc_cc_library(
6848    name = "grpc_lb_policy_outlier_detection",
6849    srcs = [
6850        "load_balancing/outlier_detection/outlier_detection.cc",
6851    ],
6852    external_deps = [
6853        "absl/base:core_headers",
6854        "absl/log:check",
6855        "absl/log:log",
6856        "absl/meta:type_traits",
6857        "absl/random",
6858        "absl/status",
6859        "absl/status:statusor",
6860        "absl/strings",
6861        "absl/types:variant",
6862    ],
6863    language = "c++",
6864    deps = [
6865        "channel_args",
6866        "connectivity_state",
6867        "delegating_helper",
6868        "experiments",
6869        "grpc_outlier_detection_header",
6870        "health_check_client",
6871        "iomgr_fwd",
6872        "json",
6873        "lb_policy",
6874        "lb_policy_factory",
6875        "lb_policy_registry",
6876        "pollset_set",
6877        "ref_counted",
6878        "resolved_address",
6879        "subchannel_interface",
6880        "unique_type_name",
6881        "validation_errors",
6882        "//:config",
6883        "//:debug_location",
6884        "//:endpoint_addresses",
6885        "//:exec_ctx",
6886        "//:gpr",
6887        "//:grpc_base",
6888        "//:grpc_client_channel",
6889        "//:grpc_trace",
6890        "//:lb_child_policy_handler",
6891        "//:orphanable",
6892        "//:ref_counted_ptr",
6893        "//:sockaddr_utils",
6894        "//:work_serializer",
6895    ],
6896)
6897
6898grpc_cc_library(
6899    name = "grpc_lb_policy_priority",
6900    srcs = [
6901        "load_balancing/priority/priority.cc",
6902    ],
6903    external_deps = [
6904        "absl/log:check",
6905        "absl/log:log",
6906        "absl/status",
6907        "absl/status:statusor",
6908        "absl/strings",
6909        "absl/types:optional",
6910    ],
6911    language = "c++",
6912    deps = [
6913        "channel_args",
6914        "connectivity_state",
6915        "delegating_helper",
6916        "grpc_lb_address_filtering",
6917        "json",
6918        "json_args",
6919        "json_object_loader",
6920        "lb_policy",
6921        "lb_policy_factory",
6922        "lb_policy_registry",
6923        "pollset_set",
6924        "ref_counted_string",
6925        "time",
6926        "validation_errors",
6927        "//:channel_arg_names",
6928        "//:config",
6929        "//:debug_location",
6930        "//:endpoint_addresses",
6931        "//:exec_ctx",
6932        "//:gpr",
6933        "//:grpc_base",
6934        "//:grpc_client_channel",
6935        "//:grpc_trace",
6936        "//:lb_child_policy_handler",
6937        "//:orphanable",
6938        "//:ref_counted_ptr",
6939        "//:work_serializer",
6940    ],
6941)
6942
6943grpc_cc_library(
6944    name = "grpc_lb_policy_weighted_target",
6945    srcs = [
6946        "load_balancing/weighted_target/weighted_target.cc",
6947    ],
6948    hdrs = [
6949        "load_balancing/weighted_target/weighted_target.h",
6950    ],
6951    external_deps = [
6952        "absl/base:core_headers",
6953        "absl/log:check",
6954        "absl/log:log",
6955        "absl/meta:type_traits",
6956        "absl/random",
6957        "absl/status",
6958        "absl/status:statusor",
6959        "absl/strings",
6960        "absl/types:optional",
6961    ],
6962    language = "c++",
6963    deps = [
6964        "channel_args",
6965        "connectivity_state",
6966        "delegating_helper",
6967        "grpc_lb_address_filtering",
6968        "json",
6969        "json_args",
6970        "json_object_loader",
6971        "lb_policy",
6972        "lb_policy_factory",
6973        "lb_policy_registry",
6974        "pollset_set",
6975        "time",
6976        "validation_errors",
6977        "//:config",
6978        "//:debug_location",
6979        "//:endpoint_addresses",
6980        "//:exec_ctx",
6981        "//:gpr",
6982        "//:grpc_base",
6983        "//:grpc_client_channel",
6984        "//:grpc_trace",
6985        "//:lb_child_policy_handler",
6986        "//:orphanable",
6987        "//:ref_counted_ptr",
6988        "//:work_serializer",
6989    ],
6990)
6991
6992grpc_cc_library(
6993    name = "grpc_lb_policy_xds_override_host",
6994    srcs = [
6995        "load_balancing/xds/xds_override_host.cc",
6996    ],
6997    hdrs = [
6998        "load_balancing/xds/xds_override_host.h",
6999    ],
7000    external_deps = [
7001        "absl/base:core_headers",
7002        "absl/functional:function_ref",
7003        "absl/log:check",
7004        "absl/log:log",
7005        "absl/status",
7006        "absl/status:statusor",
7007        "absl/strings",
7008        "absl/types:optional",
7009        "absl/types:span",
7010        "absl/types:variant",
7011    ],
7012    language = "c++",
7013    deps = [
7014        "channel_args",
7015        "client_channel_internal_header",
7016        "closure",
7017        "connectivity_state",
7018        "delegating_helper",
7019        "error",
7020        "experiments",
7021        "grpc_stateful_session_filter",
7022        "grpc_xds_client",
7023        "iomgr_fwd",
7024        "json",
7025        "json_args",
7026        "json_object_loader",
7027        "lb_policy",
7028        "lb_policy_factory",
7029        "lb_policy_registry",
7030        "match",
7031        "pollset_set",
7032        "ref_counted_string",
7033        "resolved_address",
7034        "subchannel_interface",
7035        "validation_errors",
7036        "xds_config",
7037        "xds_health_status",
7038        "//:config",
7039        "//:debug_location",
7040        "//:endpoint_addresses",
7041        "//:exec_ctx",
7042        "//:gpr",
7043        "//:grpc_base",
7044        "//:grpc_client_channel",
7045        "//:grpc_trace",
7046        "//:lb_child_policy_handler",
7047        "//:orphanable",
7048        "//:parse_address",
7049        "//:ref_counted_ptr",
7050        "//:sockaddr_utils",
7051        "//:work_serializer",
7052    ],
7053)
7054
7055grpc_cc_library(
7056    name = "lb_server_load_reporting_filter",
7057    srcs = [
7058        "ext/filters/load_reporting/server_load_reporting_filter.cc",
7059    ],
7060    hdrs = [
7061        "ext/filters/load_reporting/registered_opencensus_objects.h",
7062        "ext/filters/load_reporting/server_load_reporting_filter.h",
7063        "//:src/cpp/server/load_reporter/constants.h",
7064    ],
7065    external_deps = [
7066        "absl/container:inlined_vector",
7067        "absl/log:log",
7068        "absl/status",
7069        "absl/status:statusor",
7070        "absl/strings",
7071        "absl/strings:str_format",
7072        "absl/types:optional",
7073        "opencensus-stats",
7074        "opencensus-tags",
7075    ],
7076    language = "c++",
7077    deps = [
7078        "arena_promise",
7079        "call_finalization",
7080        "channel_args",
7081        "channel_fwd",
7082        "channel_stack_type",
7083        "context",
7084        "grpc_sockaddr",
7085        "latent_see",
7086        "metadata_batch",
7087        "resolved_address",
7088        "seq",
7089        "slice",
7090        "//:channel_arg_names",
7091        "//:config",
7092        "//:gpr",
7093        "//:gpr_platform",
7094        "//:grpc_base",
7095        "//:grpc_public_hdrs",
7096        "//:grpc_security_base",
7097        "//:parse_address",
7098        "//:promise",
7099        "//:uri",
7100    ],
7101    alwayslink = 1,
7102)
7103
7104grpc_cc_library(
7105    name = "grpc_backend_metric_filter",
7106    srcs = [
7107        "ext/filters/backend_metrics/backend_metric_filter.cc",
7108    ],
7109    hdrs = [
7110        "ext/filters/backend_metrics/backend_metric_filter.h",
7111    ],
7112    external_deps = [
7113        "absl/log:log",
7114        "absl/status:statusor",
7115        "absl/strings",
7116        "absl/types:optional",
7117        "@com_google_protobuf//upb:base",
7118        "@com_google_protobuf//upb:mem",
7119    ],
7120    language = "c++",
7121    deps = [
7122        "arena_promise",
7123        "channel_args",
7124        "channel_fwd",
7125        "channel_stack_type",
7126        "context",
7127        "experiments",
7128        "grpc_backend_metric_data",
7129        "grpc_backend_metric_provider",
7130        "latent_see",
7131        "map",
7132        "metadata_batch",
7133        "slice",
7134        "//:channel_arg_names",
7135        "//:config",
7136        "//:gpr",
7137        "//:gpr_platform",
7138        "//:grpc_base",
7139        "//:grpc_trace",
7140        "//:xds_orca_upb",
7141    ],
7142)
7143
7144grpc_cc_library(
7145    name = "polling_resolver",
7146    srcs = [
7147        "resolver/polling_resolver.cc",
7148    ],
7149    hdrs = [
7150        "resolver/polling_resolver.h",
7151    ],
7152    external_deps = [
7153        "absl/log:check",
7154        "absl/log:log",
7155        "absl/status",
7156        "absl/status:statusor",
7157        "absl/strings",
7158        "absl/types:optional",
7159    ],
7160    language = "c++",
7161    deps = [
7162        "channel_args",
7163        "grpc_service_config",
7164        "iomgr_fwd",
7165        "time",
7166        "//:backoff",
7167        "//:debug_location",
7168        "//:endpoint_addresses",
7169        "//:event_engine_base_hdrs",
7170        "//:exec_ctx",
7171        "//:gpr",
7172        "//:grpc_resolver",
7173        "//:grpc_trace",
7174        "//:orphanable",
7175        "//:ref_counted_ptr",
7176        "//:uri",
7177        "//:work_serializer",
7178    ],
7179)
7180
7181grpc_cc_library(
7182    name = "service_config_helper",
7183    srcs = [
7184        "resolver/dns/event_engine/service_config_helper.cc",
7185    ],
7186    hdrs = [
7187        "resolver/dns/event_engine/service_config_helper.h",
7188    ],
7189    external_deps = [
7190        "absl/status:statusor",
7191        "absl/strings",
7192    ],
7193    language = "c++",
7194    deps = [
7195        "json",
7196        "json_args",
7197        "json_object_loader",
7198        "json_reader",
7199        "json_writer",
7200        "status_helper",
7201        "//:gpr_platform",
7202        "//:grpc_base",
7203        "//:iomgr",
7204    ],
7205)
7206
7207grpc_cc_library(
7208    name = "grpc_resolver_dns_event_engine",
7209    srcs = [
7210        "resolver/dns/event_engine/event_engine_client_channel_resolver.cc",
7211    ],
7212    hdrs = [
7213        "resolver/dns/event_engine/event_engine_client_channel_resolver.h",
7214    ],
7215    external_deps = [
7216        "absl/base:core_headers",
7217        "absl/cleanup",
7218        "absl/log:check",
7219        "absl/log:log",
7220        "absl/status",
7221        "absl/status:statusor",
7222        "absl/strings",
7223        "absl/types:optional",
7224    ],
7225    language = "c++",
7226    deps = [
7227        "channel_args",
7228        "event_engine_common",
7229        "grpc_service_config",
7230        "polling_resolver",
7231        "service_config_helper",
7232        "time",
7233        "validation_errors",
7234        "//:backoff",
7235        "//:channel_arg_names",
7236        "//:debug_location",
7237        "//:endpoint_addresses",
7238        "//:exec_ctx",
7239        "//:gpr",
7240        "//:gpr_platform",
7241        "//:grpc_base",
7242        "//:grpc_grpclb_balancer_addresses",
7243        "//:grpc_resolver",
7244        "//:grpc_service_config_impl",
7245        "//:grpc_trace",
7246        "//:iomgr",
7247        "//:orphanable",
7248        "//:ref_counted_ptr",
7249        "//:uri",
7250    ],
7251)
7252
7253grpc_cc_library(
7254    name = "grpc_resolver_dns_plugin",
7255    srcs = [
7256        "resolver/dns/dns_resolver_plugin.cc",
7257    ],
7258    hdrs = [
7259        "resolver/dns/dns_resolver_plugin.h",
7260    ],
7261    external_deps = [
7262        "absl/log:log",
7263        "absl/strings",
7264    ],
7265    language = "c++",
7266    deps = [
7267        "experiments",
7268        "grpc_resolver_dns_event_engine",
7269        "grpc_resolver_dns_native",
7270        "//:config",
7271        "//:config_vars",
7272        "//:gpr",
7273        "//:grpc_resolver",
7274        "//:grpc_resolver_dns_ares",
7275    ],
7276)
7277
7278grpc_cc_library(
7279    name = "grpc_resolver_dns_native",
7280    srcs = [
7281        "resolver/dns/native/dns_resolver.cc",
7282    ],
7283    hdrs = [
7284        "resolver/dns/native/dns_resolver.h",
7285    ],
7286    external_deps = [
7287        "absl/functional:bind_front",
7288        "absl/log:log",
7289        "absl/status",
7290        "absl/status:statusor",
7291        "absl/strings",
7292        "absl/types:optional",
7293    ],
7294    language = "c++",
7295    deps = [
7296        "channel_args",
7297        "polling_resolver",
7298        "resolved_address",
7299        "time",
7300        "//:backoff",
7301        "//:channel_arg_names",
7302        "//:config",
7303        "//:debug_location",
7304        "//:endpoint_addresses",
7305        "//:gpr",
7306        "//:grpc_base",
7307        "//:grpc_resolver",
7308        "//:grpc_trace",
7309        "//:iomgr",
7310        "//:orphanable",
7311        "//:ref_counted_ptr",
7312        "//:uri",
7313    ],
7314)
7315
7316grpc_cc_library(
7317    name = "grpc_resolver_sockaddr",
7318    srcs = [
7319        "resolver/sockaddr/sockaddr_resolver.cc",
7320    ],
7321    external_deps = [
7322        "absl/log:log",
7323        "absl/status:statusor",
7324        "absl/strings",
7325    ],
7326    language = "c++",
7327    deps = [
7328        "channel_args",
7329        "iomgr_port",
7330        "resolved_address",
7331        "//:config",
7332        "//:endpoint_addresses",
7333        "//:gpr",
7334        "//:grpc_resolver",
7335        "//:orphanable",
7336        "//:parse_address",
7337        "//:uri",
7338    ],
7339)
7340
7341grpc_cc_library(
7342    name = "grpc_resolver_xds_attributes",
7343    hdrs = [
7344        "resolver/xds/xds_resolver_attributes.h",
7345    ],
7346    external_deps = ["absl/strings"],
7347    language = "c++",
7348    deps = [
7349        "grpc_service_config",
7350        "unique_type_name",
7351        "xds_route_config",
7352        "//:gpr_platform",
7353    ],
7354)
7355
7356grpc_cc_library(
7357    name = "xds_config",
7358    srcs = [
7359        "resolver/xds/xds_config.cc",
7360    ],
7361    hdrs = [
7362        "resolver/xds/xds_config.h",
7363    ],
7364    external_deps = [
7365        "absl/container:flat_hash_map",
7366        "absl/status:statusor",
7367        "absl/strings",
7368        "absl/types:variant",
7369    ],
7370    language = "c++",
7371    deps = [
7372        "match",
7373        "ref_counted",
7374        "xds_cluster",
7375        "xds_endpoint",
7376        "xds_listener",
7377        "xds_route_config",
7378    ],
7379)
7380
7381grpc_cc_library(
7382    name = "xds_dependency_manager",
7383    srcs = [
7384        "resolver/xds/xds_dependency_manager.cc",
7385    ],
7386    hdrs = [
7387        "resolver/xds/xds_dependency_manager.h",
7388    ],
7389    external_deps = [
7390        "absl/container:flat_hash_map",
7391        "absl/container:flat_hash_set",
7392        "absl/log:check",
7393        "absl/log:log",
7394        "absl/strings",
7395    ],
7396    language = "c++",
7397    deps = [
7398        "grpc_lb_xds_channel_args",
7399        "grpc_xds_client",
7400        "match",
7401        "ref_counted",
7402        "xds_cluster",
7403        "xds_config",
7404        "xds_endpoint",
7405        "xds_listener",
7406        "xds_route_config",
7407        "//:config",
7408        "//:gpr",
7409        "//:grpc_resolver",
7410        "//:grpc_resolver_fake",
7411    ],
7412)
7413
7414grpc_cc_library(
7415    name = "grpc_resolver_xds",
7416    srcs = [
7417        "resolver/xds/xds_resolver.cc",
7418    ],
7419    external_deps = [
7420        "absl/log:check",
7421        "absl/log:log",
7422        "absl/meta:type_traits",
7423        "absl/random",
7424        "absl/status",
7425        "absl/status:statusor",
7426        "absl/strings",
7427        "absl/strings:str_format",
7428        "absl/types:optional",
7429        "absl/types:variant",
7430        "re2",
7431    ],
7432    language = "c++",
7433    deps = [
7434        "arena",
7435        "arena_promise",
7436        "channel_args",
7437        "channel_fwd",
7438        "client_channel_internal_header",
7439        "config_selector",
7440        "context",
7441        "dual_ref_counted",
7442        "experiments",
7443        "grpc_lb_policy_ring_hash",
7444        "grpc_resolver_xds_attributes",
7445        "grpc_service_config",
7446        "grpc_xds_client",
7447        "iomgr_fwd",
7448        "match",
7449        "metadata_batch",
7450        "pollset_set",
7451        "ref_counted",
7452        "slice",
7453        "time",
7454        "xds_config",
7455        "xds_dependency_manager",
7456        "xds_http_filter",
7457        "xds_listener",
7458        "xds_route_config",
7459        "xxhash_inline",
7460        "//:channel_arg_names",
7461        "//:config",
7462        "//:debug_location",
7463        "//:endpoint_addresses",
7464        "//:gpr",
7465        "//:grpc_base",
7466        "//:grpc_public_hdrs",
7467        "//:grpc_resolver",
7468        "//:grpc_service_config_impl",
7469        "//:grpc_trace",
7470        "//:orphanable",
7471        "//:ref_counted_ptr",
7472        "//:uri",
7473        "//:work_serializer",
7474        "//:xds_client",
7475    ],
7476)
7477
7478grpc_cc_library(
7479    name = "grpc_resolver_c2p",
7480    srcs = [
7481        "resolver/google_c2p/google_c2p_resolver.cc",
7482    ],
7483    external_deps = [
7484        "absl/log:check",
7485        "absl/log:log",
7486        "absl/status:statusor",
7487        "absl/strings",
7488        "absl/types:optional",
7489    ],
7490    language = "c++",
7491    deps = [
7492        "channel_args",
7493        "env",
7494        "gcp_metadata_query",
7495        "grpc_xds_client",
7496        "json",
7497        "json_writer",
7498        "resource_quota",
7499        "time",
7500        "//:alts_util",
7501        "//:config",
7502        "//:debug_location",
7503        "//:gpr",
7504        "//:grpc_base",
7505        "//:grpc_resolver",
7506        "//:iomgr",
7507        "//:orphanable",
7508        "//:ref_counted_ptr",
7509        "//:uri",
7510        "//:work_serializer",
7511        "//:xds_client",
7512    ],
7513)
7514
7515grpc_cc_library(
7516    name = "hpack_constants",
7517    hdrs = [
7518        "ext/transport/chttp2/transport/hpack_constants.h",
7519    ],
7520    language = "c++",
7521    deps = ["//:gpr_platform"],
7522)
7523
7524grpc_cc_library(
7525    name = "hpack_encoder_table",
7526    srcs = [
7527        "ext/transport/chttp2/transport/hpack_encoder_table.cc",
7528    ],
7529    hdrs = [
7530        "ext/transport/chttp2/transport/hpack_encoder_table.h",
7531    ],
7532    external_deps = [
7533        "absl/log:check",
7534    ],
7535    language = "c++",
7536    deps = [
7537        "hpack_constants",
7538        "//:gpr",
7539    ],
7540)
7541
7542grpc_cc_library(
7543    name = "chttp2_flow_control",
7544    srcs = [
7545        "ext/transport/chttp2/transport/flow_control.cc",
7546    ],
7547    hdrs = [
7548        "ext/transport/chttp2/transport/flow_control.h",
7549    ],
7550    external_deps = [
7551        "absl/functional:function_ref",
7552        "absl/log:check",
7553        "absl/log:log",
7554        "absl/status",
7555        "absl/strings",
7556        "absl/strings:str_format",
7557        "absl/types:optional",
7558    ],
7559    deps = [
7560        "bdp_estimator",
7561        "experiments",
7562        "http2_settings",
7563        "memory_quota",
7564        "time",
7565        "useful",
7566        "//:gpr",
7567        "//:grpc_trace",
7568    ],
7569)
7570
7571grpc_cc_library(
7572    name = "ping_abuse_policy",
7573    srcs = [
7574        "ext/transport/chttp2/transport/ping_abuse_policy.cc",
7575    ],
7576    hdrs = [
7577        "ext/transport/chttp2/transport/ping_abuse_policy.h",
7578    ],
7579    external_deps = [
7580        "absl/strings",
7581        "absl/types:optional",
7582    ],
7583    deps = [
7584        "channel_args",
7585        "time",
7586        "//:channel_arg_names",
7587        "//:gpr_platform",
7588    ],
7589)
7590
7591grpc_cc_library(
7592    name = "ping_callbacks",
7593    srcs = [
7594        "ext/transport/chttp2/transport/ping_callbacks.cc",
7595    ],
7596    hdrs = [
7597        "ext/transport/chttp2/transport/ping_callbacks.h",
7598    ],
7599    external_deps = [
7600        "absl/container:flat_hash_map",
7601        "absl/functional:any_invocable",
7602        "absl/hash",
7603        "absl/log:check",
7604        "absl/meta:type_traits",
7605        "absl/random:bit_gen_ref",
7606        "absl/random:distributions",
7607        "absl/types:optional",
7608    ],
7609    deps = [
7610        "time",
7611        "//:event_engine_base_hdrs",
7612        "//:gpr",
7613        "//:gpr_platform",
7614        "//:grpc_trace",
7615    ],
7616)
7617
7618grpc_cc_library(
7619    name = "write_size_policy",
7620    srcs = [
7621        "ext/transport/chttp2/transport/write_size_policy.cc",
7622    ],
7623    hdrs = [
7624        "ext/transport/chttp2/transport/write_size_policy.h",
7625    ],
7626    external_deps = [
7627        "absl/log:check",
7628    ],
7629    deps = [
7630        "time",
7631        "//:gpr",
7632        "//:gpr_platform",
7633    ],
7634)
7635
7636grpc_cc_library(
7637    name = "ping_rate_policy",
7638    srcs = [
7639        "ext/transport/chttp2/transport/ping_rate_policy.cc",
7640    ],
7641    hdrs = [
7642        "ext/transport/chttp2/transport/ping_rate_policy.h",
7643    ],
7644    external_deps = [
7645        "absl/strings",
7646        "absl/types:optional",
7647        "absl/types:variant",
7648    ],
7649    deps = [
7650        "channel_args",
7651        "experiments",
7652        "match",
7653        "time",
7654        "//:channel_arg_names",
7655        "//:gpr_platform",
7656    ],
7657)
7658
7659grpc_cc_library(
7660    name = "huffsyms",
7661    srcs = [
7662        "ext/transport/chttp2/transport/huffsyms.cc",
7663    ],
7664    hdrs = [
7665        "ext/transport/chttp2/transport/huffsyms.h",
7666    ],
7667    deps = ["//:gpr_platform"],
7668)
7669
7670grpc_cc_library(
7671    name = "decode_huff",
7672    srcs = [
7673        "ext/transport/chttp2/transport/decode_huff.cc",
7674    ],
7675    hdrs = [
7676        "ext/transport/chttp2/transport/decode_huff.h",
7677    ],
7678    deps = ["//:gpr_platform"],
7679)
7680
7681grpc_cc_library(
7682    name = "http2_settings",
7683    srcs = [
7684        "ext/transport/chttp2/transport/http2_settings.cc",
7685    ],
7686    hdrs = [
7687        "ext/transport/chttp2/transport/http2_settings.h",
7688    ],
7689    external_deps = [
7690        "absl/functional:function_ref",
7691        "absl/strings",
7692        "absl/types:optional",
7693    ],
7694    deps = [
7695        "http2_errors",
7696        "useful",
7697        "//:chttp2_frame",
7698        "//:gpr_platform",
7699    ],
7700)
7701
7702grpc_cc_library(
7703    name = "grpc_transport_chttp2_alpn",
7704    srcs = [
7705        "ext/transport/chttp2/alpn/alpn.cc",
7706    ],
7707    hdrs = [
7708        "ext/transport/chttp2/alpn/alpn.h",
7709    ],
7710    external_deps = [
7711        "absl/log:check",
7712    ],
7713    language = "c++",
7714    deps = [
7715        "useful",
7716        "//:gpr",
7717    ],
7718)
7719
7720grpc_cc_library(
7721    name = "grpc_transport_chttp2_client_connector",
7722    srcs = [
7723        "ext/transport/chttp2/client/chttp2_connector.cc",
7724    ],
7725    hdrs = [
7726        "ext/transport/chttp2/client/chttp2_connector.h",
7727    ],
7728    external_deps = [
7729        "absl/base:core_headers",
7730        "absl/log:check",
7731        "absl/log:log",
7732        "absl/status",
7733        "absl/status:statusor",
7734        "absl/strings:str_format",
7735        "absl/types:optional",
7736    ],
7737    language = "c++",
7738    deps = [
7739        "channel_args",
7740        "channel_args_endpoint_config",
7741        "channel_args_preconditioning",
7742        "channel_stack_type",
7743        "closure",
7744        "error",
7745        "error_utils",
7746        "grpc_insecure_credentials",
7747        "handshaker_registry",
7748        "resolved_address",
7749        "status_helper",
7750        "subchannel_connector",
7751        "tcp_connect_handshaker",
7752        "time",
7753        "unique_type_name",
7754        "//:channel",
7755        "//:channel_arg_names",
7756        "//:channel_create",
7757        "//:channelz",
7758        "//:config",
7759        "//:debug_location",
7760        "//:exec_ctx",
7761        "//:gpr",
7762        "//:grpc_base",
7763        "//:grpc_client_channel",
7764        "//:grpc_public_hdrs",
7765        "//:grpc_resolver",
7766        "//:grpc_security_base",
7767        "//:grpc_trace",
7768        "//:grpc_transport_chttp2",
7769        "//:handshaker",
7770        "//:iomgr",
7771        "//:orphanable",
7772        "//:ref_counted_ptr",
7773        "//:sockaddr_utils",
7774    ],
7775)
7776
7777grpc_cc_library(
7778    name = "grpc_transport_chttp2_server",
7779    srcs = [
7780        "ext/transport/chttp2/server/chttp2_server.cc",
7781    ],
7782    hdrs = [
7783        "ext/transport/chttp2/server/chttp2_server.h",
7784    ],
7785    external_deps = [
7786        "absl/base:core_headers",
7787        "absl/log:check",
7788        "absl/log:log",
7789        "absl/status",
7790        "absl/status:statusor",
7791        "absl/strings",
7792        "absl/strings:str_format",
7793        "absl/types:optional",
7794    ],
7795    language = "c++",
7796    deps = [
7797        "channel_args",
7798        "channel_args_endpoint_config",
7799        "closure",
7800        "connection_quota",
7801        "error",
7802        "error_utils",
7803        "event_engine_common",
7804        "event_engine_extensions",
7805        "event_engine_query_extensions",
7806        "event_engine_tcp_socket_utils",
7807        "event_engine_utils",
7808        "grpc_insecure_credentials",
7809        "handshaker_registry",
7810        "iomgr_fwd",
7811        "match",
7812        "memory_quota",
7813        "pollset_set",
7814        "resolved_address",
7815        "resource_quota",
7816        "status_helper",
7817        "time",
7818        "unique_type_name",
7819        "//:channel_arg_names",
7820        "//:channelz",
7821        "//:chttp2_legacy_frame",
7822        "//:config",
7823        "//:debug_location",
7824        "//:exec_ctx",
7825        "//:gpr",
7826        "//:grpc_base",
7827        "//:grpc_security_base",
7828        "//:grpc_trace",
7829        "//:grpc_transport_chttp2",
7830        "//:handshaker",
7831        "//:iomgr",
7832        "//:orphanable",
7833        "//:ref_counted_ptr",
7834        "//:server",
7835        "//:sockaddr_utils",
7836        "//:uri",
7837    ],
7838)
7839
7840grpc_cc_library(
7841    name = "grpc_transport_inproc",
7842    srcs = [
7843        "ext/transport/inproc/inproc_transport.cc",
7844        "ext/transport/inproc/legacy_inproc_transport.cc",
7845    ],
7846    hdrs = [
7847        "ext/transport/inproc/inproc_transport.h",
7848        "ext/transport/inproc/legacy_inproc_transport.h",
7849    ],
7850    external_deps = [
7851        "absl/log:log",
7852        "absl/log:check",
7853        "absl/status",
7854        "absl/status:statusor",
7855        "absl/strings",
7856        "absl/types:optional",
7857    ],
7858    language = "c++",
7859    deps = [
7860        "arena",
7861        "channel_args",
7862        "channel_args_preconditioning",
7863        "channel_stack_type",
7864        "closure",
7865        "connectivity_state",
7866        "error",
7867        "event_engine_context",
7868        "experiments",
7869        "iomgr_fwd",
7870        "metadata",
7871        "metadata_batch",
7872        "resource_quota",
7873        "slice",
7874        "slice_buffer",
7875        "status_helper",
7876        "time",
7877        "try_seq",
7878        "//:channel",
7879        "//:channel_arg_names",
7880        "//:channel_create",
7881        "//:channelz",
7882        "//:config",
7883        "//:debug_location",
7884        "//:exec_ctx",
7885        "//:gpr",
7886        "//:grpc_base",
7887        "//:grpc_public_hdrs",
7888        "//:grpc_trace",
7889        "//:iomgr",
7890        "//:promise",
7891        "//:ref_counted_ptr",
7892        "//:server",
7893    ],
7894)
7895
7896grpc_internal_proto_library(
7897    name = "chaotic_good_frame_proto",
7898    srcs = ["ext/transport/chaotic_good/chaotic_good_frame.proto"],
7899    has_services = False,
7900)
7901
7902grpc_cc_proto_library(
7903    name = "chaotic_good_frame_cc_proto",
7904    deps = ["chaotic_good_frame_proto"],
7905)
7906
7907grpc_cc_library(
7908    name = "chaotic_good_frame",
7909    srcs = [
7910        "ext/transport/chaotic_good/frame.cc",
7911    ],
7912    hdrs = [
7913        "ext/transport/chaotic_good/frame.h",
7914    ],
7915    external_deps = [
7916        "absl/log:check",
7917        "absl/random:bit_gen_ref",
7918        "absl/status",
7919        "absl/status:statusor",
7920        "absl/types:variant",
7921    ],
7922    deps = [
7923        "arena",
7924        "bitset",
7925        "chaotic_good_frame_cc_proto",
7926        "chaotic_good_frame_header",
7927        "context",
7928        "match",
7929        "message",
7930        "metadata",
7931        "metadata_batch",
7932        "no_destruct",
7933        "slice",
7934        "slice_buffer",
7935        "status_helper",
7936        "//:gpr_platform",
7937        "//:grpc_base",
7938    ],
7939)
7940
7941grpc_cc_library(
7942    name = "chaotic_good_frame_header",
7943    srcs = [
7944        "ext/transport/chaotic_good/frame_header.cc",
7945    ],
7946    hdrs = [
7947        "ext/transport/chaotic_good/frame_header.h",
7948    ],
7949    external_deps = [
7950        "absl/status",
7951        "absl/status:statusor",
7952        "absl/strings",
7953    ],
7954    deps = [
7955        "bitset",
7956        "//:gpr",
7957        "//:gpr_platform",
7958    ],
7959)
7960
7961grpc_cc_library(
7962    name = "chaotic_good_legacy_frame",
7963    srcs = [
7964        "ext/transport/chaotic_good_legacy/frame.cc",
7965    ],
7966    hdrs = [
7967        "ext/transport/chaotic_good_legacy/frame.h",
7968    ],
7969    external_deps = [
7970        "absl/log:check",
7971        "absl/random:bit_gen_ref",
7972        "absl/status",
7973        "absl/status:statusor",
7974        "absl/types:variant",
7975    ],
7976    deps = [
7977        "arena",
7978        "bitset",
7979        "chaotic_good_legacy_frame_header",
7980        "context",
7981        "match",
7982        "metadata_batch",
7983        "no_destruct",
7984        "slice",
7985        "slice_buffer",
7986        "status_helper",
7987        "//:gpr",
7988        "//:gpr_platform",
7989        "//:grpc_base",
7990        "//:hpack_encoder",
7991        "//:hpack_parser",
7992    ],
7993)
7994
7995grpc_cc_library(
7996    name = "chaotic_good_legacy_settings_metadata",
7997    srcs = [
7998        "ext/transport/chaotic_good_legacy/settings_metadata.cc",
7999    ],
8000    hdrs = [
8001        "ext/transport/chaotic_good_legacy/settings_metadata.h",
8002    ],
8003    external_deps = [
8004        "absl/status",
8005        "absl/types:optional",
8006    ],
8007    deps = [
8008        "arena",
8009        "metadata_batch",
8010        "//:gpr",
8011    ],
8012)
8013
8014grpc_cc_library(
8015    name = "chaotic_good_legacy_frame_header",
8016    srcs = [
8017        "ext/transport/chaotic_good_legacy/frame_header.cc",
8018    ],
8019    hdrs = [
8020        "ext/transport/chaotic_good_legacy/frame_header.h",
8021    ],
8022    external_deps = [
8023        "absl/status",
8024        "absl/status:statusor",
8025        "absl/strings",
8026    ],
8027    deps = [
8028        "bitset",
8029        "//:gpr",
8030        "//:gpr_platform",
8031    ],
8032)
8033
8034grpc_cc_library(
8035    name = "gcp_metadata_query",
8036    srcs = [
8037        "util/gcp_metadata_query.cc",
8038    ],
8039    hdrs = [
8040        "util/gcp_metadata_query.h",
8041    ],
8042    external_deps = [
8043        "absl/functional:any_invocable",
8044        "absl/log:check",
8045        "absl/log:log",
8046        "absl/status",
8047        "absl/status:statusor",
8048        "absl/strings",
8049        "absl/strings:str_format",
8050    ],
8051    deps = [
8052        "closure",
8053        "error",
8054        "status_helper",
8055        "time",
8056        "//:gpr",
8057        "//:gpr_platform",
8058        "//:grpc_base",
8059        "//:grpc_core_credentials_header",
8060        "//:grpc_security_base",
8061        "//:grpc_trace",
8062        "//:httpcli",
8063        "//:iomgr",
8064        "//:orphanable",
8065        "//:ref_counted_ptr",
8066        "//:uri",
8067    ],
8068)
8069
8070grpc_cc_library(
8071    name = "logging_sink",
8072    hdrs = [
8073        "ext/filters/logging/logging_sink.h",
8074    ],
8075    external_deps = [
8076        "absl/numeric:int128",
8077        "absl/strings",
8078    ],
8079    language = "c++",
8080    visibility = [
8081        "//src/cpp/ext/gcp:__subpackages__",
8082        "//test:__subpackages__",
8083    ],
8084    deps = [
8085        "time",
8086        "//:gpr_platform",
8087    ],
8088)
8089
8090grpc_cc_library(
8091    name = "logging_filter",
8092    srcs = [
8093        "ext/filters/logging/logging_filter.cc",
8094    ],
8095    hdrs = [
8096        "ext/filters/logging/logging_filter.h",
8097    ],
8098    external_deps = [
8099        "absl/log:log",
8100        "absl/numeric:int128",
8101        "absl/random",
8102        "absl/random:distributions",
8103        "absl/status:statusor",
8104        "absl/strings",
8105        "absl/types:optional",
8106    ],
8107    language = "c++",
8108    deps = [
8109        "arena",
8110        "arena_promise",
8111        "cancel_callback",
8112        "channel_args",
8113        "channel_fwd",
8114        "channel_stack_type",
8115        "context",
8116        "latent_see",
8117        "logging_sink",
8118        "map",
8119        "metadata_batch",
8120        "pipe",
8121        "slice",
8122        "slice_buffer",
8123        "time",
8124        "//:call_tracer",
8125        "//:channel_arg_names",
8126        "//:config",
8127        "//:gpr",
8128        "//:gpr_platform",
8129        "//:grpc_base",
8130        "//:grpc_client_channel",
8131        "//:grpc_public_hdrs",
8132        "//:grpc_resolver",
8133        "//:uri",
8134    ],
8135)
8136
8137grpc_cc_library(
8138    name = "grpc_promise_endpoint",
8139    srcs = [
8140        "lib/transport/promise_endpoint.cc",
8141    ],
8142    external_deps = [
8143        "absl/base:core_headers",
8144        "absl/log:check",
8145        "absl/status",
8146        "absl/status:statusor",
8147        "absl/types:optional",
8148    ],
8149    language = "c++",
8150    public_hdrs = [
8151        "lib/transport/promise_endpoint.h",
8152    ],
8153    deps = [
8154        "activity",
8155        "cancel_callback",
8156        "event_engine_common",
8157        "event_engine_extensions",
8158        "event_engine_query_extensions",
8159        "if",
8160        "map",
8161        "poll",
8162        "slice",
8163        "slice_buffer",
8164        "//:event_engine_base_hdrs",
8165        "//:exec_ctx",
8166        "//:gpr",
8167    ],
8168)
8169
8170grpc_cc_library(
8171    name = "chaotic_good_config",
8172    hdrs = [
8173        "ext/transport/chaotic_good/config.h",
8174    ],
8175    external_deps = [
8176        "absl/container:flat_hash_set",
8177    ],
8178    deps = [
8179        "channel_args",
8180        "chaotic_good_frame_cc_proto",
8181        "chaotic_good_message_chunker",
8182        "chaotic_good_pending_connection",
8183        "chaotic_good_transport",
8184        "event_engine_extensions",
8185    ],
8186)
8187
8188grpc_cc_library(
8189    name = "chaotic_good_message_chunker",
8190    hdrs = [
8191        "ext/transport/chaotic_good/message_chunker.h",
8192    ],
8193    deps = [
8194        "chaotic_good_frame",
8195        "if",
8196        "loop",
8197        "map",
8198        "seq",
8199    ],
8200)
8201
8202grpc_cc_library(
8203    name = "chaotic_good_message_reassembly",
8204    hdrs = [
8205        "ext/transport/chaotic_good/message_reassembly.h",
8206    ],
8207    external_deps = ["absl/log"],
8208    deps = [
8209        "call_spine",
8210        "chaotic_good_frame",
8211    ],
8212)
8213
8214grpc_cc_library(
8215    name = "chaotic_good_control_endpoint",
8216    srcs = [
8217        "ext/transport/chaotic_good/control_endpoint.cc",
8218    ],
8219    hdrs = [
8220        "ext/transport/chaotic_good/control_endpoint.h",
8221    ],
8222    external_deps = ["absl/cleanup"],
8223    deps = [
8224        "1999",
8225        "event_engine_context",
8226        "event_engine_tcp_socket_utils",
8227        "grpc_promise_endpoint",
8228        "loop",
8229        "try_seq",
8230        "//:gpr",
8231    ],
8232)
8233
8234grpc_cc_library(
8235    name = "chaotic_good_pending_connection",
8236    hdrs = [
8237        "ext/transport/chaotic_good/pending_connection.h",
8238    ],
8239    external_deps = ["absl/status:statusor"],
8240    deps = [
8241        "dual_ref_counted",
8242        "grpc_promise_endpoint",
8243        "//:promise",
8244    ],
8245)
8246
8247grpc_cc_library(
8248    name = "chaotic_good_data_endpoints",
8249    srcs = [
8250        "ext/transport/chaotic_good/data_endpoints.cc",
8251    ],
8252    hdrs = [
8253        "ext/transport/chaotic_good/data_endpoints.h",
8254    ],
8255    external_deps = [
8256        "absl/cleanup",
8257        "absl/strings",
8258    ],
8259    deps = [
8260        "1999",
8261        "chaotic_good_pending_connection",
8262        "event_engine_context",
8263        "event_engine_extensions",
8264        "event_engine_query_extensions",
8265        "event_engine_tcp_socket_utils",
8266        "grpc_promise_endpoint",
8267        "loop",
8268        "seq",
8269        "slice_buffer",
8270        "try_seq",
8271        "//:promise",
8272    ],
8273)
8274
8275grpc_cc_library(
8276    name = "chaotic_good_transport",
8277    hdrs = [
8278        "ext/transport/chaotic_good/chaotic_good_transport.h",
8279    ],
8280    external_deps = ["absl/strings"],
8281    language = "c++",
8282    deps = [
8283        "call_spine",
8284        "chaotic_good_control_endpoint",
8285        "chaotic_good_data_endpoints",
8286        "chaotic_good_frame",
8287        "chaotic_good_frame_header",
8288        "chaotic_good_pending_connection",
8289        "event_engine_context",
8290        "event_engine_tcp_socket_utils",
8291        "grpc_promise_endpoint",
8292        "loop",
8293        "match_promise",
8294        "mpsc",
8295        "seq",
8296        "try_join",
8297        "try_seq",
8298        "//:gpr_platform",
8299        "//:grpc_trace",
8300    ],
8301)
8302
8303grpc_cc_library(
8304    name = "chaotic_good_client_transport",
8305    srcs = [
8306        "ext/transport/chaotic_good/client_transport.cc",
8307    ],
8308    hdrs = [
8309        "ext/transport/chaotic_good/client_transport.h",
8310    ],
8311    external_deps = [
8312        "absl/base:core_headers",
8313        "absl/container:flat_hash_map",
8314        "absl/log",
8315        "absl/log:check",
8316        "absl/random",
8317        "absl/random:bit_gen_ref",
8318        "absl/status",
8319        "absl/status:statusor",
8320        "absl/types:optional",
8321        "absl/types:variant",
8322    ],
8323    language = "c++",
8324    deps = [
8325        "activity",
8326        "arena",
8327        "chaotic_good_config",
8328        "chaotic_good_frame",
8329        "chaotic_good_frame_header",
8330        "chaotic_good_message_reassembly",
8331        "chaotic_good_pending_connection",
8332        "chaotic_good_transport",
8333        "context",
8334        "event_engine_context",
8335        "event_engine_query_extensions",
8336        "for_each",
8337        "grpc_promise_endpoint",
8338        "if",
8339        "inter_activity_pipe",
8340        "loop",
8341        "map",
8342        "memory_quota",
8343        "metadata_batch",
8344        "mpsc",
8345        "pipe",
8346        "poll",
8347        "resource_quota",
8348        "slice",
8349        "slice_buffer",
8350        "switch",
8351        "try_join",
8352        "try_seq",
8353        "//:exec_ctx",
8354        "//:gpr",
8355        "//:gpr_platform",
8356        "//:grpc_base",
8357        "//:ref_counted_ptr",
8358    ],
8359)
8360
8361grpc_cc_library(
8362    name = "chaotic_good_server_transport",
8363    srcs = [
8364        "ext/transport/chaotic_good/server_transport.cc",
8365    ],
8366    hdrs = [
8367        "ext/transport/chaotic_good/server_transport.h",
8368    ],
8369    external_deps = [
8370        "absl/base:core_headers",
8371        "absl/cleanup",
8372        "absl/container:flat_hash_map",
8373        "absl/functional:any_invocable",
8374        "absl/log",
8375        "absl/log:check",
8376        "absl/random",
8377        "absl/random:bit_gen_ref",
8378        "absl/status",
8379        "absl/status:statusor",
8380        "absl/types:optional",
8381        "absl/types:variant",
8382    ],
8383    language = "c++",
8384    deps = [
8385        "1999",
8386        "activity",
8387        "arena",
8388        "chaotic_good_config",
8389        "chaotic_good_frame",
8390        "chaotic_good_frame_header",
8391        "chaotic_good_message_reassembly",
8392        "chaotic_good_pending_connection",
8393        "chaotic_good_transport",
8394        "context",
8395        "default_event_engine",
8396        "event_engine_context",
8397        "event_engine_wakeup_scheduler",
8398        "for_each",
8399        "grpc_promise_endpoint",
8400        "if",
8401        "inter_activity_latch",
8402        "inter_activity_pipe",
8403        "loop",
8404        "memory_quota",
8405        "metadata_batch",
8406        "mpsc",
8407        "pipe",
8408        "poll",
8409        "resource_quota",
8410        "seq",
8411        "slice",
8412        "slice_buffer",
8413        "switch",
8414        "try_join",
8415        "try_seq",
8416        "//:exec_ctx",
8417        "//:gpr",
8418        "//:gpr_platform",
8419        "//:grpc_base",
8420        "//:ref_counted_ptr",
8421    ],
8422)
8423
8424grpc_cc_library(
8425    name = "chaotic_good_legacy_transport",
8426    hdrs = [
8427        "ext/transport/chaotic_good_legacy/chaotic_good_transport.h",
8428    ],
8429    external_deps = [
8430        "absl/log:log",
8431        "absl/random",
8432    ],
8433    language = "c++",
8434    deps = [
8435        "chaotic_good_legacy_frame",
8436        "chaotic_good_legacy_frame_header",
8437        "event_engine_tcp_socket_utils",
8438        "grpc_promise_endpoint",
8439        "if",
8440        "try_join",
8441        "try_seq",
8442        "//:gpr_platform",
8443        "//:grpc_trace",
8444        "//:hpack_encoder",
8445        "//:promise",
8446    ],
8447)
8448
8449grpc_cc_library(
8450    name = "chaotic_good_legacy_client_transport",
8451    srcs = [
8452        "ext/transport/chaotic_good_legacy/client_transport.cc",
8453    ],
8454    hdrs = [
8455        "ext/transport/chaotic_good_legacy/client_transport.h",
8456    ],
8457    external_deps = [
8458        "absl/base:core_headers",
8459        "absl/container:flat_hash_map",
8460        "absl/log:check",
8461        "absl/log",
8462        "absl/random",
8463        "absl/random:bit_gen_ref",
8464        "absl/status",
8465        "absl/status:statusor",
8466        "absl/types:optional",
8467        "absl/types:variant",
8468    ],
8469    language = "c++",
8470    deps = [
8471        "activity",
8472        "arena",
8473        "chaotic_good_legacy_frame",
8474        "chaotic_good_legacy_frame_header",
8475        "chaotic_good_legacy_transport",
8476        "context",
8477        "event_engine_context",
8478        "event_engine_extensions",
8479        "event_engine_query_extensions",
8480        "for_each",
8481        "grpc_promise_endpoint",
8482        "if",
8483        "inter_activity_pipe",
8484        "loop",
8485        "map",
8486        "memory_quota",
8487        "metadata_batch",
8488        "mpsc",
8489        "pipe",
8490        "poll",
8491        "resource_quota",
8492        "slice",
8493        "slice_buffer",
8494        "try_join",
8495        "try_seq",
8496        "//:exec_ctx",
8497        "//:gpr",
8498        "//:gpr_platform",
8499        "//:grpc_base",
8500        "//:hpack_encoder",
8501        "//:hpack_parser",
8502        "//:ref_counted_ptr",
8503    ],
8504)
8505
8506grpc_cc_library(
8507    name = "chaotic_good_legacy_server_transport",
8508    srcs = [
8509        "ext/transport/chaotic_good_legacy/server_transport.cc",
8510    ],
8511    hdrs = [
8512        "ext/transport/chaotic_good_legacy/server_transport.h",
8513    ],
8514    external_deps = [
8515        "absl/base:core_headers",
8516        "absl/container:flat_hash_map",
8517        "absl/functional:any_invocable",
8518        "absl/log:check",
8519        "absl/log:log",
8520        "absl/random",
8521        "absl/random:bit_gen_ref",
8522        "absl/status",
8523        "absl/status:statusor",
8524        "absl/cleanup",
8525        "absl/types:optional",
8526        "absl/types:variant",
8527    ],
8528    language = "c++",
8529    deps = [
8530        "1999",
8531        "activity",
8532        "arena",
8533        "chaotic_good_legacy_frame",
8534        "chaotic_good_legacy_frame_header",
8535        "chaotic_good_legacy_transport",
8536        "context",
8537        "default_event_engine",
8538        "event_engine_context",
8539        "event_engine_wakeup_scheduler",
8540        "for_each",
8541        "grpc_promise_endpoint",
8542        "if",
8543        "inter_activity_latch",
8544        "inter_activity_pipe",
8545        "loop",
8546        "memory_quota",
8547        "metadata_batch",
8548        "mpsc",
8549        "pipe",
8550        "poll",
8551        "resource_quota",
8552        "seq",
8553        "slice",
8554        "slice_buffer",
8555        "switch",
8556        "try_join",
8557        "try_seq",
8558        "//:exec_ctx",
8559        "//:gpr",
8560        "//:gpr_platform",
8561        "//:grpc_base",
8562        "//:hpack_encoder",
8563        "//:hpack_parser",
8564        "//:ref_counted_ptr",
8565    ],
8566)
8567
8568grpc_cc_library(
8569    name = "call_final_info",
8570    srcs = [
8571        "lib/transport/call_final_info.cc",
8572    ],
8573    hdrs = [
8574        "lib/transport/call_final_info.h",
8575    ],
8576    deps = [
8577        "//:gpr",
8578        "//:grpc_public_hdrs",
8579    ],
8580)
8581
8582grpc_cc_library(
8583    name = "call_finalization",
8584    hdrs = [
8585        "lib/channel/call_finalization.h",
8586    ],
8587    language = "c++",
8588    visibility = ["@grpc:alt_grpc_base_legacy"],
8589    deps = [
8590        "arena",
8591        "call_final_info",
8592        "context",
8593        "//:gpr_platform",
8594    ],
8595)
8596
8597grpc_cc_library(
8598    name = "call_state",
8599    srcs = [
8600        "lib/transport/call_state.cc",
8601    ],
8602    hdrs = [
8603        "lib/transport/call_state.h",
8604    ],
8605    external_deps = ["absl/types:optional"],
8606    deps = [
8607        "activity",
8608        "poll",
8609        "status_flag",
8610        "//:gpr",
8611        "//:grpc_trace",
8612    ],
8613)
8614
8615grpc_cc_library(
8616    name = "call_filters",
8617    srcs = [
8618        "lib/transport/call_filters.cc",
8619    ],
8620    hdrs = [
8621        "lib/transport/call_filters.h",
8622    ],
8623    external_deps = [
8624        "absl/log:check",
8625        "absl/log:log",
8626    ],
8627    deps = [
8628        "call_final_info",
8629        "call_state",
8630        "dump_args",
8631        "for_each",
8632        "if",
8633        "latch",
8634        "map",
8635        "message",
8636        "metadata",
8637        "ref_counted",
8638        "seq",
8639        "status_flag",
8640        "try_seq",
8641        "//:gpr",
8642        "//:promise",
8643        "//:ref_counted_ptr",
8644    ],
8645)
8646
8647grpc_cc_library(
8648    name = "interception_chain",
8649    srcs = [
8650        "lib/transport/interception_chain.cc",
8651    ],
8652    hdrs = [
8653        "lib/transport/interception_chain.h",
8654    ],
8655    deps = [
8656        "call_destination",
8657        "call_filters",
8658        "call_spine",
8659        "match",
8660        "metadata",
8661        "ref_counted",
8662        "//:gpr_platform",
8663        "//:grpc_trace",
8664    ],
8665)
8666
8667grpc_cc_library(
8668    name = "call_destination",
8669    hdrs = [
8670        "lib/transport/call_destination.h",
8671    ],
8672    deps = [
8673        "call_spine",
8674        "//:gpr_platform",
8675        "//:orphanable",
8676    ],
8677)
8678
8679grpc_cc_library(
8680    name = "parsed_metadata",
8681    srcs = [
8682        "lib/transport/parsed_metadata.cc",
8683    ],
8684    hdrs = [
8685        "lib/transport/parsed_metadata.h",
8686    ],
8687    external_deps = [
8688        "absl/functional:function_ref",
8689        "absl/meta:type_traits",
8690        "absl/strings",
8691    ],
8692    deps = [
8693        "slice",
8694        "time",
8695        "//:gpr_platform",
8696    ],
8697)
8698
8699grpc_cc_library(
8700    name = "metadata",
8701    srcs = [
8702        "lib/transport/metadata.cc",
8703    ],
8704    hdrs = [
8705        "lib/transport/metadata.h",
8706    ],
8707    deps = [
8708        "error_utils",
8709        "metadata_batch",
8710        "//:gpr_platform",
8711    ],
8712)
8713
8714grpc_cc_library(
8715    name = "message",
8716    srcs = [
8717        "lib/transport/message.cc",
8718    ],
8719    hdrs = [
8720        "lib/transport/message.h",
8721    ],
8722    external_deps = [
8723        "absl/strings",
8724    ],
8725    deps = [
8726        "arena",
8727        "slice_buffer",
8728        "//:gpr_platform",
8729        "//:grpc_public_hdrs",
8730    ],
8731)
8732
8733grpc_cc_library(
8734    name = "call_spine",
8735    srcs = [
8736        "lib/transport/call_spine.cc",
8737    ],
8738    hdrs = [
8739        "lib/transport/call_spine.h",
8740    ],
8741    external_deps = [
8742        "absl/functional:any_invocable",
8743        "absl/log:check",
8744    ],
8745    deps = [
8746        "1999",
8747        "call_arena_allocator",
8748        "call_filters",
8749        "dual_ref_counted",
8750        "event_engine_context",
8751        "for_each",
8752        "if",
8753        "latch",
8754        "message",
8755        "metadata",
8756        "pipe",
8757        "prioritized_race",
8758        "promise_status",
8759        "status_flag",
8760        "try_seq",
8761        "//:gpr",
8762        "//:promise",
8763    ],
8764)
8765
8766grpc_cc_library(
8767    name = "direct_channel",
8768    srcs = [
8769        "client_channel/direct_channel.cc",
8770    ],
8771    hdrs = [
8772        "client_channel/direct_channel.h",
8773    ],
8774    deps = [
8775        "channel_stack_type",
8776        "event_engine_context",
8777        "interception_chain",
8778        "//:channel",
8779        "//:config",
8780        "//:grpc_base",
8781        "//:orphanable",
8782    ],
8783)
8784
8785grpc_cc_library(
8786    name = "metadata_batch",
8787    srcs = [
8788        "lib/transport/metadata_batch.cc",
8789    ],
8790    hdrs = [
8791        "lib/transport/custom_metadata.h",
8792        "lib/transport/metadata_batch.h",
8793        "lib/transport/simple_slice_based_metadata.h",
8794    ],
8795    external_deps = [
8796        "absl/base:no_destructor",
8797        "absl/container:flat_hash_set",
8798        "absl/container:inlined_vector",
8799        "absl/functional:function_ref",
8800        "absl/log:check",
8801        "absl/meta:type_traits",
8802        "absl/strings",
8803        "absl/strings:str_format",
8804        "absl/types:optional",
8805    ],
8806    deps = [
8807        "arena",
8808        "chunked_vector",
8809        "compression",
8810        "experiments",
8811        "if_list",
8812        "metadata_compression_traits",
8813        "packed_table",
8814        "parsed_metadata",
8815        "poll",
8816        "slice",
8817        "time",
8818        "timeout_encoding",
8819        "type_list",
8820        "//:gpr",
8821        "//:grpc_public_hdrs",
8822    ],
8823)
8824
8825grpc_cc_library(
8826    name = "timeout_encoding",
8827    srcs = [
8828        "lib/transport/timeout_encoding.cc",
8829    ],
8830    hdrs = [
8831        "lib/transport/timeout_encoding.h",
8832    ],
8833    external_deps = [
8834        "absl/base:core_headers",
8835        "absl/log:check",
8836        "absl/types:optional",
8837    ],
8838    deps = [
8839        "slice",
8840        "time",
8841        "//:gpr",
8842    ],
8843)
8844
8845grpc_cc_library(
8846    name = "call_arena_allocator",
8847    srcs = [
8848        "lib/transport/call_arena_allocator.cc",
8849    ],
8850    hdrs = [
8851        "lib/transport/call_arena_allocator.h",
8852    ],
8853    deps = [
8854        "arena",
8855        "memory_quota",
8856        "ref_counted",
8857        "//:gpr_platform",
8858    ],
8859)
8860
8861grpc_cc_library(
8862    name = "compression",
8863    srcs = [
8864        "lib/compression/compression.cc",
8865        "lib/compression/compression_internal.cc",
8866    ],
8867    hdrs = [
8868        "lib/compression/compression_internal.h",
8869    ],
8870    external_deps = [
8871        "absl/container:inlined_vector",
8872        "absl/log:check",
8873        "absl/strings",
8874        "absl/strings:str_format",
8875        "absl/types:optional",
8876    ],
8877    deps = [
8878        "bitset",
8879        "channel_args",
8880        "ref_counted_string",
8881        "slice",
8882        "useful",
8883        "//:gpr",
8884        "//:grpc_public_hdrs",
8885        "//:grpc_trace",
8886        "//:ref_counted_ptr",
8887    ],
8888)
8889
8890grpc_cc_library(
8891    name = "chaotic_good_server",
8892    srcs = [
8893        "ext/transport/chaotic_good/server/chaotic_good_server.cc",
8894    ],
8895    hdrs = [
8896        "ext/transport/chaotic_good/server/chaotic_good_server.h",
8897    ],
8898    external_deps = [
8899        "absl/container:flat_hash_map",
8900        "absl/log",
8901        "absl/log:check",
8902        "absl/random",
8903        "absl/random:bit_gen_ref",
8904        "absl/status",
8905        "absl/status:statusor",
8906    ],
8907    language = "c++",
8908    deps = [
8909        "activity",
8910        "arena",
8911        "channel_args",
8912        "channel_args_endpoint_config",
8913        "chaotic_good_config",
8914        "chaotic_good_frame",
8915        "chaotic_good_frame_header",
8916        "chaotic_good_legacy_server",
8917        "chaotic_good_pending_connection",
8918        "chaotic_good_server_transport",
8919        "chaotic_good_transport",
8920        "closure",
8921        "context",
8922        "error",
8923        "error_utils",
8924        "event_engine_common",
8925        "event_engine_context",
8926        "event_engine_extensions",
8927        "event_engine_query_extensions",
8928        "event_engine_tcp_socket_utils",
8929        "event_engine_utils",
8930        "event_engine_wakeup_scheduler",
8931        "grpc_promise_endpoint",
8932        "if",
8933        "inter_activity_latch",
8934        "iomgr_fwd",
8935        "join",
8936        "latch",
8937        "memory_quota",
8938        "metadata",
8939        "metadata_batch",
8940        "race",
8941        "resource_quota",
8942        "sleep",
8943        "slice",
8944        "slice_buffer",
8945        "status_helper",
8946        "time",
8947        "try_seq",
8948        "//:channelz",
8949        "//:gpr",
8950        "//:gpr_platform",
8951        "//:grpc_base",
8952        "//:handshaker",
8953        "//:iomgr",
8954        "//:orphanable",
8955        "//:ref_counted_ptr",
8956        "//:server",
8957    ],
8958)
8959
8960grpc_cc_library(
8961    name = "chaotic_good_legacy_server",
8962    srcs = [
8963        "ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc",
8964    ],
8965    hdrs = [
8966        "ext/transport/chaotic_good_legacy/server/chaotic_good_server.h",
8967    ],
8968    external_deps = [
8969        "absl/container:flat_hash_map",
8970        "absl/log:check",
8971        "absl/log:log",
8972        "absl/random",
8973        "absl/random:bit_gen_ref",
8974        "absl/status",
8975        "absl/status:statusor",
8976    ],
8977    language = "c++",
8978    deps = [
8979        "activity",
8980        "arena",
8981        "channel_args",
8982        "channel_args_endpoint_config",
8983        "chaotic_good_legacy_frame",
8984        "chaotic_good_legacy_frame_header",
8985        "chaotic_good_legacy_server_transport",
8986        "chaotic_good_legacy_settings_metadata",
8987        "closure",
8988        "context",
8989        "error",
8990        "error_utils",
8991        "event_engine_common",
8992        "event_engine_context",
8993        "event_engine_extensions",
8994        "event_engine_query_extensions",
8995        "event_engine_tcp_socket_utils",
8996        "event_engine_wakeup_scheduler",
8997        "grpc_promise_endpoint",
8998        "if",
8999        "inter_activity_latch",
9000        "iomgr_fwd",
9001        "latch",
9002        "memory_quota",
9003        "metadata",
9004        "metadata_batch",
9005        "race",
9006        "resource_quota",
9007        "sleep",
9008        "slice",
9009        "slice_buffer",
9010        "status_helper",
9011        "time",
9012        "try_seq",
9013        "//:channelz",
9014        "//:gpr",
9015        "//:gpr_platform",
9016        "//:grpc_base",
9017        "//:handshaker",
9018        "//:hpack_encoder",
9019        "//:hpack_parser",
9020        "//:iomgr",
9021        "//:orphanable",
9022        "//:ref_counted_ptr",
9023        "//:server",
9024    ],
9025)
9026
9027grpc_cc_library(
9028    name = "chaotic_good_connector",
9029    srcs = [
9030        "ext/transport/chaotic_good/client/chaotic_good_connector.cc",
9031    ],
9032    hdrs = [
9033        "ext/transport/chaotic_good/client/chaotic_good_connector.h",
9034    ],
9035    external_deps = [
9036        "absl/log",
9037        "absl/log:check",
9038        "absl/random",
9039        "absl/random:bit_gen_ref",
9040        "absl/status",
9041        "absl/status:statusor",
9042    ],
9043    language = "c++",
9044    deps = [
9045        "activity",
9046        "all_ok",
9047        "arena",
9048        "channel_args",
9049        "channel_args_endpoint_config",
9050        "chaotic_good_client_transport",
9051        "chaotic_good_config",
9052        "chaotic_good_frame",
9053        "chaotic_good_frame_cc_proto",
9054        "chaotic_good_frame_header",
9055        "chaotic_good_legacy_connector",
9056        "chaotic_good_transport",
9057        "closure",
9058        "context",
9059        "error",
9060        "error_utils",
9061        "event_engine_context",
9062        "event_engine_extensions",
9063        "event_engine_query_extensions",
9064        "event_engine_tcp_socket_utils",
9065        "event_engine_wakeup_scheduler",
9066        "grpc_promise_endpoint",
9067        "inter_activity_latch",
9068        "latch",
9069        "memory_quota",
9070        "no_destruct",
9071        "notification",
9072        "race",
9073        "resource_quota",
9074        "sleep",
9075        "slice",
9076        "slice_buffer",
9077        "subchannel_connector",
9078        "time",
9079        "try_seq",
9080        "wait_for_callback",
9081        "//:channel",
9082        "//:channel_create",
9083        "//:config",
9084        "//:debug_location",
9085        "//:exec_ctx",
9086        "//:gpr",
9087        "//:gpr_platform",
9088        "//:grpc_base",
9089        "//:grpc_client_channel",
9090        "//:handshaker",
9091        "//:iomgr",
9092        "//:ref_counted_ptr",
9093    ],
9094)
9095
9096grpc_cc_library(
9097    name = "chaotic_good_legacy_connector",
9098    srcs = [
9099        "ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc",
9100    ],
9101    hdrs = [
9102        "ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h",
9103    ],
9104    external_deps = [
9105        "absl/log:check",
9106        "absl/log:log",
9107        "absl/random",
9108        "absl/random:bit_gen_ref",
9109        "absl/status",
9110        "absl/status:statusor",
9111    ],
9112    language = "c++",
9113    deps = [
9114        "activity",
9115        "arena",
9116        "channel_args",
9117        "channel_args_endpoint_config",
9118        "chaotic_good_legacy_client_transport",
9119        "chaotic_good_legacy_frame",
9120        "chaotic_good_legacy_frame_header",
9121        "chaotic_good_legacy_settings_metadata",
9122        "closure",
9123        "context",
9124        "error",
9125        "error_utils",
9126        "event_engine_context",
9127        "event_engine_extensions",
9128        "event_engine_query_extensions",
9129        "event_engine_tcp_socket_utils",
9130        "event_engine_wakeup_scheduler",
9131        "grpc_promise_endpoint",
9132        "inter_activity_latch",
9133        "latch",
9134        "memory_quota",
9135        "no_destruct",
9136        "notification",
9137        "race",
9138        "resource_quota",
9139        "sleep",
9140        "slice",
9141        "slice_buffer",
9142        "subchannel_connector",
9143        "time",
9144        "try_seq",
9145        "wait_for_callback",
9146        "//:channel",
9147        "//:channel_create",
9148        "//:config",
9149        "//:debug_location",
9150        "//:exec_ctx",
9151        "//:gpr",
9152        "//:gpr_platform",
9153        "//:grpc_base",
9154        "//:grpc_client_channel",
9155        "//:handshaker",
9156        "//:hpack_encoder",
9157        "//:hpack_parser",
9158        "//:iomgr",
9159        "//:ref_counted_ptr",
9160    ],
9161)
9162
9163grpc_cc_library(
9164    name = "metrics",
9165    srcs = [
9166        "telemetry/metrics.cc",
9167    ],
9168    hdrs = [
9169        "telemetry/metrics.h",
9170    ],
9171    external_deps = [
9172        "absl/container:flat_hash_map",
9173        "absl/functional:any_invocable",
9174        "absl/functional:function_ref",
9175        "absl/log:check",
9176        "absl/strings",
9177        "absl/types:optional",
9178        "absl/types:span",
9179    ],
9180    language = "c++",
9181    deps = [
9182        "arena",
9183        "channel_args",
9184        "no_destruct",
9185        "slice",
9186        "time",
9187        "//:call_tracer",
9188        "//:gpr",
9189    ],
9190)
9191
9192### UPB Targets
9193
9194grpc_upb_proto_library(
9195    name = "envoy_admin_upb",
9196    deps = ["@envoy_api//envoy/admin/v3:pkg"],
9197)
9198
9199grpc_upb_proto_library(
9200    name = "envoy_config_cluster_upb",
9201    deps = ["@envoy_api//envoy/config/cluster/v3:pkg"],
9202)
9203
9204grpc_upb_proto_reflection_library(
9205    name = "envoy_config_cluster_upbdefs",
9206    deps = ["@envoy_api//envoy/config/cluster/v3:pkg"],
9207)
9208
9209grpc_upb_proto_library(
9210    name = "envoy_config_core_upb",
9211    deps = ["@envoy_api//envoy/config/core/v3:pkg"],
9212)
9213
9214grpc_upb_proto_reflection_library(
9215    name = "envoy_config_core_upbdefs",
9216    deps = ["@envoy_api//envoy/config/core/v3:pkg"],
9217)
9218
9219grpc_upb_proto_library(
9220    name = "envoy_config_endpoint_upb",
9221    deps = ["@envoy_api//envoy/config/endpoint/v3:pkg"],
9222)
9223
9224grpc_upb_proto_reflection_library(
9225    name = "envoy_config_endpoint_upbdefs",
9226    deps = ["@envoy_api//envoy/config/endpoint/v3:pkg"],
9227)
9228
9229grpc_upb_proto_library(
9230    name = "envoy_config_listener_upb",
9231    deps = ["@envoy_api//envoy/config/listener/v3:pkg"],
9232)
9233
9234grpc_upb_proto_reflection_library(
9235    name = "envoy_config_listener_upbdefs",
9236    deps = ["@envoy_api//envoy/config/listener/v3:pkg"],
9237)
9238
9239grpc_upb_proto_library(
9240    name = "envoy_config_rbac_upb",
9241    deps = ["@envoy_api//envoy/config/rbac/v3:pkg"],
9242)
9243
9244grpc_upb_proto_library(
9245    name = "envoy_config_route_upb",
9246    deps = ["@envoy_api//envoy/config/route/v3:pkg"],
9247)
9248
9249grpc_upb_proto_reflection_library(
9250    name = "envoy_config_route_upbdefs",
9251    deps = ["@envoy_api//envoy/config/route/v3:pkg"],
9252)
9253
9254grpc_upb_proto_library(
9255    name = "envoy_extensions_clusters_aggregate_upb",
9256    deps = ["@envoy_api//envoy/extensions/clusters/aggregate/v3:pkg"],
9257)
9258
9259grpc_upb_proto_reflection_library(
9260    name = "envoy_extensions_clusters_aggregate_upbdefs",
9261    deps = ["@envoy_api//envoy/extensions/clusters/aggregate/v3:pkg"],
9262)
9263
9264grpc_upb_proto_library(
9265    name = "envoy_extensions_filters_common_fault_upb",
9266    deps = ["@envoy_api//envoy/extensions/filters/common/fault/v3:pkg"],
9267)
9268
9269grpc_upb_proto_library(
9270    name = "envoy_extensions_filters_http_fault_upb",
9271    deps = ["@envoy_api//envoy/extensions/filters/http/fault/v3:pkg"],
9272)
9273
9274grpc_upb_proto_reflection_library(
9275    name = "envoy_extensions_filters_http_fault_upbdefs",
9276    deps = ["@envoy_api//envoy/extensions/filters/http/fault/v3:pkg"],
9277)
9278
9279grpc_upb_proto_library(
9280    name = "envoy_extensions_filters_http_gcp_authn_upb",
9281    deps = ["@envoy_api//envoy/extensions/filters/http/gcp_authn/v3:pkg"],
9282)
9283
9284grpc_upb_proto_reflection_library(
9285    name = "envoy_extensions_filters_http_gcp_authn_upbdefs",
9286    deps = ["@envoy_api//envoy/extensions/filters/http/gcp_authn/v3:pkg"],
9287)
9288
9289grpc_upb_proto_library(
9290    name = "envoy_extensions_filters_http_rbac_upb",
9291    deps = ["@envoy_api//envoy/extensions/filters/http/rbac/v3:pkg"],
9292)
9293
9294grpc_upb_proto_reflection_library(
9295    name = "envoy_extensions_filters_http_rbac_upbdefs",
9296    deps = ["@envoy_api//envoy/extensions/filters/http/rbac/v3:pkg"],
9297)
9298
9299grpc_upb_proto_library(
9300    name = "envoy_extensions_filters_http_router_upb",
9301    deps = ["@envoy_api//envoy/extensions/filters/http/router/v3:pkg"],
9302)
9303
9304grpc_upb_proto_reflection_library(
9305    name = "envoy_extensions_filters_http_router_upbdefs",
9306    deps = ["@envoy_api//envoy/extensions/filters/http/router/v3:pkg"],
9307)
9308
9309grpc_upb_proto_library(
9310    name = "envoy_extensions_filters_http_stateful_session_upb",
9311    deps = ["@envoy_api//envoy/extensions/filters/http/stateful_session/v3:pkg"],
9312)
9313
9314grpc_upb_proto_reflection_library(
9315    name = "envoy_extensions_filters_http_stateful_session_upbdefs",
9316    deps = ["@envoy_api//envoy/extensions/filters/http/stateful_session/v3:pkg"],
9317)
9318
9319grpc_upb_proto_library(
9320    name = "envoy_extensions_http_stateful_session_cookie_upb",
9321    deps = ["@envoy_api//envoy/extensions/http/stateful_session/cookie/v3:pkg"],
9322)
9323
9324grpc_upb_proto_reflection_library(
9325    name = "envoy_extensions_http_stateful_session_cookie_upbdefs",
9326    deps = ["@envoy_api//envoy/extensions/http/stateful_session/cookie/v3:pkg"],
9327)
9328
9329grpc_upb_proto_library(
9330    name = "envoy_type_http_upb",
9331    deps = ["@envoy_api//envoy/type/http/v3:pkg"],
9332)
9333
9334grpc_upb_proto_library(
9335    name = "envoy_extensions_load_balancing_policies_client_side_weighted_round_robin_upb",
9336    deps = [
9337        "@envoy_api//envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3:pkg",
9338    ],
9339)
9340
9341grpc_upb_proto_library(
9342    name = "envoy_extensions_load_balancing_policies_ring_hash_upb",
9343    deps = ["@envoy_api//envoy/extensions/load_balancing_policies/ring_hash/v3:pkg"],
9344)
9345
9346grpc_upb_proto_library(
9347    name = "envoy_extensions_load_balancing_policies_wrr_locality_upb",
9348    deps = ["@envoy_api//envoy/extensions/load_balancing_policies/wrr_locality/v3:pkg"],
9349)
9350
9351grpc_upb_proto_library(
9352    name = "envoy_extensions_load_balancing_policies_pick_first_upb",
9353    deps = ["@envoy_api//envoy/extensions/load_balancing_policies/pick_first/v3:pkg"],
9354)
9355
9356grpc_upb_proto_library(
9357    name = "envoy_extensions_filters_network_http_connection_manager_upb",
9358    deps = [
9359        "@envoy_api//envoy/extensions/filters/network/http_connection_manager/v3:pkg",
9360    ],
9361)
9362
9363grpc_upb_proto_reflection_library(
9364    name = "envoy_extensions_filters_network_http_connection_manager_upbdefs",
9365    deps = [
9366        "@envoy_api//envoy/extensions/filters/network/http_connection_manager/v3:pkg",
9367    ],
9368)
9369
9370grpc_upb_proto_library(
9371    name = "envoy_extensions_transport_sockets_tls_upb",
9372    deps = ["@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg"],
9373)
9374
9375grpc_upb_proto_reflection_library(
9376    name = "envoy_extensions_transport_sockets_tls_upbdefs",
9377    deps = ["@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg"],
9378)
9379
9380grpc_upb_proto_library(
9381    name = "envoy_extensions_transport_sockets_http_11_proxy_upb",
9382    deps = ["@envoy_api//envoy/extensions/transport_sockets/http_11_proxy/v3:pkg"],
9383)
9384
9385grpc_upb_proto_reflection_library(
9386    name = "envoy_extensions_transport_sockets_http_11_proxy_upbdefs",
9387    deps = ["@envoy_api//envoy/extensions/transport_sockets/http_11_proxy/v3:pkg"],
9388)
9389
9390grpc_upb_proto_library(
9391    name = "envoy_extensions_upstreams_http_upb",
9392    deps = ["@envoy_api//envoy/extensions/upstreams/http/v3:pkg"],
9393)
9394
9395grpc_upb_proto_reflection_library(
9396    name = "envoy_extensions_upstreams_http_upbdefs",
9397    deps = ["@envoy_api//envoy/extensions/upstreams/http/v3:pkg"],
9398)
9399
9400grpc_upb_proto_library(
9401    name = "envoy_service_discovery_upb",
9402    deps = ["@envoy_api//envoy/service/discovery/v3:pkg"],
9403)
9404
9405grpc_upb_proto_reflection_library(
9406    name = "envoy_service_discovery_upbdefs",
9407    deps = ["@envoy_api//envoy/service/discovery/v3:pkg"],
9408)
9409
9410grpc_upb_proto_library(
9411    name = "envoy_service_load_stats_upb",
9412    deps = ["@envoy_api//envoy/service/load_stats/v3:pkg"],
9413)
9414
9415grpc_upb_proto_reflection_library(
9416    name = "envoy_service_load_stats_upbdefs",
9417    deps = ["@envoy_api//envoy/service/load_stats/v3:pkg"],
9418)
9419
9420grpc_upb_proto_library(
9421    name = "envoy_service_status_upb",
9422    deps = ["@envoy_api//envoy/service/status/v3:pkg"],
9423)
9424
9425grpc_upb_proto_reflection_library(
9426    name = "envoy_service_status_upbdefs",
9427    deps = ["@envoy_api//envoy/service/status/v3:pkg"],
9428)
9429
9430grpc_upb_proto_library(
9431    name = "envoy_type_matcher_upb",
9432    deps = ["@envoy_api//envoy/type/matcher/v3:pkg"],
9433)
9434
9435grpc_upb_proto_library(
9436    name = "envoy_type_upb",
9437    deps = ["@envoy_api//envoy/type/v3:pkg"],
9438)
9439
9440grpc_upb_proto_library(
9441    name = "xds_type_upb",
9442    deps = ["@com_github_cncf_xds//xds/type/v3:pkg"],
9443)
9444
9445grpc_upb_proto_reflection_library(
9446    name = "xds_type_upbdefs",
9447    deps = ["@com_github_cncf_xds//xds/type/v3:pkg"],
9448)
9449
9450grpc_upb_proto_library(
9451    name = "xds_orca_upb",
9452    deps = ["@com_github_cncf_xds//xds/data/orca/v3:pkg"],
9453)
9454
9455grpc_upb_proto_library(
9456    name = "xds_orca_service_upb",
9457    deps = ["@com_github_cncf_xds//xds/service/orca/v3:pkg"],
9458)
9459
9460grpc_upb_proto_library(
9461    name = "grpc_health_upb",
9462    deps = ["//src/proto/grpc/health/v1:health_proto"],
9463)
9464
9465grpc_upb_proto_library(
9466    name = "google_rpc_status_upb",
9467    deps = ["@com_google_googleapis//google/rpc:status_proto"],
9468)
9469
9470grpc_upb_proto_reflection_library(
9471    name = "google_rpc_status_upbdefs",
9472    deps = ["@com_google_googleapis//google/rpc:status_proto"],
9473)
9474
9475grpc_upb_proto_library(
9476    name = "google_type_expr_upb",
9477    deps = ["@com_google_googleapis//google/type:expr_proto"],
9478)
9479
9480grpc_upb_proto_library(
9481    name = "grpc_lb_upb",
9482    deps = ["//src/proto/grpc/lb/v1:load_balancer_proto"],
9483)
9484
9485grpc_upb_proto_library(
9486    name = "alts_upb",
9487    deps = ["//src/proto/grpc/gcp:alts_handshaker_proto"],
9488)
9489
9490grpc_upb_proto_library(
9491    name = "rls_upb",
9492    deps = ["//src/proto/grpc/lookup/v1:rls_proto"],
9493)
9494
9495grpc_upb_proto_library(
9496    name = "rls_config_upb",
9497    deps = ["//src/proto/grpc/lookup/v1:rls_config_proto"],
9498)
9499
9500grpc_upb_proto_reflection_library(
9501    name = "rls_config_upbdefs",
9502    deps = ["//src/proto/grpc/lookup/v1:rls_config_proto"],
9503)
9504
9505WELL_KNOWN_PROTO_TARGETS = [
9506    "any",
9507    "duration",
9508    "empty",
9509    "struct",
9510    "timestamp",
9511    "wrappers",
9512]
9513
9514[
9515    grpc_upb_proto_library(
9516        name = "protobuf_" + target + "_upb",
9517        deps = ["@com_google_protobuf//:" + target + "_proto"],
9518    )
9519    for target in WELL_KNOWN_PROTO_TARGETS
9520]
9521
9522[
9523    grpc_upb_proto_reflection_library(
9524        name = "protobuf_" + target + "_upbdefs",
9525        deps = ["@com_google_protobuf//:" + target + "_proto"],
9526    )
9527    for target in WELL_KNOWN_PROTO_TARGETS
9528]
9529
9530grpc_generate_one_off_internal_targets()
9531