Network Layer Decodes

Class ICMP6

Provides access to fields in an (IPv6) ICMP header.

Instance Variables
type icmp.type -> anInteger

ICMP message type
code icmp.code -> anInteger

ICMP message code
checksum icmp.checksum -> anInteger

ICMP checksum
dataicmp.data -> aByteArray

All the ICMP bytes, i.e. header and payload.  Use this if you need to work with some of the ICMP message types that python-libtrace doesn't decode fully
payloadicmp.payload ->anIP6 for types 1, 2, 3 and 4, otherwise aByteArray

Some ICMP messages carry content from the packet that triggered them;  icmp6.payload returns as much as it can of the triggering packet

The content of an  (IPv6) ICMP header varies depending on its type field.  python-libtrace decodes the following types ...

Echo Request (type 128) and Echo Reply (type 129)
ident icmp6.echo.ident -> anInteger

Echo identifier
sequence  icmp6.echo.sequence -> anInteger

Echo sequence number

Packet too big (type 2)
mtu icmp6.toobig.mtu -> anInteger

MTU of link causing problem.  Used as part of the Path MTU Discovery process

Parameter problem (type 4)
pointer icmp6.param.pointer-> anInteger

Offset within the invoking packet where an error was detected

Neighbour discovery (types 135-136), Redirect (type 137)
target_prefix icmp6.neighbour.target_prefix -> anIPprefix

IPv6 address of the solicitation's target
dest-prefix icmp6.neighbour.target.dest_prefix -> anIPprefix

Source Address of the packet that triggered the redirect message

Nevil Brownlee
Sat, 22 Oct 16 (NZDT)