Implement a Hybrid Wireless Mesh Network

551 views
Skip to first unread message

Daniel Oliva Domingues

unread,
Apr 27, 2016, 4:32:01 PM4/27/16
to ns-3-users
Hello everybody,

I'm currently developing my masters thesis and so I would like to implement a Hybrid Wireless Mesh Network in NS-3. I have already looked for some examples but I was unable to find any. I was able to find the Mesh Client model in NS-3 but not the Mesh Router model. Does anyone know if it is possible to implement that using NS-3?

Many thanks.

Regards,

Daniel Oliva Domingues

Tommaso Pecorella

unread,
Apr 27, 2016, 5:47:34 PM4/27/16
to ns-3-users
Hi,

can you please define what you mean exactly by "hybrid wireless mesh network" ?
In ns-3 you'll find the HWMP implementation, and (if this was the question) all the nodes are actually routers. Well, they're not exactly "routers", because HWMP is a mesh-under, not a route-over, but they do the same thing, if you know what I mean.
Anyway, clarify the question please.

Thanks,

T.

Daniel Oliva Domingues

unread,
Apr 28, 2016, 6:43:28 AM4/28/16
to ns-3-users
Hello Tommaso,

Sorry for not being so clear. With hybrid I mean a mesh network which contains both properties of Infrastructure and Client Based Mesh topologies, where there is the backbone section of the network (static mesh routers) which supports part of the clients and there are also clients (mobile mesh clients) which communicate among themselves in a peer-to-peer mode.

I've taken a look at the HWMP implementation, however I would like to have this separation between Mesh Routers and Mesh Clients.

Is that possible?

Many thanks.

Regards,

Daniel

Tommaso Pecorella

unread,
Apr 28, 2016, 8:40:10 AM4/28/16
to ns-3-users
Hi Daniel,

the difference is in the node: what you're calling "mesh router" is a node that will have access to both the infrastructure network (e.g., wired net) and to the mesh. In that node you'll have to install a "normal" routing protocol.
That's where the nodes will be different.

Cheers,

T.

Daniel Oliva Domingues

unread,
Apr 28, 2016, 6:50:51 PM4/28/16
to ns-3-users
Hi Tommaso,

Thanks for your reply. I see what you mean.

Now I think my big problem is how can I simulate other protocols like AODV and OLSR under the mesh network. I'm using the mesh.cc file (/src/mesh/examples) to try to do this, but when I remove the m_stack ("ns3::Dot11sStack") variable and its dependencies (because I have understood that this relates to the HWMP protocol), I'm unable to compile the file. I don't know if I'm clear, but I want to disable the layer 2 routing (HWMP) to be able to route only using layer 3 (AODV, OLSR, etc). I have already added AODV routing to my topology, but if I don't remove the m_stack ("ns3::Dot11sStack") variable, the routing is being done twice (layers 2 and 3).

Many thanks once again.

Daniel

Tommaso Pecorella

unread,
Apr 28, 2016, 7:23:58 PM4/28/16
to ns-3-users
Hi,

actually you can't use AODV (or OLSR, or any other L3 routing) over a mesh NetDevice. Well, you can, but they won't do much.
The problem is that the mesh NetDevice is bound to have a L2 routing protocol, and that one will do its job, no matter what.
The best you can do is to use a "plain" 802.11a ad-hoc network and an L3 routing protocol on top of that one.

Cheers,

T.

Daniel Oliva Domingues

unread,
May 1, 2016, 12:37:32 PM5/1/16
to ns-3-users
Hi Tommaso,

Sorry for the delay.

That's a bad news for me, because my job involves simulating L3 routing protocols over Mesh Networks. Which options do you think that are the best to me?
- Try to modify the mesh NetDevice source code?
- Use NS-2 to develop my work? Do you know if using it can I do that?
- Look for another simulator?

Many thanks.

Regards,

Daniel

Tommaso Pecorella

unread,
May 1, 2016, 4:10:59 PM5/1/16
to ns-3-users
Hi Daniel,

I think that your best option is to think to what it is a "mesh network" before heavily modifying the code.

The mesh module defines a NetDevice that wraps one or more "normal" Wi-Fi NetDevices, For real there is a new MeshWifiInterfaceMac, more on that later.
The routing protocol dependency is in the NetDevice. If you really need to have a no-op routing protocol, you can define it, or you can modify the NetDevice to handle the case of null pointer (i.e., no L2 routing defined).
I'm not a Mesh protocol expert, so I can't tell how much the MeshWifiInterfaceMac is different from an AdHocWifiMac, and if it could be used with a "normal" WifiNetDevice (probably yes).
From what I can understand from the code, modifying the NetDevice to fix the routing dependency shouldn't be too hard, but it can be confirmed only doing it.

Summarizing: I'd try to modify the code, or to see if an AdHoc Wi-Fi network is *that* different from a mesh NetDevice (L3 routing works on AdHoc Wi-Fi).

Cheers,

T.

Daniel Oliva Domingues

unread,
May 4, 2016, 1:42:28 PM5/4/16
to ns-3-...@googlegroups.com
Hi Tommaso,

Many thanks for your reply. By mesh network I mean a full/partial mesh connectivity between all the network nodes.

I have understood what you said and I will study the functionality of MeshWifiInterfaceMac. Maybe it can be used with a WifiNetDevice as you said.

I'm a C++ newbie, but if nothing works as expected I will try to modify the mesh NetDevice source code as my last option.

Many thanks once again.

Regards,

Daniel

--
Posting to this group should follow these guidelines https://www.nsnam.org/wiki/Ns-3-users-guidelines-for-posting
---
You received this message because you are subscribed to a topic in the Google Groups "ns-3-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ns-3-users/5JOxDcwO_p0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ns-3-users+...@googlegroups.com.
To post to this group, send email to ns-3-...@googlegroups.com.
Visit this group at https://groups.google.com/group/ns-3-users.
For more options, visit https://groups.google.com/d/optout.

Daniel Oliva Domingues

unread,
Jun 16, 2016, 5:33:04 PM6/16/16
to ns-3-users
Hi Tommaso, how are you?

I've been trying to "disable" HWMP protocol on NetMeshDevice since our last chat but I didn't succeded. So last week I've come up with a possible solution to my problem that is to use different Mac types depending on what type of network I want to simulate:

- Client mesh network: all nodes are AdhocWifiMac and have a routing protocol installed in its stacks, for example OLSR, so they can communicate with each other using Adhoc communication and then route packets;

- Infrastructure mesh network: backbone nodes (mesh routers) are ApWifiMac and AdhocWifiMac simultaneously and client nodes are StaWifiMac only, so client nodes can communicate with backbone nodes using simple Wi-Fi AP-STA communication and mesh routers can route packets between each other using OLSR, for example;

- Hybrid mesh network: backbone nodes (mesh routers) are ApWifiMac and AdhocWifiMac simultaneously and client nodes are StaWifiMac and AdhocWifiMac simultaneously, so client nodes can communicate with backbone nodes using simple Wi-Fi AP-STA communication or route packets (with OLSR) between each other using Adhoc communication, and also mesh routers can route packets between each other using OLSR, for example.

Do you know if my idea is conceptually right? Can I simulate mesh networks this way?

Many thanks once again.

Regards,

Daniel Domingues
To unsubscribe from this group and all its topics, send an email to ns-3-users+unsubscribe@googlegroups.com.

Tommaso Pecorella

unread,
Jun 16, 2016, 6:12:47 PM6/16/16
to ns-3-users
Hi Daniel,

well, it's what I'd do in first place. The Wireless Mesh Routers will need to have 2 Wi-Fi interfaces, one configured as an AP and one as a AdHoc.
As a side note, I think there's an example doing that...

cheers,

T.
To unsubscribe from this group and all its topics, send an email to ns-3-users+...@googlegroups.com.

Daniel Oliva Domingues

unread,
Jun 23, 2016, 6:47:29 AM6/23/16
to ns-3-users
Hi Tommaso,

I've tried to implement these 2 Wi-Fi interfaces for each Wireless Mesh Router and so they communicate with each other, but they don't route packets to the Client Nodes.

I've attached my code to simulate that situation. Could you please take a look when possible and give me some direction?

Many thanks!

Regards,

Daniel
test.cc
Reply all
Reply to author
Forward
0 new messages