LteRlcAmDataPdu

Namespace: simu5g

class LteRlcAmDataPdu

LTE RLC AM data PDU: an AMD PDU or, when rf is set, an AMD PDU segment (3GPP TS 36.322 6.2.1.4 / 6.2.1.5).

Concatenation is modeled exactly as in the UM data PDU (the inherited SDU list with per-SDU sizes plus the FI bits); an AMD PDU additionally carries the poll bit, and its sequence number (10-bit on the wire; unbounded in the model, as everywhere else) is the unit of ARQ.

An AMD PDU segment – a re-segmented retransmission built to fit a smaller grant – carries the byte range [soStart, soEnd] of the original PDU’s data field. As elsewhere in the model, the segment packet carries the original PDU’s whole SDU list, and only chunkLength reflects the bytes on the air.

Inheritance diagram

Extends

Name

Type

Description

LteRlcDataPdu

class

(no description)

Fields

Name

Type

Description

id

int

mutable

bool

complete

bool

correct

bool

properlyRepresented

bool

chunkLength

b

rawBin

string[]

rawHex

string[]

regionTags

SharingRegionTagSet::TagBaseRegionTag[]

chunkLength

sdu

inet::Packet*[]

sduSize

size_t[]

pduSequenceNumber

unsigned int

Sequence number of the PDU

framingInfo

FramingInfo

define the segmentation info for the PDU

chunkLength

pollStatus

bool

P bit (TS 36.322 5.2.2)

rf

bool

resegmentation flag: this is an AMD PDU segment

soStart

unsigned int

segment offset of the first data byte carried

soEnd

unsigned int

segment offset of the last data byte carried

lsf

bool

last segment flag

Properties

Name

Value

Description

beforeChange

handleChange()

descriptor

readonly

existingClass

packetData

Source code

//
// LTE RLC AM data PDU: an AMD PDU or, when rf is set, an AMD PDU segment
// (3GPP TS 36.322 6.2.1.4 / 6.2.1.5).
//
// Concatenation is modeled exactly as in the UM data PDU (the inherited SDU
// list with per-SDU sizes plus the FI bits); an AMD PDU additionally carries
// the poll bit, and its sequence number (10-bit on the wire; unbounded in the
// model, as everywhere else) is the unit of ARQ.
//
// An AMD PDU segment -- a re-segmented retransmission built to fit a smaller
// grant -- carries the byte range [soStart, soEnd] of the original PDU's data
// field. As elsewhere in the model, the segment packet carries the original
// PDU's whole SDU list, and only chunkLength reflects the bytes on the air.
//
class LteRlcAmDataPdu extends LteRlcDataPdu
{
    chunkLength = inet::B(RLC_HEADER_AM);
    bool pollStatus = false;    // P bit (TS 36.322 5.2.2)
    bool rf = false;            // resegmentation flag: this is an AMD PDU segment
    unsigned int soStart = 0;   // segment offset of the first data byte carried
    unsigned int soEnd = 0;     // segment offset of the last data byte carried
    bool lsf = false;           // last segment flag
}

File: src/simu5g/stack/rlc/packet/LteRlcPdu.msg