Difference between revisions of "Lr-wpan"

From Nsnam
Jump to: navigation, search
(Old list of issues with 802.15.4 model)
(History)
 
(9 intermediate revisions by 3 users not shown)
Line 10: Line 10:
 
* more description of the ns-2 implementation is [http://www.ee.washington.edu/research/funlab/802_15_4/ here]
 
* more description of the ns-2 implementation is [http://www.ee.washington.edu/research/funlab/802_15_4/ 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/.
+
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 the 'lr-wpan' module that is now in ns-3 as of ns-3.20 release.
  
Please see [http://code.nsnam.org/tomh/ns-3-lr-wpan/file/735b14afde8e/lr-wpan-documentation.pdf 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 [http://www.nsnam.org/doxygen/group__sixlowpan.html 6LoWPAN model] was included, but the 6LoWPAN model precedes the 802.15.4 model. As a consequence, the 6LoWPAN examples are based on wired (csma) NetDevices. The model, of course, is perfectly working over the lr-wpan model.
 
+
In ns-3.19 release, a [http://www.nsnam.org/doxygen/group__sixlowpan.html 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 =
 
= 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.
+
Initial 802.15.4 support will be included in ns-3.20.  Full 802.15.4 support is expected to require a few release cycles.
  
 
== Goals for ns-3.20 ==
 
== Goals for ns-3.20 ==
  
 
* <strike>Support for 6LoWPAN over 802.15.4 model</strike> (done)
 
* <strike>Support for 6LoWPAN over 802.15.4 model</strike> (done)
* Align with 802.15.4-2011 version of the standard
+
* <strike>Define clearly what features are modeled and validated, and which are for further study.</strike>
* Define clearly what features are modeled and validated, and which are for further study.
+
  
Other goals are TBD and will later be listed here.
+
== Goals for post-3.20 ==
  
== Initial patch for review ==
+
* Align with 802.15.4-2011 version of the standard
  
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.
+
Other goals are to be determined and will later be listed here.
  
The code review is listed here: https://codereview.appspot.com/59240044/
+
== Previous list of issues with 802.15.4 model ==
  
== Old list of issues with 802.15.4 model ==
+
Some initial code has been available for some time now at http://code.nsnam.org/tomh/ns-3-lr-wpan/.  
  
Some initial code has been available at http://code.nsnam.org/tomh/ns-3-lr-wpan/.
+
Some missing features have been identified by others:
 
+
Some missing features have been identified:
+
 
* Extended adresses
 
* Extended adresses
 
* Expose all MAC and PHY variables as ns-3 attributes.
 
* Expose all MAC and PHY variables as ns-3 attributes.
* Calculate and check FCS if global attribute ChecksumEnable is set.
+
* Implement Interframe Spacing (IFS) in the MAC.
 +
* Do we need PacketBursts in LrWpanSpectrumSignalParameters? Maybe a Packet would be sufficient.
 +
* <strike>Calculate and check FCS if global attribute ChecksumEnable is set.</strike>
 
* <strike>Class WpanAddress is not used, remove? Or use it instead of Mac16Address/Mac64Address.</strike> (WpanAddress Removed)
 
* <strike>Class WpanAddress is not used, remove? Or use it instead of Mac16Address/Mac64Address.</strike> (WpanAddress Removed)
 
* NetDevice: LinkUp, LinkDown, remove? Or enable/disable transceiver.
 
* 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?
 
* 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.
 
** This is dependent on the PAN. Once a node is associated, those params are known.
* NetDevice: NeedsArp: Only true for 6LoWPAN?
+
* <strike>NetDevice: NeedsArp: Only true for 6LoWPAN?</strike> (No. ARP is needed by 802.15.4. Eventually it's suppressed by higher layer protocols (e.g., 6LoWPAN-ND)
 
* <strike>Helper for assigning MacAddresses and configuring the lr-wpan stack.</strike> (Done)
 
* <strike>Helper for assigning MacAddresses and configuring the lr-wpan stack.</strike> (Done)
 
* LrWpanSpectrumValueHelper: Make noise factor accessible through the ns-3 attribute system
 
* LrWpanSpectrumValueHelper: Make noise factor accessible through the ns-3 attribute system
* LrWpanSpectrumValueHelper: Make all functions static?
+
* <strike>LrWpanSpectrumValueHelper: Make all functions static?</strike>
* PHY: More sophisticated handling of interference, i.e. handle it at all
+
* <strike>PHY: More sophisticated handling of interference, i.e. handle it at all</strike>
 
* PHY: Tracing should be reviewed, especially RxBegin, RxEnd, RxDrop
 
* 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?
+
* <strike>PHY: Do we really need m_rxTotalNum, or can we derive the information from m_rxTotalPsd?</strike>
 
* Coordinator, GTS, CAP
 
* Coordinator, GTS, CAP
  
 
= 6LoWPAN =
 
= 6LoWPAN =
  
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 6LoWPAN module has been merged with ns-3-dev and is available from 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).
 
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.
 
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.
 
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.

Latest revision as of 14:54, 5 January 2015

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

This page is for coordinating development of the lr-wpan model for ns-3.

History

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 the 'lr-wpan' module that is now in ns-3 as of ns-3.20 release.

In ns-3.19 release, a 6LoWPAN model was included, but the 6LoWPAN model precedes the 802.15.4 model. As a consequence, the 6LoWPAN examples are based on wired (csma) NetDevices. The model, of course, is perfectly working over the lr-wpan model.

Current status and next steps

Initial 802.15.4 support will be included in ns-3.20. 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)
  • Define clearly what features are modeled and validated, and which are for further study.

Goals for post-3.20

  • Align with 802.15.4-2011 version of the standard

Other goals are to be determined and will later be listed here.

Previous list of issues with 802.15.4 model

Some initial code has been available for some time now at http://code.nsnam.org/tomh/ns-3-lr-wpan/.

Some missing features have been identified by others:

  • Extended adresses
  • Expose all MAC and PHY variables as ns-3 attributes.
  • Implement Interframe Spacing (IFS) in the MAC.
  • Do we need PacketBursts in LrWpanSpectrumSignalParameters? Maybe a Packet would be sufficient.
  • 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 suppressed 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

6LoWPAN

The 6LoWPAN module has been merged with ns-3-dev and is available from 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)
  • ETX
  • SNR
  • Energy
  • etc.

Note that, in order to really use the Energy metric, a full refactoring of the lr-wpan model will be required.