Performs 6LoWPAN compression of IPv6 packets as specified by RFC 4944 and RFC 6282. More...
Classes | |
| class | ns3::SixLowPanNetDevice::Fragments |
| A Set of Fragment. More... | |
| class | ns3::SixLowPanDispatch |
| Dispatch header helper. More... | |
| class | ns3::SixLowPanFrag1 |
| 6LoWPAN FRAG1 header - see RFC 4944 More... | |
| class | ns3::SixLowPanFragN |
| 6LoWPAN FRAGN header - see RFC 4944 More... | |
| class | ns3::SixLowPanHc1 |
| 6LoWPAN HC1 header - see RFC 4944 More... | |
| class | ns3::SixLowPanHelper |
| Setup a sixlowpan stack to be used as a shim between IPv6 and a generic NetDevice. More... | |
| class | ns3::SixLowPanIphc |
| LOWPAN_IPHC base Encoding - see RFC 6282. More... | |
| class | ns3::SixLowPanIpv6 |
| 6LoWPAN IPv6 uncompressed header - see RFC 4944 More... | |
| class | ns3::SixLowPanNetDevice |
| Shim performing 6LoWPAN compression, decompression and fragmentation. More... | |
| class | ns3::SixLowPanNhcExtension |
| LOWPAN_NHC Extension Header Encoding - see RFC 6282. More... | |
| class | ns3::SixLowPanUdpNhcExtension |
| UDP LOWPAN_NHC Extension Header Encoding - see RFC 6282. More... | |
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 6282, with the following exceptions:
Dispatch values, as defined in RFC4944 and RFC6282.
Pattern Header Type +------------+------------------------------------------------+ | 00 xxxxxx | NALP - Not a LoWPAN frame | | 01 000000 | ESC - Additional Dispatch byte follows | | 01 000001 | IPv6 - Uncompressed IPv6 Addresses | | 01 000010 | LOWPAN_HC1 - LOWPAN_HC1 compressed IPv6 | | 01 000011 | reserved - Reserved for future use | | ... | reserved - Reserved for future use | | 01 001111 | reserved - Reserved for future use | | 01 010000 | LOWPAN_BC0 - LOWPAN_BC0 broadcast | | 01 010001 | reserved - Reserved for future use | | ... | reserved - Reserved for future use | | 01 1xxxxx | LOWPAN_IPHC - LOWPAN_IPHC compressed IPv6 | | 10 xxxxxx | MESH - Mesh Header | | 11 000xxx | FRAG1 - Fragmentation Header (first) | | 11 001000 | reserved - Reserved for future use | | ... | reserved - Reserved for future use | | 11 011111 | reserved - Reserved for future use | | 11 100xxx | FRAGN - Fragmentation Header (subsequent)| | 11 101000 | reserved - Reserved for future use | | ... | reserved - Reserved for future use | | 11 111111 | reserved - Reserved for future use | +------------+------------------------------------------------+
| Enumerator | |
|---|---|
| LOWPAN_NALP | |
| LOWPAN_NALP_N | |
| LOWPAN_IPv6 | |
| LOWPAN_HC1 | |
| LOWPAN_BC0 | |
| LOWPAN_IPHC | |
| LOWPAN_IPHC_N | |
| LOWPAN_MESH | |
| LOWPAN_MESH_N | |
| LOWPAN_FRAG1 | |
| LOWPAN_FRAG1_N | |
| LOWPAN_FRAGN | |
| LOWPAN_FRAGN_N | |
| LOWPAN_UNSUPPORTED | |
Definition at line 78 of file sixlowpan-header.h.
Enumeration of the dropping reasons in SixLoWPAN.
| Enumerator | |
|---|---|
| DROP_FRAGMENT_TIMEOUT |
Fragment timeout exceeded. |
| DROP_FRAGMENT_BUFFER_FULL |
Fragment buffer size exceeded. |
| DROP_UNKNOWN_EXTENSION |
Unsupported compression kind. |
Definition at line 70 of file sixlowpan-net-device.h.
EID: IPv6 Extension Header ID.
EID: IPv6 Extension Header ID: 0: IPv6 Hop-by-Hop Options Header [RFC2460] 1: IPv6 Routing Header [RFC2460] 2: IPv6 Fragment Header [RFC2460] 3: IPv6 Destination Options Header [RFC2460] 4: IPv6 Mobility Header [RFC6275] 5: Reserved 6: Reserved 7: IPv6 Header
| Enumerator | |
|---|---|
| EID_HOPBYHOP_OPTIONS_H | |
| EID_ROUTING_H | |
| EID_FRAGMENTATION_H | |
| EID_DESTINATION_OPTIONS_H | |
| EID_MOBILITY_H | |
| EID_IPv6_H | |
Definition at line 976 of file sixlowpan-header.h.
Source or Destination Address Mode.
00: 128 bits. 01: 64 bits (or 48 bits if multicast). 10: 16 bits (or 32 bits if multicast). 11: Fully elided (or 8 bits if multicast).
| Enumerator | |
|---|---|
| HC_INLINE | |
| HC_COMPR_64 | |
| HC_COMPR_16 | |
| HC_COMPR_0 | |
Definition at line 653 of file sixlowpan-header.h.
HLIM: Hop Limit.
00: The Hop Limit field is carried in-line. 01: The Hop Limit field is compressed and the hop limit is 1. 10: The Hop Limit field is compressed and the hop limit is 64. 11: The Hop Limit field is compressed and the hop limit is 255.
| Enumerator | |
|---|---|
| HLIM_INLINE | |
| HLIM_COMPR_1 | |
| HLIM_COMPR_64 | |
| HLIM_COMPR_255 | |
Definition at line 637 of file sixlowpan-header.h.
Kind of address compression.
The address compression is handled in 4 bits and might mean: PI: Prefix inline, PC: Prefix Compressed, II: Interface Identifier, Inline, IC: Interface Identifier Compressed
| Enumerator | |
|---|---|
| HC1_PIII | |
| HC1_PIIC | |
| HC1_PCII | |
| HC1_PCIC | |
Definition at line 143 of file sixlowpan-header.h.
Next header information.
The Next header compression is handled in 4 bits and might mean: NC: Not Compressed, UDP, ICMP or TCP.
| Enumerator | |
|---|---|
| HC1_NC | |
| HC1_UDP | |
| HC1_ICMP | |
| HC1_TCP | |
Definition at line 157 of file sixlowpan-header.h.
Dispatch values for Next Header compression.
The dispatch values reflect the dispatch use, since some dispatch bits carry actual header compression bits.
| Enumerator | |
|---|---|
| LOWPAN_NHC | |
| LOWPAN_NHC_N | |
| LOWPAN_UDPNHC | |
| LOWPAN_UDPNHC_N | |
| LOWPAN_NHCUNSUPPORTED | |
Definition at line 102 of file sixlowpan-header.h.
Ports:
00: 16 bits for both Source Port and Destination Port 01: 16 bits for Source Port. Last 8 bits for Destination Port 10: Last 8 bits for Source Port. All 16 bits for Destination Port 11: Last 4 bits of both Source Port and Destination Port
| Enumerator | |
|---|---|
| PORTS_INLINE | |
| PORTS_ALL_SRC_LAST_DST | |
| PORTS_LAST_SRC_ALL_DST | |
| PORTS_LAST_SRC_LAST_DST | |
Definition at line 1116 of file sixlowpan-header.h.
TF: Traffic Class, Flow Label.
00: ECN + DSCP + 4-bit Pad + Flow Label (4 bytes) 01: ECN + 2-bit Pad + Flow Label (3 bytes), DSCP is elided. 10: ECN + DSCP (1 byte), Flow Label is elided. 11: Traffic Class and Flow Label are elided.
| Enumerator | |
|---|---|
| TF_FULL | |
| TF_DSCP_ELIDED | |
| TF_FL_ELIDED | |
| TF_ELIDED | |
Definition at line 621 of file sixlowpan-header.h.