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
(with sequence# n).

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
I-frame
(if VA = VS then there are no unacknowledged frames)

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