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 |
|---|---|---|
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