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