Hello ns3-community,
I'm currently working on a project about the implementation of an Android-based opportunistic network using the ns3.
Since Android devices do not support an adhoc-mode, the idea was to use Android's hotspotting mechanism as the basis for this network.
Every node that is not connected to a hotspot decides by means of different criteria (waiting packets, rss, ...) either if it connects to an open hotspot, or if it opens a hotspot for other nodes. It is at no time possible to establish a route, because only single-hops may exist. (The scenario of two nodes (sender and receiver) being connected to the same hotspot forms an exception, that has to be considered.)
As far as I know, the functionality of a dual-use WifiNetDevice that either serves as a station or as a hotspot is not yet implemented in the ns3.
My solution to the problem is to equip every node with two WifiNetDevices, one configured with Sta- the other one with ApWifiMac. Since it is possible to set the inactive NetDevice into sleep mode, each node only ever has one active NetDevice at simulation's runtime. The concept for the hotspotting mechanism's implementation consists in creating a new virtual netdevice that serves as an interlayer on top of the data link layer similar to the already existing Mesh Device module.
The basic approach for routing will be flooding, but an other routing scheme that is a hybrid of spray and wait, spray and focus and seek and focus will also be implemented.
Please, let me know if you have any suggestions or ideas to improve this project.