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.
Related
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.
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.
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.
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.
I am writing a SNMP Agent for an Ethernet switch.
The agent is able to run and reply to provide SysDescr. It has been written in a modular design, such that, one can add OIDs very easily.
Now, my intention is to create a topology (say ring) of the switches and discover the topology using a common Network Management System like HP-NNMi or OpenNMS (I am testing on OpenNMS btw).
I just want to know, what oids are queried by an NMS, to gather enough information to draw the topology?
[EDIT] I can know, what is the MAC of the remote switches connected to any port of a switch, through MAC learning.
The answer depends on what type of topology you want to capture through your ethernet switch. Usually for a layer two switch (which appears to be the case) LLDP MIB (This is an IEEE std implemented by many switches) is quite useful. From what you described above that is you have information about MACs on a port it appears you probably can go this route. There are some other Physical topology MIBs (like RFC2292) that you may want to look at.
You can have a look at the OpenNMS Enhanced Linkd documentation. It will give you some hints which OID's are used to build a Layer-2 topology based on LLDP, CDP and the Bridge MIB. To build it a topology based on the Bridge MIB, OpenNMS has implemented the algorithm described in Topology Discovery for Large Ethernet Networks. You'll find also hints what information is used to build an OSPF and IS-IS topology.
Every NMS uses their proprietary topology discovery.
Depending on what your switch supports, you'll want to consider at least
RFC1213-MIB ipAddrTable, ipRouteTable
IF-MIB ifTable
IP-FORWARD-MIB inetCidrRouteTable
BRIDGE-MIB dot1dTpFdbTable, dot1dStpPortTable
Q-BRIDGE-MIB dot1qTpFdbTable
LLDP-MIB lldpLocPortTable, lldpRemTable
OSPF-MIB
BGP4-MIB
and if you support VLANs, you'll want to describe those.
We have seen other MIBs queried by NMS applications.