Skip to content
Browse files

Add a graphviz dot-file for protocol state trns.

Transitions in the protocol state is described as a graphviz .dot file.
The contents have been determined by reverse engineering the libutp
protocol.
  • Loading branch information...
1 parent ce6c5e4 commit b485f40d21e6018caabb80cfbadfd654cbaba23e @jlouis committed Jun 9, 2012
Showing with 35 additions and 0 deletions.
  1. +35 −0 doc/utp.dot
View
35 doc/utp.dot
@@ -0,0 +1,35 @@
+digraph {
+ /* Initialization */
+ idle -> syn_sent [label="Connect()"];
+ syn_sent -> connected [label="r(syn_ack)"];
+ idle -> connected [label="Accept()"];
+ /* Close */
+ idle -> destroy [label="Close()"];
+ syn_sent -> syn_sent [label="Close()"];
+ connected -> fin_sent [label="Close()"];
+ connected_full -> fin_sent [label="Close()"];
+ got_fin -> destroy_delay [label="Close()"];
+ reset -> destroy [label="Close()"];
+ /* Connection SendBuf overflow */
+ connected -> connected_full;
+ connected_full -> connected;
+ /* Destroy */
+ destroy_delay -> destroy [label="timeout"];
+ got_fin -> reset [label="timeout"];
+ /* Finailization */
+ connected -> got_fin [label="r(st_fin)"];
+ connected_full -> got_fin [label="r(st_fin)"];
+ syn_sent -> got_fin [label="??"];
+ fin_sent -> got_fin [label="r(got_eof_pkt)"];
+ idle -> got_fin [label="??"];
+ reset -> got_fin [label="??"];
+ fin_sent -> destroy [label="timeout"];
+ /* Resetting */
+ syn_sent -> reset [label="timeout"];
+ connected -> reset [label="timeout"];
+ connected_full -> reset [label="timeout"];
+
+}
+
+
+

0 comments on commit b485f40

Please sign in to comment.
Something went wrong with that request. Please try again.