Module: Pio::Type::IPv4Header

Included in:
Dhcp::Frame, Icmp::Format
Defined in:
lib/pio/type/ipv4_header.rb

Overview

IP Version 4 Header Format

Instance Method Summary collapse

Instance Method Details

#ipv4_header(options) ⇒ Object

rubocop:disable MethodLength



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/pio/type/ipv4_header.rb', line 10

def ipv4_header(options)
  class_eval do
    bit4 :ip_version, initial_value: 0x4
    bit4 :ip_header_length, initial_value: 0x5
    uint8 :ip_type_of_service, initial_value: 0
    uint16be :ip_total_length,
             initial_value: options[:ip_total_length]
    uint16be :ip_identifier, initial_value: 0
    bit3 :ip_flag, initial_value: 0
    bit13 :ip_fragment, initial_value: 0
    uint8 :ip_ttl, initial_value: 128
    uint8 :ip_protocol, value: options[:ip_protocol]
    uint16be :ip_header_checksum,
             initial_value: options[:ip_header_checksum]
    ip_address :ip_source_address
    ip_address :ip_destination_address
  end
end