Low-Power Border Router

Lowpan.Defines.Defines Class Reference

Defines used for IPv6 Header Compression More...

List of all members.

Static Public Attributes

Possible values for the IPv6 'next_header' field
int IPv6_NH_VALUE_TCP = 6
 the next header is TCP
int IPv6_NH_VALUE_UDP = 17
 the next header is UDP
int IPv6_NH_VALUE_ICMPv6 = 58
 the next header is ICMPv6
Possible values for the ICMPv6 'type' field
int ICMPv6_TYPE_ECHO_REQ = 128
 ICMPv6 Echo Request.
int ICMPv6_TYPE_ECHO_REPLY = 129
 ICMPv6 Echo Reply.
int ICMPv6_TYPE_ECHO_RA = 134
 ICMPv6 Router Advertisement.
Possible values for the IPHC 'dispatch' field
int IPHC_DISPATCH = 3
 IPHC encoding.
Possible values for the IPHC 'TF' (Traffic Class, Flow Label) field
int IPHC_TF_4B = 0
 ECN + DSCP + 4-bit Pad + Flow Label (4 bytes)
int IPHC_TF_3B = 1
 ECN + 2-bit Pad + Flow Label (3 bytes), DSCP is elided.
int IPHC_TF_1B = 2
 ECN + DSCP (1 byte), Flow Label is elided.
int IPHC_TF_ELIDED = 3
 Traffic Class and Flow Label are elided.
Possible values for the IPHC 'NH' (Next Header) field
int IPHC_NH_INLINE = 0
 Full 8 bits for Next Header are carried in-line.
int IPHC_NH_COMPRESSED = 1
 The Next Header field is compressed and the next header is encoded using LOWPAN_NHC.
Possible values for the IPHC 'HLIM' (Hop Limit Compression) field
int IPHC_HLIM_INLINE = 0
 The Hop Limit field is carried in-line.
int IPHC_HLIM_1 = 1
 The Hop Limit field is compressed and the hop limit is 1.
int IPHC_HLIM_64 = 2
 The Hop Limit field is compressed and the hop limit is 64.
int IPHC_HLIM_255 = 3
 The Hop Limit field is compressed and the hop limit is 255.
Possible values for the IPHC 'CID' (Context Identifier Extension) field
int IPHC_CID_NO = 0
 No additional 8-bit Context Identifier Extension is used.
int IPHC_CID_INLINE = 1
 An additional 8-bit Context Identifier Extension field immediately follows the DAM field.
Possible values for the IPHC 'SAC' (Source Address Compression) field
int IPHC_SAC_STATELESS = 0
 Source address compression uses stateless compression.
int IPHC_SAC_STATEFUL = 1
 Source address compression uses stateful, context-based compression.
Possible values for the IPHC 'SAM' (Source Address Mode) field
int IPHC_SAM_128B = 0
 128 bits of the src address are carried inline.
int IPHC_SAM_64B = 1
 64 bits of the src address are carried inline.
int IPHC_SAM_16B = 2
 16 bits of the src address are carried inline.
int IPHC_SAM_ELIDED = 3
 The src address is elided from the packet.
Possible values for the IPHC 'M' (Multicast Compression) field
int IPHC_M_UNICAST = 0
 Destination address is not a multicast address.
int IPHC_M_MULTICAST = 1
 Destination address is a multicast address.
Possible values for the IPHC 'DAC' (Destination Address Compression) field
int IPHC_DAC_STATELESS = 0
 Destination address compression uses stateless compression.
int IPHC_DAC_STATEFUL = 1
 Destination address compression uses stateful, context-based compression.
Possible values for the IPHC 'DAM' (Destination Address Mode) field
int IPHC_DAM_128B = 0
 128 bits of the dest address are carried inline.
int IPHC_DAM_64B = 1
 64 bits of the dest address are carried inline.
int IPHC_DAM_16B = 2
 16 bits of the dest address are carried inline.
int IPHC_DAM_ELIDED = 3
 The dest address is elided from the packet.
Possible values for the IPHC UDP 'C' (Checksum) field
int IPHC_UDP_CHECKSUM_INLINE = 0
 All 16 bits of Checksum are carried in-line.
int IPHC_UDP_CHECKSUM_ELIDED = 1
 All 16 bits of Checksum are elided.
Possible values for the IPHC UDP 'ports' field
int IPHC_UDP_PORTS_s16_d16 = 0
 All 16 bits for both Source Port and Destination Port are carried in-line.
int IPHC_UDP_PORTS_s16_d8 = 1
 All 16 bits for Source Port are carried in-line.
int IPHC_UDP_PORTS_s8_d16 = 2
 First 8 bits of Source Port are 0xF0 and elided.
int IPHC_UDP_PORTS_s4_d4 = 3
 First 12 bits of both Source Port and Destination Port are 0xF0B and elided.

Detailed Description

Defines used for IPv6 Header Compression


Member Data Documentation

the next header is TCP

the next header is UDP

the next header is ICMPv6

ICMPv6 Echo Request.

ICMPv6 Echo Reply.

ICMPv6 Router Advertisement.

IPHC encoding.

ECN + DSCP + 4-bit Pad + Flow Label (4 bytes)

ECN + 2-bit Pad + Flow Label (3 bytes), DSCP is elided.

ECN + DSCP (1 byte), Flow Label is elided.

Traffic Class and Flow Label are elided.

Full 8 bits for Next Header are carried in-line.

The Next Header field is compressed and the next header is encoded using LOWPAN_NHC.

The Hop Limit field is carried in-line.

The Hop Limit field is compressed and the hop limit is 1.

The Hop Limit field is compressed and the hop limit is 64.

The Hop Limit field is compressed and the hop limit is 255.

No additional 8-bit Context Identifier Extension is used.

If context-based compression is specified in either SAC or DAC, context 0 is used.

An additional 8-bit Context Identifier Extension field immediately follows the DAM field.

Source address compression uses stateless compression.

Source address compression uses stateful, context-based compression.

128 bits of the src address are carried inline.

  • If SAC=0: The full address is carried in-line.
  • If SAC=1: The UNSPECIFIED address, ::

64 bits of the src address are carried inline.

  • If SAC=0: The first 64-bits of the address are elided. The value of those bits is the link-local prefix padded with zeros. The remaining 64 bits are carried in-line.
  • If SAC=1: The address is derived using context information and the 64 bits carried in-line. Bits covered by context information are always used. Any IID bits not covered by context information are taken directly from the corresponding bits carried in-line. Any remaining bits are zero.

16 bits of the src address are carried inline.

  • If SAC=0: The first 112 bits of the address are elided. The value of the first 64 bits is the link-local prefix padded with zeros. The following 64 bits are 0000:00ff:fe00:XXXX, where XXXX are the 16 bits carried in-line.
  • If SAC=1: The address is derived using context information and the 16 bits carried in-line. Bits covered by context information are always used. Any IID bits not covered by context information are taken directly from their corresponding bits in the 16-bit to IID mapping given by 0000:00ff:fe00:XXXX, where XXXX are the 16 bits carried in-line. Any remaining bits are zero.

The src address is elided from the packet.

  • If SAC=0: The address is fully elided. The first 64 bits of the address are the link-local prefix padded with zeros. The remaining 64 bits are computed from the encapsulating header (e.g. 802.15.4 or IPv6 src address)
  • If SAC=1: The address is fully elided and is derived using context information and the encapsulating header (e.g. 802.15.4 or IPv6 src address). Bits covered by context information are always used. Any IID bits not covered by context information are computed from the encapsulating header. Any remaining bits are zero.

Destination address is not a multicast address.

Destination address is a multicast address.

Destination address compression uses stateless compression.

Destination address compression uses stateful, context-based compression.

128 bits of the dest address are carried inline.

  • if M=0:
    • if DAC=0: The full address is carried in-line.
    • if DAC=1: Reserved.
  • if M=1:
    • if DAC=0: 128 bits. The full address is carried in-line.
    • if DAC=1: 48 bits. This format is designed to match Unicast-Prefix-based IPv6 Multicast Addresses as defined in [RFC3306] and [RFC3956]. The multicast address takes the form FFXX:XXLL:PPPP:PPPP:PPPP:PPPP:XXXX:XXXX. where the X are the nibbles that are carried in-line, in the order in which they appear in this format. P denotes nibbles used to encode the prefix itself. L denotes nibbles used to encode the prefix length. The prefix information P and L is taken from the specified context.

64 bits of the dest address are carried inline.

  • if M=0:
    • if DAC=0: The first 64-bits of the address are elided. The value of those bits is the link-local prefix padded with zeros. The remaining 64 bits are carried in-line.
    • if DAC=1: 64 bits. The address is derived using context information and the 64 bits carried in-line. Bits covered by contextinformation are always used. Any IID bits not covered by context information are taken directly from the corresponding bits carried in-line. Any remaining bits are zero.
  • if M=1:
    • if DAC=0: 48 bits. The address takes the form FFXX::00XX:XXXX:XXXX.
    • if DAC=1: reserved

16 bits of the dest address are carried inline.

  • if M=0:
    • if DAC=0: 16 bits. The first 112 bits of the address are elided. The value of the first 64 bits is the link-local prefix padded with zeros. The following 64 bits are 0000:00ff: fe00:XXXX, where XXXX are the 16 bits carried in-line.
    • if DAC=1: 16 bits. The address is derived using context information and the 16 bits carried in-line. Bits covered by context information are always used. Any IID bits not covered by context information are taken directly from their corresponding bits in the 16-bit to IID mapping given by 0000:00ff:fe00:XXXX, where XXXX are the 16 bits carried in- line. Any remaining bits are zero.
  • if M=1:
    • if DAC=0: 32 bits. The address takes the form FFXX::00XX:XXXX.
    • if DAC=1: reserved

The dest address is elided from the packet.

  • if M=0:
    • if DAC=0: 0 bits. The address is fully elided. The first 64 bits of the address are the link-local prefix padded with zeros. The remaining 64 bits are computed from the encapsulating header (e.g. 802.15.4 or IPv6 dest address) as specified in Section 3.2.2.
    • if DAC=1: 0 bits. The address is fully elided and is derived using context information and the encapsulating header (e.g. 802.15.4 or IPv6 dest address). Bits covered by context information are always used. Any IID bits not covered by context information are computed from the encapsulating header as specified in Section 3.2.2. Any remaining bits are zero.
  • if M=1:
    • if DAC=0: 8 bits. The address takes the form FF02::00XX.
    • if DAC=1: reserved

All 16 bits of Checksum are carried in-line.

All 16 bits of Checksum are elided.

The Checksum is recovered by recomputing it on the 6LoWPAN termination point.

All 16 bits for both Source Port and Destination Port are carried in-line.

All 16 bits for Source Port are carried in-line.

First 8 bits of Destination Port is 0xF0 and elided. The remaining 8 bits of Destination Port are carried in-line.

First 8 bits of Source Port are 0xF0 and elided.

The remaining 8 bits of Source Port are carried in-line. All 16 bits for Destination Port are carried in-line.

First 12 bits of both Source Port and Destination Port are 0xF0B and elided.

The remaining 4 bits for each are carried in-line.