nl-linux 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,428 @@
1
+ # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
+ #--
3
+ # frozen_string_literal: true
4
+ # rbs_inline: enabled
5
+ # This code is generated by Ynl::Generator. DO NOT EDIT.
6
+ require 'nl'
7
+ # **Netlink protocol to control WireGuard network devices.**
8
+ #
9
+ # The below enums and macros are for interfacing with WireGuard, using generic
10
+ # netlink, with family ``WG_GENL_NAME`` and version ``WG_GENL_VERSION``. It
11
+ # defines two commands: get and set. Note that while they share many common
12
+ # attributes, these two commands actually accept a slightly different set of
13
+ # inputs and outputs. These differences are noted under the individual
14
+ # attributes.
15
+ class Nl::Linux::Wireguard < ::Nl::Family
16
+ NAME = "wireguard"
17
+ PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Genl.new("wireguard"))
18
+ module Structs
19
+ KernelTimespec = Struct.new(
20
+ :"sec", #: ::Integer
21
+ :"nsec", #: ::Integer
22
+ )
23
+ class KernelTimespec
24
+ # :nodoc:
25
+ MEMBERS = Ractor.make_shareable({sec: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), nsec: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
26
+ # Decodes the struct.
27
+ #--
28
+ # @rbs decoder: ::Nl::Decoder
29
+ # @rbs return: instance
30
+ def self.decode(decoder)
31
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
32
+ end
33
+ # Encodes the struct.
34
+ #--
35
+ # @rbs encoder: ::Nl::Encoder
36
+ # @rbs return: void
37
+ def encode(encoder)
38
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
39
+ end
40
+ end
41
+ end
42
+ module AttributeSets
43
+ class Wgdevice < ::Nl::Protocols::Genl::AttributeSet
44
+ # Abstract class
45
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
46
+ end
47
+ class Ifindex < Attribute
48
+ TYPE = 1
49
+ NAME = :"ifindex"
50
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
51
+ end
52
+ class Ifname < Attribute
53
+ TYPE = 2
54
+ NAME = :"ifname"
55
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: -> { raise ArgumentError, "Value #{it.inspect} is longer than maximum length 15" unless it.bytesize <= 15 })
56
+ end
57
+ class PrivateKey < Attribute
58
+ TYPE = 3
59
+ NAME = :"private_key"
60
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is not equal to length 32" unless it.bytesize == 32 })
61
+ end
62
+ class PublicKey < Attribute
63
+ TYPE = 4
64
+ NAME = :"public_key"
65
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is not equal to length 32" unless it.bytesize == 32 })
66
+ end
67
+ class Flags < Attribute
68
+ TYPE = 5
69
+ NAME = :"flags"
70
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
71
+ end
72
+ class ListenPort < Attribute
73
+ TYPE = 6
74
+ NAME = :"listen_port"
75
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
76
+ end
77
+ class Fwmark < Attribute
78
+ TYPE = 7
79
+ NAME = :"fwmark"
80
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
81
+ end
82
+ class Peers < Attribute
83
+ TYPE = 8
84
+ NAME = :"peers"
85
+ end
86
+ # :nodoc:
87
+ BY_NAME = Ractor.make_shareable({:"ifindex" => Ifindex, :"ifname" => Ifname, :"private_key" => PrivateKey, :"public_key" => PublicKey, :"flags" => Flags, :"listen_port" => ListenPort, :"fwmark" => Fwmark, :"peers" => Peers}) #: Hash[::Symbol, Attribute]
88
+ # :nodoc:
89
+ BY_TYPE = Ractor.make_shareable({1 => Ifindex, 2 => Ifname, 3 => PrivateKey, 4 => PublicKey, 5 => Flags, 6 => ListenPort, 7 => Fwmark, 8 => Peers}) #: Hash[::Integer, Attribute]
90
+ class << self
91
+ # Looks up Attribute class by name.
92
+ #--
93
+ # @rbs name: Symbol
94
+ # @rbs return: Attribute
95
+ def by_name(name); BY_NAME.fetch(name); end
96
+ # Looks up Attribute class by type value.
97
+ #--
98
+ # @rbs type: Integer
99
+ # @rbs return: Attribute
100
+ def by_type(type); BY_TYPE.fetch(type); end
101
+ end
102
+ end
103
+ class Wgpeer < ::Nl::Protocols::Genl::AttributeSet
104
+ # Abstract class
105
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
106
+ end
107
+ class PublicKey < Attribute
108
+ TYPE = 1
109
+ NAME = :"public_key"
110
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is not equal to length 32" unless it.bytesize == 32 })
111
+ end
112
+ class PresharedKey < Attribute
113
+ TYPE = 2
114
+ NAME = :"preshared_key"
115
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is not equal to length 32" unless it.bytesize == 32 })
116
+ end
117
+ class Flags < Attribute
118
+ TYPE = 3
119
+ NAME = :"flags"
120
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
121
+ end
122
+ class Endpoint < Attribute
123
+ TYPE = 4
124
+ NAME = :"endpoint"
125
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 16" unless it.bytesize >= 16 })
126
+ end
127
+ class PersistentKeepaliveInterval < Attribute
128
+ TYPE = 5
129
+ NAME = :"persistent_keepalive_interval"
130
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
131
+ end
132
+ class LastHandshakeTime < Attribute
133
+ TYPE = 6
134
+ NAME = :"last_handshake_time"
135
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is not equal to length 16" unless it.bytesize == 16 })
136
+ end
137
+ class RxBytes < Attribute
138
+ TYPE = 7
139
+ NAME = :"rx_bytes"
140
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
141
+ end
142
+ class TxBytes < Attribute
143
+ TYPE = 8
144
+ NAME = :"tx_bytes"
145
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
146
+ end
147
+ class Allowedips < Attribute
148
+ TYPE = 9
149
+ NAME = :"allowedips"
150
+ end
151
+ class ProtocolVersion < Attribute
152
+ TYPE = 10
153
+ NAME = :"protocol_version"
154
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
155
+ end
156
+ # :nodoc:
157
+ BY_NAME = Ractor.make_shareable({:"public_key" => PublicKey, :"preshared_key" => PresharedKey, :"flags" => Flags, :"endpoint" => Endpoint, :"persistent_keepalive_interval" => PersistentKeepaliveInterval, :"last_handshake_time" => LastHandshakeTime, :"rx_bytes" => RxBytes, :"tx_bytes" => TxBytes, :"allowedips" => Allowedips, :"protocol_version" => ProtocolVersion}) #: Hash[::Symbol, Attribute]
158
+ # :nodoc:
159
+ BY_TYPE = Ractor.make_shareable({1 => PublicKey, 2 => PresharedKey, 3 => Flags, 4 => Endpoint, 5 => PersistentKeepaliveInterval, 6 => LastHandshakeTime, 7 => RxBytes, 8 => TxBytes, 9 => Allowedips, 10 => ProtocolVersion}) #: Hash[::Integer, Attribute]
160
+ class << self
161
+ # Looks up Attribute class by name.
162
+ #--
163
+ # @rbs name: Symbol
164
+ # @rbs return: Attribute
165
+ def by_name(name); BY_NAME.fetch(name); end
166
+ # Looks up Attribute class by type value.
167
+ #--
168
+ # @rbs type: Integer
169
+ # @rbs return: Attribute
170
+ def by_type(type); BY_TYPE.fetch(type); end
171
+ end
172
+ end
173
+ class Wgallowedip < ::Nl::Protocols::Genl::AttributeSet
174
+ # Abstract class
175
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
176
+ end
177
+ class Family < Attribute
178
+ TYPE = 1
179
+ NAME = :"family"
180
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
181
+ end
182
+ class Ipaddr < Attribute
183
+ TYPE = 2
184
+ NAME = :"ipaddr"
185
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 4" unless it.bytesize >= 4 })
186
+ end
187
+ class CidrMask < Attribute
188
+ TYPE = 3
189
+ NAME = :"cidr_mask"
190
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
191
+ end
192
+ class Flags < Attribute
193
+ TYPE = 4
194
+ NAME = :"flags"
195
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
196
+ end
197
+ # :nodoc:
198
+ BY_NAME = Ractor.make_shareable({:"family" => Family, :"ipaddr" => Ipaddr, :"cidr_mask" => CidrMask, :"flags" => Flags}) #: Hash[::Symbol, Attribute]
199
+ # :nodoc:
200
+ BY_TYPE = Ractor.make_shareable({1 => Family, 2 => Ipaddr, 3 => CidrMask, 4 => Flags}) #: Hash[::Integer, Attribute]
201
+ class << self
202
+ # Looks up Attribute class by name.
203
+ #--
204
+ # @rbs name: Symbol
205
+ # @rbs return: Attribute
206
+ def by_name(name); BY_NAME.fetch(name); end
207
+ # Looks up Attribute class by type value.
208
+ #--
209
+ # @rbs type: Integer
210
+ # @rbs return: Attribute
211
+ def by_type(type); BY_TYPE.fetch(type); end
212
+ end
213
+ end
214
+ Wgdevice::Peers::DATATYPE = ::Nl::Protocols::Genl::DataTypes::IndexedArray.new(::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(Wgpeer))
215
+ Wgpeer::Allowedips::DATATYPE = ::Nl::Protocols::Genl::DataTypes::IndexedArray.new(::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(Wgallowedip))
216
+ end
217
+ module Messages
218
+ # Retrieve WireGuard device
219
+ # ~~~~~~~~~~~~~~~~~~~~~~~~~
220
+ #
221
+ # The command should be called with one but not both of:
222
+ #
223
+ # - ``WGDEVICE_A_IFINDEX``
224
+ # - ``WGDEVICE_A_IFNAME``
225
+ #
226
+ # The kernel will then return several messages (``NLM_F_MULTI``). It is
227
+ # possible that all of the allowed IPs of a single peer will not fit
228
+ # within a single netlink message. In that case, the same peer will be
229
+ # written in the following message, except it will only contain
230
+ # ``WGPEER_A_PUBLIC_KEY`` and ``WGPEER_A_ALLOWEDIPS``. This may occur
231
+ # several times in a row for the same peer. It is then up to the receiver
232
+ # to coalesce adjacent peers. Likewise, it is possible that all peers will
233
+ # not fit within a single message. So, subsequent peers will be sent in
234
+ # following messages, except those will only contain ``WGDEVICE_A_IFNAME``
235
+ # and ``WGDEVICE_A_PEERS``. It is then up to the receiver to coalesce
236
+ # these messages to form the complete list of peers.
237
+ #
238
+ # Since this is an ``NLA_F_DUMP`` command, the final message will always
239
+ # be ``NLMSG_DONE``, even if an error occurs. However, this ``NLMSG_DONE``
240
+ # message contains an integer error code. It is either zero or a negative
241
+ # error code corresponding to the errno.
242
+ class DumpGetDeviceRequest < ::Nl::Protocols::Genl::Message
243
+ TYPE = 0
244
+ FIXED_HEADER = nil
245
+ ATTRIBUTE_SET = AttributeSets::Wgdevice
246
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex ifname])
247
+ # Gets the value of `ifindex` attribute in the message.
248
+ #--
249
+ # @rbs return: ::Integer
250
+ def ifindex; attributes[:"ifindex"]&.value; end
251
+ # Gets the value of `ifname` attribute in the message.
252
+ #--
253
+ # @rbs return: ::String
254
+ def ifname; attributes[:"ifname"]&.value; end
255
+ end
256
+ # Retrieve WireGuard device
257
+ # ~~~~~~~~~~~~~~~~~~~~~~~~~
258
+ #
259
+ # The command should be called with one but not both of:
260
+ #
261
+ # - ``WGDEVICE_A_IFINDEX``
262
+ # - ``WGDEVICE_A_IFNAME``
263
+ #
264
+ # The kernel will then return several messages (``NLM_F_MULTI``). It is
265
+ # possible that all of the allowed IPs of a single peer will not fit
266
+ # within a single netlink message. In that case, the same peer will be
267
+ # written in the following message, except it will only contain
268
+ # ``WGPEER_A_PUBLIC_KEY`` and ``WGPEER_A_ALLOWEDIPS``. This may occur
269
+ # several times in a row for the same peer. It is then up to the receiver
270
+ # to coalesce adjacent peers. Likewise, it is possible that all peers will
271
+ # not fit within a single message. So, subsequent peers will be sent in
272
+ # following messages, except those will only contain ``WGDEVICE_A_IFNAME``
273
+ # and ``WGDEVICE_A_PEERS``. It is then up to the receiver to coalesce
274
+ # these messages to form the complete list of peers.
275
+ #
276
+ # Since this is an ``NLA_F_DUMP`` command, the final message will always
277
+ # be ``NLMSG_DONE``, even if an error occurs. However, this ``NLMSG_DONE``
278
+ # message contains an integer error code. It is either zero or a negative
279
+ # error code corresponding to the errno.
280
+ class DumpGetDeviceReply < ::Nl::Protocols::Genl::Message
281
+ TYPE = 0
282
+ FIXED_HEADER = nil
283
+ ATTRIBUTE_SET = AttributeSets::Wgdevice
284
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex ifname private_key public_key flags listen_port fwmark peers])
285
+ # Gets the value of `ifindex` attribute in the message.
286
+ #--
287
+ # @rbs return: ::Integer
288
+ def ifindex; attributes[:"ifindex"]&.value; end
289
+ # Gets the value of `ifname` attribute in the message.
290
+ #--
291
+ # @rbs return: ::String
292
+ def ifname; attributes[:"ifname"]&.value; end
293
+ # Gets the value of `private-key` attribute in the message.
294
+ #--
295
+ # @rbs return: untyped
296
+ def private_key; attributes[:"private_key"]&.value; end
297
+ # Gets the value of `public-key` attribute in the message.
298
+ #--
299
+ # @rbs return: untyped
300
+ def public_key; attributes[:"public_key"]&.value; end
301
+ # Gets the value of `flags` attribute in the message.
302
+ #--
303
+ # @rbs return: ::Integer
304
+ def flags; attributes[:"flags"]&.value; end
305
+ # Gets the value of `listen-port` attribute in the message.
306
+ #--
307
+ # @rbs return: ::Integer
308
+ def listen_port; attributes[:"listen_port"]&.value; end
309
+ # Gets the value of `fwmark` attribute in the message.
310
+ #--
311
+ # @rbs return: ::Integer
312
+ def fwmark; attributes[:"fwmark"]&.value; end
313
+ # Gets the value of `peers` attribute in the message.
314
+ #--
315
+ # @rbs return: untyped
316
+ def peers; attributes[:"peers"]&.value; end
317
+ end
318
+ # Set WireGuard device
319
+ # ~~~~~~~~~~~~~~~~~~~~
320
+ #
321
+ # This command should be called with a wgdevice set, containing one but
322
+ # not both of ``WGDEVICE_A_IFINDEX`` and ``WGDEVICE_A_IFNAME``.
323
+ #
324
+ # It is possible that the amount of configuration data exceeds that of the
325
+ # maximum message length accepted by the kernel. In that case, several
326
+ # messages should be sent one after another, with each successive one
327
+ # filling in information not contained in the prior. Note that if
328
+ # ``WGDEVICE_F_REPLACE_PEERS`` is specified in the first message, it
329
+ # probably should not be specified in fragments that come after, so that
330
+ # the list of peers is only cleared the first time but appended after.
331
+ # Likewise for peers, if ``WGPEER_F_REPLACE_ALLOWEDIPS`` is specified in
332
+ # the first message of a peer, it likely should not be specified in
333
+ # subsequent fragments.
334
+ #
335
+ # If an error occurs, ``NLMSG_ERROR`` will reply containing an errno.
336
+ class DoSetDeviceRequest < ::Nl::Protocols::Genl::Message
337
+ TYPE = 1
338
+ FIXED_HEADER = nil
339
+ ATTRIBUTE_SET = AttributeSets::Wgdevice
340
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex ifname private_key public_key flags listen_port fwmark peers])
341
+ # Gets the value of `ifindex` attribute in the message.
342
+ #--
343
+ # @rbs return: ::Integer
344
+ def ifindex; attributes[:"ifindex"]&.value; end
345
+ # Gets the value of `ifname` attribute in the message.
346
+ #--
347
+ # @rbs return: ::String
348
+ def ifname; attributes[:"ifname"]&.value; end
349
+ # Gets the value of `private-key` attribute in the message.
350
+ #--
351
+ # @rbs return: untyped
352
+ def private_key; attributes[:"private_key"]&.value; end
353
+ # Gets the value of `public-key` attribute in the message.
354
+ #--
355
+ # @rbs return: untyped
356
+ def public_key; attributes[:"public_key"]&.value; end
357
+ # Gets the value of `flags` attribute in the message.
358
+ #--
359
+ # @rbs return: ::Integer
360
+ def flags; attributes[:"flags"]&.value; end
361
+ # Gets the value of `listen-port` attribute in the message.
362
+ #--
363
+ # @rbs return: ::Integer
364
+ def listen_port; attributes[:"listen_port"]&.value; end
365
+ # Gets the value of `fwmark` attribute in the message.
366
+ #--
367
+ # @rbs return: ::Integer
368
+ def fwmark; attributes[:"fwmark"]&.value; end
369
+ # Gets the value of `peers` attribute in the message.
370
+ #--
371
+ # @rbs return: untyped
372
+ def peers; attributes[:"peers"]&.value; end
373
+ end
374
+ end
375
+ # Retrieve WireGuard device
376
+ # ~~~~~~~~~~~~~~~~~~~~~~~~~
377
+ #
378
+ # The command should be called with one but not both of:
379
+ #
380
+ # - ``WGDEVICE_A_IFINDEX``
381
+ # - ``WGDEVICE_A_IFNAME``
382
+ #
383
+ # The kernel will then return several messages (``NLM_F_MULTI``). It is
384
+ # possible that all of the allowed IPs of a single peer will not fit
385
+ # within a single netlink message. In that case, the same peer will be
386
+ # written in the following message, except it will only contain
387
+ # ``WGPEER_A_PUBLIC_KEY`` and ``WGPEER_A_ALLOWEDIPS``. This may occur
388
+ # several times in a row for the same peer. It is then up to the receiver
389
+ # to coalesce adjacent peers. Likewise, it is possible that all peers will
390
+ # not fit within a single message. So, subsequent peers will be sent in
391
+ # following messages, except those will only contain ``WGDEVICE_A_IFNAME``
392
+ # and ``WGDEVICE_A_PEERS``. It is then up to the receiver to coalesce
393
+ # these messages to form the complete list of peers.
394
+ #
395
+ # Since this is an ``NLA_F_DUMP`` command, the final message will always
396
+ # be ``NLMSG_DONE``, even if an error occurs. However, this ``NLMSG_DONE``
397
+ # message contains an integer error code. It is either zero or a negative
398
+ # error code corresponding to the errno.
399
+ #--
400
+ # @rbs (?ifindex: ::Integer, ?ifname: ::String) -> Enumerable[Messages::DumpGetDeviceReply]
401
+ # | (?ifindex: ::Integer, ?ifname: ::String) { (Messages::DumpGetDeviceReply) -> void } -> void
402
+ def dump_get_device(**args, &block)
403
+ exchange_message(:"dump", Messages::DumpGetDeviceRequest, Messages::DumpGetDeviceReply, args, &block)
404
+ end
405
+ # Set WireGuard device
406
+ # ~~~~~~~~~~~~~~~~~~~~
407
+ #
408
+ # This command should be called with a wgdevice set, containing one but
409
+ # not both of ``WGDEVICE_A_IFINDEX`` and ``WGDEVICE_A_IFNAME``.
410
+ #
411
+ # It is possible that the amount of configuration data exceeds that of the
412
+ # maximum message length accepted by the kernel. In that case, several
413
+ # messages should be sent one after another, with each successive one
414
+ # filling in information not contained in the prior. Note that if
415
+ # ``WGDEVICE_F_REPLACE_PEERS`` is specified in the first message, it
416
+ # probably should not be specified in fragments that come after, so that
417
+ # the list of peers is only cleared the first time but appended after.
418
+ # Likewise for peers, if ``WGPEER_F_REPLACE_ALLOWEDIPS`` is specified in
419
+ # the first message of a peer, it likely should not be specified in
420
+ # subsequent fragments.
421
+ #
422
+ # If an error occurs, ``NLMSG_ERROR`` will reply containing an errno.
423
+ #--
424
+ # @rbs (?ifindex: ::Integer, ?ifname: ::String, ?private_key: untyped, ?public_key: untyped, ?flags: ::Integer, ?listen_port: ::Integer, ?fwmark: ::Integer, ?peers: untyped) -> void
425
+ def do_set_device(**args)
426
+ exchange_message(:"do", Messages::DoSetDeviceRequest, nil, args)
427
+ end
428
+ end
@@ -1,5 +1,5 @@
1
1
  module Nl
2
2
  module Linux
3
- VERSION = '0.2.0'
3
+ VERSION = '0.2.1'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nl-linux
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kasumi Hanazuki
@@ -15,28 +15,28 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 0.2.0
18
+ version: 0.2.1
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - '='
24
24
  - !ruby/object:Gem::Version
25
- version: 0.2.0
25
+ version: 0.2.1
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: ynl
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - '='
31
31
  - !ruby/object:Gem::Version
32
- version: 0.2.0
32
+ version: 0.2.1
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - '='
38
38
  - !ruby/object:Gem::Version
39
- version: 0.2.0
39
+ version: 0.2.1
40
40
  description: Linux Netlink client
41
41
  email:
42
42
  - kasumi@rollingapple.net
@@ -48,6 +48,36 @@ files:
48
48
  - NLSPEC_VERSION
49
49
  - README.md
50
50
  - Rakefile
51
+ - generated/nl/linux/binder.rb
52
+ - generated/nl/linux/conntrack.rb
53
+ - generated/nl/linux/dev_energymodel.rb
54
+ - generated/nl/linux/devlink.rb
55
+ - generated/nl/linux/dpll.rb
56
+ - generated/nl/linux/ethtool.rb
57
+ - generated/nl/linux/fou.rb
58
+ - generated/nl/linux/handshake.rb
59
+ - generated/nl/linux/lockd.rb
60
+ - generated/nl/linux/mptcp_pm.rb
61
+ - generated/nl/linux/net_shaper.rb
62
+ - generated/nl/linux/netdev.rb
63
+ - generated/nl/linux/nfsd.rb
64
+ - generated/nl/linux/nftables.rb
65
+ - generated/nl/linux/nl80211.rb
66
+ - generated/nl/linux/nlctrl.rb
67
+ - generated/nl/linux/ovpn.rb
68
+ - generated/nl/linux/ovs_datapath.rb
69
+ - generated/nl/linux/ovs_flow.rb
70
+ - generated/nl/linux/ovs_vport.rb
71
+ - generated/nl/linux/psp.rb
72
+ - generated/nl/linux/rt_addr.rb
73
+ - generated/nl/linux/rt_link.rb
74
+ - generated/nl/linux/rt_neigh.rb
75
+ - generated/nl/linux/rt_route.rb
76
+ - generated/nl/linux/rt_rule.rb
77
+ - generated/nl/linux/tc.rb
78
+ - generated/nl/linux/tcp_metrics.rb
79
+ - generated/nl/linux/team.rb
80
+ - generated/nl/linux/wireguard.rb
51
81
  - lib/nl-linux.rb
52
82
  - lib/nl/linux.rb
53
83
  - lib/nl/linux/version.rb
@@ -89,7 +119,7 @@ licenses:
89
119
  - "(GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause"
90
120
  metadata:
91
121
  homepage_uri: https://github.com/hanazuki/nl
92
- source_code_uri: https://github.com/hanazuki/nl/tree/v0.2.0
122
+ source_code_uri: https://github.com/hanazuki/nl/tree/v0.2.1
93
123
  changelog_uri: https://github.com/hanazuki/nl/blob/master/CHANGELOG.md
94
124
  rdoc_options: []
95
125
  require_paths: