(0) CHARACTERISTICS
-type specified: receiver
-features: deterministic, non-parameterized
-foreign types: flipflop, N_PDU, N_plus_1_PDU, msg
(1) SYNTAX
INPUT VARIABLES
Variable Name | Type | Condition of interest | Event |
---|---|---|---|
N_minus_1_IND_SAP | N_PDU | AnyChange | IND |
N_minus_1_Trigger | flipflop | AnyChange | ACCEPTED |
OUTPUT VARIABLES
Variable Name | Type |
---|---|
N_IND_SAP | N_plus_1_PDU |
N_minus_1_RES_SAP | N_PDU |
(2) CANONICAL TRACES
canonical(T) d:<N_PDU>; f:<flipflop> [T = IND(*, d) T = IND(*, d).ACCEPTED(*, f) ](3) SEMANTICS
INPUT VARIABLESIND(T,d) =
Condition | Value |
---|---|
length(T) = 1 | T |
d1:<N_PDU>; s,s1,a:<int>; f:<flipflop>; m,m1:<msg> [T = IND(*, d1).ACCEPTED(*, f) s = N_PDU::get_seq_nb(d) s1 = N_PDU::get_seq_nb(d1) m = N_PDU::get_msg(d) m1 = N_PDU::get_msg(d1) a = N_PDU::get_ack(d) s < s1 + 1] | IND(*, IND(*, N_PDU::CODE(s1, m1, a))) |
d1:<N_PDU>; s,s1:<int>; f:<flipflop>; m,m1:<msg> [T = IND(*, d1).ACCEPTED(*, f) s = N_PDU::get_seq_nb(d) s1 = N_PDU::get_seq_nb(d1) m = N_PDU::get_msg(d) m1 = N_PDU::get_msg(d1) s = s1 + 1 ] | IND(*, d) |
d1:<N_PDU>; s,s1,a:<int>; f:<flipflop>; m,m1:<msg> [T = IND(*, d1).ACCEPTED(*, f) s = N_PDU::get_seq_nb(d) s1 = N_PDU::get_seq_nb(d1) m = N_PDU::get_msg(d) m1 = N_PDU::get_msg(d1) a = N_PDU::get_ack(d) s > s1 + 1] | IND(*, N_PDU::CODE(s1, m1, a)).ACCEPTED(*, f) |
ACCEPTED(T,f) =
Condition | Value |
---|---|
length(T) = 2 | T |
length(T) = 2 | T.ACCEPTED(*, f) |
N_IND_SAP(T) = N_PDU::get_msg(d) where d:<N_PDU>; S:<<receiver>> [T = IND(*, d).S ]
N_minus_1_RES_SAP(T) =
Condition | Value |
---|---|
length(T) = 2 | N_PDU::_ |
d:<N_PDU> [T = IND(*, d) ] | N_PDU::CODE(0, N_plus_1_PDU::_, N_PDU::get_seq_nb(d)) |