BackgroundUe

Package: simu5g.background.trafficGenerator

compound module BackgroundUe

Lightweight model for 4G or 5G User Equipment (UE). It is used to simulate the generation of background traffic in both uplink and downlink bandwidths, according to the logic specified by its ITrafficGenerator submodule. The generated traffic is not actually transmitted or received by this module, making it more efficient from a simulation complexity perspective. Instead, such traffic modifies the buffer status information that is used by the BackgroundScheduler to allocate resources. Each background UE has a mobility submodule to configure its position in the simulation floor plan. This allows for realistic channel status information to be computed for the background UE and used by the BackgroundScheduler. Since this module does not send or receive actual traffic, application-level statistics are not produced.

Usage diagram

Used in compound modules

Name

Type

Description

BackgroundTrafficGenerator

compound module

Part of a BackgroundCell module and is responsible for instantiating a configurable number of background UEs (see BackgroundUe module) and setting up their method for computing the channel status information required by the BackgroundScheduler module.

Parameters

Name

Type

Default value

Description

computeAvgInterference

bool

enablePeriodicCqiUpdate

bool

useProbabilisticCqi

bool

Properties

Name

Value

Description

display

i=device/pocketpc

Unassigned submodule parameters

Name

Type

Default value

Description

mobility ↗.displayStringTextFormat

string

“p: {position}\nv: {velocity}”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

mobility ↗.subjectModule

string

“^”

The module path that determines the subject module, the motion of which this mobility model describes. The default value is the parent module

mobility ↗.coordinateSystemModule

string

“”

The module path of the geographic coordinate system module; optional, empty disables geographic conversion (and the {geo_position} directive)

mobility ↗.updateDisplayString

bool

true

Enables continuous update of the subject module’s position by modifying its display string

mobility ↗.constraintAreaMinX

double

-inf m

The minimum x position of the constraint area. It is unconstrained by default (negative infinity)

mobility ↗.constraintAreaMinY

double

-inf m

The minimum y position of the constraint area. It is unconstrained by default (negative infinity)

mobility ↗.constraintAreaMinZ

double

-inf m

The minimum z position of the constraint area. It is unconstrained by default (negative infinity)

mobility ↗.constraintAreaMaxX

double

inf m

The maximum x position of the constraint area. It is unconstrained by default (positive infinity)

mobility ↗.constraintAreaMaxY

double

inf m

The maximum y position of the constraint area. It is unconstrained by default (positive infinity)

mobility ↗.constraintAreaMaxZ

double

inf m

The maximum z position of the constraint area. It is unconstrained by default (positive infinity)

mobility ↗.initialX

double

uniform(this.constraintAreaMinX, this.constraintAreaMaxX)

mobility ↗.initialY

double

uniform(this.constraintAreaMinY, this.constraintAreaMaxY)

mobility ↗.initialZ

double

nanToZero(uniform(this.constraintAreaMinZ, this.constraintAreaMaxZ))

mobility ↗.initialLatitude

double

nan deg

mobility ↗.initialLongitude

double

nan deg

mobility ↗.initialAltitude

double

0m

mobility ↗.initialHeading

double

0deg

mobility ↗.initialElevation

double

0deg

mobility ↗.initialBank

double

0deg

mobility ↗.initFromDisplayString

bool

true

Enables one-time initialization from the subject module’s display string

mobility ↗.updateFromDisplayString

bool

true

Enables continuous update from the subject module’s display string for dragging and rotating it

generator.computeAvgInterference

bool

generator.enablePeriodicCqiUpdate

bool

generator.useProbabilisticCqi

bool

generator.backgroundTrafficManagerModule

string

“^.^.manager”

generator.startTimeDl

double

-1s

generator.startTimeUl

double

-1s

generator.headerLen

int

33B

generator.txPower

double

26dBm

generator.fbPeriod

int

6tti

generator.periodDl

double

uniform(10ms,50ms)

generator.periodUl

double

uniform(10ms,50ms)

generator.packetSizeDl

int

intuniform(20B,100B)

generator.packetSizeUl

int

intuniform(20B,100B)

generator.rtxRateDl

double

0.1

generator.rtxDelayDl

double

0.006s

generator.rtxRateUl

double

0.1

generator.rtxDelayUl

double

0.006s

generator.cqiMeanDl

double

15

These values are only considered when periodicCqi == false && computeAvgInterference == false

generator.cqiMeanUl

double

15

generator.cqiStddevDl

double

0

generator.cqiStddevUl

double

0

Source code

//
// Lightweight model for 4G or 5G User Equipment (UE).
// It is used to simulate the generation of background traffic in both uplink and
// downlink bandwidths, according to the logic specified by its ~ITrafficGenerator
// submodule. The generated traffic is not actually transmitted or received by this module,
// making it more efficient from a simulation complexity perspective.
// Instead, such traffic modifies the buffer status information that is used by the
// ~BackgroundScheduler to allocate resources.
// Each background UE has a mobility submodule to configure its position in the
// simulation floor plan. This allows for realistic channel status information to be
// computed for the background UE and used by the ~BackgroundScheduler.
// Since this module does not send or receive actual traffic, application-level
// statistics are not produced.
//
module BackgroundUe
{
    parameters:
        @display("i=device/pocketpc");
        bool computeAvgInterference;
        bool enablePeriodicCqiUpdate;
        bool useProbabilisticCqi;
        *.computeAvgInterference = this.computeAvgInterference;
        *.enablePeriodicCqiUpdate = this.enablePeriodicCqiUpdate;
        *.useProbabilisticCqi = this.useProbabilisticCqi;
    submodules:
        mobility: <default("StationaryMobility")> like IMobility if typename != "" {
            @display("p=57,61;is=s");
        }
        generator: <default("TrafficGeneratorBase")> like ITrafficGenerator {
            @display("p=142,61;is=s");
        }
}

File: src/simu5g/background/trafficGenerator/BackgroundUe.ned