# ICMPPacket

  A packet carrying ICMP message.

  ICMP message formats are vary according to ICMP type. Thus some fields exist in certain types of packet. Any attempt to access nonexistence field raises an exception.

  Type, code and cksum fields are valid for any ICMP type.

## Super Class:

  `IPPacket`

## Methods:

`icmp_cksum`

  Return ICMP checksum.

`icmp_code`

  Return ICMP code.

`icmp_data`

  Return data portion of ICMP_ECHO/ICMP_ECHOREPLY messages as `String`

`icmp_gwaddr`

  Return gateway address of ICMP_REDIRECT message as `IPAddress`.

`icmp_id`

  Return identifier.

`icmp_ip`

  Return original IP Datagram as `IPPacket`.

`icmp_lifetime`

  Return lifetime of ICMP_ROUTERADVERT message.

`icmp_nextmtu`

  Return Next Hop MTU of ICMP_UNREACH_NEEDFRAG message (See rfc1191).

`icmp_num_addrs`

  Return number of addresses of ICMP_ROUTERADVERT message.

`icmp_otime`
`icmp_rtime`
`icmp_ttime`

  Return timestamp of ICMP_TSTAMP/ICMP_TSTAMPREPLY message as `Time`.

`icmp_pptr`

  Return error pointer of ICMP_PARAMPROB message.

`icmp_radv(nth)`

  Return nth address entry of ICMP_ROUTERADVERT message. Returned value is a two elements array `[address, preference]`.

`icmp_seq`

  Return sequence number.

`icmp_seqle`

  Return sequence number interpreted as little endian.

  No small portion of `ping` command implementations write sequence number in host byte order. Thus the sequence number of ICMP messages transmitted from little endian host may be in little endian.

`icmp_type`

  Return ICMP type.

`icmp_typestr`

  Return string describing ICMP type (e.g. "echo reply").

`icmp_wpa`

  Return word per address entry of ICMP_ROUTERADVERT message.

fukusima@goto.info.waseda.ac.jp