Home | History | Annotate | Line # | Download | only in images
      1 @startuml
      2 
      3 [*] --> IDLE
      4 
      5 ESTABLISHING : PROBE_TIMEOUT: SendProbeIfAnySentPktsUnacked() [default]
      6 
      7 state ACTIVE {
      8     state ESTABLISHING {
      9         PROACTIVE_VER_NEG :
     10         PRE_INITIAL :
     11         INITIAL_EXCHANGE_A :
     12         REACTIVE_VER_NEG :
     13         INITIAL_EXCHANGE_B :
     14         INITIAL_EXCHANGE_CONTINUED :
     15         HANDSHAKE :
     16         HANDSHAKE_CONTINUED :
     17         HANDSHAKE_COMPLETED :
     18         HANDSHAKE_CONFIRMED :
     19 
     20         [*] --> PROACTIVE_VER_NEG : use proactive VN?
     21         [*] --> PRE_INITIAL : else
     22         PROACTIVE_VER_NEG --> PRE_INITIAL : RX:VER_NEG
     23         PROACTIVE_VER_NEG --> PROACTIVE_VER_NEG : PROBE_TIMEOUT
     24         PRE_INITIAL --> INITIAL_EXCHANGE_A : 
     25         INITIAL_EXCHANGE_A --> INITIAL_EXCHANGE_B : RX:RETRY
     26         INITIAL_EXCHANGE_A --> INITIAL_EXCHANGE_CONTINUED : RX:INITIAL
     27         INITIAL_EXCHANGE_A --> REACTIVE_VER_NEG : RX:VER_NEG
     28 
     29         REACTIVE_VER_NEG --> PRE_INITIAL : 
     30 
     31         INITIAL_EXCHANGE_B --> INITIAL_EXCHANGE_CONTINUED : RX:INITIAL
     32         INITIAL_EXCHANGE_CONTINUED --> HANDSHAKE : TLS:HAVE_EL(HANDSHAKE)
     33 
     34         HANDSHAKE --> HANDSHAKE_CONTINUED : RX:HANDSHAKE
     35         HANDSHAKE_CONTINUED --> HANDSHAKE_COMPLETED : TLS:HANDSHAKE_COMPLETE
     36         HANDSHAKE_COMPLETED --> HANDSHAKE_CONFIRMED : RX:1RTT[HANDSHAKE_DONE]
     37     }
     38     OPEN :
     39     [*] --> ESTABLISHING
     40 }
     41 
     42 state TERMINATING {
     43     CLOSING :
     44     DRAINING :
     45     CLOSING --> DRAINING : RX:ANY[CONNECTION_CLOSE]
     46 }
     47 
     48 HANDSHAKE_CONFIRMED --> OPEN : 
     49 
     50 IDLE --> ACTIVE : APP:CONNECT
     51 
     52 IDLE --> TERMINATED : APP:CLOSE
     53 TERMINATING --> TERMINATED : TERMINATING_TIMEOUT, RX:STATELESS_RESET
     54 
     55 ACTIVE --> CLOSING : APP:CLOSE
     56 ACTIVE --> DRAINING : RX:ANY[CONNECTION_CLOSE]
     57 ACTIVE --> TERMINATED : IDLE_TIMEOUT, RX:STATELESS_RESET
     58 
     59 @enduml
     60