doc: translate message sequence diagrams to mscgen

Mermaid is more beautiful, but the tool stack is really annoying. A Chrome
browser should not be necessary to generate some SVGs.
This commit is contained in:
Thomas Kolb 2024-08-27 18:07:12 +02:00
parent 79c340c20d
commit 10f634d144

View file

@ -267,108 +267,109 @@ To be defined:
==== Connection Establishment ==== Connection Establishment
[mermaid,format=svg,svg-type=interactive] [msc,format=svg,svg-type=interactive, scale=1.4]
.Connection establishment .Connection establishment
.... ....
sequenceDiagram msc {
participant digi as Digipeater digi [label="Digipeater"],
participant client as Client client [label="Client"];
digi -->> client: Beacon (Broadcast) digi -> client [label="Beacon (Broadcast)"];
digi -->> client: Beacon (Broadcast) digi -> client [label="Beacon (Broadcast)"];
digi -->> client: Beacon (Broadcast)
Note over client: Decides to connect client box client [label="Decides to connect"];
...;
client ->> digi: Connection Request digi -> client [label="Beacon (Broadcast)"];
digi <- client [label="Connection Request"];
alt Connection accepted --- [label="Alternative 1: Connection is accepted"];
digi ->> client: Connection Parameters digi -> client [label="Connection Parameters"];
client ->> digi: Connection Acknowledgement digi <- client [label="Connection Acknowledgement"];
Note over digi,client: Connection established digi box client [label="Connection established"];
else Connection rejected
digi ->> client: Connection Refusal --- [label="Alternative 2: Connection is rejected"];
end digi -> client [label="Connection Refusal"];
}
.... ....
==== Communication during a Connection ==== Communication during a Connection
[mermaid,format=svg,svg-type=interactive] [msc,format=svg,svg-type=interactive, scale=1.4]
.In-connection communication .In-connection communication
.... ....
sequenceDiagram msc {
participant digi as Digipeater digi [label="Digipeater"],
participant client as Client client [label="Client"];
Note over digi,client: Connection established --- [label="Connection established"];
digi => client [label="Up to 14 packets without Transmission Request"];
digi -> client [label="Packet with Transmission Request"];
loop For up to 14 packets digi box digi [label="Start timeout timer"];
digi ->> client: Packet without Transmission Request
end
digi ->> client: Packet with Transmission Request --- [label="Alternative 1: Normal reply"];
Note over digi: Start timeout timer digi <= client [label="Up to 14 packets without Transmission Request"];
digi <- client [label="Packet with Transmission Request"];
alt Normal reply --- [label="Alternative 2: Partial reply"];
loop For up to 14 packets
client ->> digi: Packet without Transmission Request
end
client ->> digi: Packet with Transmission Request digi <= client [label="Up to 14 packets without Transmission Request"];
else Partial reply digi x- client [label="Packet with Transmission Request"];
loop For up to 14 packets ...;
client ->> digi: Packet without Transmission Request digi rbox digi [label="Timeout expired"];
end
client --x digi: Packet with Transmission Request (lost) --- [label="Alternative 3: No reply"];
Note over digi: Timeout expired digi x- client [label="Packets from client"];
else No reply ...;
Note over digi: Timeout expired digi rbox digi [label="Timeout expired"];
end
Note over digi: Query next client --- [label="Finally"];
digi box digi [label="Query next client"];
}
.... ....
==== Connection Shutdown ==== Connection Shutdown
===== Client-initiated ===== Client-initiated
[mermaid,format=svg,svg-type=interactive] [msc,format=svg,svg-type=interactive, scale=1.4]
.Client-initiated shutdown .Client-initiated shutdown
.... ....
sequenceDiagram msc {
participant digi as Digipeater digi [label="Digipeater"],
participant client as Client client [label="Client"];
Note over digi,client: Connection established --- [label="Connection established"];
client box client [label="Decides to disconnect"];
...;
digi -> client [label="Transmission request"];
digi <- client [label="Disconnect"];
Note over client: Decides to disconnect --- [label="Connection closed"];
}
digi ->> client: Transmission Request
client ->> digi: Disconnect
Note over digi,client: Connection closed
.... ....
===== Digipeater-initiated ===== Digipeater-initiated
[mermaid,format=svg,svg-type=interactive] [msc,format=svg,svg-type=interactive, scale=1.4]
.Digipeater-initiated shutdown .Digipeater-initiated shutdown
.... ....
sequenceDiagram msc {
participant digi as Digipeater digi [label="Digipeater"],
participant client as Client client [label="Client"];
Note over digi,client: Connection established --- [label="Connection established"];
digi box digi [label="Decides to disconnect Client"];
Note over digi: Decides to disconnect client digi -> client [label="Disconnect request"];
digi <- client [label="Disconnect"];
digi ->> client: Disconnect Request --- [label="Connection closed"];
client ->> digi: Disconnect }
Note over digi,client: Connection closed
.... ....
== Higher Layer Protocols == Higher Layer Protocols