Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi-hop relaying IAB network simulation #8

Open
DKhaoyu opened this issue Mar 22, 2022 · 4 comments
Open

Multi-hop relaying IAB network simulation #8

DKhaoyu opened this issue Mar 22, 2022 · 4 comments

Comments

@DKhaoyu
Copy link

DKhaoyu commented Mar 22, 2022

Hello,
I'm trying to simulate the multihop relaying operations. It is mentioned in the bottom of Page. 6 of the paper "End-to-End Simulation of Integrated Access and Backhaul at mmWaves".

In the class "mmwaveHelper.h", I find functions "AttachIabToClosestEnb", "AttachIabToSelectedClosestEnb" and "AttachIabToClosestWiredEnb" to attach the IAB net devices to the closest Enb net device, but not to a IAB net device. So could you please guide me how to realize the multi-hop relaying in simulation? Thanks a lot!

@pagmatt
Copy link
Member

pagmatt commented Mar 22, 2022

Hi Hiroshi, despite the name AttachIabToClosestEnb actually attaches the specified devices to the closest eNB, which is possibly a non-wired one, i.e., an IAB-node. For instance, by calling:

mmwaveHelper->AttachIabToClosestEnb (iabmmWaveDevs, enbmmWaveDevs);

each IAB device in iabmmWaveDevs will connect to either one of the enbmmWaveDevs, or one of the other iabmmWaveDevs.

@DKhaoyu
Copy link
Author

DKhaoyu commented Mar 23, 2022

Thanks a lot for your helpful feedback!

To test the function of multihop relaying, I modifed the the code in mmwave-iab-grid.cc. For simlicity, I set uint32_t numRelays=2 to enable a 2 hop netowork, by calling

mmwaveHelper->AttachIabToClosestEnb(NetDeviceContainer(iabmmWaveDevs.Get(0)),enbmmWaveDevs); 
mmwaveHelper->AttachIabToClosestEnb(NetDeviceContainer(iabmmWaveDevs.Get(1)),NetDeviceContainer(iabmmWaveDevs.Get(0)));

Unfortunately, the simulator throws an expception in line 1120 of mmwave-3gpp-channel.cc, because the member m_longTerm of channelParams is missing, i.e., the size of channelParams->m_longTerm is 0. To solve the problem, I move the statement CalLongTerm(channelParams) in line 1106 of mmwave-3gpp-channel.cc to line 1119, then the simulator could run without exception. So I wonder whether it is appropriate to do the modification here or did I miss something in the simulation?

@pagmatt
Copy link
Member

pagmatt commented Mar 23, 2022

By having a quick look at it I think that yes, it should work, it may just slow down the simulations a bit. However, I honestly do not have the time to test this out (this is an unmaintained repository, even though we should release an updated version in the next few months/half an year).
My advice is to just try to run the simulation with a different seed for the RNG (by passing -RngRun=N when running the script) . Usually, errors pop up only for certain values of N. It is not an elegant solution, rather a workaround, but it usually works :)

@DKhaoyu
Copy link
Author

DKhaoyu commented Mar 23, 2022

Thanks for your advice, I will try with different random seeds :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants