A.1 List of RLP entity states
04.223GPPTS
A.1.1 (main) states
state number | state symbol | state name |
0 | S0 | ADM and Detached |
1 | S1 | ADM and Attached |
2 | S2 | Pending Connect Request |
3 | S3 | Pending Connect Indication |
4 | S4 | ABM and Connection Established |
5 | S5 | Disconnect Initiated |
6 | S6 | Pending Reset Request |
7 | S7 | Pending Reset Indication |
A.1.2 state variables
The main states are further distinguished by the values of the state variables. However, not every state variable is used (evaluated/ defined) in every state.
First some constants need to be defined:
M = 62 number of different sequence numbers (modulus)
Nmin = 0 smallest sequence number
Nmax = 61 largest sequence number (= M – 1)
N2 = 6 maximum number of retransmissions
variable name | variable type and range | semantic |
Ackn_FBit | (0, 1) | Value of the F-Bit used in the next acknowledging PDU. |
Ackn_State | (idle, send) | Ackn_State = send means, an acknowledging PDU (Supervisory or Data) has to be sent. |
C | (0, 1) | to store the C/R-Bit value of a received S- or I-frames |
Data | char[25] | to store temporarily the information part (user data) of a received I-frame. |
DISC_Count | (0, 1,…, N2) | to count the transmissions of DISC. |
DISC_PBit | (0, 1) | The value of the P-bit in the next DISC command PDU. |
DISC_State | (idle, send, wait) | if (DISC_State = send) the DISC command PDU has to be sent at the next possible opportunity. |
if (DISC_State = wait) the RLP entity waits for the corresponding response. | ||
DM_FBit | (0, 1) | Value of the F-Bit used in the next DM response PDU. |
DM_State | (idle, send) | if (DM_State = send) the PDU DM has to be sent. |
DTX_SF | (N, RR, RNR) | to store the last Supervisory frame for DTX (only RR or RNR can be suppressed) |
DTX_VR | (0, 1,.., Nmax) | to store the last transmitted value of VR (used to decide the DTX condition) |
F | (0, 1) | to store temporarily the F-bit of a received response PDU. |
NR | (0, 1,…, Nmax) | to store temporarily the receive sequence number of a received S- or I-frame |
NS | (0, 1,…, Nmax) | to store temporarily the send sequence number of a received I-frame |
P | (0, 1) | to store temporarily the P-bit of a received command PDU |
P_F | (0, 1) | to store temporarily the P- or F-bit of received command or response PDUs |
Poll_Count | (0, 1,…, N2) | to count the transmissions of poll requests |
Poll_State | (idle, send, wait) | (Poll_State = send) means, a supervisory PDU with P-bit set to one has to be sent |
(Poll_State = wait) means, the RLP entity waits for the response with F-bit set to one | ||
Poll_xchg | (idle, wait) | (Poll_xchg = idle) means, sending of a frame with P-bit set is allowed |
(Poll_xchg = wait) means, an acknowledgement of a previous P-bit is outstanding | ||
R[M] | record array | Receiver slots (M slots, numbered 0 to M‑1) |
R[n].Data | char[25] | to store user information |
R[n].State | (idle, rcvd, ackn, srej, wait) | (R[n].State = rcvd) means, data has been received (with sequence number n). |
(R[n].State = ackn) means, data has been received and acknowledged | ||
(R[n].State = srej) means, the retransmission of data has to be requested using srej(n). | ||
(R[n].State = wait) means, the entity waits for the requested retransmitted data |
REJ_State | (idle, send, wait) | The REJ_State is send if and only if a REJ PDU has to be sent |
returncode | Integer | used in procedures to report a result |
RRReady | Boolean | Remote Receiver Ready |
SABM_Count | (0, 1,…, N2) | to count the transmissions of SABM |
SABM_State | (idle, send, wait) | if (.._State = send) the SABM PDU has to be sent |
if (.._State = wait) the RLP entity waits for the UA response | ||
S[M] | record array | Sender Slots (M slots, numbered 0 to M‑1) |
S[n].Data | char[25] | user information to be sent |
S[n].State | (idle, send, wait) | (S[n].State = send) means, data has to be sent |
SF | (RR, RNR, REJ, SREJ) | to store the last superv. PDU type |
T | Timer | used by the data sender if waiting for I-frame acknowledgements or F-bits |
TEST_Count | (0, 1,…,N2) | to count the transmissions of TEST |
TEST_C_Data | char [25] | data to be sent in the next TEST command PDU |
TEST_C_PBit | (0, 1) | value of the P-Bit used in the next TEST command PDU |
TEST_C_State | (idle, send, wait) | if (.._State = send) the TEST command PDU has to be sent |
if (.._State = wait) the RLP entity waits for the next TEST response | ||
TEST_R_Data | char[25] | data to be sent in the next TEST response PDU |
TEST_R_FBit | (0, 1) | value of the P-Bit used in the next TEST response PDU |
TEST_R_State | (idle, send) | if (.._State = send) the TEST response PDU has to be sent |
T_RCVR | Timer | used by the receiver to timeout a REJ condition |
T_RCVS(n) | Timer | used by the receiver to timeout a SREJ condition for Slot n |
T_TEST | Timer | used by the sender of a TEST frame if waiting for a TEST response |
T_XID | Timer | used by the sender of a XID frame if waiting for the XID response |
UA_FBit | (0, 1) | value of the F-Bit used in the next UA response |
UA_State | (idle, send) | if (UA_State = send) an UA PDU has to be sent |
UI_Data | char[25] | data to be sent in the next UI PDU |
UI_PBit | (0, 1) | value of the P-Bit used in the next UI PDU |
UI_State | (idle, send) | if (UI_State = send) a UI PDU has to be sent |
VA | (0, 1,…, Nmax) | frame sequence number of oldest not yet acknowledged |
VD | (0, 1, …, Nmax) | slot number used in the next Data_Req |
VR | (0, 1, …, Nmax) | receiver sequence number (the next received I-frame is expected to carry this sequence number) |
VS | (0, 1, …, Nmax) | sender sequence number (under normal operating conditions the next I-frame is assigned this number) |
XID_Count | (0, 1,…,N2) | to count the transmissions of XID commands |
XID_C_Data | char [25] | data to be sent in the next XID command PDU |
XID_C_PBit | (0, 1) | value of the P-Bit used in the next XID command PDU |
XID_C_State | (idle, send, wait) | if (.._State = send) the XID command PDU has to be sent |
if (.._State = wait) the RLP entity waits for the next XID response | ||
XID_R_FBit | (0, 1) | value of the P-Bit used in the next XID response PDU |
XID_R_State | (idle, send) | if (.._State = send) the XID response PDU has to be sent |