Skip to content

Configuring up numerology in the D2D scenario #287

@etcamargo

Description

@etcamargo

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions