add (somewhat outdated) diagrams

This commit is contained in:
Green Sky 2023-01-13 16:59:12 +01:00
parent dee7bb8e9e
commit 27f4dd7180
No known key found for this signature in database
2 changed files with 80 additions and 0 deletions

33
ft_recv.dot Normal file
View File

@ -0,0 +1,33 @@
digraph ft_send {
fontname="Helvetica,Arial,sans-serif"
node [fontname="Helvetica,Arial,sans-serif"]
edge [fontname="Helvetica,Arial,sans-serif"]
label="FT1_Receiver";
labelloc="t";
start [label="start | we got FT_INIT"];
fail [shape=doublecircle];
done [shape=doublecircle];
// peer offline (how)
start -> fail [label="peer offline"]
start -> starting [label="send FT_INIT_ACK"];
starting -> starting [label="if timeout or get FT_INIT send FT_INIT_ACK"];
starting -> got_data [label="got FT_DATA"];
starting -> fail [label="if timeout too often"];
got_data -> fail [label="peer offline"];
subgraph cluster_data {
label="for each data chunk";
style=filled;
got_data -> wait_for_all_data [label="send FT_DATA_ACK"];
}
wait_for_all_data -> fail [label="peer offline"];
wait_for_all_data -> done [label="all chunks received and acked"];
}

47
ft_send.dot Normal file
View File

@ -0,0 +1,47 @@
digraph ft_send {
fontname="Helvetica,Arial,sans-serif"
node [fontname="Helvetica,Arial,sans-serif"]
edge [fontname="Helvetica,Arial,sans-serif"]
label="FT1_Sender";
labelloc="t";
//layout=fdp
//rankdir = LR
start;
fail [shape=doublecircle];
done [shape=doublecircle];
// peer offline (how)
start -> fail [label="peer offline"];
start -> sent_init [label="send FT_INIT"];
// peer offline (how)
sent_init -> fail [label="peer offline OR timeout too often"];
sent_init -> sent_init [label="timeout & sentcount <= 3, send FT_INIT"];
// got an ack after an init
sent_init -> have_data [label="got init_ack"]
subgraph cluster_data {
label="for each data chunk";
style=filled;
//node [style=filled];
have_data -> data_awaiting_ack [label="send FT_DATA"];
data_awaiting_ack -> data_wait_for_all [label="get FT_DATA_ACK"];
data_awaiting_ack -> have_data [label="no FT_DATA_ACK"];
data_wait_for_all;
}
// fail
have_data -> fail [label="peer offline"]
data_wait_for_all -> fail [label="peer offline"]
data_wait_for_all -> done [label="all chunks acked"];
}