SingleCell_withSecondaryEnb

Package: simu5g.simulations.nr.networks

SingleCell_withSecondaryEnb

network

The mirror image of SingleCell_withSecondaryGnb: here the gNodeB is the master node and the eNodeB is its secondary, so the UE is anchored on its NR stack and its LTE stack carries the secondary cell group. All data-plane traffic enters at the gNodeB.

Unlike the EN-DC network, the core is a 5GC (Upf): that is NE-DC's shape in TS 37.340 -- an NR master pairs with a 5GC -- so its bearers are "5gc" bearers, selected by QFI, and SDAP is in the stack. The secondary eNodeB contributes the secondary cell group's radio leg over X2 and has no core-network link of its own; its bearers' PDCP terminates at the master (MN-terminated).

channelControl : LteChannelControl

Utility module that records the position of each LTE radio module in the network.

Source:
channelControl: LteChannelControl {
    @display("p=88,24;is=s");
} routingRecorder : RoutingTableRecorder
[from inet] ↗

Records changes in the routing tables (~Ipv4RoutingTable) and interface tables (~InterfaceTable) of...

Source:
routingRecorder: RoutingTableRecorder {
    @display("p=88,74;is=s");
} configurator : Ipv4NetworkConfigurator
[from inet] ↗

This module assigns IPv4 addresses and sets up static routing for an IPv4 network.

Source:
configurator: Ipv4NetworkConfigurator {
    @display("p=88,124;is=s");
} binder : Binder

The Binder module functions as a global repository of network-related information utilized...

Source:
binder: Binder {
    @display("p=88,174;is=s");
} bearerConfigurator : BearerConfigurator

Central configurator of the network's data radio bearers.

Source:
bearerConfigurator: BearerConfigurator {
    @display("p=88,224;is=s");
} carrierAggregation : CarrierAggregation

Implements the Carrier Aggregation (CA) functionality used at the Medium Access Control (MAC) layer...

Source:
carrierAggregation: CarrierAggregation {
    @display("p=88,274;is=s");
} server : StandardHost
[from inet] ↗

IPv4 host with SCTP, TCP, UDP layers and applications.

Source:
server: StandardHost {
    @display("p=210,63;is=n;i=device/server");
} router : Router
[from inet] ↗

IPv4 router that supports wireless, Ethernet, PPP and external interfaces.

Source:
router: Router {
    @display("p=361,62;i=device/smallrouter");
} upf : Upf

Implements the 5G Core User Plane Function (UPF).

Source:
upf: Upf {
    @display("p=524,63;is=l");
} iUpf : Upf

Implements the 5G Core User Plane Function (UPF).

Source:
iUpf: Upf {
    @display("p=524,170;is=l");
} masterGnb : gNodeB

Implements a gNodeB for a 5G network.

Source:
masterGnb: gNodeB {
    @display("p=527,277;is=vl");
} secondaryEnb : eNodeB

Models an evolved Node B (eNB) of a 4G LTE network.

Source:
secondaryEnb: eNodeB {
    @display("p=726,277;is=vl");
} bgCell[numBgCells] : BackgroundCell

Implements a lightweight model for a 4G eNodeB or 5G gNodeB for generating configurable inter-cell...

Source:
bgCell[numBgCells]: BackgroundCell {
    @display("p=910,98;is=vl");
} ue[numUe] : NrUe

Models a User Equipment (UE) for a 5G/LTE network.

Source:
ue[numUe]: NrUe {
    @display("p=628,411");
}

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Parameters

Name Type Default value Description
numUe int 1
numBgCells int 0

Properties

Name Value Description
isNetwork
display i=block/network2;bgb=991,558;bgi=background/pisa

Unassigned submodule parameters

Name Type Default value Description
channelControl.pMax double 20mW

Maximum sending power used for this network (in mW)

channelControl.sat double -110dBm

Signal attenuation threshold (in dBm)

channelControl.alpha double 2

Path loss coefficient

channelControl.carrierFrequency double 2.4GHz

Base carrier frequency of all the channels (in Hz)

channelControl.numChannels int 1

Number of radio channels (frequencies)

routingRecorder.enabled bool true
configurator.minLinkWeight double 1E-3
configurator.configureIsolatedNetworksSeparatly bool false
configurator.config xml xml("")

XML configuration parameters for IP address assignment and adding manual routes

configurator.assignAddresses bool true

assign IP addresses to all interfaces in the network

configurator.assignUniqueAddresses bool true

avoid using the same address and raise an error if not possible

configurator.assignDisjunctSubnetAddresses bool true

avoid using the same address prefix and netmask on different links when assigning IP addresses to interfaces

configurator.addStaticRoutes bool true

add static routes to the routing tables of all nodes to route to all destination interfaces (only where applicable; turn off when config file contains manual routes)

configurator.addDefaultRoutes bool true

add default routes if all routes from a source node go through the same gateway (used only if addStaticRoutes is true)

configurator.addSubnetRoutes bool true

add subnet routes instead of destination interface routes (only where applicable; used only if addStaticRoutes is true)

configurator.addDirectRoutes bool true

add direct routes (i.e. directly connected interfaces) to the routing table (used only if addStaticRoutes is true)

configurator.optimizeRoutes bool true

optimize routing tables by merging routes, the resulting routing table might route more packets than the original (used only if addStaticRoutes is true)

configurator.dumpTopology bool false

print extracted network topology to the module output

configurator.dumpLinks bool false

print recognized network links to the module output

configurator.dumpAddresses bool false

print assigned IP addresses for all interfaces to the module output

configurator.dumpRoutes bool false

print configured and optimized routing tables for all nodes to the module output

configurator.dumpConfig string ""

write configuration into the given config file that can be fed back to speed up subsequent runs (network configurations)

binder.blerShift int 0
binder.maxDataRatePerRb double 1.16Mbps
binder.printTrafficGeneratorConfig bool false
bearerConfigurator.binderModule string "binder"
bearerConfigurator.staticDrbs object []

JSON array: [{coreNetwork, ue, drbId, profile, mappedQfis, filters, lcg, rlcMode, legs, pduSessionType, upperProtocol, isDefault, suppressSdapHeader, gbr, packetDelayBudget, packetErrorRate, qosPriorityLevel}, ...]; see banner comment for details

bearerConfigurator.onDemandDrbs object [ // JSON array, staticDrbs schema minus "drbId" (and "ue" optional): bearers created when traffic first matches them; the default value lets both stack kinds run unauthored; see banner comment for details {coreNetwork: "epc", filters: ["VoIP*"], lcg: 0, rlcMode: "UM"}, {coreNetwork: "epc", filters: ["gaming*"], lcg: 2, rlcMode: "UM"}, {coreNetwork: "epc", filters: ["VoDPacket*", "VoDFinishPacket*"], lcg: 1, rlcMode: "UM"}, {coreNetwork: "epc", isDefault: true, lcg: 3, rlcMode: "UM"}, {coreNetwork: "5gc", isDefault: true, suppressSdapHeader: true, lcg: 3, rlcMode: "UM"} ]
bearerConfigurator.drbProfiles object {}

JSON map of named field groups referenced by the staticDrbs entries' "profile" field, e.g. {voice: {rlcMode: "UM", gbr: true, ...}, ...}; see banner comment

bearerConfigurator.dlQfiRules object [{dscpAsQfi: true}]

QFI classification rules, delivered to their evaluation sites (see banner comment)

bearerConfigurator.ulQfiRules object []

JSON array of uplink QFI-assignment rules [{ue, filter, qfi|dscpAsQfi}, ...], delivered to the UEs' QoS-flow classifiers; [] = classify nothing

bearerConfigurator.amPerThreshold double 1e-4

QoS-derived RAN defaults for definitions that do not state rlcMode/lcg themselves (operator policy, not spec-mandated: 3GPP standardizes the QoS characteristics, the RAN chooses what to make of them)

bearerConfigurator.lcgPriorityBounds object [25, 50, 75]

Lcg derivation: qosPriorityLevel < bounds[k] -> LCG k, else LCG 3; strictly ascending, one bound between each pair of adjacent LCGs

carrierAggregation.componentCarrier.binderModule string "binder"
carrierAggregation.componentCarrier.carrierFrequency double 2GHz

Carrier Frequency (GHz)

carrierAggregation.componentCarrier.numBands int 6

Number of bands for this channel

carrierAggregation.componentCarrier.numerologyIndex int 0

Numerology index

carrierAggregation.componentCarrier.useTdd bool false
carrierAggregation.componentCarrier.tddNumSymbolsDl int 7
carrierAggregation.componentCarrier.tddNumSymbolsUl int 7
server.status.initialStatus string "UP"

TODO @signal, @statistic

server.pcapRecorder.verbose bool true

whether to log packets on the module output

server.pcapRecorder.pcapFile string ""

the PCAP file to be written

server.pcapRecorder.fileFormat string "pcapng"
server.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

server.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

server.pcapRecorder.moduleNamePatterns string "wlan[*] eth[*] ppp[*]"

space-separated list of sibling module names to listen on

server.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

server.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

server.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

server.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

server.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

server.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

server.pcapRecorder.displayStringTextFormat string "rec: %n pks"
server.interfaceTable.displayAddresses bool false

whether to display IP addresses on links

server.cb.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

server.cb.forwardServiceRegistration bool true
server.cb.forwardProtocolRegistration bool true
server.bl.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

server.bl.forwardServiceRegistration bool true
server.bl.forwardProtocolRegistration bool true
server.li.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

server.li.forwardServiceRegistration bool true
server.li.forwardProtocolRegistration bool true
server.eth.bitrate double
server.nl.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

server.nl.forwardServiceRegistration bool true
server.nl.forwardProtocolRegistration bool true
server.tn.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

server.tn.forwardServiceRegistration bool true
server.tn.forwardProtocolRegistration bool true
server.at.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

server.at.forwardServiceRegistration bool true
server.at.forwardProtocolRegistration bool true
router.status.initialStatus string "UP"

TODO @signal, @statistic

router.pcapRecorder.verbose bool true

whether to log packets on the module output

router.pcapRecorder.pcapFile string ""

the PCAP file to be written

router.pcapRecorder.fileFormat string "pcapng"
router.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

router.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

router.pcapRecorder.moduleNamePatterns string "wlan[*] eth[*] ppp[*]"

space-separated list of sibling module names to listen on

router.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

router.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

router.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

router.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

router.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

router.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

router.pcapRecorder.displayStringTextFormat string "rec: %n pks"
router.interfaceTable.displayAddresses bool false

whether to display IP addresses on links

router.cb.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

router.cb.forwardServiceRegistration bool true
router.cb.forwardProtocolRegistration bool true
router.bl.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

router.bl.forwardServiceRegistration bool true
router.bl.forwardProtocolRegistration bool true
router.li.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

router.li.forwardServiceRegistration bool true
router.li.forwardProtocolRegistration bool true
router.eth.bitrate double
router.nl.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

router.nl.forwardServiceRegistration bool true
router.nl.forwardProtocolRegistration bool true
router.tn.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

router.tn.forwardServiceRegistration bool true
router.tn.forwardProtocolRegistration bool true
router.at.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

router.at.forwardServiceRegistration bool true
router.at.forwardProtocolRegistration bool true
router.bgp.interfaceTableModule string

The path to the InterfaceTable module

router.bgp.routingTableModule string
router.bgp.ospfRoutingModule string parent.hasOspf ? "^.ospf" : ""
upf.status.initialStatus string "UP"

TODO @signal, @statistic

upf.pcapRecorder.verbose bool true

whether to log packets on the module output

upf.pcapRecorder.pcapFile string ""

the PCAP file to be written

upf.pcapRecorder.fileFormat string "pcapng"
upf.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

upf.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

upf.pcapRecorder.moduleNamePatterns string "wlan[*] eth[*] ppp[*]"

space-separated list of sibling module names to listen on

upf.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

upf.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

upf.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

upf.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

upf.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

upf.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

upf.pcapRecorder.displayStringTextFormat string "rec: %n pks"
upf.interfaceTable.displayAddresses bool false

whether to display IP addresses on links

upf.cb.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

upf.cb.forwardServiceRegistration bool true
upf.cb.forwardProtocolRegistration bool true
upf.bl.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

upf.bl.forwardServiceRegistration bool true
upf.bl.forwardProtocolRegistration bool true
upf.li.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

upf.li.forwardServiceRegistration bool true
upf.li.forwardProtocolRegistration bool true
upf.eth.bitrate double
upf.nl.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

upf.nl.forwardServiceRegistration bool true
upf.nl.forwardProtocolRegistration bool true
upf.tn.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

upf.tn.forwardServiceRegistration bool true
upf.tn.forwardProtocolRegistration bool true
upf.at.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

upf.at.forwardServiceRegistration bool true
upf.at.forwardProtocolRegistration bool true
upf.dnPpp.pcapRecorder.verbose bool true

whether to log packets on the module output

upf.dnPpp.pcapRecorder.pcapFile string ""

the PCAP file to be written

upf.dnPpp.pcapRecorder.fileFormat string "pcapng"
upf.dnPpp.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

upf.dnPpp.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

upf.dnPpp.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

upf.dnPpp.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

upf.dnPpp.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

upf.dnPpp.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

upf.dnPpp.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

upf.dnPpp.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

upf.dnPpp.pcapRecorder.displayStringTextFormat string "rec: %n pks"
upf.dnPpp.ppp.interfaceTableModule string

The path to the InterfaceTable module

upf.dnPpp.ppp.displayStringTextFormat string "rate: %b\nsent: %s, rcvd: %r\nqueue: %q, drop: %d"
upf.dnPpp.ppp.sendRawBytes bool false

when true packets are serialized into a sequence of bytes before sending out

upf.dnPpp.ppp.mtu int 4470B
upf.dnPpp.ppp.stopOperationExtraTime double -1s

extra time after lifecycle stop operation finished

upf.dnPpp.ppp.stopOperationTimeout double 2s

timeout value for lifecycle stop operation

upf.trafficFlowFilter.binderModule string "binder"
upf.trafficFlowFilter.bearerConfiguratorModule string "bearerConfigurator"

Where a core-network instance registers for QFI-rule delivery

upf.trafficFlowFilter.fastForwarding bool true
upf.gtp_user.binderModule string "binder"
upf.gtp_user.interfaceTableModule string

Path to the InterfaceTable module

upf.gtp_user.ipOutInterface string ""

Optional: manual specification of outgoing interface for received IP

upf.gtp_user.localPort int 31
upf.gtp_user.tunnelPeerPort int 31
iUpf.status.initialStatus string "UP"

TODO @signal, @statistic

iUpf.pcapRecorder.verbose bool true

whether to log packets on the module output

iUpf.pcapRecorder.pcapFile string ""

the PCAP file to be written

iUpf.pcapRecorder.fileFormat string "pcapng"
iUpf.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

iUpf.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

iUpf.pcapRecorder.moduleNamePatterns string "wlan[*] eth[*] ppp[*]"

space-separated list of sibling module names to listen on

iUpf.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

iUpf.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

iUpf.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

iUpf.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

iUpf.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

iUpf.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

iUpf.pcapRecorder.displayStringTextFormat string "rec: %n pks"
iUpf.interfaceTable.displayAddresses bool false

whether to display IP addresses on links

iUpf.cb.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

iUpf.cb.forwardServiceRegistration bool true
iUpf.cb.forwardProtocolRegistration bool true
iUpf.bl.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

iUpf.bl.forwardServiceRegistration bool true
iUpf.bl.forwardProtocolRegistration bool true
iUpf.li.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

iUpf.li.forwardServiceRegistration bool true
iUpf.li.forwardProtocolRegistration bool true
iUpf.eth.bitrate double
iUpf.nl.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

iUpf.nl.forwardServiceRegistration bool true
iUpf.nl.forwardProtocolRegistration bool true
iUpf.tn.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

iUpf.tn.forwardServiceRegistration bool true
iUpf.tn.forwardProtocolRegistration bool true
iUpf.at.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

iUpf.at.forwardServiceRegistration bool true
iUpf.at.forwardProtocolRegistration bool true
iUpf.dnPpp.pcapRecorder.verbose bool true

whether to log packets on the module output

iUpf.dnPpp.pcapRecorder.pcapFile string ""

the PCAP file to be written

iUpf.dnPpp.pcapRecorder.fileFormat string "pcapng"
iUpf.dnPpp.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

iUpf.dnPpp.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

iUpf.dnPpp.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

iUpf.dnPpp.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

iUpf.dnPpp.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

iUpf.dnPpp.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

iUpf.dnPpp.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

iUpf.dnPpp.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

iUpf.dnPpp.pcapRecorder.displayStringTextFormat string "rec: %n pks"
iUpf.dnPpp.ppp.interfaceTableModule string

The path to the InterfaceTable module

iUpf.dnPpp.ppp.displayStringTextFormat string "rate: %b\nsent: %s, rcvd: %r\nqueue: %q, drop: %d"
iUpf.dnPpp.ppp.sendRawBytes bool false

when true packets are serialized into a sequence of bytes before sending out

iUpf.dnPpp.ppp.mtu int 4470B
iUpf.dnPpp.ppp.stopOperationExtraTime double -1s

extra time after lifecycle stop operation finished

iUpf.dnPpp.ppp.stopOperationTimeout double 2s

timeout value for lifecycle stop operation

iUpf.trafficFlowFilter.binderModule string "binder"
iUpf.trafficFlowFilter.bearerConfiguratorModule string "bearerConfigurator"

Where a core-network instance registers for QFI-rule delivery

iUpf.trafficFlowFilter.fastForwarding bool true
iUpf.gtp_user.binderModule string "binder"
iUpf.gtp_user.interfaceTableModule string

Path to the InterfaceTable module

iUpf.gtp_user.ipOutInterface string ""

Optional: manual specification of outgoing interface for received IP

iUpf.gtp_user.localPort int 31
iUpf.gtp_user.tunnelPeerPort int 31
masterGnb.interfaceTable.displayAddresses bool false

whether to display IP addresses on links

masterGnb.mobility.subjectModule string "^"

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

masterGnb.mobility.coordinateSystemModule string ""

module path of the geographic coordinate system module

masterGnb.mobility.displayStringTextFormat string "p: %p\nv: %v"

format string for the mobility module's display string text

masterGnb.mobility.updateDisplayString bool true

enables continuous update of the subject module's position via modifying its display string

masterGnb.mobility.constraintAreaMinX double -inf m

min x position of the constraint area, unconstrained by default (negative infinity)

masterGnb.mobility.constraintAreaMinY double -inf m

min y position of the constraint area, unconstrained by default (negative infinity)

masterGnb.mobility.constraintAreaMinZ double -inf m

min z position of the constraint area, unconstrained by default (negative infinity)

masterGnb.mobility.constraintAreaMaxX double inf m

max x position of the constraint area, unconstrained by default (positive infinity)

masterGnb.mobility.constraintAreaMaxY double inf m

max y position of the constraint area, unconstrained by default (positive infinity)

masterGnb.mobility.constraintAreaMaxZ double inf m

max z position of the constraint area, unconstrained by default (positive infinity)

masterGnb.mobility.initialX double uniform(this.constraintAreaMinX, this.constraintAreaMaxX)
masterGnb.mobility.initialY double uniform(this.constraintAreaMinY, this.constraintAreaMaxY)
masterGnb.mobility.initialZ double nanToZero(uniform(this.constraintAreaMinZ, this.constraintAreaMaxZ))
masterGnb.mobility.initialLatitude double nan deg
masterGnb.mobility.initialLongitude double nan deg
masterGnb.mobility.initialAltitude double 0m
masterGnb.mobility.initialHeading double 0deg
masterGnb.mobility.initialElevation double 0deg
masterGnb.mobility.initialBank double 0deg
masterGnb.mobility.initFromDisplayString bool true

enables one time initialization from the subject module's display string

masterGnb.mobility.updateFromDisplayString bool true

enables continuous update from the subject module's display string for dragging and rotating it

masterGnb.cellInfo.constraintAreaMinX double -1m/0

The minimum X-coordinate of the area constraint, unconstrained by default

masterGnb.cellInfo.constraintAreaMinY double -1m/0

The minimum Y-coordinate of the area constraint, unconstrained by default

masterGnb.cellInfo.constraintAreaMaxX double 1m/0

The maximum X-coordinate of the area constraint, unconstrained by default

masterGnb.cellInfo.constraintAreaMaxY double 1m/0

The maximum Y-coordinate of the area constraint, unconstrained by default

masterGnb.cellInfo.beaconInterval double 1s

Interval for sending broadcast messages (used for handover or DAS)

masterGnb.cellInfo.microCell bool false

Type of eNodeB (MICRO / MACRO) - valid only for eNodeBs

masterGnb.cellInfo.rbyDl int 12

Number of sub-carriers per RB in DL

masterGnb.cellInfo.rbyUl int 12

Number of sub-carriers per RB in UL

masterGnb.cellInfo.rbxDl int 7

Number of OFDM symbols per slot in DL

masterGnb.cellInfo.rbxUl int 7

Number of OFDM symbols per slot in UL

masterGnb.cellInfo.rbPilotDl int 3

Number of pilot Resource Elements per RB in DL

masterGnb.cellInfo.rbPilotUl int 0

Number of pilot Resource Elements per RB in UL

masterGnb.cellInfo.signalDl int 1

Number of signaling symbols for each Resource Block in DL

masterGnb.cellInfo.signalUl int 1

Number of signaling symbols for each Resource Block in UL

masterGnb.cellInfo.numPreferredBands int 1

Number of preferred bands to use (relevant only in PREFERRED mode)

masterGnb.cellInfo.binderModule string "binder"
masterGnb.collector.collectorType string

One of "eNBStatsCollector", "gNBStatsCollector", "ueStatsCollector", "NrUeStatsCollector"

masterGnb.pppIf.pcapRecorder.verbose bool true

whether to log packets on the module output

masterGnb.pppIf.pcapRecorder.pcapFile string ""

the PCAP file to be written

masterGnb.pppIf.pcapRecorder.fileFormat string "pcapng"
masterGnb.pppIf.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

masterGnb.pppIf.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

masterGnb.pppIf.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

masterGnb.pppIf.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

masterGnb.pppIf.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

masterGnb.pppIf.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

masterGnb.pppIf.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

masterGnb.pppIf.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

masterGnb.pppIf.pcapRecorder.displayStringTextFormat string "rec: %n pks"
masterGnb.pppIf.ppp.interfaceTableModule string

The path to the InterfaceTable module

masterGnb.pppIf.ppp.displayStringTextFormat string "rate: %b\nsent: %s, rcvd: %r\nqueue: %q, drop: %d"
masterGnb.pppIf.ppp.sendRawBytes bool false

when true packets are serialized into a sequence of bytes before sending out

masterGnb.pppIf.ppp.mtu int 4470B
masterGnb.pppIf.ppp.stopOperationExtraTime double -1s

extra time after lifecycle stop operation finished

masterGnb.pppIf.ppp.stopOperationTimeout double 2s

timeout value for lifecycle stop operation

masterGnb.x2ppp.pcapRecorder.verbose bool true

whether to log packets on the module output

masterGnb.x2ppp.pcapRecorder.pcapFile string ""

the PCAP file to be written

masterGnb.x2ppp.pcapRecorder.fileFormat string "pcapng"
masterGnb.x2ppp.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

masterGnb.x2ppp.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

masterGnb.x2ppp.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

masterGnb.x2ppp.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

masterGnb.x2ppp.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

masterGnb.x2ppp.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

masterGnb.x2ppp.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

masterGnb.x2ppp.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

masterGnb.x2ppp.pcapRecorder.displayStringTextFormat string "rec: %n pks"
masterGnb.x2ppp.ppp.interfaceTableModule string

The path to the InterfaceTable module

masterGnb.x2ppp.ppp.displayStringTextFormat string "rate: %b\nsent: %s, rcvd: %r\nqueue: %q, drop: %d"
masterGnb.x2ppp.ppp.sendRawBytes bool false

when true packets are serialized into a sequence of bytes before sending out

masterGnb.x2ppp.ppp.mtu int 4470B
masterGnb.x2ppp.ppp.stopOperationExtraTime double -1s

extra time after lifecycle stop operation finished

masterGnb.x2ppp.ppp.stopOperationTimeout double 2s

timeout value for lifecycle stop operation

masterGnb.pppMEHostIf.pcapRecorder.verbose bool true

whether to log packets on the module output

masterGnb.pppMEHostIf.pcapRecorder.pcapFile string ""

the PCAP file to be written

masterGnb.pppMEHostIf.pcapRecorder.fileFormat string "pcapng"
masterGnb.pppMEHostIf.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

masterGnb.pppMEHostIf.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

masterGnb.pppMEHostIf.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

masterGnb.pppMEHostIf.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

masterGnb.pppMEHostIf.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

masterGnb.pppMEHostIf.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

masterGnb.pppMEHostIf.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

masterGnb.pppMEHostIf.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

masterGnb.pppMEHostIf.pcapRecorder.displayStringTextFormat string "rec: %n pks"
masterGnb.pppMEHostIf.ppp.interfaceTableModule string

The path to the InterfaceTable module

masterGnb.pppMEHostIf.ppp.displayStringTextFormat string "rate: %b\nsent: %s, rcvd: %r\nqueue: %q, drop: %d"
masterGnb.pppMEHostIf.ppp.sendRawBytes bool false

when true packets are serialized into a sequence of bytes before sending out

masterGnb.pppMEHostIf.ppp.mtu int 4470B
masterGnb.pppMEHostIf.ppp.stopOperationExtraTime double -1s

extra time after lifecycle stop operation finished

masterGnb.pppMEHostIf.ppp.stopOperationTimeout double 2s

timeout value for lifecycle stop operation

masterGnb.udp.interfaceTableModule string

The path to the InterfaceTable module

masterGnb.udp.icmpModule string "^.ipv4.icmp"
masterGnb.udp.icmpv6Module string "^.ipv6.icmpv6"
masterGnb.udp.crcMode string "declared"
masterGnb.udp.defaultMulticastLoop bool true
masterGnb.tcp.crcMode string "declared"
masterGnb.tcp.advertisedWindow int 14*this.mss

in bytes, corresponds with the maximal receiver buffer capacity (Note: normally, NIC queues should be at least this size)

masterGnb.tcp.delayedAcksEnabled bool false

delayed ACK algorithm (RFC 1122) enabled/disabled

masterGnb.tcp.nagleEnabled bool true

Nagle's algorithm (RFC 896) enabled/disabled

masterGnb.tcp.limitedTransmitEnabled bool false

Limited Transmit algorithm (RFC 3042) enabled/disabled (can be used for TcpReno/TcpTahoe/TcpNewReno/TcpNoCongestionControl)

masterGnb.tcp.increasedIWEnabled bool false

Increased Initial Window (RFC 3390) enabled/disabled

masterGnb.tcp.sackSupport bool false

Selective Acknowledgment (RFC 2018, 2883, 3517) support (header option) (SACK will be enabled for a connection if both endpoints support it)

masterGnb.tcp.windowScalingSupport bool false

Window Scale (RFC 1323) support (header option) (WS will be enabled for a connection if both endpoints support it)

masterGnb.tcp.windowScalingFactor int -1

Window Scaling Factor to the power of 2. -1 indicates that manual window scaling is turned off.

masterGnb.tcp.timestampSupport bool false

Timestamps (RFC 1323) support (header option) (TS will be enabled for a connection if both endpoints support it)

masterGnb.tcp.mss int 536

Maximum Segment Size (RFC 793) (header option)

masterGnb.tcp.msl int 120s

Maximum Segment Lifetime

masterGnb.tcp.tcpAlgorithmClass string "TcpReno"

TODO: use the following @enum or similar, but it must allow new values for user defined algorithms (omnetpp-6.1 checks @enum strictly): @enum("TcpVegas", "TcpWestwood", "TcpNewReno", "TcpReno", "TcpTahoe", "TcpNoCongestionControl")

masterGnb.tcp.useDataNotification bool false

turn the notifications for arrived data on or off

masterGnb.tcp.dupthresh int 3

used for TcpTahoe, TcpReno and SACK (RFC 3517) DO NOT change unless you really know what you are doing

masterGnb.tcp.initialSsthresh int 0xFFFFFFFF

initial value for Slow Start threshold used in TahoeRenoFamily. The initial value of ssthresh SHOULD be set arbitrarily high (e.g.,to the size of the largest possible advertised window) Without user interaction there is no limit...

masterGnb.tcp.stopOperationExtraTime double 0s

extra time after lifecycle stop operation finished

masterGnb.tcp.stopOperationTimeout double 2s

timeout value for lifecycle stop operation

masterGnb.tcp.ecnWillingness bool false

true if willing to use ECN

masterGnb.tcp.dctcpGamma double 0.0625

A fixed estimation gain for calculating dctcp_alpha (RFC 8257 4.2)

masterGnb.x2App.client.localAddress string ""

comma separated list of addresses

masterGnb.x2App.client.localPort int 0

port number to listen on

masterGnb.x2App.client.connectAddress string

server address (may be symbolic)

masterGnb.x2App.client.connectPort int 5000

port number to connect to

masterGnb.x2App.client.startTime double 0s

time first session begins

masterGnb.x2App.client.numRequestsPerSession int 1

number of requests sent per session

masterGnb.x2App.client.numPacketsToReceive int 0
masterGnb.x2App.client.requestLength int 1452

length of a request (bytes)

masterGnb.x2App.client.thinkTime double 0s

time gap between requests

masterGnb.x2App.client.waitToClose double 0s

time to wait between last message sent and abort

masterGnb.x2App.client.reconnectInterval double 0s

if connection breaks, waits this much before trying to reconnect

masterGnb.x2App.client.inboundStreams int 17
masterGnb.x2App.client.outboundStreams int 1
masterGnb.x2App.client.echo bool false

echoes received packages when true

masterGnb.x2App.client.ordered bool true
masterGnb.x2App.client.queueSize int 0
masterGnb.x2App.client.prMethod int 0

0=NONE, 1=PR_TTL, 2=PR_RTX, 3=PR_PRIO, 4=PR_STRRST

masterGnb.x2App.client.prValue double 0

for PR-SCTP

masterGnb.x2App.client.streamReset bool false
masterGnb.x2App.client.streamRequestTime double 0s
masterGnb.x2App.client.streamResetType int 5

NO_RESET=5, RESET_OUTGOING=6, RESET_INCOMING=7, RESET_BOTH=8, SSN_TSN=9

masterGnb.x2App.client.streamToReset int 0
masterGnb.x2App.client.stopTime double -1s

time of finishing sending, negative values mean forever

masterGnb.x2App.client.primaryTime double 0s
masterGnb.x2App.client.newPrimary string ""
masterGnb.x2App.client.streamRequestLengths string ""
masterGnb.x2App.client.streamRequestRatio string ""
masterGnb.x2App.client.streamPriorities string ""
masterGnb.x2App.client.finishEndsSimulation bool false
masterGnb.x2App.client.binderModule string "binder"
masterGnb.x2App.server.localAddress string ""

comma separated list of addresses

masterGnb.x2App.server.localPort int 0

port number to listen on

masterGnb.x2App.server.echo bool false

echoes received packages when true

masterGnb.x2App.server.echoDelay double 0s
masterGnb.x2App.server.delayFirstRead double 0s
masterGnb.x2App.server.readingInterval double 0s
masterGnb.x2App.server.messagesToPush int 0
masterGnb.x2App.server.numPacketsToSendPerClient int 0

number of requests sent per session

masterGnb.x2App.server.numPacketsToReceivePerClient int 1
masterGnb.x2App.server.requestLength int 1452

length of a request (bytes)

masterGnb.x2App.server.thinkTime double 0s

time gap between requests

masterGnb.x2App.server.waitToClose double 0s

time to wait between last message sent and abort

masterGnb.x2App.server.finishEndsSimulation bool false
masterGnb.x2App.server.ordered bool true
masterGnb.x2App.server.inboundStreams int 17
masterGnb.x2App.server.outboundStreams int 1
masterGnb.x2App.server.queueSize int 0
masterGnb.x2App.server.prMethod int 0

0=NONE, 1=PR_TTL, 2=PR_RTX, 3=PR_PRIO, 4=PR_STRRST

masterGnb.x2App.server.prValue double 0

for PR-SCTP

masterGnb.x2App.server.streamReset bool false
masterGnb.x2App.server.streamRequestTime double 0s
masterGnb.x2App.server.streamToReset int 0
masterGnb.x2App.server.streamPriorities string ""
masterGnb.x2App.server.binderModule string "binder"
masterGnb.sctp.interfaceTableModule string
masterGnb.sctp.routingTableModule string
masterGnb.sctp.crcMode string "declared"
masterGnb.sctp.numGapReports int 3
masterGnb.sctp.rtoInitial double 3s
masterGnb.sctp.rtoMin double 1s
masterGnb.sctp.rtoMax double 60s
masterGnb.sctp.rtoAlpha double 0.125
masterGnb.sctp.rtoBeta double 0.250
masterGnb.sctp.maxBurst int 4
masterGnb.sctp.maxBurstVariant string "maxBurst"
masterGnb.sctp.initialWindow int 0
masterGnb.sctp.assocMaxRetrans int 10
masterGnb.sctp.pathMaxRetrans int 5
masterGnb.sctp.maxInitRetrans int 8
masterGnb.sctp.sackPeriod double 200ms
masterGnb.sctp.sackFrequency int 2
masterGnb.sctp.reactivatePrimaryPath bool false
masterGnb.sctp.sendQueueLimit int 0
masterGnb.sctp.validCookieLifetime double 10s
masterGnb.sctp.enableHeartbeats bool true
masterGnb.sctp.hbInterval double 30s
masterGnb.sctp.sendHeartbeatsOnActivePaths bool false
masterGnb.sctp.nagleEnabled bool true
masterGnb.sctp.naglePoint int 1468
masterGnb.sctp.fragPoint int 1452
masterGnb.sctp.fastRecoverySupported bool true
masterGnb.sctp.sctpAlgorithmClass string "SctpAlg"
masterGnb.sctp.ccModule int 0

RFC4960=0

masterGnb.sctp.osbWithHeader bool false
masterGnb.sctp.RTXMethod int 0

0=Once after 3 Sacks; 1=once per RTT; 2=Switch off Fast Retransmit; 3=Always after 3 Sacks

masterGnb.sctp.ssModule int 0
masterGnb.sctp.arwnd int 65535
masterGnb.sctp.swsLimit int 3000

Limit for SWS

masterGnb.sctp.udpEncapsEnabled bool false
masterGnb.sctp.natFriendly bool false
masterGnb.sctp.bytesToAddPerRcvdChunk int 0

for flowcontrol

masterGnb.sctp.bytesToAddPerPeerChunk int 0

for flowcontrol

masterGnb.sctp.tellArwnd bool false

for flowcontrol

masterGnb.sctp.messageAcceptLimit int 0

for flowcontrol

masterGnb.sctp.fairStart double 0s
masterGnb.sctp.fairStop double 0s
masterGnb.sctp.streamsToPaths string ""
masterGnb.sctp.startEndToEndDelay int 0
masterGnb.sctp.stopEndToEndDelay int 10
masterGnb.sctp.throughputInterval double 1
masterGnb.sctp.auth bool false
masterGnb.sctp.chunks string ""
masterGnb.sctp.padding bool false
masterGnb.sctp.addIP bool false
masterGnb.sctp.addTime double 0s
masterGnb.sctp.addAddress string ""
masterGnb.sctp.addIpType string "0"

SET_PRIMARY_ADDRESS=49156,ADD_IP_ADDRESS=49153,DELETE_IP_ADDRESS=49154

masterGnb.sctp.packetDrop bool false
masterGnb.sctp.sackNow bool false
masterGnb.sctp.highSpeedCC bool false
masterGnb.sctp.checkSackSeqNumber bool false
masterGnb.sctp.nrSack bool false
masterGnb.sctp.disableReneging bool false
masterGnb.sctp.gapReportLimit int 100000000
masterGnb.sctp.gapListOptimizationVariant string "none"
masterGnb.sctp.smartOverfullSACKHandling bool false
masterGnb.sctp.allowQoSTracking bool false
masterGnb.sctp.qosTrackingInterval double 1.0s
masterGnb.sctp.cmtSendAllVariant string "normal"
masterGnb.sctp.cmtRetransmissionVariant string "normal"
masterGnb.sctp.cmtCUCVariant string "normal"
masterGnb.sctp.cmtBufferSplitVariant string "none"
masterGnb.sctp.cmtBufferSplittingUsesOSB bool false
masterGnb.sctp.cmtUseSFR bool true
masterGnb.sctp.cmtUseDAC bool true
masterGnb.sctp.cmtUseFRC bool true
masterGnb.sctp.cmtSmartT3Reset bool true
masterGnb.sctp.cmtSmartFastRTX bool true
masterGnb.sctp.cmtSmartReneging bool false
masterGnb.sctp.cmtSlowPathRTTUpdate bool false
masterGnb.sctp.cmtChunkReschedulingVariant string "none"
masterGnb.sctp.cmtChunkReschedulingThreshold double 0.5
masterGnb.sctp.cmtMovedChunksReduceCwnd bool true
masterGnb.sctp.movedChunkFastRTXFactor double 2.0
masterGnb.sctp.cmtSackPath string "standard"
masterGnb.sctp.strictCwndBooking bool false
masterGnb.sctp.cmtCCVariant string "off"

CMT Congestion Control Variant off = use over every path the default RFC4960 CC (New Reno) lia = First resource pooling congestion control RFC6356 adapted for SCTP - https://datatracker.ietf.org/doc/rfc6356/ olia = alternative MPTCP CC, adapted for SCTP- https://tools.ietf.org/html/draft-khalili-mptcp-congestion-control-05 cmtrpv1 = First resource pooling based CC for SCTP - https://www.tdr.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/AINA2010.pdf cmtrpv2 = Updated version of cmtrpv1 - https://www.tdr.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/ConTEL2011.pdf

masterGnb.sctp.cmtCCPathGroups string ""
masterGnb.sctp.rpPathBlocking bool false
masterGnb.sctp.rpScaleBlockingTimeout bool false
masterGnb.sctp.rpMinCwnd int 1
masterGnb.at.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

masterGnb.at.forwardServiceRegistration bool true
masterGnb.at.forwardProtocolRegistration bool true
masterGnb.tn.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

masterGnb.tn.forwardServiceRegistration bool true
masterGnb.tn.forwardProtocolRegistration bool true
masterGnb.nl.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

masterGnb.nl.forwardServiceRegistration bool true
masterGnb.nl.forwardProtocolRegistration bool true
masterGnb.trafficFlowFilter.binderModule string "binder"
masterGnb.trafficFlowFilter.bearerConfiguratorModule string "bearerConfigurator"

Where a core-network instance registers for QFI-rule delivery

masterGnb.trafficFlowFilter.fastForwarding bool true
masterGnb.gtpUser.binderModule string "binder"
masterGnb.gtpUser.interfaceTableModule string

Path to the InterfaceTable module

masterGnb.gtpUser.localPort int 31
masterGnb.gtpUser.tunnelPeerPort int 31
masterGnb.gtpUserX2.binderModule string "binder"
masterGnb.gtpUserX2.localPort int 32
masterGnb.gtpUserX2.tunnelPeerPort int 32
secondaryEnb.interfaceTable.displayAddresses bool false

whether to display IP addresses on links

secondaryEnb.mobility.subjectModule string "^"

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

secondaryEnb.mobility.coordinateSystemModule string ""

module path of the geographic coordinate system module

secondaryEnb.mobility.displayStringTextFormat string "p: %p\nv: %v"

format string for the mobility module's display string text

secondaryEnb.mobility.updateDisplayString bool true

enables continuous update of the subject module's position via modifying its display string

secondaryEnb.mobility.constraintAreaMinX double -inf m

min x position of the constraint area, unconstrained by default (negative infinity)

secondaryEnb.mobility.constraintAreaMinY double -inf m

min y position of the constraint area, unconstrained by default (negative infinity)

secondaryEnb.mobility.constraintAreaMinZ double -inf m

min z position of the constraint area, unconstrained by default (negative infinity)

secondaryEnb.mobility.constraintAreaMaxX double inf m

max x position of the constraint area, unconstrained by default (positive infinity)

secondaryEnb.mobility.constraintAreaMaxY double inf m

max y position of the constraint area, unconstrained by default (positive infinity)

secondaryEnb.mobility.constraintAreaMaxZ double inf m

max z position of the constraint area, unconstrained by default (positive infinity)

secondaryEnb.mobility.initialX double uniform(this.constraintAreaMinX, this.constraintAreaMaxX)
secondaryEnb.mobility.initialY double uniform(this.constraintAreaMinY, this.constraintAreaMaxY)
secondaryEnb.mobility.initialZ double nanToZero(uniform(this.constraintAreaMinZ, this.constraintAreaMaxZ))
secondaryEnb.mobility.initialLatitude double nan deg
secondaryEnb.mobility.initialLongitude double nan deg
secondaryEnb.mobility.initialAltitude double 0m
secondaryEnb.mobility.initialHeading double 0deg
secondaryEnb.mobility.initialElevation double 0deg
secondaryEnb.mobility.initialBank double 0deg
secondaryEnb.mobility.initFromDisplayString bool true

enables one time initialization from the subject module's display string

secondaryEnb.mobility.updateFromDisplayString bool true

enables continuous update from the subject module's display string for dragging and rotating it

secondaryEnb.cellInfo.constraintAreaMinX double -1m/0

The minimum X-coordinate of the area constraint, unconstrained by default

secondaryEnb.cellInfo.constraintAreaMinY double -1m/0

The minimum Y-coordinate of the area constraint, unconstrained by default

secondaryEnb.cellInfo.constraintAreaMaxX double 1m/0

The maximum X-coordinate of the area constraint, unconstrained by default

secondaryEnb.cellInfo.constraintAreaMaxY double 1m/0

The maximum Y-coordinate of the area constraint, unconstrained by default

secondaryEnb.cellInfo.beaconInterval double 1s

Interval for sending broadcast messages (used for handover or DAS)

secondaryEnb.cellInfo.microCell bool false

Type of eNodeB (MICRO / MACRO) - valid only for eNodeBs

secondaryEnb.cellInfo.rbyDl int 12

Number of sub-carriers per RB in DL

secondaryEnb.cellInfo.rbyUl int 12

Number of sub-carriers per RB in UL

secondaryEnb.cellInfo.rbxDl int 7

Number of OFDM symbols per slot in DL

secondaryEnb.cellInfo.rbxUl int 7

Number of OFDM symbols per slot in UL

secondaryEnb.cellInfo.rbPilotDl int 3

Number of pilot Resource Elements per RB in DL

secondaryEnb.cellInfo.rbPilotUl int 0

Number of pilot Resource Elements per RB in UL

secondaryEnb.cellInfo.signalDl int 1

Number of signaling symbols for each Resource Block in DL

secondaryEnb.cellInfo.signalUl int 1

Number of signaling symbols for each Resource Block in UL

secondaryEnb.cellInfo.numPreferredBands int 1

Number of preferred bands to use (relevant only in PREFERRED mode)

secondaryEnb.cellInfo.binderModule string "binder"
secondaryEnb.collector.collectorType string

One of "eNBStatsCollector", "gNBStatsCollector", "ueStatsCollector", "NrUeStatsCollector"

secondaryEnb.pppIf.pcapRecorder.verbose bool true

whether to log packets on the module output

secondaryEnb.pppIf.pcapRecorder.pcapFile string ""

the PCAP file to be written

secondaryEnb.pppIf.pcapRecorder.fileFormat string "pcapng"
secondaryEnb.pppIf.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

secondaryEnb.pppIf.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

secondaryEnb.pppIf.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

secondaryEnb.pppIf.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

secondaryEnb.pppIf.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

secondaryEnb.pppIf.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

secondaryEnb.pppIf.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

secondaryEnb.pppIf.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

secondaryEnb.pppIf.pcapRecorder.displayStringTextFormat string "rec: %n pks"
secondaryEnb.pppIf.ppp.interfaceTableModule string

The path to the InterfaceTable module

secondaryEnb.pppIf.ppp.displayStringTextFormat string "rate: %b\nsent: %s, rcvd: %r\nqueue: %q, drop: %d"
secondaryEnb.pppIf.ppp.sendRawBytes bool false

when true packets are serialized into a sequence of bytes before sending out

secondaryEnb.pppIf.ppp.mtu int 4470B
secondaryEnb.pppIf.ppp.stopOperationExtraTime double -1s

extra time after lifecycle stop operation finished

secondaryEnb.pppIf.ppp.stopOperationTimeout double 2s

timeout value for lifecycle stop operation

secondaryEnb.x2ppp.pcapRecorder.verbose bool true

whether to log packets on the module output

secondaryEnb.x2ppp.pcapRecorder.pcapFile string ""

the PCAP file to be written

secondaryEnb.x2ppp.pcapRecorder.fileFormat string "pcapng"
secondaryEnb.x2ppp.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

secondaryEnb.x2ppp.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

secondaryEnb.x2ppp.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

secondaryEnb.x2ppp.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

secondaryEnb.x2ppp.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

secondaryEnb.x2ppp.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

secondaryEnb.x2ppp.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

secondaryEnb.x2ppp.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

secondaryEnb.x2ppp.pcapRecorder.displayStringTextFormat string "rec: %n pks"
secondaryEnb.x2ppp.ppp.interfaceTableModule string

The path to the InterfaceTable module

secondaryEnb.x2ppp.ppp.displayStringTextFormat string "rate: %b\nsent: %s, rcvd: %r\nqueue: %q, drop: %d"
secondaryEnb.x2ppp.ppp.sendRawBytes bool false

when true packets are serialized into a sequence of bytes before sending out

secondaryEnb.x2ppp.ppp.mtu int 4470B
secondaryEnb.x2ppp.ppp.stopOperationExtraTime double -1s

extra time after lifecycle stop operation finished

secondaryEnb.x2ppp.ppp.stopOperationTimeout double 2s

timeout value for lifecycle stop operation

secondaryEnb.pppMEHostIf.pcapRecorder.verbose bool true

whether to log packets on the module output

secondaryEnb.pppMEHostIf.pcapRecorder.pcapFile string ""

the PCAP file to be written

secondaryEnb.pppMEHostIf.pcapRecorder.fileFormat string "pcapng"
secondaryEnb.pppMEHostIf.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

secondaryEnb.pppMEHostIf.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

secondaryEnb.pppMEHostIf.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

secondaryEnb.pppMEHostIf.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

secondaryEnb.pppMEHostIf.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

secondaryEnb.pppMEHostIf.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

secondaryEnb.pppMEHostIf.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

secondaryEnb.pppMEHostIf.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

secondaryEnb.pppMEHostIf.pcapRecorder.displayStringTextFormat string "rec: %n pks"
secondaryEnb.pppMEHostIf.ppp.interfaceTableModule string

The path to the InterfaceTable module

secondaryEnb.pppMEHostIf.ppp.displayStringTextFormat string "rate: %b\nsent: %s, rcvd: %r\nqueue: %q, drop: %d"
secondaryEnb.pppMEHostIf.ppp.sendRawBytes bool false

when true packets are serialized into a sequence of bytes before sending out

secondaryEnb.pppMEHostIf.ppp.mtu int 4470B
secondaryEnb.pppMEHostIf.ppp.stopOperationExtraTime double -1s

extra time after lifecycle stop operation finished

secondaryEnb.pppMEHostIf.ppp.stopOperationTimeout double 2s

timeout value for lifecycle stop operation

secondaryEnb.udp.interfaceTableModule string

The path to the InterfaceTable module

secondaryEnb.udp.icmpModule string "^.ipv4.icmp"
secondaryEnb.udp.icmpv6Module string "^.ipv6.icmpv6"
secondaryEnb.udp.crcMode string "declared"
secondaryEnb.udp.defaultMulticastLoop bool true
secondaryEnb.tcp.crcMode string "declared"
secondaryEnb.tcp.advertisedWindow int 14*this.mss

in bytes, corresponds with the maximal receiver buffer capacity (Note: normally, NIC queues should be at least this size)

secondaryEnb.tcp.delayedAcksEnabled bool false

delayed ACK algorithm (RFC 1122) enabled/disabled

secondaryEnb.tcp.nagleEnabled bool true

Nagle's algorithm (RFC 896) enabled/disabled

secondaryEnb.tcp.limitedTransmitEnabled bool false

Limited Transmit algorithm (RFC 3042) enabled/disabled (can be used for TcpReno/TcpTahoe/TcpNewReno/TcpNoCongestionControl)

secondaryEnb.tcp.increasedIWEnabled bool false

Increased Initial Window (RFC 3390) enabled/disabled

secondaryEnb.tcp.sackSupport bool false

Selective Acknowledgment (RFC 2018, 2883, 3517) support (header option) (SACK will be enabled for a connection if both endpoints support it)

secondaryEnb.tcp.windowScalingSupport bool false

Window Scale (RFC 1323) support (header option) (WS will be enabled for a connection if both endpoints support it)

secondaryEnb.tcp.windowScalingFactor int -1

Window Scaling Factor to the power of 2. -1 indicates that manual window scaling is turned off.

secondaryEnb.tcp.timestampSupport bool false

Timestamps (RFC 1323) support (header option) (TS will be enabled for a connection if both endpoints support it)

secondaryEnb.tcp.mss int 536

Maximum Segment Size (RFC 793) (header option)

secondaryEnb.tcp.msl int 120s

Maximum Segment Lifetime

secondaryEnb.tcp.tcpAlgorithmClass string "TcpReno"

TODO: use the following @enum or similar, but it must allow new values for user defined algorithms (omnetpp-6.1 checks @enum strictly): @enum("TcpVegas", "TcpWestwood", "TcpNewReno", "TcpReno", "TcpTahoe", "TcpNoCongestionControl")

secondaryEnb.tcp.useDataNotification bool false

turn the notifications for arrived data on or off

secondaryEnb.tcp.dupthresh int 3

used for TcpTahoe, TcpReno and SACK (RFC 3517) DO NOT change unless you really know what you are doing

secondaryEnb.tcp.initialSsthresh int 0xFFFFFFFF

initial value for Slow Start threshold used in TahoeRenoFamily. The initial value of ssthresh SHOULD be set arbitrarily high (e.g.,to the size of the largest possible advertised window) Without user interaction there is no limit...

secondaryEnb.tcp.stopOperationExtraTime double 0s

extra time after lifecycle stop operation finished

secondaryEnb.tcp.stopOperationTimeout double 2s

timeout value for lifecycle stop operation

secondaryEnb.tcp.ecnWillingness bool false

true if willing to use ECN

secondaryEnb.tcp.dctcpGamma double 0.0625

A fixed estimation gain for calculating dctcp_alpha (RFC 8257 4.2)

secondaryEnb.x2App.client.localAddress string ""

comma separated list of addresses

secondaryEnb.x2App.client.localPort int 0

port number to listen on

secondaryEnb.x2App.client.connectAddress string

server address (may be symbolic)

secondaryEnb.x2App.client.connectPort int 5000

port number to connect to

secondaryEnb.x2App.client.startTime double 0s

time first session begins

secondaryEnb.x2App.client.numRequestsPerSession int 1

number of requests sent per session

secondaryEnb.x2App.client.numPacketsToReceive int 0
secondaryEnb.x2App.client.requestLength int 1452

length of a request (bytes)

secondaryEnb.x2App.client.thinkTime double 0s

time gap between requests

secondaryEnb.x2App.client.waitToClose double 0s

time to wait between last message sent and abort

secondaryEnb.x2App.client.reconnectInterval double 0s

if connection breaks, waits this much before trying to reconnect

secondaryEnb.x2App.client.inboundStreams int 17
secondaryEnb.x2App.client.outboundStreams int 1
secondaryEnb.x2App.client.echo bool false

echoes received packages when true

secondaryEnb.x2App.client.ordered bool true
secondaryEnb.x2App.client.queueSize int 0
secondaryEnb.x2App.client.prMethod int 0

0=NONE, 1=PR_TTL, 2=PR_RTX, 3=PR_PRIO, 4=PR_STRRST

secondaryEnb.x2App.client.prValue double 0

for PR-SCTP

secondaryEnb.x2App.client.streamReset bool false
secondaryEnb.x2App.client.streamRequestTime double 0s
secondaryEnb.x2App.client.streamResetType int 5

NO_RESET=5, RESET_OUTGOING=6, RESET_INCOMING=7, RESET_BOTH=8, SSN_TSN=9

secondaryEnb.x2App.client.streamToReset int 0
secondaryEnb.x2App.client.stopTime double -1s

time of finishing sending, negative values mean forever

secondaryEnb.x2App.client.primaryTime double 0s
secondaryEnb.x2App.client.newPrimary string ""
secondaryEnb.x2App.client.streamRequestLengths string ""
secondaryEnb.x2App.client.streamRequestRatio string ""
secondaryEnb.x2App.client.streamPriorities string ""
secondaryEnb.x2App.client.finishEndsSimulation bool false
secondaryEnb.x2App.client.binderModule string "binder"
secondaryEnb.x2App.server.localAddress string ""

comma separated list of addresses

secondaryEnb.x2App.server.localPort int 0

port number to listen on

secondaryEnb.x2App.server.echo bool false

echoes received packages when true

secondaryEnb.x2App.server.echoDelay double 0s
secondaryEnb.x2App.server.delayFirstRead double 0s
secondaryEnb.x2App.server.readingInterval double 0s
secondaryEnb.x2App.server.messagesToPush int 0
secondaryEnb.x2App.server.numPacketsToSendPerClient int 0

number of requests sent per session

secondaryEnb.x2App.server.numPacketsToReceivePerClient int 1
secondaryEnb.x2App.server.requestLength int 1452

length of a request (bytes)

secondaryEnb.x2App.server.thinkTime double 0s

time gap between requests

secondaryEnb.x2App.server.waitToClose double 0s

time to wait between last message sent and abort

secondaryEnb.x2App.server.finishEndsSimulation bool false
secondaryEnb.x2App.server.ordered bool true
secondaryEnb.x2App.server.inboundStreams int 17
secondaryEnb.x2App.server.outboundStreams int 1
secondaryEnb.x2App.server.queueSize int 0
secondaryEnb.x2App.server.prMethod int 0

0=NONE, 1=PR_TTL, 2=PR_RTX, 3=PR_PRIO, 4=PR_STRRST

secondaryEnb.x2App.server.prValue double 0

for PR-SCTP

secondaryEnb.x2App.server.streamReset bool false
secondaryEnb.x2App.server.streamRequestTime double 0s
secondaryEnb.x2App.server.streamToReset int 0
secondaryEnb.x2App.server.streamPriorities string ""
secondaryEnb.x2App.server.binderModule string "binder"
secondaryEnb.sctp.interfaceTableModule string
secondaryEnb.sctp.routingTableModule string
secondaryEnb.sctp.crcMode string "declared"
secondaryEnb.sctp.numGapReports int 3
secondaryEnb.sctp.rtoInitial double 3s
secondaryEnb.sctp.rtoMin double 1s
secondaryEnb.sctp.rtoMax double 60s
secondaryEnb.sctp.rtoAlpha double 0.125
secondaryEnb.sctp.rtoBeta double 0.250
secondaryEnb.sctp.maxBurst int 4
secondaryEnb.sctp.maxBurstVariant string "maxBurst"
secondaryEnb.sctp.initialWindow int 0
secondaryEnb.sctp.assocMaxRetrans int 10
secondaryEnb.sctp.pathMaxRetrans int 5
secondaryEnb.sctp.maxInitRetrans int 8
secondaryEnb.sctp.sackPeriod double 200ms
secondaryEnb.sctp.sackFrequency int 2
secondaryEnb.sctp.reactivatePrimaryPath bool false
secondaryEnb.sctp.sendQueueLimit int 0
secondaryEnb.sctp.validCookieLifetime double 10s
secondaryEnb.sctp.enableHeartbeats bool true
secondaryEnb.sctp.hbInterval double 30s
secondaryEnb.sctp.sendHeartbeatsOnActivePaths bool false
secondaryEnb.sctp.nagleEnabled bool true
secondaryEnb.sctp.naglePoint int 1468
secondaryEnb.sctp.fragPoint int 1452
secondaryEnb.sctp.fastRecoverySupported bool true
secondaryEnb.sctp.sctpAlgorithmClass string "SctpAlg"
secondaryEnb.sctp.ccModule int 0

RFC4960=0

secondaryEnb.sctp.osbWithHeader bool false
secondaryEnb.sctp.RTXMethod int 0

0=Once after 3 Sacks; 1=once per RTT; 2=Switch off Fast Retransmit; 3=Always after 3 Sacks

secondaryEnb.sctp.ssModule int 0
secondaryEnb.sctp.arwnd int 65535
secondaryEnb.sctp.swsLimit int 3000

Limit for SWS

secondaryEnb.sctp.udpEncapsEnabled bool false
secondaryEnb.sctp.natFriendly bool false
secondaryEnb.sctp.bytesToAddPerRcvdChunk int 0

for flowcontrol

secondaryEnb.sctp.bytesToAddPerPeerChunk int 0

for flowcontrol

secondaryEnb.sctp.tellArwnd bool false

for flowcontrol

secondaryEnb.sctp.messageAcceptLimit int 0

for flowcontrol

secondaryEnb.sctp.fairStart double 0s
secondaryEnb.sctp.fairStop double 0s
secondaryEnb.sctp.streamsToPaths string ""
secondaryEnb.sctp.startEndToEndDelay int 0
secondaryEnb.sctp.stopEndToEndDelay int 10
secondaryEnb.sctp.throughputInterval double 1
secondaryEnb.sctp.auth bool false
secondaryEnb.sctp.chunks string ""
secondaryEnb.sctp.padding bool false
secondaryEnb.sctp.addIP bool false
secondaryEnb.sctp.addTime double 0s
secondaryEnb.sctp.addAddress string ""
secondaryEnb.sctp.addIpType string "0"

SET_PRIMARY_ADDRESS=49156,ADD_IP_ADDRESS=49153,DELETE_IP_ADDRESS=49154

secondaryEnb.sctp.packetDrop bool false
secondaryEnb.sctp.sackNow bool false
secondaryEnb.sctp.highSpeedCC bool false
secondaryEnb.sctp.checkSackSeqNumber bool false
secondaryEnb.sctp.nrSack bool false
secondaryEnb.sctp.disableReneging bool false
secondaryEnb.sctp.gapReportLimit int 100000000
secondaryEnb.sctp.gapListOptimizationVariant string "none"
secondaryEnb.sctp.smartOverfullSACKHandling bool false
secondaryEnb.sctp.allowQoSTracking bool false
secondaryEnb.sctp.qosTrackingInterval double 1.0s
secondaryEnb.sctp.cmtSendAllVariant string "normal"
secondaryEnb.sctp.cmtRetransmissionVariant string "normal"
secondaryEnb.sctp.cmtCUCVariant string "normal"
secondaryEnb.sctp.cmtBufferSplitVariant string "none"
secondaryEnb.sctp.cmtBufferSplittingUsesOSB bool false
secondaryEnb.sctp.cmtUseSFR bool true
secondaryEnb.sctp.cmtUseDAC bool true
secondaryEnb.sctp.cmtUseFRC bool true
secondaryEnb.sctp.cmtSmartT3Reset bool true
secondaryEnb.sctp.cmtSmartFastRTX bool true
secondaryEnb.sctp.cmtSmartReneging bool false
secondaryEnb.sctp.cmtSlowPathRTTUpdate bool false
secondaryEnb.sctp.cmtChunkReschedulingVariant string "none"
secondaryEnb.sctp.cmtChunkReschedulingThreshold double 0.5
secondaryEnb.sctp.cmtMovedChunksReduceCwnd bool true
secondaryEnb.sctp.movedChunkFastRTXFactor double 2.0
secondaryEnb.sctp.cmtSackPath string "standard"
secondaryEnb.sctp.strictCwndBooking bool false
secondaryEnb.sctp.cmtCCVariant string "off"

CMT Congestion Control Variant off = use over every path the default RFC4960 CC (New Reno) lia = First resource pooling congestion control RFC6356 adapted for SCTP - https://datatracker.ietf.org/doc/rfc6356/ olia = alternative MPTCP CC, adapted for SCTP- https://tools.ietf.org/html/draft-khalili-mptcp-congestion-control-05 cmtrpv1 = First resource pooling based CC for SCTP - https://www.tdr.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/AINA2010.pdf cmtrpv2 = Updated version of cmtrpv1 - https://www.tdr.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/ConTEL2011.pdf

secondaryEnb.sctp.cmtCCPathGroups string ""
secondaryEnb.sctp.rpPathBlocking bool false
secondaryEnb.sctp.rpScaleBlockingTimeout bool false
secondaryEnb.sctp.rpMinCwnd int 1
secondaryEnb.at.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

secondaryEnb.at.forwardServiceRegistration bool true
secondaryEnb.at.forwardProtocolRegistration bool true
secondaryEnb.tn.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

secondaryEnb.tn.forwardServiceRegistration bool true
secondaryEnb.tn.forwardProtocolRegistration bool true
secondaryEnb.nl.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

secondaryEnb.nl.forwardServiceRegistration bool true
secondaryEnb.nl.forwardProtocolRegistration bool true
secondaryEnb.trafficFlowFilter.binderModule string "binder"
secondaryEnb.trafficFlowFilter.bearerConfiguratorModule string "bearerConfigurator"

Where a core-network instance registers for QFI-rule delivery

secondaryEnb.trafficFlowFilter.fastForwarding bool true
secondaryEnb.gtpUser.binderModule string "binder"
secondaryEnb.gtpUser.interfaceTableModule string

Path to the InterfaceTable module

secondaryEnb.gtpUser.localPort int 31
secondaryEnb.gtpUser.tunnelPeerPort int 31
secondaryEnb.gtpUserX2.binderModule string "binder"
secondaryEnb.gtpUserX2.localPort int 32
secondaryEnb.gtpUserX2.tunnelPeerPort int 32
bgCell.mobility.subjectModule string "^"

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

bgCell.mobility.coordinateSystemModule string ""

module path of the geographic coordinate system module

bgCell.mobility.displayStringTextFormat string "p: %p\nv: %v"

format string for the mobility module's display string text

bgCell.mobility.updateDisplayString bool true

enables continuous update of the subject module's position via modifying its display string

bgCell.mobility.constraintAreaMinX double -inf m

min x position of the constraint area, unconstrained by default (negative infinity)

bgCell.mobility.constraintAreaMinY double -inf m

min y position of the constraint area, unconstrained by default (negative infinity)

bgCell.mobility.constraintAreaMinZ double -inf m

min z position of the constraint area, unconstrained by default (negative infinity)

bgCell.mobility.constraintAreaMaxX double inf m

max x position of the constraint area, unconstrained by default (positive infinity)

bgCell.mobility.constraintAreaMaxY double inf m

max y position of the constraint area, unconstrained by default (positive infinity)

bgCell.mobility.constraintAreaMaxZ double inf m

max z position of the constraint area, unconstrained by default (positive infinity)

bgCell.mobility.initialX double uniform(this.constraintAreaMinX, this.constraintAreaMaxX)
bgCell.mobility.initialY double uniform(this.constraintAreaMinY, this.constraintAreaMaxY)
bgCell.mobility.initialZ double nanToZero(uniform(this.constraintAreaMinZ, this.constraintAreaMaxZ))
bgCell.mobility.initialLatitude double nan deg
bgCell.mobility.initialLongitude double nan deg
bgCell.mobility.initialAltitude double 0m
bgCell.mobility.initialHeading double 0deg
bgCell.mobility.initialElevation double 0deg
bgCell.mobility.initialBank double 0deg
bgCell.mobility.initFromDisplayString bool true

enables one time initialization from the subject module's display string

bgCell.mobility.updateFromDisplayString bool true

enables continuous update from the subject module's display string for dragging and rotating it

bgCell.bgChannelModel.binderModule string "binder"

Module references

bgCell.bgChannelModel.shadowing bool true

Enable/disable shadowing

bgCell.bgChannelModel.scenario string "URBAN_MACROCELL"

Path loss scenario, in ITU terminology

bgCell.bgChannelModel.nodebHeight double 25m

eNodeB height

bgCell.bgChannelModel.buildingHeight double 20m

Building height

bgCell.bgChannelModel.insideBuilding bool false

Determines if the UE is inside a building

bgCell.bgChannelModel.streetWidth double 20m

TODO width

bgCell.bgChannelModel.ueHeight double 1.5m
bgCell.bgChannelModel.tolerateMaxDistViolation bool false
bgCell.bgChannelModel.correlationDistance double 50m
bgCell.bgChannelModel.antennaGainUe double 0dBi

Antenna gain of the UE, relative to an isotropic antenna

bgCell.bgChannelModel.antennGainEnB double 18dBi

Antenna gain of the eNodeB

bgCell.bgChannelModel.antennGainMicro double 5dBi

Antenna gain of the micro node

bgCell.bgChannelModel.thermalNoise double -104.5dBm

Thermal noise for 10 MHz of bandwidth

bgCell.bgChannelModel.ueNoiseFigure double 7dBm

UE noise figure

bgCell.bgChannelModel.bsNoiseFigure double 5dBm

eNodeB noise figure

bgCell.bgChannelModel.cableLoss double 2dB

Cable loss

bgCell.bgChannelModel.dynamicLos bool false

Whether LOS/NLOS is drawn per link from the scenario's LOS probability; when false, it is fixed to fixedLos

bgCell.bgChannelModel.fixedLos bool false

LOS state of every link when dynamicLos is false: true = LOS, false = NLOS

bgCell.bgChannelModel.fading bool true

Enable/disable fading

bgCell.bgChannelModel.fadingType string "JAKES"

Fading type (JAKES or RAYLEIGH)

bgCell.bgChannelModel.numFadingPaths int 6

If Jakes fading, this parameter specifies the number of paths (tap channel)

bgCell.bgChannelModel.delayRms double 363ns
bgCell.bgChannelModel.bgCellInterference bool true

Whether interference from the other background cells is included in the SINR, in both UL and DL

bgCell.bgChannelModel.downlinkInterference bool true

Whether interference from other base stations is included in the DL SINR

bgCell.bgChannelModel.uplinkInterference bool true

Whether interference from the UEs of other cells is included in the UL SINR

bgCell.bgScheduler.binderModule string "binder"
bgCell.bgScheduler.channelModelModule string "^.bgChannelModel"
bgCell.bgScheduler.txPower double 46dBm

Transmission power

bgCell.bgScheduler.txDirection string "OMNI"

Transmission direction

bgCell.bgScheduler.txAngle double 0deg

Transmission angle

bgCell.bgScheduler.isNr bool false

Flag to indicate whether this is a NR base station

bgCell.bgScheduler.numerologyIndex int 0

Operating carrier

bgCell.bgScheduler.carrierFrequency double 2GHz

Operating carrier

bgCell.bgScheduler.numBands int 6

Carrier bandwidth

ue.interfaceTable.displayAddresses bool false

whether to display IP addresses on links

ue.eth.bitrate double
ue.at.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

ue.at.forwardServiceRegistration bool true
ue.at.forwardProtocolRegistration bool true
ue.tn.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

ue.tn.forwardServiceRegistration bool true
ue.tn.forwardProtocolRegistration bool true
ue.nl.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

ue.nl.forwardServiceRegistration bool true
ue.nl.forwardProtocolRegistration bool true
ue.pcapRecorder.verbose bool true

whether to log packets on the module output

ue.pcapRecorder.pcapFile string ""

the PCAP file to be written

ue.pcapRecorder.fileFormat string "pcapng"
ue.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

ue.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

ue.pcapRecorder.moduleNamePatterns string "wlan[*] eth[*] ppp[*]"

space-separated list of sibling module names to listen on

ue.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

ue.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

ue.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

ue.pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

ue.pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

ue.pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

ue.pcapRecorder.displayStringTextFormat string "rec: %n pks"

Source code

//
// The mirror image of ~SingleCell_withSecondaryGnb: here the gNodeB is the master
// node and the eNodeB is its secondary, so the UE is anchored on its NR stack and
// its LTE stack carries the secondary cell group. All data-plane traffic enters at
// the gNodeB.
//
// Unlike the EN-DC network, the core is a 5GC (Upf): that is NE-DC's shape in
// TS 37.340 -- an NR master pairs with a 5GC -- so its bearers are "5gc" bearers,
// selected by QFI, and SDAP is in the stack. The secondary eNodeB contributes the
// secondary cell group's radio leg over X2 and has no core-network link of its
// own; its bearers' PDCP terminates at the master (MN-terminated).
//
network SingleCell_withSecondaryEnb
{
    parameters:
        int numUe = default(1);
        int numBgCells = default(0);
        // The gNB connects to a 5GC (Upf), so every cellular stack has SDAP:
        // TS 37.324 ties SDAP to the 5GC connection, not to the radio
        **.cellularNic.hasSdap = default(true);
        @display("i=block/network2;bgb=991,558;bgi=background/pisa");
    submodules:
        channelControl: LteChannelControl {
            @display("p=88,24;is=s");
        }
        routingRecorder: RoutingTableRecorder {
            @display("p=88,74;is=s");
        }
        configurator: Ipv4NetworkConfigurator {
            @display("p=88,124;is=s");
        }
        binder: Binder {
            @display("p=88,174;is=s");
        }
        bearerConfigurator: BearerConfigurator {
            @display("p=88,224;is=s");
        }
        carrierAggregation: CarrierAggregation {
            @display("p=88,274;is=s");
        }
        server: StandardHost {
            @display("p=210,63;is=n;i=device/server");
        }
        router: Router {
            @display("p=361,62;i=device/smallrouter");
        }
        upf: Upf {
            @display("p=524,63;is=l");
        }
        iUpf: Upf {
            @display("p=524,170;is=l");
        }
        masterGnb: gNodeB {
            @display("p=527,277;is=vl");
        }
        secondaryEnb: eNodeB {
            @display("p=726,277;is=vl");
        }
        bgCell[numBgCells]: BackgroundCell {
            @display("p=910,98;is=vl");
        }
        ue[numUe]: NrUe {
            @display("p=628,411");
        }
    connections:
        server.pppg++ <--> Eth10G <--> router.pppg++;
        router.pppg++ <--> Eth10G <--> upf.dnPppg;
        upf.pppg++ <--> Eth10G <--> iUpf.pppg++;
        iUpf.pppg++ <--> Eth10G <--> masterGnb.ppp;

        //# X2 connections
        masterGnb.x2++ <--> Eth10G <--> secondaryEnb.x2++;
}
File: simulations/nr/networks/SingleCell_withSecondaryEnb.ned