nl-linux 0.2.4 → 0.4.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.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -0
  3. data/.yardopts +5 -0
  4. data/CHANGELOG.md +8 -0
  5. data/Rakefile +27 -5
  6. data/generated/nl/linux/binder.rb +227 -19
  7. data/generated/nl/linux/conntrack.rb +1325 -365
  8. data/generated/nl/linux/dev_energymodel.rb +357 -66
  9. data/generated/nl/linux/devlink.rb +6310 -1859
  10. data/generated/nl/linux/dpll.rb +2202 -376
  11. data/generated/nl/linux/drm_ras.rb +312 -63
  12. data/generated/nl/linux/ethtool.rb +7555 -2447
  13. data/generated/nl/linux/fou.rb +381 -133
  14. data/generated/nl/linux/handshake.rb +340 -70
  15. data/generated/nl/linux/lockd.rb +132 -27
  16. data/generated/nl/linux/mptcp_pm.rb +773 -161
  17. data/generated/nl/linux/net_shaper.rb +892 -211
  18. data/generated/nl/linux/netdev.rb +2366 -518
  19. data/generated/nl/linux/nfsd.rb +1299 -317
  20. data/generated/nl/linux/nftables.rb +5351 -1533
  21. data/generated/nl/linux/nl80211.rb +4601 -882
  22. data/generated/nl/linux/nlctrl.rb +460 -117
  23. data/generated/nl/linux/ovpn.rb +1360 -262
  24. data/generated/nl/linux/ovs_datapath.rb +312 -98
  25. data/generated/nl/linux/ovs_flow.rb +1866 -358
  26. data/generated/nl/linux/ovs_packet.rb +331 -45
  27. data/generated/nl/linux/ovs_vport.rb +374 -123
  28. data/generated/nl/linux/psp.rb +1093 -201
  29. data/generated/nl/linux/rt_addr.rb +423 -165
  30. data/generated/nl/linux/rt_link.rb +6928 -1336
  31. data/generated/nl/linux/rt_neigh.rb +1063 -297
  32. data/generated/nl/linux/rt_route.rb +1112 -483
  33. data/generated/nl/linux/rt_rule.rb +931 -262
  34. data/generated/nl/linux/sunrpc_cache.rb +407 -82
  35. data/generated/nl/linux/tc.rb +10081 -1763
  36. data/generated/nl/linux/tcp_metrics.rb +388 -109
  37. data/generated/nl/linux/team.rb +350 -84
  38. data/generated/nl/linux/wireguard.rb +525 -96
  39. data/generated/nl/linux.rb +1 -0
  40. data/lib/nl/linux/nlctrl_resolver.rb +31 -0
  41. data/lib/nl/linux/version.rb +1 -1
  42. data/sig/generated/nl/linux/binder.rbs +366 -0
  43. data/sig/generated/nl/linux/conntrack.rbs +2787 -0
  44. data/sig/generated/nl/linux/dev_energymodel.rbs +636 -0
  45. data/sig/generated/nl/linux/devlink.rbs +12496 -0
  46. data/sig/generated/nl/linux/dpll.rbs +3461 -0
  47. data/sig/generated/nl/linux/drm_ras.rbs +553 -0
  48. data/sig/generated/nl/linux/ethtool.rbs +15291 -0
  49. data/sig/generated/nl/linux/fou.rbs +702 -0
  50. data/sig/generated/nl/linux/handshake.rbs +622 -0
  51. data/sig/generated/nl/linux/lockd.rbs +234 -0
  52. data/sig/generated/nl/linux/mptcp_pm.rbs +1511 -0
  53. data/sig/generated/nl/linux/net_shaper.rbs +1645 -0
  54. data/sig/generated/nl/linux/netdev.rbs +4187 -0
  55. data/sig/generated/nl/linux/nfsd.rbs +2520 -0
  56. data/sig/generated/nl/linux/nftables.rbs +10304 -0
  57. data/sig/generated/nl/linux/nl80211.rbs +9786 -0
  58. data/sig/generated/nl/linux/nlctrl.rbs +944 -0
  59. data/sig/generated/nl/linux/nlctrl_resolver.rbs +20 -0
  60. data/sig/generated/nl/linux/ovpn.rbs +2564 -0
  61. data/sig/generated/nl/linux/ovs_datapath.rbs +640 -0
  62. data/sig/generated/nl/linux/ovs_flow.rbs +3659 -0
  63. data/sig/generated/nl/linux/ovs_packet.rbs +540 -0
  64. data/sig/generated/nl/linux/ovs_vport.rbs +777 -0
  65. data/sig/generated/nl/linux/psp.rbs +1846 -0
  66. data/sig/generated/nl/linux/rt_addr.rbs +866 -0
  67. data/sig/generated/nl/linux/rt_link.rbs +13438 -0
  68. data/sig/generated/nl/linux/rt_neigh.rbs +2124 -0
  69. data/sig/generated/nl/linux/rt_route.rbs +2218 -0
  70. data/sig/generated/nl/linux/rt_rule.rbs +1726 -0
  71. data/sig/generated/nl/linux/sunrpc_cache.rbs +739 -0
  72. data/sig/generated/nl/linux/tc.rbs +19931 -0
  73. data/sig/generated/nl/linux/tcp_metrics.rbs +740 -0
  74. data/sig/generated/nl/linux/team.rbs +733 -0
  75. data/sig/generated/nl/linux/version.rbs +7 -0
  76. data/sig/generated/nl/linux/wireguard.rbs +1006 -0
  77. data/sig/generated/nl/linux.rbs +6 -0
  78. data/sig/generated/nl-linux.rbs +2 -0
  79. metadata +51 -10
@@ -1,14 +1,47 @@
1
1
  # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
+ #
3
+ # This file is based on Documentation/netlink/specs/rt-addr.yaml from Linux v7.2.
2
4
  #--
3
5
  # frozen_string_literal: true
4
- # rbs_inline: enabled
5
6
  # This code is generated by Ynl::Generator. DO NOT EDIT.
6
7
  require 'nl'
7
8
  module Nl; module Linux
8
9
  # Address configuration over rtnetlink.
9
- class RtAddr < ::Nl::Family
10
+ class RtAddr < ::Nl::Raw::Family
10
11
  NAME = "rt-addr"
11
- PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Raw.new("rt-addr", 0))
12
+ PROTONUM = 0
13
+ # @rbs (?executor: executor?, ?notification_capacity: ::Integer?) -> (::Nl::Family::Session & instance)
14
+ # @rbs | [R] (?executor: executor?, ?notification_capacity: ::Integer?) { (instance) -> R } -> R
15
+ # @overload open(executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
16
+ # @param [Symbol, nil] executor
17
+ # @param [Integer, nil] notification_capacity
18
+ # @return [RtAddr]
19
+ # @overload open(executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY, &block)
20
+ # @param [Symbol, nil] executor
21
+ # @param [Integer, nil] notification_capacity
22
+ # @yieldparam [RtAddr] family
23
+ # @return [Object] the result of the block
24
+ def self.open(executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
25
+ super
26
+ end
27
+ # @private
28
+ MCAST_GROUPS = Ractor.make_shareable({:"rtnlgrp_ipv4_ifaddr" => ::Nl::McastGroup.new("rtnlgrp-ipv4-ifaddr", 5), :"rtnlgrp_ipv6_ifaddr" => ::Nl::McastGroup.new("rtnlgrp-ipv6-ifaddr", 9)}) #: Hash[::Symbol, ::Nl::McastGroup]
29
+ module Flags
30
+ module IfaFlags
31
+ Secondary = 1
32
+ Nodad = 2
33
+ Optimistic = 4
34
+ Dadfailed = 8
35
+ Homeaddress = 16
36
+ Deprecated = 32
37
+ Tentative = 64
38
+ Permanent = 128
39
+ Managetempaddr = 256
40
+ Noprefixroute = 512
41
+ Mcautojoin = 1024
42
+ StablePrivacy = 2048
43
+ end
44
+ end
12
45
  module Structs
13
46
  Ifaddrmsg = Struct.new(
14
47
  :"ifa_family", #: ::Integer
@@ -18,19 +51,31 @@ class RtAddr < ::Nl::Family
18
51
  :"ifa_index", #: ::Integer
19
52
  )
20
53
  class Ifaddrmsg
21
- # :nodoc:
22
- MEMBERS = Ractor.make_shareable({ifa_family: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ifa_prefixlen: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ifa_flags: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ifa_scope: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ifa_index: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
54
+ # @!attribute [rw] ifa_family
55
+ # @return [Integer]
56
+ # @!attribute [rw] ifa_prefixlen
57
+ # @return [Integer]
58
+ # @!attribute [rw] ifa_flags
59
+ # @return [Integer]
60
+ # @!attribute [rw] ifa_scope
61
+ # @return [Integer]
62
+ # @!attribute [rw] ifa_index
63
+ # @return [Integer]
64
+ # @private
65
+ MEMBERS = Ractor.make_shareable({ifa_family: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ifa_prefixlen: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ifa_flags: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ifa_scope: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ifa_index: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
23
66
  # Decodes the struct.
24
- #--
25
67
  # @rbs decoder: ::Nl::Decoder
26
68
  # @rbs return: instance
69
+ # @param [Nl::Decoder] decoder
70
+ # @return [self]
27
71
  def self.decode(decoder)
28
72
  self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
29
73
  end
30
74
  # Encodes the struct.
31
- #--
32
75
  # @rbs encoder: ::Nl::Encoder
33
76
  # @rbs return: void
77
+ # @param [Nl::Encoder] encoder
78
+ # @return [void]
34
79
  def encode(encoder)
35
80
  MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
36
81
  end
@@ -42,407 +87,620 @@ class RtAddr < ::Nl::Family
42
87
  :"tstamp", #: ::Integer
43
88
  )
44
89
  class IfaCacheinfo
45
- # :nodoc:
46
- MEMBERS = Ractor.make_shareable({ifa_prefered: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil), ifa_valid: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil), cstamp: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil), tstamp: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
90
+ # @!attribute [rw] ifa_prefered
91
+ # @return [Integer]
92
+ # @!attribute [rw] ifa_valid
93
+ # @return [Integer]
94
+ # @!attribute [rw] cstamp
95
+ # @return [Integer]
96
+ # @!attribute [rw] tstamp
97
+ # @return [Integer]
98
+ # @private
99
+ MEMBERS = Ractor.make_shareable({ifa_prefered: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil), ifa_valid: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil), cstamp: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil), tstamp: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
47
100
  # Decodes the struct.
48
- #--
49
101
  # @rbs decoder: ::Nl::Decoder
50
102
  # @rbs return: instance
103
+ # @param [Nl::Decoder] decoder
104
+ # @return [self]
51
105
  def self.decode(decoder)
52
106
  self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
53
107
  end
54
108
  # Encodes the struct.
55
- #--
56
109
  # @rbs encoder: ::Nl::Encoder
57
110
  # @rbs return: void
111
+ # @param [Nl::Encoder] encoder
112
+ # @return [void]
58
113
  def encode(encoder)
59
114
  MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
60
115
  end
61
116
  end
62
117
  end
63
118
  module AttributeSets
64
- class AddrAttrs < ::Nl::Protocols::Raw::AttributeSet
119
+ class AddrAttrs < ::Nl::AttributeSet
65
120
  # Abstract class
66
- class Attribute < ::Nl::Protocols::Raw::AttributeSet::Attribute
121
+ class Attribute < ::Nl::AttributeSet::Attribute
67
122
  end
68
123
  class Address < Attribute
69
124
  TYPE = 1
70
125
  NAME = :"address"
71
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
126
+ # @private
127
+ ORDER = 0
128
+ # @private
129
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: nil)
72
130
  end
73
131
  class Local < Attribute
74
132
  TYPE = 2
75
133
  NAME = :"local"
76
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
134
+ # @private
135
+ ORDER = 1
136
+ # @private
137
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: nil)
77
138
  end
78
139
  class Label < Attribute
79
140
  TYPE = 3
80
141
  NAME = :"label"
81
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::String.new(check: nil)
142
+ # @private
143
+ ORDER = 2
144
+ # @private
145
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
82
146
  end
83
147
  class Broadcast < Attribute
84
148
  TYPE = 4
85
149
  NAME = :"broadcast"
86
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
150
+ # @private
151
+ ORDER = 3
152
+ # @private
153
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
87
154
  end
88
155
  class Anycast < Attribute
89
156
  TYPE = 5
90
157
  NAME = :"anycast"
91
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
158
+ # @private
159
+ ORDER = 4
160
+ # @private
161
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: nil)
92
162
  end
93
163
  class Cacheinfo < Attribute
94
164
  TYPE = 6
95
165
  NAME = :"cacheinfo"
96
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
166
+ # @private
167
+ ORDER = 5
168
+ # @private
169
+ DATATYPE = ::Nl::DataTypes::Struct.new(Structs::IfaCacheinfo, check: nil, consume_remaining: true)
97
170
  end
98
171
  class Multicast < Attribute
99
172
  TYPE = 7
100
173
  NAME = :"multicast"
101
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
174
+ # @private
175
+ ORDER = 6
176
+ # @private
177
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: nil)
102
178
  end
179
+ # Known flags are defined in {Flags::IfaFlags}.
103
180
  class Flags < Attribute
104
181
  TYPE = 8
105
182
  NAME = :"flags"
106
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
183
+ # @private
184
+ ORDER = 7
185
+ # @private
186
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
107
187
  end
108
188
  class RtPriority < Attribute
109
189
  TYPE = 9
110
190
  NAME = :"rt_priority"
111
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
191
+ # @private
192
+ ORDER = 8
193
+ # @private
194
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
112
195
  end
113
196
  class TargetNetnsid < Attribute
114
197
  TYPE = 10
115
198
  NAME = :"target_netnsid"
116
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
199
+ # @private
200
+ ORDER = 9
201
+ # @private
202
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: nil)
117
203
  end
118
204
  class Proto < Attribute
119
205
  TYPE = 11
120
206
  NAME = :"proto"
121
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
207
+ # @private
208
+ ORDER = 10
209
+ # @private
210
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
122
211
  end
123
- # :nodoc:
212
+ # @private
124
213
  BY_NAME = Ractor.make_shareable({:"address" => Address, :"local" => Local, :"label" => Label, :"broadcast" => Broadcast, :"anycast" => Anycast, :"cacheinfo" => Cacheinfo, :"multicast" => Multicast, :"flags" => Flags, :"rt_priority" => RtPriority, :"target_netnsid" => TargetNetnsid, :"proto" => Proto}) #: Hash[::Symbol, Attribute]
125
- # :nodoc:
214
+ # @private
126
215
  BY_TYPE = Ractor.make_shareable({1 => Address, 2 => Local, 3 => Label, 4 => Broadcast, 5 => Anycast, 6 => Cacheinfo, 7 => Multicast, 8 => Flags, 9 => RtPriority, 10 => TargetNetnsid, 11 => Proto}) #: Hash[::Integer, Attribute]
216
+ # @rbs return: ::String
217
+ # @return [String]
218
+ # @see Address
219
+ def address; self[:"address"]&.value; end
220
+ # @rbs return: ::String
221
+ # @return [String]
222
+ # @see Local
223
+ def local; self[:"local"]&.value; end
224
+ # @rbs return: ::String
225
+ # @return [String]
226
+ # @see Label
227
+ def label; self[:"label"]&.value; end
228
+ # @rbs return: ::Integer
229
+ # @return [Integer]
230
+ # @see Broadcast
231
+ def broadcast; self[:"broadcast"]&.value; end
232
+ # @rbs return: ::String
233
+ # @return [String]
234
+ # @see Anycast
235
+ def anycast; self[:"anycast"]&.value; end
236
+ # @rbs return: Structs::IfaCacheinfo
237
+ # @return [Structs::IfaCacheinfo]
238
+ # @see Cacheinfo
239
+ def cacheinfo; self[:"cacheinfo"]&.value; end
240
+ # @rbs return: ::String
241
+ # @return [String]
242
+ # @see Multicast
243
+ def multicast; self[:"multicast"]&.value; end
244
+ # Known flags are defined in {Flags::IfaFlags}.
245
+ # @rbs return: ::Integer
246
+ # @return [Integer]
247
+ # @see Flags
248
+ def flags; self[:"flags"]&.value; end
249
+ # @rbs return: ::Integer
250
+ # @return [Integer]
251
+ # @see RtPriority
252
+ def rt_priority; self[:"rt_priority"]&.value; end
253
+ # @rbs return: ::String
254
+ # @return [String]
255
+ # @see TargetNetnsid
256
+ def target_netnsid; self[:"target_netnsid"]&.value; end
257
+ # @rbs return: ::Integer
258
+ # @return [Integer]
259
+ # @see Proto
260
+ def proto; self[:"proto"]&.value; end
127
261
  class << self
128
262
  # Looks up Attribute class by name.
129
- #--
130
263
  # @rbs name: Symbol
131
264
  # @rbs return: Attribute
265
+ # @param [Symbol] name
266
+ # @return [Attribute]
132
267
  def by_name(name); BY_NAME.fetch(name); end
133
268
  # Looks up Attribute class by type value.
134
- #--
135
269
  # @rbs type: Integer
136
270
  # @rbs return: Attribute
271
+ # @param [Integer] type
272
+ # @return [Attribute]
137
273
  def by_type(type); BY_TYPE.fetch(type); end
138
274
  end
139
275
  end
140
276
  end
141
277
  module Messages
142
278
  # Add new address
143
- class DoNewaddrRequest < ::Nl::Protocols::Raw::Message
279
+ class DoNewaddrRequest < ::Nl::Raw::Message
144
280
  TYPE = 20
145
281
  FIXED_HEADER = Structs::Ifaddrmsg
146
282
  ATTRIBUTE_SET = AttributeSets::AddrAttrs
147
283
  ATTRIBUTES = Ractor.make_shareable(%i[address local label cacheinfo])
148
- # Gets the value of `ifa-family` field in the message's fixed header.
149
- #--
150
284
  # @rbs return: ::Integer
285
+ # @return [Integer]
151
286
  def ifa_family; fixed_header.ifa_family; end
152
- # Gets the value of `ifa-prefixlen` field in the message's fixed header.
153
- #--
154
287
  # @rbs return: ::Integer
288
+ # @return [Integer]
155
289
  def ifa_prefixlen; fixed_header.ifa_prefixlen; end
156
- # Gets the value of `ifa-flags` field in the message's fixed header.
157
- #--
158
290
  # @rbs return: ::Integer
291
+ # @return [Integer]
159
292
  def ifa_flags; fixed_header.ifa_flags; end
160
- # Gets the value of `ifa-scope` field in the message's fixed header.
161
- #--
162
293
  # @rbs return: ::Integer
294
+ # @return [Integer]
163
295
  def ifa_scope; fixed_header.ifa_scope; end
164
- # Gets the value of `ifa-index` field in the message's fixed header.
165
- #--
166
296
  # @rbs return: ::Integer
297
+ # @return [Integer]
167
298
  def ifa_index; fixed_header.ifa_index; end
168
- # Gets the value of `address` attribute in the message.
169
- #--
170
- # @rbs return: untyped
299
+ # @rbs return: ::String
300
+ # @return [String]
301
+ # @see AttributeSets::AddrAttrs::Address
171
302
  def address; attributes[:"address"]&.value; end
172
- # Gets the value of `local` attribute in the message.
173
- #--
174
- # @rbs return: untyped
303
+ # @rbs return: ::String
304
+ # @return [String]
305
+ # @see AttributeSets::AddrAttrs::Local
175
306
  def local; attributes[:"local"]&.value; end
176
- # Gets the value of `label` attribute in the message.
177
- #--
178
307
  # @rbs return: ::String
308
+ # @return [String]
309
+ # @see AttributeSets::AddrAttrs::Label
179
310
  def label; attributes[:"label"]&.value; end
180
- # Gets the value of `cacheinfo` attribute in the message.
181
- #--
182
- # @rbs return: untyped
311
+ # @rbs return: Structs::IfaCacheinfo
312
+ # @return [Structs::IfaCacheinfo]
313
+ # @see AttributeSets::AddrAttrs::Cacheinfo
183
314
  def cacheinfo; attributes[:"cacheinfo"]&.value; end
184
315
  end
185
316
  # Remove address
186
- class DoDeladdrRequest < ::Nl::Protocols::Raw::Message
317
+ class DoDeladdrRequest < ::Nl::Raw::Message
187
318
  TYPE = 21
188
319
  FIXED_HEADER = Structs::Ifaddrmsg
189
320
  ATTRIBUTE_SET = AttributeSets::AddrAttrs
190
321
  ATTRIBUTES = Ractor.make_shareable(%i[address local])
191
- # Gets the value of `ifa-family` field in the message's fixed header.
192
- #--
193
322
  # @rbs return: ::Integer
323
+ # @return [Integer]
194
324
  def ifa_family; fixed_header.ifa_family; end
195
- # Gets the value of `ifa-prefixlen` field in the message's fixed header.
196
- #--
197
325
  # @rbs return: ::Integer
326
+ # @return [Integer]
198
327
  def ifa_prefixlen; fixed_header.ifa_prefixlen; end
199
- # Gets the value of `ifa-flags` field in the message's fixed header.
200
- #--
201
328
  # @rbs return: ::Integer
329
+ # @return [Integer]
202
330
  def ifa_flags; fixed_header.ifa_flags; end
203
- # Gets the value of `ifa-scope` field in the message's fixed header.
204
- #--
205
331
  # @rbs return: ::Integer
332
+ # @return [Integer]
206
333
  def ifa_scope; fixed_header.ifa_scope; end
207
- # Gets the value of `ifa-index` field in the message's fixed header.
208
- #--
209
334
  # @rbs return: ::Integer
335
+ # @return [Integer]
210
336
  def ifa_index; fixed_header.ifa_index; end
211
- # Gets the value of `address` attribute in the message.
212
- #--
213
- # @rbs return: untyped
337
+ # @rbs return: ::String
338
+ # @return [String]
339
+ # @see AttributeSets::AddrAttrs::Address
214
340
  def address; attributes[:"address"]&.value; end
215
- # Gets the value of `local` attribute in the message.
216
- #--
217
- # @rbs return: untyped
341
+ # @rbs return: ::String
342
+ # @return [String]
343
+ # @see AttributeSets::AddrAttrs::Local
218
344
  def local; attributes[:"local"]&.value; end
219
345
  end
220
346
  # Dump address information.
221
- class DumpGetaddrRequest < ::Nl::Protocols::Raw::Message
347
+ class DumpGetaddrRequest < ::Nl::Raw::Message
222
348
  TYPE = 22
223
349
  FIXED_HEADER = Structs::Ifaddrmsg
224
350
  ATTRIBUTE_SET = AttributeSets::AddrAttrs
225
351
  ATTRIBUTES = Ractor.make_shareable(%i[])
226
- # Gets the value of `ifa-family` field in the message's fixed header.
227
- #--
228
352
  # @rbs return: ::Integer
353
+ # @return [Integer]
229
354
  def ifa_family; fixed_header.ifa_family; end
230
- # Gets the value of `ifa-prefixlen` field in the message's fixed header.
231
- #--
232
355
  # @rbs return: ::Integer
356
+ # @return [Integer]
233
357
  def ifa_prefixlen; fixed_header.ifa_prefixlen; end
234
- # Gets the value of `ifa-flags` field in the message's fixed header.
235
- #--
236
358
  # @rbs return: ::Integer
359
+ # @return [Integer]
237
360
  def ifa_flags; fixed_header.ifa_flags; end
238
- # Gets the value of `ifa-scope` field in the message's fixed header.
239
- #--
240
361
  # @rbs return: ::Integer
362
+ # @return [Integer]
241
363
  def ifa_scope; fixed_header.ifa_scope; end
242
- # Gets the value of `ifa-index` field in the message's fixed header.
243
- #--
244
364
  # @rbs return: ::Integer
365
+ # @return [Integer]
245
366
  def ifa_index; fixed_header.ifa_index; end
246
367
  end
247
368
  # Dump address information.
248
- class DumpGetaddrReply < ::Nl::Protocols::Raw::Message
369
+ class DumpGetaddrReply < ::Nl::Raw::Message
249
370
  TYPE = 20
250
371
  FIXED_HEADER = Structs::Ifaddrmsg
251
372
  ATTRIBUTE_SET = AttributeSets::AddrAttrs
252
373
  ATTRIBUTES = Ractor.make_shareable(%i[address local label cacheinfo])
253
- # Gets the value of `ifa-family` field in the message's fixed header.
254
- #--
255
374
  # @rbs return: ::Integer
375
+ # @return [Integer]
256
376
  def ifa_family; fixed_header.ifa_family; end
257
- # Gets the value of `ifa-prefixlen` field in the message's fixed header.
258
- #--
259
377
  # @rbs return: ::Integer
378
+ # @return [Integer]
260
379
  def ifa_prefixlen; fixed_header.ifa_prefixlen; end
261
- # Gets the value of `ifa-flags` field in the message's fixed header.
262
- #--
263
380
  # @rbs return: ::Integer
381
+ # @return [Integer]
264
382
  def ifa_flags; fixed_header.ifa_flags; end
265
- # Gets the value of `ifa-scope` field in the message's fixed header.
266
- #--
267
383
  # @rbs return: ::Integer
384
+ # @return [Integer]
268
385
  def ifa_scope; fixed_header.ifa_scope; end
269
- # Gets the value of `ifa-index` field in the message's fixed header.
270
- #--
271
386
  # @rbs return: ::Integer
387
+ # @return [Integer]
272
388
  def ifa_index; fixed_header.ifa_index; end
273
- # Gets the value of `address` attribute in the message.
274
- #--
275
- # @rbs return: untyped
389
+ # @rbs return: ::String
390
+ # @return [String]
391
+ # @see AttributeSets::AddrAttrs::Address
276
392
  def address; attributes[:"address"]&.value; end
277
- # Gets the value of `local` attribute in the message.
278
- #--
279
- # @rbs return: untyped
393
+ # @rbs return: ::String
394
+ # @return [String]
395
+ # @see AttributeSets::AddrAttrs::Local
280
396
  def local; attributes[:"local"]&.value; end
281
- # Gets the value of `label` attribute in the message.
282
- #--
283
397
  # @rbs return: ::String
398
+ # @return [String]
399
+ # @see AttributeSets::AddrAttrs::Label
284
400
  def label; attributes[:"label"]&.value; end
285
- # Gets the value of `cacheinfo` attribute in the message.
286
- #--
287
- # @rbs return: untyped
401
+ # @rbs return: Structs::IfaCacheinfo
402
+ # @return [Structs::IfaCacheinfo]
403
+ # @see AttributeSets::AddrAttrs::Cacheinfo
288
404
  def cacheinfo; attributes[:"cacheinfo"]&.value; end
289
405
  end
290
406
  # Get / dump IPv4/IPv6 multicast addresses.
291
- class DoGetmulticastRequest < ::Nl::Protocols::Raw::Message
407
+ class DoGetmulticastRequest < ::Nl::Raw::Message
292
408
  TYPE = 58
293
409
  FIXED_HEADER = Structs::Ifaddrmsg
294
410
  ATTRIBUTE_SET = AttributeSets::AddrAttrs
295
411
  ATTRIBUTES = Ractor.make_shareable(%i[])
296
- # Gets the value of `ifa-family` field in the message's fixed header.
297
- #--
298
412
  # @rbs return: ::Integer
413
+ # @return [Integer]
299
414
  def ifa_family; fixed_header.ifa_family; end
300
- # Gets the value of `ifa-prefixlen` field in the message's fixed header.
301
- #--
302
415
  # @rbs return: ::Integer
416
+ # @return [Integer]
303
417
  def ifa_prefixlen; fixed_header.ifa_prefixlen; end
304
- # Gets the value of `ifa-flags` field in the message's fixed header.
305
- #--
306
418
  # @rbs return: ::Integer
419
+ # @return [Integer]
307
420
  def ifa_flags; fixed_header.ifa_flags; end
308
- # Gets the value of `ifa-scope` field in the message's fixed header.
309
- #--
310
421
  # @rbs return: ::Integer
422
+ # @return [Integer]
311
423
  def ifa_scope; fixed_header.ifa_scope; end
312
- # Gets the value of `ifa-index` field in the message's fixed header.
313
- #--
314
424
  # @rbs return: ::Integer
425
+ # @return [Integer]
315
426
  def ifa_index; fixed_header.ifa_index; end
316
427
  end
317
428
  # Get / dump IPv4/IPv6 multicast addresses.
318
- class DoGetmulticastReply < ::Nl::Protocols::Raw::Message
429
+ class DoGetmulticastReply < ::Nl::Raw::Message
319
430
  TYPE = 58
320
431
  FIXED_HEADER = Structs::Ifaddrmsg
321
432
  ATTRIBUTE_SET = AttributeSets::AddrAttrs
322
433
  ATTRIBUTES = Ractor.make_shareable(%i[cacheinfo multicast])
323
- # Gets the value of `ifa-family` field in the message's fixed header.
324
- #--
325
434
  # @rbs return: ::Integer
435
+ # @return [Integer]
326
436
  def ifa_family; fixed_header.ifa_family; end
327
- # Gets the value of `ifa-prefixlen` field in the message's fixed header.
328
- #--
329
437
  # @rbs return: ::Integer
438
+ # @return [Integer]
330
439
  def ifa_prefixlen; fixed_header.ifa_prefixlen; end
331
- # Gets the value of `ifa-flags` field in the message's fixed header.
332
- #--
333
440
  # @rbs return: ::Integer
441
+ # @return [Integer]
334
442
  def ifa_flags; fixed_header.ifa_flags; end
335
- # Gets the value of `ifa-scope` field in the message's fixed header.
336
- #--
337
443
  # @rbs return: ::Integer
444
+ # @return [Integer]
338
445
  def ifa_scope; fixed_header.ifa_scope; end
339
- # Gets the value of `ifa-index` field in the message's fixed header.
340
- #--
341
446
  # @rbs return: ::Integer
447
+ # @return [Integer]
342
448
  def ifa_index; fixed_header.ifa_index; end
343
- # Gets the value of `cacheinfo` attribute in the message.
344
- #--
345
- # @rbs return: untyped
449
+ # @rbs return: Structs::IfaCacheinfo
450
+ # @return [Structs::IfaCacheinfo]
451
+ # @see AttributeSets::AddrAttrs::Cacheinfo
346
452
  def cacheinfo; attributes[:"cacheinfo"]&.value; end
347
- # Gets the value of `multicast` attribute in the message.
348
- #--
349
- # @rbs return: untyped
453
+ # @rbs return: ::String
454
+ # @return [String]
455
+ # @see AttributeSets::AddrAttrs::Multicast
350
456
  def multicast; attributes[:"multicast"]&.value; end
351
457
  end
352
458
  # Get / dump IPv4/IPv6 multicast addresses.
353
- class DumpGetmulticastRequest < ::Nl::Protocols::Raw::Message
459
+ class DumpGetmulticastRequest < ::Nl::Raw::Message
354
460
  TYPE = 58
355
461
  FIXED_HEADER = Structs::Ifaddrmsg
356
462
  ATTRIBUTE_SET = AttributeSets::AddrAttrs
357
463
  ATTRIBUTES = Ractor.make_shareable(%i[])
358
- # Gets the value of `ifa-family` field in the message's fixed header.
359
- #--
360
464
  # @rbs return: ::Integer
465
+ # @return [Integer]
361
466
  def ifa_family; fixed_header.ifa_family; end
362
- # Gets the value of `ifa-prefixlen` field in the message's fixed header.
363
- #--
364
467
  # @rbs return: ::Integer
468
+ # @return [Integer]
365
469
  def ifa_prefixlen; fixed_header.ifa_prefixlen; end
366
- # Gets the value of `ifa-flags` field in the message's fixed header.
367
- #--
368
470
  # @rbs return: ::Integer
471
+ # @return [Integer]
369
472
  def ifa_flags; fixed_header.ifa_flags; end
370
- # Gets the value of `ifa-scope` field in the message's fixed header.
371
- #--
372
473
  # @rbs return: ::Integer
474
+ # @return [Integer]
373
475
  def ifa_scope; fixed_header.ifa_scope; end
374
- # Gets the value of `ifa-index` field in the message's fixed header.
375
- #--
376
476
  # @rbs return: ::Integer
477
+ # @return [Integer]
377
478
  def ifa_index; fixed_header.ifa_index; end
378
479
  end
379
480
  # Get / dump IPv4/IPv6 multicast addresses.
380
- class DumpGetmulticastReply < ::Nl::Protocols::Raw::Message
481
+ class DumpGetmulticastReply < ::Nl::Raw::Message
381
482
  TYPE = 58
382
483
  FIXED_HEADER = Structs::Ifaddrmsg
383
484
  ATTRIBUTE_SET = AttributeSets::AddrAttrs
384
485
  ATTRIBUTES = Ractor.make_shareable(%i[cacheinfo multicast])
385
- # Gets the value of `ifa-family` field in the message's fixed header.
386
- #--
387
486
  # @rbs return: ::Integer
487
+ # @return [Integer]
388
488
  def ifa_family; fixed_header.ifa_family; end
389
- # Gets the value of `ifa-prefixlen` field in the message's fixed header.
390
- #--
391
489
  # @rbs return: ::Integer
490
+ # @return [Integer]
392
491
  def ifa_prefixlen; fixed_header.ifa_prefixlen; end
393
- # Gets the value of `ifa-flags` field in the message's fixed header.
394
- #--
395
492
  # @rbs return: ::Integer
493
+ # @return [Integer]
396
494
  def ifa_flags; fixed_header.ifa_flags; end
397
- # Gets the value of `ifa-scope` field in the message's fixed header.
398
- #--
399
495
  # @rbs return: ::Integer
496
+ # @return [Integer]
400
497
  def ifa_scope; fixed_header.ifa_scope; end
401
- # Gets the value of `ifa-index` field in the message's fixed header.
402
- #--
403
498
  # @rbs return: ::Integer
499
+ # @return [Integer]
404
500
  def ifa_index; fixed_header.ifa_index; end
405
- # Gets the value of `cacheinfo` attribute in the message.
406
- #--
407
- # @rbs return: untyped
501
+ # @rbs return: Structs::IfaCacheinfo
502
+ # @return [Structs::IfaCacheinfo]
503
+ # @see AttributeSets::AddrAttrs::Cacheinfo
408
504
  def cacheinfo; attributes[:"cacheinfo"]&.value; end
409
- # Gets the value of `multicast` attribute in the message.
410
- #--
411
- # @rbs return: untyped
505
+ # @rbs return: ::String
506
+ # @return [String]
507
+ # @see AttributeSets::AddrAttrs::Multicast
412
508
  def multicast; attributes[:"multicast"]&.value; end
413
509
  end
414
510
  end
511
+ module Notifications
512
+ end
513
+ # @private
514
+ NOTIFICATIONS = Ractor.make_shareable({}) #: Hash[::Integer, ::Class]
415
515
  # Add new address
416
- #--
417
- # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer, ?address: untyped, ?local: untyped, ?label: ::String, ?cacheinfo: untyped) -> void
516
+ # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer, ?address: ::String, ?local: ::String, ?label: ::String, ?cacheinfo: (Structs::IfaCacheinfo | ::Hash[::Symbol, untyped])) -> void
517
+ # @param [Hash] args
518
+ # @option args [Integer] ifa_family
519
+ # @option args [Integer] ifa_prefixlen
520
+ # @option args [Integer] ifa_flags
521
+ # @option args [Integer] ifa_scope
522
+ # @option args [Integer] ifa_index
523
+ # @option args [String] address
524
+ # @option args [String] local
525
+ # @option args [String] label
526
+ # @option args [Structs::IfaCacheinfo, Hash<Symbol, Object>] cacheinfo
527
+ # @return [void]
528
+ # @see Messages::DoNewaddrRequest
418
529
  def do_newaddr(**args)
419
530
  exchange_message(:"do", Messages::DoNewaddrRequest, nil, args)
420
531
  end
421
532
  # Remove address
422
- #--
423
- # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer, ?address: untyped, ?local: untyped) -> void
533
+ # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer, ?address: ::String, ?local: ::String) -> void
534
+ # @param [Hash] args
535
+ # @option args [Integer] ifa_family
536
+ # @option args [Integer] ifa_prefixlen
537
+ # @option args [Integer] ifa_flags
538
+ # @option args [Integer] ifa_scope
539
+ # @option args [Integer] ifa_index
540
+ # @option args [String] address
541
+ # @option args [String] local
542
+ # @return [void]
543
+ # @see Messages::DoDeladdrRequest
424
544
  def do_deladdr(**args)
425
545
  exchange_message(:"do", Messages::DoDeladdrRequest, nil, args)
426
546
  end
427
547
  # Dump address information.
428
- #--
429
- # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer) -> Enumerable[Messages::DumpGetaddrReply]
548
+ # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer) -> Array[Messages::DumpGetaddrReply]
430
549
  # | (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer) { (Messages::DumpGetaddrReply) -> void } -> void
550
+ # @overload dump_getaddr(**args)
551
+ # Returns an array when no block is given.
552
+ # @param [Hash] args
553
+ # @option args [Integer] ifa_family
554
+ # @option args [Integer] ifa_prefixlen
555
+ # @option args [Integer] ifa_flags
556
+ # @option args [Integer] ifa_scope
557
+ # @option args [Integer] ifa_index
558
+ # @return [Array<Messages::DumpGetaddrReply>]
559
+ # @overload dump_getaddr(**args, &block)
560
+ # Yields each reply when a block is given.
561
+ # @param [Hash] args
562
+ # @option args [Integer] ifa_family
563
+ # @option args [Integer] ifa_prefixlen
564
+ # @option args [Integer] ifa_flags
565
+ # @option args [Integer] ifa_scope
566
+ # @option args [Integer] ifa_index
567
+ # @yieldparam [Messages::DumpGetaddrReply] reply
568
+ # @return [void]
569
+ # @see Messages::DumpGetaddrRequest
431
570
  def dump_getaddr(**args, &block)
432
571
  exchange_message(:"dump", Messages::DumpGetaddrRequest, Messages::DumpGetaddrReply, args, &block)
433
572
  end
434
573
  # Get / dump IPv4/IPv6 multicast addresses.
435
- #--
436
574
  # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer) -> Messages::DoGetmulticastReply
575
+ # @param [Hash] args
576
+ # @option args [Integer] ifa_family
577
+ # @option args [Integer] ifa_prefixlen
578
+ # @option args [Integer] ifa_flags
579
+ # @option args [Integer] ifa_scope
580
+ # @option args [Integer] ifa_index
581
+ # @return [Messages::DoGetmulticastReply]
582
+ # @see Messages::DoGetmulticastRequest
437
583
  def do_getmulticast(**args)
438
584
  exchange_message(:"do", Messages::DoGetmulticastRequest, Messages::DoGetmulticastReply, args)
439
585
  end
440
586
  # Get / dump IPv4/IPv6 multicast addresses.
441
- #--
442
- # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer) -> Enumerable[Messages::DumpGetmulticastReply]
587
+ # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer) -> Array[Messages::DumpGetmulticastReply]
443
588
  # | (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer) { (Messages::DumpGetmulticastReply) -> void } -> void
589
+ # @overload dump_getmulticast(**args)
590
+ # Returns an array when no block is given.
591
+ # @param [Hash] args
592
+ # @option args [Integer] ifa_family
593
+ # @option args [Integer] ifa_prefixlen
594
+ # @option args [Integer] ifa_flags
595
+ # @option args [Integer] ifa_scope
596
+ # @option args [Integer] ifa_index
597
+ # @return [Array<Messages::DumpGetmulticastReply>]
598
+ # @overload dump_getmulticast(**args, &block)
599
+ # Yields each reply when a block is given.
600
+ # @param [Hash] args
601
+ # @option args [Integer] ifa_family
602
+ # @option args [Integer] ifa_prefixlen
603
+ # @option args [Integer] ifa_flags
604
+ # @option args [Integer] ifa_scope
605
+ # @option args [Integer] ifa_index
606
+ # @yieldparam [Messages::DumpGetmulticastReply] reply
607
+ # @return [void]
608
+ # @see Messages::DumpGetmulticastRequest
444
609
  def dump_getmulticast(**args, &block)
445
610
  exchange_message(:"dump", Messages::DumpGetmulticastRequest, Messages::DumpGetmulticastReply, args, &block)
446
611
  end
612
+ class AsyncOperations
613
+ # @private
614
+ def initialize(&exchange)
615
+ @exchange = exchange
616
+ end
617
+ # Add new address
618
+ # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer, ?address: ::String, ?local: ::String, ?label: ::String, ?cacheinfo: (Structs::IfaCacheinfo | ::Hash[::Symbol, untyped])) -> ::Nl::Async::Future[void]
619
+ # @param [Hash] args
620
+ # @option args [Integer] ifa_family
621
+ # @option args [Integer] ifa_prefixlen
622
+ # @option args [Integer] ifa_flags
623
+ # @option args [Integer] ifa_scope
624
+ # @option args [Integer] ifa_index
625
+ # @option args [String] address
626
+ # @option args [String] local
627
+ # @option args [String] label
628
+ # @option args [Structs::IfaCacheinfo, Hash<Symbol, Object>] cacheinfo
629
+ # @return [Nl::Async::Future<void>]
630
+ # @see Messages::DoNewaddrRequest
631
+ def do_newaddr(**args)
632
+ @exchange.call(:"do", Messages::DoNewaddrRequest, nil, args)
633
+ end
634
+ # Remove address
635
+ # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer, ?address: ::String, ?local: ::String) -> ::Nl::Async::Future[void]
636
+ # @param [Hash] args
637
+ # @option args [Integer] ifa_family
638
+ # @option args [Integer] ifa_prefixlen
639
+ # @option args [Integer] ifa_flags
640
+ # @option args [Integer] ifa_scope
641
+ # @option args [Integer] ifa_index
642
+ # @option args [String] address
643
+ # @option args [String] local
644
+ # @return [Nl::Async::Future<void>]
645
+ # @see Messages::DoDeladdrRequest
646
+ def do_deladdr(**args)
647
+ @exchange.call(:"do", Messages::DoDeladdrRequest, nil, args)
648
+ end
649
+ # Dump address information.
650
+ # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetaddrReply]
651
+ # @param [Hash] args
652
+ # @option args [Integer] ifa_family
653
+ # @option args [Integer] ifa_prefixlen
654
+ # @option args [Integer] ifa_flags
655
+ # @option args [Integer] ifa_scope
656
+ # @option args [Integer] ifa_index
657
+ # @return [Nl::Async::Stream<Messages::DumpGetaddrReply>]
658
+ # @see Messages::DumpGetaddrRequest
659
+ def dump_getaddr(**args)
660
+ @exchange.call(:"dump", Messages::DumpGetaddrRequest, Messages::DumpGetaddrReply, args)
661
+ end
662
+ # Get / dump IPv4/IPv6 multicast addresses.
663
+ # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer) -> ::Nl::Async::Future[Messages::DoGetmulticastReply]
664
+ # @param [Hash] args
665
+ # @option args [Integer] ifa_family
666
+ # @option args [Integer] ifa_prefixlen
667
+ # @option args [Integer] ifa_flags
668
+ # @option args [Integer] ifa_scope
669
+ # @option args [Integer] ifa_index
670
+ # @return [Nl::Async::Future<Messages::DoGetmulticastReply>]
671
+ # @see Messages::DoGetmulticastRequest
672
+ def do_getmulticast(**args)
673
+ @exchange.call(:"do", Messages::DoGetmulticastRequest, Messages::DoGetmulticastReply, args)
674
+ end
675
+ # Get / dump IPv4/IPv6 multicast addresses.
676
+ # @rbs (?ifa_family: ::Integer, ?ifa_prefixlen: ::Integer, ?ifa_flags: ::Integer, ?ifa_scope: ::Integer, ?ifa_index: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetmulticastReply]
677
+ # @param [Hash] args
678
+ # @option args [Integer] ifa_family
679
+ # @option args [Integer] ifa_prefixlen
680
+ # @option args [Integer] ifa_flags
681
+ # @option args [Integer] ifa_scope
682
+ # @option args [Integer] ifa_index
683
+ # @return [Nl::Async::Stream<Messages::DumpGetmulticastReply>]
684
+ # @see Messages::DumpGetmulticastRequest
685
+ def dump_getmulticast(**args)
686
+ @exchange.call(:"dump", Messages::DumpGetmulticastRequest, Messages::DumpGetmulticastReply, args)
687
+ end
688
+ end
689
+ # Returns the asynchronous operation facade for this family.
690
+ # @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
691
+ # @param [::Integer, nil] stream_capacity
692
+ # @return [AsyncOperations]
693
+ def async(stream_capacity: nil)
694
+ return @async_operations ||= build_async_facade(AsyncOperations) if stream_capacity.nil?
695
+ build_async_facade(AsyncOperations, stream_capacity:)
696
+ end
697
+ # @rbs (*(:rtnlgrp_ipv4_ifaddr | :rtnlgrp_ipv6_ifaddr) groups) -> self
698
+ # @param [Array<:rtnlgrp_ipv4_ifaddr, :rtnlgrp_ipv6_ifaddr>] groups
699
+ # @return [self]
700
+ def subscribe(*groups) = super
701
+ # @rbs (*(:rtnlgrp_ipv4_ifaddr | :rtnlgrp_ipv6_ifaddr) groups) -> self
702
+ # @param [Array<:rtnlgrp_ipv4_ifaddr, :rtnlgrp_ipv6_ifaddr>] groups
703
+ # @return [self]
704
+ def unsubscribe(*groups) = super
447
705
  end
448
706
  end; end