1digraph {
2  rankdir = "LR";
3
4  config_server
5  console_forwarder
6  cvd
7  cvd_status
8  gnss_grpc_proxy
9  kernel_log_monitor
10  launch_cvd
11  launcher_monitor_socket [label = "launcher_monitor.sock", shape = "rectangle"]
12  logcat_receiver
13  metrics
14  modem_simulator
15  powerwash_cvd
16  restart_cvd
17  run_cvd [label = < <b>run_cvd</b> >, penwidth = "2"]
18  run_cvd_2 [label = "run_cvd", style = "dashed"]
19  run_cvd_etc [label = "...", style = "dashed"]
20  secure_env
21  stop_cvd
22  tombstone_receiver
23
24  subgraph cluster_adb_group {
25    label = "ADB"
26
27    adb_connector
28    socket_vsock_proxy
29  }
30
31  subgraph cluster_bluetooth_group {
32    label = "Bluetooth"
33
34    bt_connector
35    netsim
36    root_canal [label = "root-canal"]
37    root_canal_log_tee [label = "log_tee"]
38  }
39
40  subgraph cluster_nfc_group {
41    label = "NFC"
42
43    nfc_connector
44    casimir [label = "casimir (NFC rootcanal)"]
45    casimir_log_tee [label = "log_tee"]
46  }
47
48  subgraph cluster_vmm_group {
49    label = "VMM"
50
51    crosvm_android [label = "Android crosvm"]
52    crosvm_android_log_tee [label = "log_tee"]
53    crosvm_android_restarter [label = "process_restarter"]
54    gem5
55    qemu [label = "QEMU"]
56    vmm [label = "", shape = "diamond"]
57  }
58
59  subgraph cluster_webrtc_group {
60    label = "WebRTC"
61
62    operator_proxy
63    webrtc
64  }
65
66  subgraph cluster_wifi_group {
67    label = "Wifi"
68
69    crosvm_openwrt [label = "OpenWRT crosvm"]
70    crosvm_openwrt_log_tee [label = "log_tee"]
71    wmediumd
72    wmediumd_log_tee [label = "log_tee"]
73  }
74
75  cvd -> cvd_status
76  cvd -> launch_cvd
77  cvd -> powerwash_cvd
78  cvd -> restart_cvd
79  cvd -> stop_cvd
80
81  launch_cvd -> run_cvd
82  launch_cvd -> run_cvd_2 [style = "dashed"]
83  launch_cvd -> run_cvd_etc [style = "dashed"]
84
85  cvd_status -> launcher_monitor_socket [dir = "both"]
86  powerwash_cvd -> launcher_monitor_socket [dir = "both"]
87  restart_cvd -> launcher_monitor_socket [dir = "both"]
88  stop_cvd -> launcher_monitor_socket [dir = "both"]
89  launcher_monitor_socket -> run_cvd [dir = "both"]
90
91  run_cvd -> adb_connector [style = "dashed"]
92  run_cvd -> bt_connector [style = "dashed"]
93  run_cvd -> config_server
94  run_cvd -> console_forwarder [style = "dashed"]
95  run_cvd -> crosvm_openwrt
96  run_cvd -> crosvm_openwrt_log_tee
97  crosvm_openwrt_log_tee -> crosvm_openwrt [dir = "back"]
98  run_cvd -> gnss_grpc_proxy [style = "dashed"]
99  run_cvd -> kernel_log_monitor
100  run_cvd -> logcat_receiver
101  run_cvd -> metrics
102  run_cvd -> modem_simulator
103  run_cvd -> netsim [style = "dashed"]
104  run_cvd -> operator_proxy [style = "dashed"]
105  run_cvd -> root_canal [style = "dashed"]
106  run_cvd -> root_canal_log_tee [style = "dashed"]
107  root_canal_log_tee -> root_canal [dir = "back"]
108  run_cvd -> nfc_connector [style = "dashed"]
109  run_cvd -> casimir [style = "dashed"]
110  run_cvd -> casimir_log_tee [style = "dashed"]
111  casimir_log_tee -> casimir [dir = "back"]
112  run_cvd -> secure_env
113  run_cvd -> socket_vsock_proxy [style = "dashed"]
114  run_cvd -> tombstone_receiver
115  run_cvd -> vmm
116  run_cvd -> webrtc [style = "dashed"]
117  run_cvd -> wmediumd
118  run_cvd -> wmediumd_log_tee
119
120  wmediumd_log_tee -> wmediumd [dir = "back"]
121
122  crosvm_android_log_tee -> crosvm_android [dir = "back", style = "dashed"]
123  vmm -> crosvm_android_restarter [style = "dashed"]
124  crosvm_android_restarter -> crosvm_android
125  vmm -> crosvm_android_log_tee [style = "dashed"]
126  vmm -> gem5 [style = "dashed"]
127  vmm -> qemu [style = "dashed"]
128}
129