Class: PacketGen::Header::SCTP::Parameter

Inherits:
BinStruct::AbstractTLV
  • Object
show all
Includes:
Padded32
Defined in:
lib/packetgen/header/sctp/parameter.rb,
lib/packetgen/header/sctp/parameter.rb

Overview

Base class/factory for InitChunk and InitAckChunk parameters

Author:

  • Sylvain Daubert

  • LemonTree55

Since:

  • 3.4.0

  • 4.1.0 No more include ParamterMixin.

Constant Summary collapse

TYPES =

Paramter Types

Since:

  • 3.4.0

  • 4.1.0 No more include ParamterMixin.

{
  'IPv4' => 5,
  'IPv6' => 6,
  'StateCookie' => 7,
  'Unrecognized' => 8,
  'CookiePreservative' => 9,
  'Hostname' => 11,
  'SupportedAddrTypes' => 12,
  'ECN' => 32_768
}.freeze

Instance Method Summary collapse

Methods included from Padded32

#padded?, #to_s

Instance Method Details

#from_human(value) ⇒ Object

Populate parameter from a human-readable string or a Parameter.

Parameters:

Since:

  • 3.4.0

  • 4.1.0 No more include ParamterMixin.



50
51
52
53
54
55
56
# File 'lib/packetgen/header/sctp/parameter.rb', line 50

def from_human(value)
  if value.is_a?(self[:value].class)
    self[:value] = value
  else
    self[:value].from_human(value)
  end
end

#parameter_nameString

Get parameter name

Returns:

  • (String)

Since:

  • 3.4.0

  • 4.1.0 No more include ParamterMixin.



60
61
62
# File 'lib/packetgen/header/sctp/parameter.rb', line 60

def parameter_name
  self.class.name.split('::').last.delete_suffix('Parameter')
end

#to_human::String

Get human-readable descriptiob

Returns:

  • (::String)

Since:

  • 3.4.0

  • 4.1.0 No more include ParamterMixin.



39
40
41
42
43
44
45
46
# File 'lib/packetgen/header/sctp/parameter.rb', line 39

def to_human
  value = if self[:value].is_a?(BinStruct::String)
            self[:value].inspect
          else
            self[:value].to_human
          end
  "<#{human_type}: #{value}>"
end