[Solved] Receiving Multiple Packets Sent at the Same Time on INET Radios

732 views
Skip to first unread message

muhammet talha kakız

unread,
Jun 24, 2019, 4:59:48 AM6/24/19
to omn...@googlegroups.com
Hello,

As far as I know, omnetpp does not allow receiving multiple packets that are sent at the same time by different hosts. It can be said that also real radio devices cannot simultaneously receive multiple packets. So, it can be said it is realistic.

However, in several systems, the radio can receive the messages/codes/sequences sent at the same time and can distinguish these codes. One of the popular examples is PRACH in LTE.
In PRACH, each device selects a sequence/code/signature and sends it to the eNB at the same time/slot. Then, eNB can receive and distinguish these signatures with the aid of calculating correlation.

Altough I read omnetpp simulation manual, I cannot find any solution for this issue. So, is there any way of simultaneous receiving in omnetpp?

Rudolf Hornig

unread,
Jun 24, 2019, 5:52:32 AM6/24/19
to OMNeT++ Users


On Monday, June 24, 2019 at 10:59:48 AM UTC+2, muhammet talha kakız wrote:
Hello,

As far as I know, omnetpp does not allow receiving multiple packets that are sent at the same time by different hosts.
This is absolutely not true at all. The first thing is: OMNeT++ is a generic discrete event simulation kernel. It does not know anything about hosts, radios, transmissions or any model domain specific stuff. That's why you will never see anything like that mentioned in the OMNeT++ documentation. You will not see transmission, radios, hosts or similar words.

Simulation models are implemented on top of the OMNeT++ kernel. Those models may introduce various terms, like node, radio, transmission. The most popular such a model is INET framework, which contains a LOT of models on various levels of OSI layers. INET contains physical and link layer models that can model physical radios, transmissions etc. Whether that model prohibits simultaneous transmission is up to the model writer, however the model developer MUST explicitly implement the collusion. I'm not aware of any model in INET which prohibits simultaneous reception regardless of transmission power, distance etc. So depending on what INET model you use, you can safley receive two signals if the physical conditions allow it.

The only model I'm aware of that works like you described is the aloha sample in OMNeT++ which is obviously just a sample and a very simplified model (i.e. it already complex enough to detect transmission collision, but not complex enough to deal with calculating interference ranges). But aloha is just a sample.
 
It can be said that also real radio devices cannot simultaneously receive multiple packets. So, it can be said it is realistic.

No, this is far from the truth. It is even possible to receive two signals at the same radio with code division, or two nodes can receive at the same time two different packets if they are otherwise far from each other.
 

However, in several systems, the radio can receive the messages/codes/sequences sent at the same time and can distinguish these codes. One of the popular examples is PRACH in LTE.
In PRACH, each device selects a sequence/code/signature and sends it to the eNB at the same time/slot. Then, eNB can receive and distinguish these signatures with the aid of calculating correlation.
Yep.
 

Altough I read omnetpp simulation manual, I cannot find any solution for this issue. So, is there any way of simultaneous receiving in omnetpp?
As I said. OMNeT++ does not limit reception at the same time at all.

muhammet talha kakız

unread,
Jun 24, 2019, 8:28:16 AM6/24/19
to OMNeT++ Users
Thanks for reply, Rudolf.

Actually what I meant was INET framework. I should have said INET radio models instead of Omnetpp.

I'm using UnitDiskRadio in pyhsical layer. With regard to the problem, the only advantage of UnitDiskRadio is ignoring interference when ignoreInterference parameter is set as true.
But it is not a complete solution. For example, Let's say you have 3 transmitter devices sending one packet each at the same time, and 1 receiver device that is in communication range of the 3 transmitters, then only one packet that arrives first to the receiver is successfully obtained and other two packets are ignored.

As I said, it is not a complete solution. Do you know any radio model that allows simultaneous receiving in INET framework?

Thanks in advance.

Rudolf Hornig

unread,
Jun 24, 2019, 4:55:39 PM6/24/19
to OMNeT++ Users
Medium access (i.e. collision detection/avoidance/carrier sense) is handled by the MAC modules, not the radio and the MAC module is which throws away the packets if they arrive at the same time.

Now the question is, why do you need this. I would take a look at the AckingMac https://github.com/inet-framework/inet/blob/master/src/inet/linklayer/acking/AckingMac.ned
which is a very simplified MAC protocol (no collision detection etc.). You may combine this with the unit disc radio.

On the other hand, if you need something even more simplistic i.e. that your radios are effectively infinite range (i'm not sure if this is indeed the case), then you just want to get any packet to it's destination and don't care how it gets there. this is usually the case if you concentrate your research on a higher layer protocol, so you are fine with simplified lower layer.

If that us the case, then ShortcutRadio and ShortcutMac might be even more simpler: https://github.com/inet-framework/inet/blob/master/src/inet/linklayer/shortcut/ShortcutMac.ned
ShortcutRadio behaves like a wormhole. It eats the packet and spits it out magically right at the destination. No ranges, no collisions, no delay, no nothing...

muhammet talha kakız

unread,
Jun 25, 2019, 5:27:36 AM6/25/19
to OMNeT++ Users


Hello Rudolf,

Thanks for your explanation. I want to detail my case.

network.png
This is my network. There are 3 deviceA devices, and 1 deviceB device in the network.
And all devices are in communication range of each other. All deviceAs send packets to deviceB at the same time in mac module.
I'm implementing a new mac module.







deviceAandB.png
This is ned representation of deviceA and deviceB module.
I'm only using wlan interface for communication. The radio module is UnitDiskRadio.










logs.png
The logs are as following. While successfully receiving Packet0, as you can see , Packet1 and Packet2 are ignored and not attempting to receive.
Actually, the case is I want to successfully receive all 3 packets. Isn't it related to the radio or radioMedium?
I think the problem is related to the radio because the radio does not attempt to receive Packet2 and Packet3. What do you think?

Levente Mészáros

unread,
Jun 25, 2019, 8:15:33 AM6/25/19
to OMNeT++ Discussion List
The INET radio is only capable of recieving one packet at a time.

levy

--
You received this message because you are subscribed to the Google Groups "OMNeT++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to omnetpp+u...@googlegroups.com.
Visit this group at https://groups.google.com/group/omnetpp.
To view this discussion on the web visit https://groups.google.com/d/msgid/omnetpp/7b89b19f-c93c-47d7-ab10-0e1df04aaf3d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

muhammet talha kakız

unread,
Jun 25, 2019, 10:16:53 AM6/25/19
to omn...@googlegroups.com
Hello levy,

I think so, too. But do you know how to deal with this issue? To successfully receive multiple packets at the same time, what can be done?

Which kind of radio model can be used? Do you have any idea?
To unsubscribe from this group and stop receiving emails from it, send an email to omn...@googlegroups.com.

muhammet talha kakız

unread,
Jun 26, 2019, 3:23:26 AM6/26/19
to omn...@googlegroups.com
Hello everyone,

I solved my problem. When I search for the solution of the problem on the web, I have found the following link which offers a solution for simultaneous receiving.


One of the authors suggests to remove timer == receptionTimer condition on function Radio:endReception.
Modifying the Radio class such a way allows receiving packets sent at the same time. Although I'm not sure whether it may cause several side effects on the simulation, it seems working.

Alfonso Ariza Quintana

unread,
Jun 26, 2019, 5:27:55 AM6/26/19
to omn...@googlegroups.com
Check the Lora code, Lora use spreadFactor that is CDMA, the method

Method : LoRaReceiver::isPacketCollided

De: omn...@googlegroups.com <omn...@googlegroups.com> en nombre de muhammet talha kakız <mtalh...@gmail.com>
Enviado: miércoles, 26 de junio de 2019 9:23
Para: OMNeT++ Users
Asunto: Re: [Omnetpp-l] Re: Receiving Multiple Packets Sending at the Same Time
 
Hello everyone,

When I search for the solution of the problem on the web, I have found the following link which offers a solution for simultaneous receiving.


One of the authors suggests to remove timer == receptionTimer condition on function Radio:endReception.
Modifying the Radio class such a way allows receiving packets sent at the same time. Although it seems working, it may cause several side effects on the simulation.
To unsubscribe from this group and stop receiving emails from it, send an email to omnetpp+u...@googlegroups.com.

Fábio Engel

unread,
Apr 27, 2020, 10:12:14 AM4/27/20
to OMNeT++ Users
Hello.

This was my problem too. Thanks for posting the answer that you found. Do you have seen any side effect?
Reply all
Reply to author
Forward
0 new messages