Segmantation Fault with SimuLTE

115 views
Skip to first unread message

Mostafa Nagy

unread,
Feb 17, 2017, 10:40:29 AM2/17/17
to OMNeT++ Users
Hi Everyone,

I am Using SimuLTE to simulate D2D Multicast scenario, when I am using a PacketSize which is large enough to be fragmented everything is okay. But when I change the fragmentation Size to be larger than the Packet Size (So I would send only one Fragment), the program crashes at the receiver on the defragment() function with a Segmantation fault. I don't understand why is this happening.

Giovanni Nardini

unread,
Feb 20, 2017, 8:04:11 AM2/20/17
to OMNeT++ Users
Hi,

could you please give more details on the simulated scenario and where did you make modifications in the code? 

Giovanni

Mostafa Nagy

unread,
Feb 20, 2017, 11:46:57 AM2/20/17
to OMNeT++ Users
Hi Giovanni,

So I am working on my Master thesis on D2D communications and the Simulated scenario is the D2D Multicast model that has already implemented in SimuLTE where one user is sending a direct packet to 2 other users. The application is Alert which can be found in /lte/src/apps/alert.
The parameter packetsize in AlertSender.ned is the default 10B (But actually it is being sent from the physical layer as a packet of 41B adding 31B as headers from different layers).
The parameter FragmentationSize in Module "UmRxQueue" in LteRlc.ned is set as 30B which is the default. and this means that the packet will be fragmented into 2 fragments and sent on 2 parts. Everything in this scenario is going okay.
The problem appears when I try to modify the fragmentsize to make it larger than the total packet size for example 50B, so that the message would be sent on 1 fragment only (This would affect the delay when I make the scenario more complex i suppose). Here the problem appears, the simulator crashes on the receiver side in the RLC layer .. exactly in UmRxQueue::defragment() function. terminating with error 139 and with the debugger it says that the Source is more recent than the executable.

I tried to trace the pointers being used and nothing is deleted before it should be, so I cannot get why is it not working. I would be so grateful for any help

Giovanni Nardini

unread,
Feb 20, 2017, 12:21:47 PM2/20/17
to OMNeT++ Users
In function UmRxQueue::defragment, try to substitute the line

bool first = fragbuf_.insert(pktId, totFrag, fragSno, fragSize, lteInfo);

with

bool first = fragbuf_.insert(pktId, totFrag, fragSno, fragSize, lteInfo->dup());

Let me know if this fixes the problem.

Best regards.
Giovanni

Mostafa Nagy

unread,
Feb 21, 2017, 3:40:15 AM2/21/17
to OMNeT++ Users
Yes actually Solved the problem and worked effectively. Thanks a lot!

ASY

unread,
Mar 21, 2017, 9:21:01 PM3/21/17
to OMNeT++ Users
Hello Mostafa,
I am trying to get started with simuLTE with OMNET++ version 5. I tried the simuLTE package that is available at simulte.com but i couldn't get the simulation demo to run. Only the network shows up, but i get errors related to the pgw when i hit the "run" button. Could you please point me to a working framework? Thank you.

Mostafa Nagy

unread,
Mar 23, 2017, 8:58:17 AM3/23/17
to OMNeT++ Users
Hi actually I just took it as it is, maybe Giovanni can help you.

Mostafa Nagy

unread,
Mar 23, 2017, 9:02:12 AM3/23/17
to OMNeT++ Users
Hi Giovanni,

I have a question regarding the attenuation calculation, now in the mobility case (when both UEs are moving with a certain speed, the number of packets lost ist not really changing with changing the speed of the UEs, by examining LteRealisticChannelModel::getAttenuation_D2D , I find that it calls the function compute speed everytime even though I have already given a speed value in the ini file. ( I am using Linear mobility model ). any ideas about how to fix this?
Reply all
Reply to author
Forward
0 new messages