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 aData
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
Thu, 16 Jan 14 (NZDT)