How to implement AODV and GPSR protocols based on 80211p? - omnet++

I implemented AODV and GPSR protocol existing in inet module on the senario network existing in veins-inet subproject.so, how to implement them based on 80211p ?
In other words , i want to use the upper layers of INET and lower layers of Veins?
I am using instant veins-4.7.1

If you want to use lower layers of Veins, you will need to write an adapter module yourself. Its design is straightforward: to upper layers, it will look like an INET NIC, to lower layers it will act like a Veins application.
Note, however, that recent versions of the INET Framework offer an easier way: their WLAN NIC can be configured to behave according to 802.11p. While this has not received as much use as the modules of Veins, it should serve as a reasonably-safe alternative in many applications.
See the veins_inet example of recent Veins versions for how to configure INET to model 802.11p VANETs and, at the same time, use Veins for ensuring realistic road traffic.

Related

Veins 802.11p CSMA/CA and retransmission

Vehicles communicate using 802.11p on Veins 5.1, OmNET 5.6.2, sumo 1.8.0 environment.
My questions
Do I have to implement retransmission process(like CSMA/CA) when collision is occurred?
or, is retransmission process(like CSMA/CA) already implemented in library or such class?
I want to use RTS/CTS option, do I have to implement it too?
Thank you
To directly answer your question: the 802.11p modules that are included in Veins 5.1 trigger automatic retransmissions (following the 802.11 specification) for lost unicast messages if the MAC layer useAcks parameter is set to true (which is not the default). RTS/CTS is not implemented, so if you want to use only modules from Veins you would need to implement this yourself.
More generally, though, your research sounds like it might be better served if you would combine Veins with The INET Framework (via veins_inet); this would allow you to use the more general 802.11 simulation model included in The INET Framework. It includes features like block-ACKs, RTS/CTS, fragmentation and reassembly, infrastructure mode, automatic rate selection, and many more.

how to add routing functionalities on the top of veins appl?

Veins is easy to use the map with obstacles from SUMO. However, it lacks routing operations of communication networks. I want to add AODV routing on the top of Veins' examples. What is the straightforward way ?
Thank you in advance!
INET 4 supports the simulation of routing protocols. I would therefore recommend to essentially build a simulation using INET 4, then to use Veins (and veins_inet) to drive node mobility/creation in your simulation. See the veins_inet example for how to do that.

Send packets to neighboring nodes and use multi-hop routing in Castalia Simulator

I want to simulate a WBAN routing protocol in Castalia simulator.
First of all, I want nodes to send broadcast messages to all of their neighbors. In Castalia, as a default manner nodes send Broadcast messages not only to neighbors but also to all nodes in the network. as a result, we don't have any relay node to forward packets.
So, I think that Castalia uses single-hop routing and therefore
multi-hop routing is not defined in it.
How can I implement multi-hop routing in Castalia?
In Castalia, as a default manner nodes send Broadcast messages not only to neighbors but also to all nodes in the network. as a result, we don't have any relay node to forward packets.
[...] So, I think that Castalia uses single-hop routing and therefore multi-hop routing is not defined in it.
I am note sure where you are getting this information, but this is wrong. Castalia is capable of multihop routing, there is even a Routing module called MultipathRingsRouting in the default distribution.
Moreover, your statements seem to be contradictory with each other. How can Castalia send messages to all nodes in the network (not just single-hop neighbours) and yet not support any multihop routing? Can you see how these are contradictory statements? In the same spirit how can Castalia send messages to all nodes in the network and "as a result, we don't have any relay node to forward packets". Can you see how this does not make much sense.
Perhaps you are confused by the BAN simulation examples in Castalia which define networks where all the nodes are a single hop from the BAN hub. This does not mean that Castalia in general cannot support multihop routing. It does.
You mention a WBAN Routing protocol in your question. You should note that the current implementation of the BaselineBANMAC in Castalia does not support multi-hop communication. Just to be clear, I am talking about this specific MAC and not Castalia as a whole. This MAC does not support any routing on top of it because it only allows communication between the hub and the slave nodes. There can only be one hub per network. You can have multiple networks (each having a hub) in your simulation, but these will be logically seperate and can only interfere with each other, not communicate. Perhaps, you wanted to use this MAC in your simulations. You will not be able to explore routing with this MAC.
You can however use other MACs (such as TunableMAC, or TMAC) that allow routing to be used on top of them. To be clear, the MAC does not do any routing, this is done by the routing layer above it (a separate module), but a MAC design can allow a routing layer to operate above it, or not. Make sure you read the manual carefully and have a solid understanding of the basics.

How to test reliability of my Veins simulations?

I am developing Car2X applications in order to simulate case studies based on Veins framework.
As an Information Systems student, I have been worried mostly about the code of my applications.
Recently I noticed that VEINS has no LLC, NETWORK and TRANSPORT layers in its source code (/src).
My question is: how to assure that my simulation runs would generate data close to reality for Car2X applications when there's none of these layers above in the source code?
P.S.: I am aware of INET framework and its protocols, I was just wondering if I could use just Veins for my case studies :)
The layers you mentioned are not needed for most Car2X simulations. If you download, for example, Veins 4.4, you will find only simulation models for single hop broadcast transmission of frames, the most general use case. If you want to simulate a special protocol, say, for multi-hop transmission of frames, you will need to implement this as a network layer. Then, your simulation will have a network layer model.

Which framework for wireless sensor networks

I want to develop and test a protocol for wireless sensor networks in OMNeT++. Which framework should I use?
Is it sensible to use Castalia or MiXiM although they are deprecated?
Is it sensible to use inet without using the 802.11 stuff?
INET is practically a superset of MiXiM. It is possible to use it without the 802.11 radio. Depending on how accurate your physical model needs to be, you can configure it with different radios (with different speed and complexity). If your goal is to test routing algorithms then probably a simple radio will do the job. I also suggest to check out the wireless tutorial for INET.

Resources