1digraph {
2  browser [label = "Browser"]
3  cli [label = "User CLI"]
4  cvd_import_locations [URL = "https://cs.android.com/android/platform/superproject/+/master:device/google/cuttlefish/host/commands/cvd_import_locations/"]
5  cvd_update_location [URL = "https://cs.android.com/android/platform/superproject/+/master:device/google/cuttlefish/host/commands/cvd_update_location/"]
6  gnss_grpc_proxy [label = < <B>gnss_grpc_proxy</B> >]
7  gnss_grpc_server [label = "TCP gRPC", shape = "rectangle"]
8  run_cvd [URL = "https://cs.android.com/android/platform/superproject/+/master:device/google/cuttlefish/host/commands/run_cvd/"]
9  vmm [label = "crosvm / qemu"]
10  webrtc
11  subgraph fifos {
12    rank = same;
13    host_gnss_console_in [color = "green", label = "internal/gnsshvc_fifo_vm.in", shape = "rectangle"]
14    host_gnss_console_out [color = "green", label = "internal/gnsshvc_fifo_vm.out", shape = "rectangle"]
15    host_fixed_location_console_in [color = "blue", label = "internal/locationhvc_fifo_vm.in", shape = "rectangle"]
16    host_fixed_location_console_out [color = "blue", label = "internal/locationhvc_fifo_vm.out", shape = "rectangle"]
17  }
18  subgraph cluster_android {
19    label = "Android"
20
21    gnss_hal [label = "vendor.gnss-default", URL = "https://cs.android.com/android/platform/superproject/+/master:hardware/interfaces/gnss/aidl/default/"]
22    subgraph consoles {
23      rank = same;
24      fixed_location_console [color = "blue", label = "/dev/hvc6 | /dev/gnss1", shape = "rectangle"]
25      gnss_console [color = "green", label = "/dev/hvc5 | /dev/gnss0", shape = "rectangle"]
26    }
27  }
28
29  cli -> cvd_import_locations
30  cli -> cvd_update_location
31  browser -> webrtc
32
33  run_cvd -> gnss_grpc_proxy
34
35  fixed_location_console -> gnss_hal [color = "blue", dir = "both"]
36  gnss_console -> gnss_hal [color = "green", dir = "both"]
37
38  cvd_import_locations -> gnss_grpc_server [dir = "both"]
39  cvd_update_location -> gnss_grpc_server [dir = "both"]
40  webrtc -> gnss_grpc_server [dir = "both"]
41
42  gnss_grpc_server -> gnss_grpc_proxy [dir = "both"]
43
44  gnss_grpc_proxy -> host_gnss_console_in [color = "green"]
45  host_gnss_console_out -> gnss_grpc_proxy [color = "green"]
46
47  vmm -> host_gnss_console_out [color = "green"]
48  host_gnss_console_in -> vmm [color = "green"]
49
50  host_fixed_location_console_in -> gnss_grpc_proxy [color = "blue", dir = "back"]
51  host_fixed_location_console_out -> gnss_grpc_proxy [color = "blue"]
52
53  host_fixed_location_console_out -> vmm [color = "blue"]
54  host_fixed_location_console_in -> vmm [color = "blue", dir = "back"]
55
56  vmm -> fixed_location_console [color = "blue", dir = "both"]
57  vmm -> gnss_console [color = "green", dir = "both"]
58}
59