Unipisa / Unipisa/Simu5G

Configuring up numerology in the D2D scenario

Open
#287 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
235
Forks
116
PR merge metrics
No merged PRs in 30d

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

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the simulations/NR/d2d SinglePair-UDP-Infra and SinglePair-UDP-D2D configurations, then trace the NRMacGnb map::at failure reported for SingleCell_Standalone_D2D.gnb.cellularNic.mac. Compare the carrier and channel-model settings for numerology 0 versus higher values and determine whether the D2D scenario supports them. Done means identifying the cause and documenting a reproducible fix or confirmed limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.