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_vmm_group { 41 label = "VMM" 42 43 crosvm_android [label = "Android crosvm"] 44 crosvm_android_log_tee [label = "log_tee"] 45 crosvm_android_restarter [label = "process_restarter"] 46 gem5 47 qemu [label = "QEMU"] 48 vmm [label = "", shape = "diamond"] 49 } 50 51 subgraph cluster_webrtc_group { 52 label = "WebRTC" 53 54 operator_proxy 55 webrtc 56 } 57 58 subgraph cluster_wifi_group { 59 label = "Wifi" 60 61 crosvm_openwrt [label = "OpenWRT crosvm"] 62 crosvm_openwrt_log_tee [label = "log_tee"] 63 wmediumd 64 wmediumd_log_tee [label = "log_tee"] 65 } 66 67 cvd -> cvd_status 68 cvd -> launch_cvd 69 cvd -> powerwash_cvd 70 cvd -> restart_cvd 71 cvd -> stop_cvd 72 73 launch_cvd -> run_cvd 74 launch_cvd -> run_cvd_2 [style = "dashed"] 75 launch_cvd -> run_cvd_etc [style = "dashed"] 76 77 cvd_status -> launcher_monitor_socket [dir = "both"] 78 powerwash_cvd -> launcher_monitor_socket [dir = "both"] 79 restart_cvd -> launcher_monitor_socket [dir = "both"] 80 stop_cvd -> launcher_monitor_socket [dir = "both"] 81 launcher_monitor_socket -> run_cvd [dir = "both"] 82 83 run_cvd -> adb_connector [style = "dashed"] 84 run_cvd -> bt_connector [style = "dashed"] 85 run_cvd -> config_server 86 run_cvd -> console_forwarder [style = "dashed"] 87 run_cvd -> crosvm_openwrt 88 run_cvd -> crosvm_openwrt_log_tee 89 crosvm_openwrt_log_tee -> crosvm_openwrt [dir = "back"] 90 run_cvd -> gnss_grpc_proxy [style = "dashed"] 91 run_cvd -> kernel_log_monitor 92 run_cvd -> logcat_receiver 93 run_cvd -> metrics 94 run_cvd -> modem_simulator 95 run_cvd -> netsim [style = "dashed"] 96 run_cvd -> operator_proxy [style = "dashed"] 97 run_cvd -> root_canal [style = "dashed"] 98 run_cvd -> root_canal_log_tee [style = "dashed"] 99 root_canal_log_tee -> root_canal [dir = "back"] 100 run_cvd -> secure_env 101 run_cvd -> socket_vsock_proxy [style = "dashed"] 102 run_cvd -> tombstone_receiver 103 run_cvd -> vmm 104 run_cvd -> webrtc [style = "dashed"] 105 run_cvd -> wmediumd 106 run_cvd -> wmediumd_log_tee 107 wmediumd_log_tee -> wmediumd [dir = "back"] 108 109 crosvm_android_log_tee -> crosvm_android [dir = "back", style = "dashed"] 110 vmm -> crosvm_android_restarter [style = "dashed"] 111 crosvm_android_restarter -> crosvm_android 112 vmm -> crosvm_android_log_tee [style = "dashed"] 113 vmm -> gem5 [style = "dashed"] 114 vmm -> qemu [style = "dashed"] 115} 116