=================================================================
APTP: APA/ATP
=================================================================

APA: Asynchronous Packet Automata
   source routing
   network coordinates
   back-pressure flow control

ATP: Asynchronous Token Protocol
   static state
   unclocked operation
   exchange verification

=================================================================
ATP: Asynchronous Token Protocol
=================================================================

logical states
   T(oken)
    B(it)
   00 x empty
   01 o occupied
   10 0 0
   11 1 1

send handshake
     x -- x
   0,1 -> x
   0,1 <- o
     x -> o
     x <- x

receive handshake
     x -- x
     x <- 0,1
     o -> 0,1
     o <- x
     x -> x

send/receive signals
      send  receive
    O x11xx xxoox
   TO _--__ _____
   BO _--__ __--_
   TI _____ _--__
   BI __--_ _--__
    I xxoox x11xx

swap handshake
     x -- x
   0,1 -> x
   0,1 <- 0,1
     o -> 0,1
     o <- o
     x -> o
     x <- x

simultaneous swap handshake
     x -- x
   0,1 <> 0,1
     o <> o
     x <> x

missed simultaneous swap handshake
     x -- x
   0,1 <> 0,1
     o <> x
     x -> x

port states
   out   out
      in   in
   00 00 x x empty
   00 01 x o send acknowledge
   00 10 x 0 receive available
   00 11 x 1 receive available
   01 00 o x receive acknowledge
   01 01 o o swap accept
   01 10 o 0 receive accept
   01 11 o 1 receive accept
   10 00 0 x send available
   10 01 0 o send accept
   10 10 0 0 swap available
   10 11 0 1 swap available
   11 00 1 x send available
   11 01 1 o send accept
   11 10 1 0 swap available
   11 11 1 1 swap available

=================================================================
APA: Asynchronous Packet Automata
=================================================================

 1   1   1
0A2 0D2-0E2
 3   3   3
 |   |   |
 1   1   1 
0B2-0C2-0F2
 3   3   3   

A -> E
A: {3212^|key:value;...;}
B: {212^1|key:value;...;}
C: {12^01|key:value;...;}
D: {2^301|key:value;...;}
E: {^0301|key:value;...;}

A -> F
A: {322^|key:value;...;}
B: {22^1|key:value;...;}
C: {2^01|key:value;...;}
F: {^001|key:value;...;}

A flood
A: {FFFF^|key:value;...;}
B: {FFF^1|key:value;...;}
C: {FF^01|key:value;...;}
D: {F^301|key:value;...;} F: {F^001|key:value;...;}
E: {^0301|key:value;...;} E: {^3001|key:value;...;}

set key values: key1:value1;key2:value2;
query key values: key1:?;key2:?;
query all key values: ?:?

buffer overflow truncation
{3212^|key1:value1;key2:val#}

special characters: \{^|:;?#}
escape characters: \\ \{ \^ \| \: \; \* \? \# \}