Class: PacketGen::Header::RadioTap

Inherits:
Base show all
Defined in:
lib/packetgen/header/dot11.rb

Overview

Radiotap header

Instance Attribute Summary collapse

Attributes inherited from Base

#packet

Instance Method Summary collapse

Methods inherited from Base

bind_header, #header_id, inherited, #ip_header, known_headers, #protocol_name

Methods inherited from Types::Fields

#[], #[]=, define_bit_fields_on, define_field, define_field_after, define_field_before, #fields, #force_binary, inherited, #initialize, #inspect, #sz, #to_h, #to_s

Constructor Details

This class inherits a constructor from PacketGen::Types::Fields

Instance Attribute Details

#bodyType::String

Returns:

  • (Type::String)


87
# File 'lib/packetgen/header/dot11.rb', line 87

define_field :body, Types::String

#lengthInteger

Returns 16-bit RadioTap header length.

Returns:

  • (Integer)

    16-bit RadioTap header length



78
# File 'lib/packetgen/header/dot11.rb', line 78

define_field :length, Types::Int16le

#padInteger

Returns 8-bit pad.

Returns:

  • (Integer)

    8-bit pad



75
# File 'lib/packetgen/header/dot11.rb', line 75

define_field :pad, Types::Int8, default: 0

#present_flagsInteger

Returns 32-bit integer.

Returns:

  • (Integer)

    32-bit integer



81
# File 'lib/packetgen/header/dot11.rb', line 81

define_field :present_flags, Types::Int32le

#radio_fieldsType::String

Returns concatenation of RadioTap fields.

Returns:

  • (Type::String)

    concatenation of RadioTap fields



84
# File 'lib/packetgen/header/dot11.rb', line 84

define_field :radio_fields, Types::String

#versionInteger

Returns 8-bit version.

Returns:

  • (Integer)

    8-bit version



72
# File 'lib/packetgen/header/dot11.rb', line 72

define_field :version, Types::Int8, default: 0

Instance Method Details

#parse?Boolean

Check version field

Returns:

  • (Boolean)

See Also:

  • PacketGen::Header::RadioTap.[Base[Base#parse?]


105
106
107
# File 'lib/packetgen/header/dot11.rb', line 105

def parse?
  version == 0
end

#read(str) ⇒ RadioTap

Returns self.

Parameters:

  • str (String)

Returns:



91
92
93
94
95
96
97
98
99
100
101
# File 'lib/packetgen/header/dot11.rb', line 91

def read(str)
  return self if str.nil?
  force_binary str
  self[:version].read str[0, 1]
  self[:pad].read str[1, 1]
  self[:length].read str[2, 2]
  self[:present_flags].read str[4, 4]
  self[:radio_fields].read str[8, length - 8]
  self[:body].read str[length, str.size]
  self
end

#to_w(iface) ⇒ void

This method returns an undefined value.

send RadioTap packet on wire. Dot11 FCS trailer should be set.

Parameters:

  • iface (String)

    interface name



112
113
114
115
116
# File 'lib/packetgen/header/dot11.rb', line 112

def to_w(iface)
  pcap = PCAPRUB::Pcap.open_live(iface, PCAP_SNAPLEN, PCAP_PROMISC,
                                 PCAP_TIMEOUT)
  pcap.inject self.to_s
end