This page is for coordinating development of the lr-wpan model for ns-3.
802.15.4 models have been worked on in ns-2 dating to 2003.
- A thorough model for 802.15.4 is implemented in ns-2 and described here
- This work did some additional work on the ns-2 model.
- more description of the ns-2 implementation is here
Some initial 802.15.4 models were contributed by Boeing in the 2011 timeframe, and maintained at http://code.nsnam.org/tomh/ns-3-lr-wpan/. This repository is now considered obsolete, replaced by http://code.nsnam.org/lr-wpan/ns-3-lr-wpan/.
Please see Sphinx documentation for a description of what is already done in this repository. This repository is only the starting point for a full 802.15.4 model.
In ns-3.19 release, a 6LoWPAN model was included, but the 6LoWPAN model precedes the 802.15.4 model, and hence can only run over wired links.
Current status and next steps
A set of developers plans to contribute initial 802.15.4 support for ns-3.20. This group plans to work on the ns-developers mailing list and propose a mergeable subset of full 802.15.4 support. Full 802.15.4 support is expected to require a few release cycles.
Goals for ns-3.20
Support for 6LoWPAN over 802.15.4 model(done)
- Align with 802.15.4-2011 version of the standard
- Define clearly what features are modeled and validated, and which are for further study.
Other goals are TBD and will later be listed here.
Initial patch for review
Sascha Alexandar Jopen and Margherita Filippetti have proposed recent patches to the base Boeing patch, and Sascha has merged much of them to a single patch for review. This is being reviewed until mid-February, at which time it will be merged to http://code.nsnam.org/lr-wpan/ns-3-lr-wpan/, and the remaining workplan for ns-3.20 will be decided.
The code review is listed here: https://codereview.appspot.com/59240044/
Old list of issues with 802.15.4 model
Some initial code has been available at http://code.nsnam.org/tomh/ns-3-lr-wpan/.
Some missing features have been identified:
- Extended adresses
- Expose all MAC and PHY variables as ns-3 attributes.
- Calculate and check FCS if global attribute ChecksumEnable is set.
Class WpanAddress is not used, remove? Or use it instead of Mac16Address/Mac64Address.(WpanAddress Removed)
- NetDevice: LinkUp, LinkDown, remove? Or enable/disable transceiver.
- NetDevice: 6LoWPAN: Do you need the MTU, which MTU should we export? The maximum, i.e. without security, only 16bit addresses and with only the destination address and pan id, or source and destination addresses with pan id compression?
- This is dependent on the PAN. Once a node is associated, those params are known.
NetDevice: NeedsArp: Only true for 6LoWPAN?(No. ARP is needed by 802.15.4. Eventually it's elided by higher layer protocols (e.g., 6LoWPAN-ND)
Helper for assigning MacAddresses and configuring the lr-wpan stack.(Done)
- LrWpanSpectrumValueHelper: Make noise factor accessible through the ns-3 attribute system
- LrWpanSpectrumValueHelper: Make all functions static?
- PHY: More sophisticated handling of interference, i.e. handle it at all
- PHY: Tracing should be reviewed, especially RxBegin, RxEnd, RxDrop
- PHY: Do we really need m_rxTotalNum, or can we derive the information from m_rxTotalPsd?
- Coordinator, GTS, CAP
The 6LoWPAN module has been merged with ns-3-dev and will be available in ns-3.19. The current implementation is based on RFCs 4944 and 6282. The module does not implement all the 6LoWPAN features (in particular BC0, MESH and HC2 are not implemented). Moreover stateful compression is not yet supported (as it requires 6LoWPAN-ND).
Interested users should read the Doxygen and ns-3 manual for a full description of the module functionalities and limitations.
The "Neighbor Discovery Optimization for Low Power and Lossy Networks", also called 6LoWPAN-ND (RFC 6775) is strongly being considered for implementation. It could be extremely useful to study WSN bootstrap operations and proper RPL neighbor discovery under limited (i.e., non-multicast capable) assumptions. Moreover, 6LoWPAN-ND is required for stateful 6LoWPAN header compression. Currently, due to lack of resources, the development is on hold. Anyone interested in this development can contact Tommaso Pecorella
RPL (Routing Over Low power and Lossy networks)
RPL is being developed by Tommaso Pecorella (and others). No repository is actually available and only a restricted set of developers have access to the code. It will be released as soon as it's ready for the general use. Some of the features that will be in the model are:
- full support for custom metrics
- Storing with multicast support MOP
- P2P routes
The RPL model is currently at its 5th refactoring. Current development is focusing on a better handling of parents, along with their metric changes.The new code will support seamless integration of new metrics, up but not limited to:
- HC (the dumbest metric)
Note that, in order to really use the Energy metric, a full refactoring of the lr-wpan model will be required.