diff --git a/src/sixlowpan/doc/sixlowpan.rst b/src/sixlowpan/doc/sixlowpan.rst index 0d8f10ab1..e4ad9dd55 100644 --- a/src/sixlowpan/doc/sixlowpan.rst +++ b/src/sixlowpan/doc/sixlowpan.rst @@ -1,13 +1,13 @@ .. include:: replace.txt +.. highlight:: cpp -PageBreak 6LoWPAN: Transmission of IPv6 Packets over IEEE 802.15.4 Networks ----------------------------------------------------------------- This chapter describes the implementation of |ns3| model for the compression of IPv6 packets over IEEE 802.15.4-Based Networks -as specified by RFC 4944 and RFC 6262. +as specified by [RFC4944]_ and [RFC6282]_. Model Description ***************** @@ -21,8 +21,9 @@ The model design does not follow strictly the standard from an architectural standpoint, as it does extend it beyond the original scope by supporting also other kinds of networks. -Other than that, the module strictly follows RFCs 4944 and 6262, with the +Other than that, the module strictly follows RFCs 4944 and 6282, with the following exceptions: + * MESH and LOWPAN_BC0 dispatch types are not supported * HC2 encoding is not supported * IPHC's SAC and DAC are not supported @@ -31,7 +32,7 @@ The MESH and LOWPAN_BC0 are not supported as they do apply only to mesh-under architecture, which is not one of the goals of the module development. The HC2 encoding is not supported, as it has been superseded by IPHC and NHC -compression type (RFC 6262). +compression type (RFC 6282). IPHC SAC and DAC are not yet supported, as they do require RFC 6775 for full compliance. It is planned to support them in the future. @@ -49,6 +50,7 @@ GetMtu behaviour. It will always return *at least* 1280 bytes, as is the minumum The module does provide some attributes and some tracesources. The attributes are: + * Rfc6282 (boolean, default true), used to activate HC1 (RFC 4944) or IPHC (RFC 6282) compression. * OmitUdpChecksum (boolean, default true), used to activate UDP checksum compression in IPHC. * FragmentReassemblyListSize (integer, default 0), indicating the number of packets that can be reassembled at the same time. If the limit is reached, the oldest packet is discarded. Zero means infinite. @@ -59,7 +61,7 @@ The attributes are: The last two attributes are needed to use the module with a NetDevice other than 802.15.4, as neither IANA or IEEE did reserve an EtherType for 6LoWPAN. As a consequence there might be a conflict with the L2 multiplexer/demultiplexer which is based on EtherType. The default -value is 0xFFFF, which is reserved by IEEE. +value is 0xFFFF, which is reserved by IEEE (see [IANA802]_ and [Ethertype]_). The default module behaviour is to not change the EtherType, however this would not work with any NetDevice actually understanding and using the EtherType. @@ -75,6 +77,7 @@ Wireshark dissectors will not even try to decode 6LoWPAN headers on top of proto 802.15.4. The Trace sources are: + * Tx - exposing packet (including 6LoWPAN header), SixLoWPanNetDevice Ptr, interface index. * Rx - exposing packet (including 6LoWPAN header), SixLoWPanNetDevice Ptr, interface index. * Drop - exposing DropReason, packet (including 6LoWPAN header), SixLoWPanNetDevice Ptr, interface index. @@ -86,7 +89,7 @@ invoked when a packet (or a fragment) is discarded. Scope and Limitations ===================== -Future versions of this module will support RFC 6775, however no timeframe is guaranteed. +Future versions of this module will support [RFC6775]_, however no timeframe is guaranteed. Using 6LoWPAN with IPv4 (or other L3 protocols) ############################################### @@ -106,10 +109,11 @@ not been tested. References ========== -* RFC 4944, "Transmission of IPv6 Packets over IEEE 802.15.4 Networks". -* RFC 6282, "Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks". -* http://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xml -* http://standards.ieee.org/develop/regauth/ethertype/eth.txt +.. [RFC4944] RFC 4944, "Transmission of IPv6 Packets over IEEE 802.15.4 Networks": http://www.ietf.org/rfc/rfc4944.txt +.. [RFC6282] RFC 6282, "Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks": http://www.ietf.org/rfc/rfc6282.txt +.. [RFC6775] RFC 6775, "Neighbor Discovery Optimization for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)": http://www.ietf.org/rfc/rfc6775.txt +.. [IANA802] IANA, assigned IEEE 802 numbers: http://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xml +.. [Ethertype] IEEE Ethertype numbers: http://standards.ieee.org/develop/regauth/ethertype/eth.txt Usage ***** diff --git a/src/sixlowpan/model/sixlowpan-header.h b/src/sixlowpan/model/sixlowpan-header.h index 5c954adaa..c99da2931 100644 --- a/src/sixlowpan/model/sixlowpan-header.h +++ b/src/sixlowpan/model/sixlowpan-header.h @@ -562,7 +562,7 @@ std::ostream & operator<< (std::ostream & os, SixLowPanFragN const &header); /** * \ingroup sixlowpan -* \brief LOWPAN_IPHC base Encoding - see RFC 6262 +* \brief LOWPAN_IPHC base Encoding - see RFC 6282 \verbatim 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 @@ -920,7 +920,7 @@ std::ostream & operator<< (std::ostream & os, SixLowPanIphc const &header); /** * \ingroup sixlowpan -* \brief LOWPAN_NHC Extension Header Encoding - see RFC 6262 +* \brief LOWPAN_NHC Extension Header Encoding - see RFC 6282 \verbatim 0 1 2 3 4 5 6 7 +---+---+---+---+---+---+---+---+ @@ -1065,7 +1065,7 @@ std::ostream & operator<< (std::ostream & os, SixLowPanNhcExtension const &heade /** * \ingroup sixlowpan -* \brief UDP LOWPAN_NHC Extension Header Encoding - see RFC 6262 +* \brief UDP LOWPAN_NHC Extension Header Encoding - see RFC 6282 \verbatim 0 1 2 3 4 5 6 7 +---+---+---+---+---+---+---+---+ diff --git a/src/sixlowpan/model/sixlowpan-net-device.h b/src/sixlowpan/model/sixlowpan-net-device.h index a3c32bc48..da84d071a 100644 --- a/src/sixlowpan/model/sixlowpan-net-device.h +++ b/src/sixlowpan/model/sixlowpan-net-device.h @@ -39,11 +39,11 @@ class Node; /** * \defgroup sixlowpan 6LoWPAN - * \brief Performs 6LoWPAN compression of IPv6 packets as specified by RFC 4944 and RFC 6262 + * \brief Performs 6LoWPAN compression of IPv6 packets as specified by RFC 4944 and RFC 6282 * * This module acts as a shim between IPv6 and a generic NetDevice. * - * The module implements RFCs 4944 and 6262, with the following exceptions: + * The module implements RFCs 4944 and 6282, with the following exceptions: *