Class: Nl::Linux::Wireguard::Messages::DumpGetDeviceReply

Inherits:
Genl::Message show all
Defined in:
nl-linux/generated/nl/linux/wireguard.rb

Overview

Retrieve WireGuard device


The command should be called with one but not both of:

- ``WGDEVICE_A_IFINDEX``
- ``WGDEVICE_A_IFNAME``

The kernel will then return several messages (``NLM_F_MULTI``). It is
possible that all of the allowed IPs of a single peer will not fit
within a single netlink message. In that case, the same peer will be
written in the following message, except it will only contain
``WGPEER_A_PUBLIC_KEY`` and ``WGPEER_A_ALLOWEDIPS``. This may occur
several times in a row for the same peer. It is then up to the receiver
to coalesce adjacent peers. Likewise, it is possible that all peers will
not fit within a single message. So, subsequent peers will be sent in
following messages, except those will only contain ``WGDEVICE_A_IFNAME``
and ``WGDEVICE_A_PEERS``. It is then up to the receiver to coalesce
these messages to form the complete list of peers.

Since this is an ``NLA_F_DUMP`` command, the final message will always
be ``NLMSG_DONE``, even if an error occurs. However, this ``NLMSG_DONE``
message contains an integer error code. It is either zero or a negative
error code corresponding to the errno.


Requires CAP_NET_ADMIN in the user namespace owning the network namespace.

Constant Summary collapse

TYPE =
0
FIXED_HEADER =
nil
ATTRIBUTE_SET =
AttributeSets::Wgdevice
ATTRIBUTES =
Ractor.make_shareable(%i[ifindex ifname private_key public_key flags listen_port fwmark peers])

Instance Attribute Summary

Attributes included from StructuredPayload

#attributes, #fixed_header

Instance Method Summary collapse

Methods inherited from Genl::Message

decode

Methods inherited from Raw::Message

#append_attribute, decode, #initialize

Methods included from StructuredPayload

#encode, #initialize

Constructor Details

This class inherits a constructor from Nl::Raw::Message

Instance Method Details

#flags ⇒ Integer

0 or WGDEVICE_F_REPLACE_PEERS if all current peers should be removed prior to adding the list below.

Known flags are defined in Flags::WgdeviceFlags.

Returns:

  • (Integer)

See Also:



588
# File 'nl-linux/generated/nl/linux/wireguard.rb', line 588

def flags; attributes[:"flags"]&.value; end

#fwmark ⇒ Integer

Set as 0 to disable.

Returns:

  • (Integer)

See Also:



598
# File 'nl-linux/generated/nl/linux/wireguard.rb', line 598

def fwmark; attributes[:"fwmark"]&.value; end

#ifindex ⇒ Integer

Returns:

  • (Integer)

See Also:



566
# File 'nl-linux/generated/nl/linux/wireguard.rb', line 566

def ifindex; attributes[:"ifindex"]&.value; end

#ifname ⇒ String

Returns:

  • (String)

See Also:



570
# File 'nl-linux/generated/nl/linux/wireguard.rb', line 570

def ifname; attributes[:"ifname"]&.value; end

#listen_port ⇒ Integer

Set as 0 to choose randomly.

Returns:

  • (Integer)

See Also:



593
# File 'nl-linux/generated/nl/linux/wireguard.rb', line 593

def listen_port; attributes[:"listen_port"]&.value; end

#peers ⇒ Array<AttributeSets::Wgpeer>

The index/type parameter is unused on SET_DEVICE operations and is zero on GET_DEVICE operations.



604
# File 'nl-linux/generated/nl/linux/wireguard.rb', line 604

def peers; attributes[:"peers"]&.value; end

#private_key ⇒ String

Set to all zeros to remove.

Returns:

  • (String)

See Also:



575
# File 'nl-linux/generated/nl/linux/wireguard.rb', line 575

def private_key; attributes[:"private_key"]&.value; end

#public_key ⇒ String

Returns:

  • (String)

See Also:



579
# File 'nl-linux/generated/nl/linux/wireguard.rb', line 579

def public_key; attributes[:"public_key"]&.value; end