-
Notifications
You must be signed in to change notification settings - Fork 103
Description
Hello Everyone,
Based on the test_numerology example, I was able to configure the standalone example (simulations/NR/standalone) and verify the impact of different numerologies - numerologyIndex = ${u=0,1,2,3,4} - on latency.
When I tried to configure numerology in the D2D scenario (simulations/NR/d2d), I was successful in running SinglePair-UDP-Infra, but I got the following error when running SinglePair-UDP-D2D with any numerology > 0:
std::out_of_range: map::at -- in module (simu5g::NRMacGnb) SingleCell_Standalone_D2D.gnb.cellularNic.mac (id=239), at t=0.014s, event #192
In the SinglePair-UDP-D2D configuration, UEs communicate using the D2D link. What could be the reason for the error? Am I doing something wrong, or is communication not possible with numerologies greater than 0 for this scenario?
My .ini file is bellow:
[General]
sim-time-limit=20s
warmup-period=0s
repeat = 3
**.routingRecorder.enabled = false
############### Statistics ##################
output-scalar-file = ${resultdir}/${configname}/${repetition}.sca
output-vector-file = ${resultdir}/${configname}/${repetition}.vec
seed-set = ${repetition}
**.vector-recording = true
################ Mobility parameters #####################
# *
**.mobility.constraintAreaMaxX = 1000m
**.mobility.constraintAreaMaxY = 1000m
**.mobility.constraintAreaMinX = 0m
**.mobility.constraintAreaMinY = 0m
**.mobility.constraintAreaMinZ = 0m
**.mobility.constraintAreaMaxZ = 0m
**.mobility.initFromDisplayString = false
############### Number of Resource Blocks ################
**.numBands = 50 # this value should be kept equal to the number of RBs
############### Transmission Power ##################
**.ueTxPower = 26dBm
**.eNodeBTxPower = 40dBm
**.targetBler = 0.01
**.blerShift = 5
############### IPv4 configurator config #################
*.configurator.config = xmldoc("./demo.xml")
# ----------------------------------------------------------------------------- #
# Config "SinglePair"
#
# Do NOT run this config! It serves as base configuration for "SinglePair-UDP-*" and "SinglePair-TCP-*" configurations (see below).
# It includes two UEs served by one eNodeB. UEs are far from the eNB (~50m), but close to each other (20m)
#
[Config SinglePair]
network = simu5g.simulations.NR.networks.SingleCell_Standalone_D2D
############### e/gNodeB configuration #################
*.gnb.mobility.initialX = 300m
*.gnb.mobility.initialY = 300m
### UEs configuration ###
*.numUeCell = 0
*.numUeD2DTx = 1
*.numUeD2DRx = 1
*.ue*[*].macCellId = 0
*.ue*[*].masterId = 0
*.ue*[*].nrMacCellId = 1
*.ue*[*].nrMasterId = 1
# Place D2D endpoints far from the gNodeB (~50m) and close to each other (20m)
*.ueD2DTx[0].mobility.initialX = 290m
*.ueD2DTx[0].mobility.initialY = 350m
*.ueD2DRx[0].mobility.initialX = 310m
*.ueD2DRx[0].mobility.initialY = 350m
# ----------------------------------------------------------------------------- #
# Config "SinglePair-UDP-Infra"
#
# In this configuration, UEs run a CBR application (using UDP as transport layer protocol)
# They communicate using the traditional infrastructure mode (two-hop path through the gNodeB)
#
[Config SinglePair-UDP-Infra]
extends=SinglePair
### Traffic configuration ###
*.ueD2D*[0].numApps = 1
# Traffic between UEs (ueD2DTx[0] --> ueD2DRx[0])
# Transmitter
*.ueD2DTx[0].app[*].typename = "CbrSender"
*.ueD2DTx[0].app[*].packetSize = 1000B
*.ueD2DTx[0].app[*].sampling_time = 0.01s
*.ueD2DTx[0].app[*].localPort = 3088+ancestorIndex(0)
*.ueD2DTx[0].app[*].startTime = uniform(0s,0.02s)
*.ueD2DTx[0].app[*].destAddress = "ueD2DRx[0]"
*.ueD2DTx[0].app[*].destPort = 1000
# Receiver
*.ueD2DRx[0].app[*].typename = "CbrReceiver"
*.ueD2DRx[0].app[*].localPort = 1000
########### Testing Numerology ###############
# Carrier Aggregation configuration
*.carrierAggregation.numComponentCarriers = 2
*.carrierAggregation.componentCarrier[0].numerologyIndex = 0
*.carrierAggregation.componentCarrier[0].carrierFrequency = 2GHz
*.carrierAggregation.componentCarrier[0].numBands = 6
*.carrierAggregation.componentCarrier[1].numerologyIndex = ${u=0,1,2,3,4}
*.carrierAggregation.componentCarrier[1].carrierFrequency = 6GHz
*.carrierAggregation.componentCarrier[1].numBands = 6
# Set carriers
*.gnb.cellularNic.numCarriers = 1
*.gnb.cellularNic.channelModel[0].componentCarrierModule = "carrierAggregation.componentCarrier[1]"
*.ueD2D*[*].cellularNic.numCarriers = 1
*.ueD2D*[*].cellularNic.numNRCarriers = 1
*.ueD2D*[*].cellularNic.channelModel[0].componentCarrierModule = "carrierAggregation.componentCarrier[0]"
*.ueD2D*[*].cellularNic.nrChannelModel[0].componentCarrierModule = "carrierAggregation.componentCarrier[1]"
# ----------------------------------------------------------------------------- #
# Config "SinglePair-UDP-D2D"
#
# In this configuration, UEs run a CBR application (using UDP as transport layer protocol)
# They communicate using the D2D link
#
[Config SinglePair-UDP-D2D]
extends=SinglePair-UDP-Infra
# D2D-capable flows are started in D2D mode
*.ueD2D*[*].cellularNic.d2dInitialMode = true
# --- Select CQI for D2D transmissions --- #
#
# To enable the reporting of CQIs for each D2D link, set the parameter *.gnb.cellularNic.phy.enableD2DCqiReporting
# To use fixed CQI, set the parameter **.usePreconfiguredTxParams and select the desired CQI using the parameter **.d2dCqi
**.amcMode = "D2D"
**.gnb.cellularNic.phy.enableD2DCqiReporting = true
**.usePreconfiguredTxParams = false
**.d2dCqi = 7