Class: Nl::Raw::Message

Inherits:
Object
  • Object
show all
Includes:
StructuredPayload
Defined in:
nl/lib/nl/raw.rb

Overview

Base class for raw Netlink messages.

A message may contain a fixed header followed by a set of Netlink attributes.

Direct Known Subclasses

Genl::Message, Linux::Conntrack::Messages::DoGetReply, Linux::Conntrack::Messages::DoGetRequest, Linux::Conntrack::Messages::DumpGetReply, Linux::Conntrack::Messages::DumpGetRequest, Linux::Conntrack::Messages::DumpGetStatsReply, Linux::Conntrack::Messages::DumpGetStatsRequest, Linux::Nftables::Messages::DoBatchBeginReply, Linux::Nftables::Messages::DoBatchBeginRequest, Linux::Nftables::Messages::DoBatchEndRequest, Linux::Nftables::Messages::DoDelchainRequest, Linux::Nftables::Messages::DoDelflowtableRequest, Linux::Nftables::Messages::DoDelobjRequest, Linux::Nftables::Messages::DoDelruleRequest, Linux::Nftables::Messages::DoDelsetRequest, Linux::Nftables::Messages::DoDelsetelemRequest, Linux::Nftables::Messages::DoDeltableRequest, Linux::Nftables::Messages::DoDestroychainRequest, Linux::Nftables::Messages::DoDestroyflowtableRequest, Linux::Nftables::Messages::DoDestroyobjRequest, Linux::Nftables::Messages::DoDestroyruleRequest, Linux::Nftables::Messages::DoDestroysetRequest, Linux::Nftables::Messages::DoDestroysetelemRequest, Linux::Nftables::Messages::DoDestroytableRequest, Linux::Nftables::Messages::DoGetchainReply, Linux::Nftables::Messages::DoGetchainRequest, Linux::Nftables::Messages::DoGetflowtableReply, Linux::Nftables::Messages::DoGetflowtableRequest, Linux::Nftables::Messages::DoGetgenReply, Linux::Nftables::Messages::DoGetgenRequest, Linux::Nftables::Messages::DoGetobjReply, Linux::Nftables::Messages::DoGetobjRequest, Linux::Nftables::Messages::DoGetruleReply, Linux::Nftables::Messages::DoGetruleRequest, Linux::Nftables::Messages::DoGetruleResetReply, Linux::Nftables::Messages::DoGetruleResetRequest, Linux::Nftables::Messages::DoGetsetReply, Linux::Nftables::Messages::DoGetsetRequest, Linux::Nftables::Messages::DoGetsetelemReply, Linux::Nftables::Messages::DoGetsetelemRequest, Linux::Nftables::Messages::DoGetsetelemResetReply, Linux::Nftables::Messages::DoGetsetelemResetRequest, Linux::Nftables::Messages::DoGettableReply, Linux::Nftables::Messages::DoGettableRequest, Linux::Nftables::Messages::DoNewchainRequest, Linux::Nftables::Messages::DoNewflowtableRequest, Linux::Nftables::Messages::DoNewobjRequest, Linux::Nftables::Messages::DoNewruleRequest, Linux::Nftables::Messages::DoNewsetRequest, Linux::Nftables::Messages::DoNewsetelemRequest, Linux::Nftables::Messages::DoNewtableRequest, Linux::Nftables::Messages::DumpGetchainReply, Linux::Nftables::Messages::DumpGetchainRequest, Linux::Nftables::Messages::DumpGetflowtableReply, Linux::Nftables::Messages::DumpGetflowtableRequest, Linux::Nftables::Messages::DumpGetgenReply, Linux::Nftables::Messages::DumpGetgenRequest, Linux::Nftables::Messages::DumpGetobjReply, Linux::Nftables::Messages::DumpGetobjRequest, Linux::Nftables::Messages::DumpGetruleReply, Linux::Nftables::Messages::DumpGetruleRequest, Linux::Nftables::Messages::DumpGetruleResetReply, Linux::Nftables::Messages::DumpGetruleResetRequest, Linux::Nftables::Messages::DumpGetsetReply, Linux::Nftables::Messages::DumpGetsetRequest, Linux::Nftables::Messages::DumpGetsetelemReply, Linux::Nftables::Messages::DumpGetsetelemRequest, Linux::Nftables::Messages::DumpGetsetelemResetReply, Linux::Nftables::Messages::DumpGetsetelemResetRequest, Linux::Nftables::Messages::DumpGettableReply, Linux::Nftables::Messages::DumpGettableRequest, Linux::RtAddr::Messages::DoDeladdrRequest, Linux::RtAddr::Messages::DoGetmulticastReply, Linux::RtAddr::Messages::DoGetmulticastRequest, Linux::RtAddr::Messages::DoNewaddrRequest, Linux::RtAddr::Messages::DumpGetaddrReply, Linux::RtAddr::Messages::DumpGetaddrRequest, Linux::RtAddr::Messages::DumpGetmulticastReply, Linux::RtAddr::Messages::DumpGetmulticastRequest, Linux::RtLink::Messages::DoDellinkRequest, Linux::RtLink::Messages::DoGetlinkReply, Linux::RtLink::Messages::DoGetlinkRequest, Linux::RtLink::Messages::DoGetstatsReply, Linux::RtLink::Messages::DoGetstatsRequest, Linux::RtLink::Messages::DoNewlinkRequest, Linux::RtLink::Messages::DoSetlinkRequest, Linux::RtLink::Messages::DumpGetlinkReply, Linux::RtLink::Messages::DumpGetlinkRequest, Linux::RtLink::Messages::DumpGetstatsReply, Linux::RtLink::Messages::DumpGetstatsRequest, Linux::RtLink::Notifications::NewlinkNtf, Linux::RtNeigh::Messages::DoDelneighRequest, Linux::RtNeigh::Messages::DoGetneighReply, Linux::RtNeigh::Messages::DoGetneighRequest, Linux::RtNeigh::Messages::DoNewneighRequest, Linux::RtNeigh::Messages::DoSetneightblRequest, Linux::RtNeigh::Messages::DumpGetneighReply, Linux::RtNeigh::Messages::DumpGetneighRequest, Linux::RtNeigh::Messages::DumpGetneightblReply, Linux::RtNeigh::Messages::DumpGetneightblRequest, Linux::RtNeigh::Notifications::DelneighNtf, Linux::RtNeigh::Notifications::NewneighNtf, Linux::RtRoute::Messages::DoDelrouteRequest, Linux::RtRoute::Messages::DoGetrouteReply, Linux::RtRoute::Messages::DoGetrouteRequest, Linux::RtRoute::Messages::DoNewrouteRequest, Linux::RtRoute::Messages::DumpGetrouteReply, Linux::RtRoute::Messages::DumpGetrouteRequest, Linux::RtRule::Messages::DoDelruleRequest, Linux::RtRule::Messages::DoNewruleRequest, Linux::RtRule::Messages::DumpGetruleReply, Linux::RtRule::Messages::DumpGetruleRequest, Linux::RtRule::Notifications::DelruleNtf, Linux::RtRule::Notifications::NewruleNtf, Linux::Tc::Messages::DoDelchainRequest, Linux::Tc::Messages::DoDelqdiscRequest, Linux::Tc::Messages::DoDeltclassRequest, Linux::Tc::Messages::DoDeltfilterRequest, Linux::Tc::Messages::DoGetchainReply, Linux::Tc::Messages::DoGetchainRequest, Linux::Tc::Messages::DoGetqdiscReply, Linux::Tc::Messages::DoGetqdiscRequest, Linux::Tc::Messages::DoGettclassReply, Linux::Tc::Messages::DoGettclassRequest, Linux::Tc::Messages::DoGettfilterReply, Linux::Tc::Messages::DoGettfilterRequest, Linux::Tc::Messages::DoNewchainRequest, Linux::Tc::Messages::DoNewqdiscRequest, Linux::Tc::Messages::DoNewtclassRequest, Linux::Tc::Messages::DoNewtfilterRequest, Linux::Tc::Messages::DumpGetqdiscReply, Linux::Tc::Messages::DumpGetqdiscRequest, Linux::Tc::Messages::DumpGettfilterReply, Linux::Tc::Messages::DumpGettfilterRequest

Instance Attribute Summary

Attributes included from StructuredPayload

#attributes, #fixed_header

Class Method Summary collapse

Instance Method Summary collapse

Methods included from StructuredPayload

#encode

Constructor Details

#initialize(fixed_header = nil, attributes = self.class::ATTRIBUTE_SET.new) ⇒ Message

Returns a new instance of Message.

Parameters:

  • fixed_header (Object, nil) (defaults to: nil) —

    the family-specific fixed header

  • attributes (AttributeSet, nil) (defaults to: self.class::ATTRIBUTE_SET.new) —

    the message's attributes



65
66
67
# File 'nl/lib/nl/raw.rb', line 65

def initialize(fixed_header = nil, attributes = self.class::ATTRIBUTE_SET.new)
  super
end

Class Method Details

.decode(decoder, type:) ⇒ Message

Decodes a raw Netlink message payload.

Parameters:

  • decoder (Decoder) —

    the source decoder

  • type (Integer) —

    the message type from its Netlink header

Returns:

  • (Message) —

    the decoded message

Raises:

  • (RuntimeError) —

    if type does not match the message class's type



85
86
87
88
89
90
91
# File 'nl/lib/nl/raw.rb', line 85

def self.decode(decoder, type:)
  unless self::TYPE == type
    raise "Expected message type #{self::TYPE}, got #{type}"
  end

  super(decoder)
end

Instance Method Details

#append_attribute(attribute) ⇒ void

This method returns an undefined value.

Appends an attribute to the message.

Parameters:



74
75
76
# File 'nl/lib/nl/raw.rb', line 74

def append_attribute(attribute)
  @attributes << attribute
end