qubes-doc/attachment/_diagrams/qrexec-dom0-vm.uml
Marek Marczykowski-Górecki 4a3b08fd7d
Import attachment repo
Import only files used in the documentation (and their source files if
applicable).

Based on c3f45c81842d6c5df064fce385b464b4041b3b62 in qubes-attachment
repo.
2024-05-21 22:04:11 +02:00

40 lines
909 B
Plaintext

@startuml
box dom0 #eee
participant "client" as c
participant "daemon domX" as d
end box
box domX #eee
participant "agent" as ax
participant "fork-server" as fx
end box
-> c: qrexec-client\n-d dom0\nuser:cmd
activate c
c -> d: MSG_EXEC_CMDLINE\ndom0,0,user:cmd
activate d
note right: negotiate port\nand run user:cmd
rnote over d #fff: allocate port 513
d -> c: MSG_EXEC_CMDLINE\ndomX,513
rnote over c #fff: start vchan server\n on port 513
d -> ax: MSG_EXEC_CMDLINE\ndom0,513,user:cmd
deactivate d
activate ax
ax -> fx: MSG_EXEC_CMDLINE\ndom0,513,user:cmd
deactivate ax
activate fx
rnote over fx #fff: start cmd (as user)
fx --> c: connect over vchan port 513
-> c: stdin
c -> fx: MSG_DATA_STDIN ...
fx -> c: MSG_DATA_STDOUT / MSG_DATA_STDERR ...
<- c: stdout / stderr
rnote over fx #fff: cmd exits
fx -> c: MSG_DATA_EXIT_CODE 0
deactivate fx
<- c: exit with code 0
deactivate c
@end uml