[Ns-developers] IEEE80211s development in NS-3

Mathieu Lacage mathieu.lacage at sophia.inria.fr
Thu Nov 20 05:33:55 PST 2008


hi,

On Thu, 2008-11-20 at 14:33 +0300, kirillano wrote:

> Our current development in NS3 is aimed to make a complete model of
> IEEE802.11s D2.0 Draft Standart.

this is very cool !

> Now we have already developed beaconing model and peer link managament
> model (including managament frame types and data frame extentions for
> mesh networking).

ok

> Also we are starting to develop HWMP (Hybrid Wireless Mesh Protocol),
> and we would like to get some advice about constructing MAC-layer
> routing protocol.
> 
> Our idea of constructing MAC-layer routing protocol is copied from
> realization of FLAME protocol in Linux: 
> First, L2 protocol module creates a virtual network device, which
> grabs real network devices, on which routing should be started.
> Second, operating system deals with this virtual network device and
> can consider it to be simple ethernet device.

ok

> Now we have implemented mesh-wifi-mac (inherited from wifi-mac), and
> it can form and send all frame types, included in mesh Draft, but it
> has no routing primitives implemented and it does not know which frame
> to send and when (excluding peer link managament and beacons, which
> are the parts of mesh-wifi-mac).

ok

> So we suppose routing module to be written above WifiNetDevice, and
> routing should work using MLME interface (we want to implement MLME
> using NetDev, because this way makes some abstraction from realization
> of MAC) - i.e indication, confirmation, request and response
> primitives.

ok

> Also the routing module is a part of virtual NetDevice, it maintains a
> routing table, with all routing information including the real
> interface number (multi-interface model is important for mesh). When
> route resolve procedure is needed, it tells the real NetDevice all
> parameters, needed to route-resolve procedure to be started; the
> NetDevice does the same to MeshWifiMac, and MeshWifiMac forms proper
> frames with parameters given from routing module. When MeshWifiMac
> receives a routing managament frame from network, it notifies the
> routing protocol module using NetDevice, and the routing protocol
> module updates its routing table.

ok

> This model can attach the routing protocol above any kind of MAC
> (ethernet, etc), not only above MeshWifiMac, though NetDevice should
> be extended a bit - one address field should be added to real
> NetDevice Send method, and routing-to-MAC API shall be constructed.
> In the attachment you may see a diagram, which illustrates our idea.

Would you mind outline more specifically the changes you have in mind
for the NetDevice base class ? i.e., what is the exact signature of the
functions you would like to add or modify in the NetDevice base class,
how would these be implemented by various NetDevice subclasses ?

> 
> Our final aim is to commit our code to NS-3 development tree, so if
> someone have ideas how to improve this model - let's discuss it here.

If the goal is to integrate your work in the main ns-3 tree, the best
way to go forward would be to publish your code as soon as possible to
allow early reviews to proceed: "release early, release often". 

Since you seem to be proposing changes to the NetDevice base class, I
believe that you will need to seek approval from the maintainer of that
class (that would be Craig) and all ns-3 maintainers who are impacted by
that change (that would be everybody else). For the wifi-specific
changes, you will need to seek only my approval.

I hope that the above helps,

best regards,
Mathieu



More information about the Ns-developers mailing list