Class: PacketGen::Header::PPI
- Defined in:
- lib/packetgen/header/dot11.rb
Overview
PPI (Per-Packet Information) packet
Instance Attribute Summary collapse
-
#align ⇒ Boolean
Align flag from #flags attribute.
- #body ⇒ Type::String
-
#dlt ⇒ Integer
32-bit PPI data link type.
-
#flags ⇒ Integer
8-bit PPI flags.
-
#length ⇒ Integer
16-bit PPI header length.
-
#ppi_fields ⇒ Type::String
Concatenation of PPI fields.
-
#version ⇒ Integer
8-bit PPI version.
Instance Method Summary collapse
-
#calc_length ⇒ Integer
Calculate header length.
-
#parse? ⇒ Boolean
Check version field.
-
#to_w(iface) ⇒ void
send PPI packet on wire.
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=, #protocol_name, #read, #to_s
Constructor Details
This class inherits a constructor from PacketGen::Header::Base
Instance Attribute Details
#align ⇒ Boolean
Returns align flag from #flags attribute.
25 |
# File 'lib/packetgen/header/dot11.rb', line 25 define_bit_attr :flags, reserved: 7, align: 1 |
#body ⇒ Type::String
37 |
# File 'lib/packetgen/header/dot11.rb', line 37 define_attr :body, BinStruct::String |
#dlt ⇒ Integer
Returns 32-bit PPI data link type.
31 |
# File 'lib/packetgen/header/dot11.rb', line 31 define_attr :dlt, BinStruct::Int32le |
#flags ⇒ Integer
Returns 8-bit PPI flags.
25 |
# File 'lib/packetgen/header/dot11.rb', line 25 define_bit_attr :flags, reserved: 7, align: 1 |
#length ⇒ Integer
Returns 16-bit PPI header length.
28 |
# File 'lib/packetgen/header/dot11.rb', line 28 define_attr :length, BinStruct::Int16le, default: 8 |
#ppi_fields ⇒ Type::String
Returns concatenation of PPI fields.
34 |
# File 'lib/packetgen/header/dot11.rb', line 34 define_attr :ppi_fields, BinStruct::String, builder: ->(h, t) { t.new(length_from: -> { h.length - 8 }) } |
#version ⇒ Integer
Returns 8-bit PPI version.
20 |
# File 'lib/packetgen/header/dot11.rb', line 20 define_attr :version, BinStruct::Int8, default: 0 |
Instance Method Details
#calc_length ⇒ Integer
Calculate header length
48 49 50 |
# File 'lib/packetgen/header/dot11.rb', line 48 def calc_length self[:length].value = self.sz - self[:body].sz end |
#parse? ⇒ Boolean
Check version field
41 42 43 |
# File 'lib/packetgen/header/dot11.rb', line 41 def parse? version.zero? && (length >= 8) end |