Skip to content

Protocol Flow Chart

Shahbaz Chaudhary edited this page Sep 11, 2015 · 5 revisions

Protocol Flow Chart

[is loggedin]->no[has tag 35]
[has tag 35]->false[ERROR:tag 35 missing]
[has tag 35]->true[is logon]
[is logon]->false[ERROR:first msg must be logon]
[is logon]->true[handle heartbeat]
[handle heartbeat]->always[should respond to logon]
[should respond to logon]->true[send logon response]
[send logon response]->always[handle logon ok]
[should respond to logon]->false[handle logon ok]
[handle logon ok]->always[handle persistence]

[is loggedin]->yes[handle persistence]
[handle persistence]->always[has req fields]

[has req fields]->false[ERROR: missing required field]
[has req fields]->true[handle seq-reset-gap-fill]

[handle seq-reset-gap-fill]->always[check seqnums]

[check seqnums]->expected[process msg]
[check seqnums]->too low[ERROR:seq num too low]
[check seqnums]->too high[request resend]
[check seqnums]--[<note>what if posdup?]

[process msg]->seq-reset[handle seq-reset-no-gap-fill]
[process msg]->test-request[handle test-request]
[process msg]->resend-request[handle resend-request]
[process msg]->logout[handle logout]

http://www.nomnoml.com/

Clone this wiki locally