Unipisa / Unipisa/Simu5G

check_and_cast() nullptr in LteHarqBufferRxD2D constructor after previous eNB detachment

Open
#14 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Setup:

Multi eNB setup (5) with ~250 UE's manged by Sumo using D2D communication and dynamicCellAssociation = true as well as enableHandover = true.

Problem:

The error occurs when one node leaves the serving area of all eNB which will trigger a handover detachment without an
attachment to a new cell . This will lead to cellId_ = 0 in the LteMacBase class. If shortly after a DATAPKT frame arrives from a newly not seen before source, a new LteHarqBufferRxD2D object is created which tries to access the serving cell (which is cellId_ =0 --> nullptr) to configure the macCellThroughputD2D_ signal. This will lead to a nullptr an will throw an exception.
Additionally already existing buffers will use the wrong eNB to emit there statistic values which will lead to incorrect throughput
measurements.

The statistic is used in extractCorrectPdus() where a check could be added to only trigger the signal emit call if
the node is actually connected to a eNB. However does it make sense to have a LteHarqBufferRxD2D buffer in D2D Sidelink
communication in mode 3 which relies on eNB support for resource allocation.

QuickFix:

If the simulation scenario allows the addition of extra eNB's to ensure all nodes are allays in coverage this error
will not occur.

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 LteHarqBufferRxD2D constructor in src/stack/mac/buffer/harq_d2d/LteHarqBufferRxD2D.cc and the cell lookup in src/stack/mac/layer/LteMacBase.cc. Then inspect extractCorrectPdus() in the same buffer file to understand how throughput signals are emitted after detachment. Done means detached nodes no longer trigger a nullptr exception and existing buffers do not report statistics through the wrong eNB.

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
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.