A Guide to General Packet Radio Service -3


RLP
The Radio Link Protocol (RLP) is used to transmit data over the GSM PLMN. RLP covers the functionality of Layer 2 of the ISO OSI Reference Model. It has been tailored to the needs of digital radio transmissions and provides an OSI data link service. It also spans from the MS (Mobile Station) to the interworking function, which is located at the nearest MSC (Mobile Switching Center) or even further. There are currently three versions of RLP:

Version 0 is a Single-link basic version,
Version 1 is a Single-Link extended version,
And Version 2 is a Multi-link version.

RLP frames are fixed in length. The frame can either be 240 or 576 bits. The frame consists of a header, information field, and an FCS field.

The format of the 240-bit frame is:
  _____________________________________
  | Header  |  Information    | FCS    |
  |---------|-----------------|--------|
  | 16 bit  |  200 bit        | 24 bit |
  |---------|-----------------|--------|
  | 24 bit  |  192 bit        | 24 bit |
  |---------|-----------------|--------|

The header is 16 bits in versions 0,1, and in the U frame of version 2. It is 24 bits in the S and I+S frames of version 2. The format of the 576-bit frame is:
  _____________________________________
  | Header  |  Information    | FCS    |
  |---------|-----------------|--------|
  | 16 bit  |  536 bit        | 24 bit |
  |---------|-----------------|--------|
  | 24 bit  |  528 bit        | 24 bit |
  |---------|-----------------|--------|

The header is 16 bits in version 1 and in the U frames of version 2. It is 24 bits in the S and I+S frames of version 2. The header contains control information. This control information can be any one of three types:
1) Un-numbered protocol control information (U frames)
2) Supervisory Information (S frames)
3) User Information Carrying Supervisory information piggypacked (I+S Frames)

The FCS (Frame Check Sequence) field in the RLP is just like the FCS which is used in LLC which was discussed earlier.

RLP can be either in Asynchronous Balanced Mode (ABM) or Asynchronous Disconnected Mode (ADM). ABM is the data link operation mode, while ADM is the data link non-operational mode.

Now we're going to get into some, maybe, confusing diagrams. The following diagram shows the Structure of Versions 0 and 1.

N(S) is a bit 4 low order bit, and N(R) bit 11 low order bit.

Bits 1-16 are as follows:
     ___________________________________________________________________________
U   | C/R | X  | X  | 1 | 1 | 1 | 1 | 1 | 1 | P/F | M1 | M2 | M3 | M4 | M5 | X |
    |     |    |    |   |   |   |   |   |   |     |    |    |    |    |    |   |
    |-----|----|----|---|---|---|---|---|---|-----|----|----|----|----|----|---|
S   | C/R | S1 | S2 | 0 | 1 | 1 | 1 | 1 | 1 | P/F |            N (R)           |
    |     |    |    |   |   |   |   |   |   |     |                            |
    |-----|----|----|---|---|---|---|---|---|-----|----------------------------|
I+S | C/R | S1 | S2 | 0   1   N   1   1   1 | P/F |            N (R)           |
    |     |    |    |         (S)           |     |                            |
    |-----|----|----|-----------------------|-----|----------------------------|



version 2

S is a L2R status Bit, N(S) is a bit 1 low order bit, N(R) is a bit 14 low order bit and UP is a UP bit.

   Bits 1-24
    ___________________________________________________________________________
U   | C/R | X | X | 1 | 1 | 1 | 1 | 1 | 1 | P/F | M1  | M2  | M3 | M4 | M5 | X |
    |-----|---|---|---|---|---|---|---|---|-----|-----|----| ----|---------|   |----|
S   | X   | X | X | 0 | 1 | 1 | 1 | 1 | 1 | P/F | C/R | S1 | S2 |  N(R)       X UP |
    |-----|---|---|---|---|---|---|-- |-|-|-----|-----|----|----|----------------|-|
I+S |                   N(S)            | | P/F | C/R | S1 | S2 |  N(R) S UP     |
    |-----------------------------------|-|-----|-----|----|----|----------------|


The C/R (Command Response) bit shows whether the frame is a command or a response frame. It can have only one of two values:

1    Command
0    Response

The P/F (Poll/Final) bit shows a special instance of the command/response exchange.

The X bits don't really matter.


In the Unnumbered Frames (U) the M1 M2 M3 M4 and M5 bits can have any of the following values in the U frames depending on the type of information carried. 

SABM   11100
UA     00110
DISC   00010
DM     11000
NULL   11110
UI     00000
XID    11101
TEST   00111
REMAP  10001


SABM == Set Asynchronous Balance Mode
        SABM is used to initiate a link for a numbered information transfer or to reset a link already established.

UA == Unnumbered Acknowledge
      UA is issued as a response to acknowledge a SABMM or DISK command.

DISC == Disconnect
        DISC is used to disestablish a previously established link information transfer link. (duh!)

DM == Disconnect Mode
      DM Encoding is used as a response message

NULL == NULL

UI == Unnumbered Information
      UI says that the information f field is to be interpreted as unnumbered information.

ID == Exchange Identification
       ID signifies that the information field should be interpreted as exchange identification, and is used to 
    negotiate and/or renegotiate parameters of RLP and Layer 2 relay functions.

TEST == TEST
        This shows that the information field of the frame is test information.

REMAP == REMAP
         This signifies that a remap exchange takes place in ABM following
         a change of channel coding. If an answer is not received within
         a specified time then the module end enters ADM.


In the S and I+S Frames the following are present:

N(S) == Send Sequence Number
        N(S) contains the number of the I frame.

N(R) == Receive Sequence Number
        N(R) is used in ABM to designate the next information frame to be sent and to confirm that all frames 
        upto and including this bit have been correctly received.

S == L2 Status Bit
     S1 and S2 bits can have the following significance in the S and I+S frames.

     RR 00
     REJ 01
     RNR 10
     SREJ 11

RR == Receive Ready
      RR can be used as a command OR a response. It clears any previous
      busy condition in that area.

REJ == Reject Encoding
       REJ is used to show that in numbered information transfer, 1 or more
       out of sequence frames have been received.

RNR == Receive Not Ready
       RNR shows that the entity isn't ready to receive numbered information
       frames.

SREJ == Selective Reject
        SREJ is used to request a retransmission of a single frame.

UP is used in version 2, to indicate that a service level upgrade will
increase the throughput.

Comments

Popular posts from this blog

How to hack your xbox 360 completely

Defusing Fork Bomb

Wii Remote IR Camera Hack with Arduino Interface