Class: PacketGen::Header::ICMP
- Defined in:
- lib/packetgen/header/icmp.rb
Overview
ICMP header (RFC 792)
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A ICMP header consists of:
Direct Known Subclasses
Constant Summary collapse
- IP_PROTOCOL =
ICMP internet protocol number
1
Instance Attribute Summary collapse
-
#body ⇒ Object
ICMP body @return [BinStruct::String,Headerable].
-
#checksum ⇒ Integer
16-bit ICMP checksum.
-
#code ⇒ Integer
8-bit ICMP code.
-
#type ⇒ Integer
8-bit ICMP type.
Instance Method Summary collapse
-
#calc_checksum ⇒ Integer
Compute checksum and set
checksum
field.
Methods inherited from Base
bind, calculate_and_set_length, #header_id, inherited, #initialize, #ip_header, #ll_header
Methods included from PacketGen::Headerable
#added_to_packet, included, #method_name, #packet, #packet=, #parse?, #protocol_name, #read, #to_s
Constructor Details
This class inherits a constructor from PacketGen::Header::Base
Instance Attribute Details
#body ⇒ Object
ICMP body
@return [BinStruct::String,Headerable]
57 |
# File 'lib/packetgen/header/icmp.rb', line 57 define_attr :body, BinStruct::String |
#checksum ⇒ Integer
16-bit ICMP checksum
53 |
# File 'lib/packetgen/header/icmp.rb', line 53 define_attr :checksum, BinStruct::Int16 |
#code ⇒ Integer
8-bit ICMP code
49 |
# File 'lib/packetgen/header/icmp.rb', line 49 define_attr :code, BinStruct::Int8 |
#type ⇒ Integer
8-bit ICMP type
45 |
# File 'lib/packetgen/header/icmp.rb', line 45 define_attr :type, BinStruct::Int8 |
Instance Method Details
#calc_checksum ⇒ Integer
Compute checksum and set checksum
field
61 62 63 64 |
# File 'lib/packetgen/header/icmp.rb', line 61 def calc_checksum sum = IP.sum16(self) self.checksum = IP.reduce_checksum(sum) end |