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,607 +1,1219 @@
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/mptcp_pm.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
  # Multipath TCP.
9
- class MptcpPm < ::Nl::Family
10
+ class MptcpPm < ::Nl::Genl::Family
10
11
  NAME = "mptcp_pm"
11
- PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Genl.new("mptcp_pm"))
12
+ VERSION = 1
13
+ # @rbs (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) -> (::Nl::Family::Session & instance)
14
+ # @rbs | [R] (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) { (instance) -> R } -> R
15
+ # @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
16
+ # @param [#call] resolver
17
+ # @param [Symbol, nil] executor
18
+ # @param [Integer, nil] notification_capacity
19
+ # @return [MptcpPm]
20
+ # @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY, &block)
21
+ # @param [#call] resolver
22
+ # @param [Symbol, nil] executor
23
+ # @param [Integer, nil] notification_capacity
24
+ # @yieldparam [MptcpPm] family
25
+ # @return [Object] the result of the block
26
+ def self.open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
27
+ super
28
+ end
29
+ # @private
30
+ MCAST_GROUPS = Ractor.make_shareable({}) #: Hash[::Symbol, ::Nl::McastGroup]
31
+ module Enums
32
+ # Netlink MPTCP event types
33
+ module EventType
34
+ # unused event
35
+ Unspec = 0
36
+ # A new MPTCP connection has been created. It is the good time to allocate memory and send ADD_ADDR if needed. Depending on the traffic-patterns it can take a long time until the MPTCP_EVENT_ESTABLISHED is sent. Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport, dport, [server-side], [flags].
37
+ Created = 1
38
+ # A MPTCP connection is established (can start new subflows). Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport, dport, [server-side], [flags].
39
+ Established = 2
40
+ # A MPTCP connection has stopped. Attribute: token.
41
+ Closed = 3
42
+ # A new address has been announced by the peer. Attributes: token, rem_id, family, daddr4 | daddr6 [, dport].
43
+ Announced = 6
44
+ # An address has been lost by the peer. Attributes: token, rem_id.
45
+ Removed = 7
46
+ # A new subflow has been established. 'error' should not be set. Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | daddr6, sport, dport, backup, if-idx [, error].
47
+ SubEstablished = 10
48
+ # A subflow has been closed. An error (copy of sk_err) could be set if an error has been detected for this subflow. Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | daddr6, sport, dport, backup, if-idx [, error].
49
+ SubClosed = 11
50
+ # The priority of a subflow has changed. 'error' should not be set. Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | daddr6, sport, dport, backup, if-idx [, error].
51
+ SubPriority = 13
52
+ # A new PM listener is created. Attributes: family, sport, saddr4 | saddr6.
53
+ ListenerCreated = 15
54
+ # A PM listener is closed. Attributes: family, sport, saddr4 | saddr6.
55
+ ListenerClosed = 16
56
+ end
57
+ end
12
58
  module Structs
13
59
  end
14
60
  module AttributeSets
15
- class Address < ::Nl::Protocols::Genl::AttributeSet
61
+ class Address < ::Nl::AttributeSet
16
62
  # Abstract class
17
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
63
+ class Attribute < ::Nl::AttributeSet::Attribute
18
64
  end
19
65
  class Family < Attribute
20
66
  TYPE = 1
21
67
  NAME = :"family"
22
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
68
+ # @private
69
+ ORDER = 0
70
+ # @private
71
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
23
72
  end
24
73
  class Id < Attribute
25
74
  TYPE = 2
26
75
  NAME = :"id"
27
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
76
+ # @private
77
+ ORDER = 1
78
+ # @private
79
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
28
80
  end
29
81
  class Addr4 < Attribute
30
82
  TYPE = 3
31
83
  NAME = :"addr4"
32
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
84
+ # @private
85
+ ORDER = 2
86
+ # @private
87
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
33
88
  end
34
89
  class Addr6 < Attribute
35
90
  TYPE = 4
36
91
  NAME = :"addr6"
37
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is not equal to length 16" unless it.bytesize == 16 })
92
+ # @private
93
+ ORDER = 3
94
+ # @private
95
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is not equal to length 16" unless it.bytesize == 16 })
38
96
  end
39
97
  class Port < Attribute
40
98
  TYPE = 5
41
99
  NAME = :"port"
42
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
100
+ # @private
101
+ ORDER = 4
102
+ # @private
103
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
43
104
  end
44
105
  class Flags < Attribute
45
106
  TYPE = 6
46
107
  NAME = :"flags"
47
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
108
+ # @private
109
+ ORDER = 5
110
+ # @private
111
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
48
112
  end
49
113
  class IfIdx < Attribute
50
114
  TYPE = 7
51
115
  NAME = :"if_idx"
52
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::S32, check: nil)
116
+ # @private
117
+ ORDER = 6
118
+ # @private
119
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::S32, check: nil)
53
120
  end
54
- # :nodoc:
121
+ # @private
55
122
  BY_NAME = Ractor.make_shareable({:"family" => Family, :"id" => Id, :"addr4" => Addr4, :"addr6" => Addr6, :"port" => Port, :"flags" => Flags, :"if_idx" => IfIdx}) #: Hash[::Symbol, Attribute]
56
- # :nodoc:
123
+ # @private
57
124
  BY_TYPE = Ractor.make_shareable({1 => Family, 2 => Id, 3 => Addr4, 4 => Addr6, 5 => Port, 6 => Flags, 7 => IfIdx}) #: Hash[::Integer, Attribute]
125
+ # @rbs return: ::Integer
126
+ # @return [Integer]
127
+ # @see Family
128
+ def family; self[:"family"]&.value; end
129
+ # @rbs return: ::Integer
130
+ # @return [Integer]
131
+ # @see Id
132
+ def id; self[:"id"]&.value; end
133
+ # @rbs return: ::Integer
134
+ # @return [Integer]
135
+ # @see Addr4
136
+ def addr4; self[:"addr4"]&.value; end
137
+ # @rbs return: ::String
138
+ # @return [String]
139
+ # @see Addr6
140
+ def addr6; self[:"addr6"]&.value; end
141
+ # @rbs return: ::Integer
142
+ # @return [Integer]
143
+ # @see Port
144
+ def port; self[:"port"]&.value; end
145
+ # @rbs return: ::Integer
146
+ # @return [Integer]
147
+ # @see Flags
148
+ def flags; self[:"flags"]&.value; end
149
+ # @rbs return: ::Integer
150
+ # @return [Integer]
151
+ # @see IfIdx
152
+ def if_idx; self[:"if_idx"]&.value; end
58
153
  class << self
59
154
  # Looks up Attribute class by name.
60
- #--
61
155
  # @rbs name: Symbol
62
156
  # @rbs return: Attribute
157
+ # @param [Symbol] name
158
+ # @return [Attribute]
63
159
  def by_name(name); BY_NAME.fetch(name); end
64
160
  # Looks up Attribute class by type value.
65
- #--
66
161
  # @rbs type: Integer
67
162
  # @rbs return: Attribute
163
+ # @param [Integer] type
164
+ # @return [Attribute]
68
165
  def by_type(type); BY_TYPE.fetch(type); end
69
166
  end
70
167
  end
71
- class SubflowAttribute < ::Nl::Protocols::Genl::AttributeSet
168
+ class SubflowAttribute < ::Nl::AttributeSet
72
169
  # Abstract class
73
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
170
+ class Attribute < ::Nl::AttributeSet::Attribute
74
171
  end
75
172
  class TokenRem < Attribute
76
173
  TYPE = 1
77
174
  NAME = :"token_rem"
78
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
175
+ # @private
176
+ ORDER = 0
177
+ # @private
178
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
79
179
  end
80
180
  class TokenLoc < Attribute
81
181
  TYPE = 2
82
182
  NAME = :"token_loc"
83
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
183
+ # @private
184
+ ORDER = 1
185
+ # @private
186
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
84
187
  end
85
188
  class RelwriteSeq < Attribute
86
189
  TYPE = 3
87
190
  NAME = :"relwrite_seq"
88
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
191
+ # @private
192
+ ORDER = 2
193
+ # @private
194
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
89
195
  end
90
196
  class MapSeq < Attribute
91
197
  TYPE = 4
92
198
  NAME = :"map_seq"
93
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
199
+ # @private
200
+ ORDER = 3
201
+ # @private
202
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
94
203
  end
95
204
  class MapSfseq < Attribute
96
205
  TYPE = 5
97
206
  NAME = :"map_sfseq"
98
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
207
+ # @private
208
+ ORDER = 4
209
+ # @private
210
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
99
211
  end
100
212
  class SsnOffset < Attribute
101
213
  TYPE = 6
102
214
  NAME = :"ssn_offset"
103
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
215
+ # @private
216
+ ORDER = 5
217
+ # @private
218
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
104
219
  end
105
220
  class MapDatalen < Attribute
106
221
  TYPE = 7
107
222
  NAME = :"map_datalen"
108
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
223
+ # @private
224
+ ORDER = 6
225
+ # @private
226
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
109
227
  end
110
228
  class Flags < Attribute
111
229
  TYPE = 8
112
230
  NAME = :"flags"
113
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
231
+ # @private
232
+ ORDER = 7
233
+ # @private
234
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
114
235
  end
115
236
  class IdRem < Attribute
116
237
  TYPE = 9
117
238
  NAME = :"id_rem"
118
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
239
+ # @private
240
+ ORDER = 8
241
+ # @private
242
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
119
243
  end
120
244
  class IdLoc < Attribute
121
245
  TYPE = 10
122
246
  NAME = :"id_loc"
123
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
247
+ # @private
248
+ ORDER = 9
249
+ # @private
250
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
124
251
  end
125
252
  class Pad < Attribute
126
253
  TYPE = 11
127
254
  NAME = :"pad"
128
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Pad.new()
255
+ # @private
256
+ ORDER = 10
257
+ # @private
258
+ DATATYPE = ::Nl::DataTypes::Pad.new()
129
259
  end
130
- # :nodoc:
260
+ # @private
131
261
  BY_NAME = Ractor.make_shareable({:"token_rem" => TokenRem, :"token_loc" => TokenLoc, :"relwrite_seq" => RelwriteSeq, :"map_seq" => MapSeq, :"map_sfseq" => MapSfseq, :"ssn_offset" => SsnOffset, :"map_datalen" => MapDatalen, :"flags" => Flags, :"id_rem" => IdRem, :"id_loc" => IdLoc, :"pad" => Pad}) #: Hash[::Symbol, Attribute]
132
- # :nodoc:
262
+ # @private
133
263
  BY_TYPE = Ractor.make_shareable({1 => TokenRem, 2 => TokenLoc, 3 => RelwriteSeq, 4 => MapSeq, 5 => MapSfseq, 6 => SsnOffset, 7 => MapDatalen, 8 => Flags, 9 => IdRem, 10 => IdLoc, 11 => Pad}) #: Hash[::Integer, Attribute]
264
+ # @rbs return: ::Integer
265
+ # @return [Integer]
266
+ # @see TokenRem
267
+ def token_rem; self[:"token_rem"]&.value; end
268
+ # @rbs return: ::Integer
269
+ # @return [Integer]
270
+ # @see TokenLoc
271
+ def token_loc; self[:"token_loc"]&.value; end
272
+ # @rbs return: ::Integer
273
+ # @return [Integer]
274
+ # @see RelwriteSeq
275
+ def relwrite_seq; self[:"relwrite_seq"]&.value; end
276
+ # @rbs return: ::Integer
277
+ # @return [Integer]
278
+ # @see MapSeq
279
+ def map_seq; self[:"map_seq"]&.value; end
280
+ # @rbs return: ::Integer
281
+ # @return [Integer]
282
+ # @see MapSfseq
283
+ def map_sfseq; self[:"map_sfseq"]&.value; end
284
+ # @rbs return: ::Integer
285
+ # @return [Integer]
286
+ # @see SsnOffset
287
+ def ssn_offset; self[:"ssn_offset"]&.value; end
288
+ # @rbs return: ::Integer
289
+ # @return [Integer]
290
+ # @see MapDatalen
291
+ def map_datalen; self[:"map_datalen"]&.value; end
292
+ # @rbs return: ::Integer
293
+ # @return [Integer]
294
+ # @see Flags
295
+ def flags; self[:"flags"]&.value; end
296
+ # @rbs return: ::Integer
297
+ # @return [Integer]
298
+ # @see IdRem
299
+ def id_rem; self[:"id_rem"]&.value; end
300
+ # @rbs return: ::Integer
301
+ # @return [Integer]
302
+ # @see IdLoc
303
+ def id_loc; self[:"id_loc"]&.value; end
134
304
  class << self
135
305
  # Looks up Attribute class by name.
136
- #--
137
306
  # @rbs name: Symbol
138
307
  # @rbs return: Attribute
308
+ # @param [Symbol] name
309
+ # @return [Attribute]
139
310
  def by_name(name); BY_NAME.fetch(name); end
140
311
  # Looks up Attribute class by type value.
141
- #--
142
312
  # @rbs type: Integer
143
313
  # @rbs return: Attribute
314
+ # @param [Integer] type
315
+ # @return [Attribute]
144
316
  def by_type(type); BY_TYPE.fetch(type); end
145
317
  end
146
318
  end
147
- class Endpoint < ::Nl::Protocols::Genl::AttributeSet
319
+ class Endpoint < ::Nl::AttributeSet
148
320
  # Abstract class
149
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
321
+ class Attribute < ::Nl::AttributeSet::Attribute
150
322
  end
151
323
  class Addr < Attribute
152
324
  TYPE = 1
153
325
  NAME = :"addr"
326
+ # @private
327
+ ORDER = 0
154
328
  end
155
- # :nodoc:
329
+ # @private
156
330
  BY_NAME = Ractor.make_shareable({:"addr" => Addr}) #: Hash[::Symbol, Attribute]
157
- # :nodoc:
331
+ # @private
158
332
  BY_TYPE = Ractor.make_shareable({1 => Addr}) #: Hash[::Integer, Attribute]
333
+ # @rbs return: AttributeSets::Address
334
+ # @return [AttributeSets::Address]
335
+ # @see Addr
336
+ def addr; self[:"addr"]&.value; end
159
337
  class << self
160
338
  # Looks up Attribute class by name.
161
- #--
162
339
  # @rbs name: Symbol
163
340
  # @rbs return: Attribute
341
+ # @param [Symbol] name
342
+ # @return [Attribute]
164
343
  def by_name(name); BY_NAME.fetch(name); end
165
344
  # Looks up Attribute class by type value.
166
- #--
167
345
  # @rbs type: Integer
168
346
  # @rbs return: Attribute
347
+ # @param [Integer] type
348
+ # @return [Attribute]
169
349
  def by_type(type); BY_TYPE.fetch(type); end
170
350
  end
171
351
  end
172
- class Attr < ::Nl::Protocols::Genl::AttributeSet
352
+ class Attr < ::Nl::AttributeSet
173
353
  # Abstract class
174
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
354
+ class Attribute < ::Nl::AttributeSet::Attribute
175
355
  end
176
356
  class Addr < Attribute
177
357
  TYPE = 1
178
358
  NAME = :"addr"
359
+ # @private
360
+ ORDER = 0
179
361
  end
180
362
  class RcvAddAddrs < Attribute
181
363
  TYPE = 2
182
364
  NAME = :"rcv_add_addrs"
183
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
365
+ # @private
366
+ ORDER = 1
367
+ # @private
368
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
184
369
  end
185
370
  class Subflows < Attribute
186
371
  TYPE = 3
187
372
  NAME = :"subflows"
188
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
373
+ # @private
374
+ ORDER = 2
375
+ # @private
376
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
189
377
  end
190
378
  class Token < Attribute
191
379
  TYPE = 4
192
380
  NAME = :"token"
193
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
381
+ # @private
382
+ ORDER = 3
383
+ # @private
384
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
194
385
  end
195
386
  class LocId < Attribute
196
387
  TYPE = 5
197
388
  NAME = :"loc_id"
198
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
389
+ # @private
390
+ ORDER = 4
391
+ # @private
392
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
199
393
  end
200
394
  class AddrRemote < Attribute
201
395
  TYPE = 6
202
396
  NAME = :"addr_remote"
397
+ # @private
398
+ ORDER = 5
203
399
  end
204
- # :nodoc:
400
+ # @private
205
401
  BY_NAME = Ractor.make_shareable({:"addr" => Addr, :"rcv_add_addrs" => RcvAddAddrs, :"subflows" => Subflows, :"token" => Token, :"loc_id" => LocId, :"addr_remote" => AddrRemote}) #: Hash[::Symbol, Attribute]
206
- # :nodoc:
402
+ # @private
207
403
  BY_TYPE = Ractor.make_shareable({1 => Addr, 2 => RcvAddAddrs, 3 => Subflows, 4 => Token, 5 => LocId, 6 => AddrRemote}) #: Hash[::Integer, Attribute]
404
+ # @rbs return: AttributeSets::Address
405
+ # @return [AttributeSets::Address]
406
+ # @see Addr
407
+ def addr; self[:"addr"]&.value; end
408
+ # @rbs return: ::Integer
409
+ # @return [Integer]
410
+ # @see RcvAddAddrs
411
+ def rcv_add_addrs; self[:"rcv_add_addrs"]&.value; end
412
+ # @rbs return: ::Integer
413
+ # @return [Integer]
414
+ # @see Subflows
415
+ def subflows; self[:"subflows"]&.value; end
416
+ # @rbs return: ::Integer
417
+ # @return [Integer]
418
+ # @see Token
419
+ def token; self[:"token"]&.value; end
420
+ # @rbs return: ::Integer
421
+ # @return [Integer]
422
+ # @see LocId
423
+ def loc_id; self[:"loc_id"]&.value; end
424
+ # @rbs return: AttributeSets::Address
425
+ # @return [AttributeSets::Address]
426
+ # @see AddrRemote
427
+ def addr_remote; self[:"addr_remote"]&.value; end
208
428
  class << self
209
429
  # Looks up Attribute class by name.
210
- #--
211
430
  # @rbs name: Symbol
212
431
  # @rbs return: Attribute
432
+ # @param [Symbol] name
433
+ # @return [Attribute]
213
434
  def by_name(name); BY_NAME.fetch(name); end
214
435
  # Looks up Attribute class by type value.
215
- #--
216
436
  # @rbs type: Integer
217
437
  # @rbs return: Attribute
438
+ # @param [Integer] type
439
+ # @return [Attribute]
218
440
  def by_type(type); BY_TYPE.fetch(type); end
219
441
  end
220
442
  end
221
- class EventAttr < ::Nl::Protocols::Genl::AttributeSet
443
+ class EventAttr < ::Nl::AttributeSet
222
444
  # Abstract class
223
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
445
+ class Attribute < ::Nl::AttributeSet::Attribute
224
446
  end
225
447
  class Token < Attribute
226
448
  TYPE = 1
227
449
  NAME = :"token"
228
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
450
+ # @private
451
+ ORDER = 0
452
+ # @private
453
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
229
454
  end
230
455
  class Family < Attribute
231
456
  TYPE = 2
232
457
  NAME = :"family"
233
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
458
+ # @private
459
+ ORDER = 1
460
+ # @private
461
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
234
462
  end
235
463
  class LocId < Attribute
236
464
  TYPE = 3
237
465
  NAME = :"loc_id"
238
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
466
+ # @private
467
+ ORDER = 2
468
+ # @private
469
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
239
470
  end
240
471
  class RemId < Attribute
241
472
  TYPE = 4
242
473
  NAME = :"rem_id"
243
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
474
+ # @private
475
+ ORDER = 3
476
+ # @private
477
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
244
478
  end
245
479
  class Saddr4 < Attribute
246
480
  TYPE = 5
247
481
  NAME = :"saddr4"
248
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
482
+ # @private
483
+ ORDER = 4
484
+ # @private
485
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
249
486
  end
250
487
  class Saddr6 < Attribute
251
488
  TYPE = 6
252
489
  NAME = :"saddr6"
253
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 16" unless it.bytesize >= 16 })
490
+ # @private
491
+ ORDER = 5
492
+ # @private
493
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 16" unless it.bytesize >= 16 })
254
494
  end
255
495
  class Daddr4 < Attribute
256
496
  TYPE = 7
257
497
  NAME = :"daddr4"
258
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
498
+ # @private
499
+ ORDER = 6
500
+ # @private
501
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
259
502
  end
260
503
  class Daddr6 < Attribute
261
504
  TYPE = 8
262
505
  NAME = :"daddr6"
263
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 16" unless it.bytesize >= 16 })
506
+ # @private
507
+ ORDER = 7
508
+ # @private
509
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 16" unless it.bytesize >= 16 })
264
510
  end
265
511
  class Sport < Attribute
266
512
  TYPE = 9
267
513
  NAME = :"sport"
268
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
514
+ # @private
515
+ ORDER = 8
516
+ # @private
517
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
269
518
  end
270
519
  class Dport < Attribute
271
520
  TYPE = 10
272
521
  NAME = :"dport"
273
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
522
+ # @private
523
+ ORDER = 9
524
+ # @private
525
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
274
526
  end
275
527
  class Backup < Attribute
276
528
  TYPE = 11
277
529
  NAME = :"backup"
278
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
530
+ # @private
531
+ ORDER = 10
532
+ # @private
533
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
279
534
  end
280
535
  class Error < Attribute
281
536
  TYPE = 12
282
537
  NAME = :"error"
283
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
538
+ # @private
539
+ ORDER = 11
540
+ # @private
541
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
284
542
  end
285
543
  class Flags < Attribute
286
544
  TYPE = 13
287
545
  NAME = :"flags"
288
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
546
+ # @private
547
+ ORDER = 12
548
+ # @private
549
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
289
550
  end
290
551
  class Timeout < Attribute
291
552
  TYPE = 14
292
553
  NAME = :"timeout"
293
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
554
+ # @private
555
+ ORDER = 13
556
+ # @private
557
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
294
558
  end
295
559
  class IfIdx < Attribute
296
560
  TYPE = 15
297
561
  NAME = :"if_idx"
298
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::S32, check: nil)
562
+ # @private
563
+ ORDER = 14
564
+ # @private
565
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::S32, check: nil)
299
566
  end
300
567
  class ResetReason < Attribute
301
568
  TYPE = 16
302
569
  NAME = :"reset_reason"
303
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
570
+ # @private
571
+ ORDER = 15
572
+ # @private
573
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
304
574
  end
305
575
  class ResetFlags < Attribute
306
576
  TYPE = 17
307
577
  NAME = :"reset_flags"
308
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
578
+ # @private
579
+ ORDER = 16
580
+ # @private
581
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
309
582
  end
583
+ # Deprecated: use 'flags'
310
584
  class ServerSide < Attribute
311
585
  TYPE = 18
312
586
  NAME = :"server_side"
313
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
587
+ # @private
588
+ ORDER = 17
589
+ # @private
590
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
314
591
  end
315
- # :nodoc:
592
+ # @private
316
593
  BY_NAME = Ractor.make_shareable({:"token" => Token, :"family" => Family, :"loc_id" => LocId, :"rem_id" => RemId, :"saddr4" => Saddr4, :"saddr6" => Saddr6, :"daddr4" => Daddr4, :"daddr6" => Daddr6, :"sport" => Sport, :"dport" => Dport, :"backup" => Backup, :"error" => Error, :"flags" => Flags, :"timeout" => Timeout, :"if_idx" => IfIdx, :"reset_reason" => ResetReason, :"reset_flags" => ResetFlags, :"server_side" => ServerSide}) #: Hash[::Symbol, Attribute]
317
- # :nodoc:
594
+ # @private
318
595
  BY_TYPE = Ractor.make_shareable({1 => Token, 2 => Family, 3 => LocId, 4 => RemId, 5 => Saddr4, 6 => Saddr6, 7 => Daddr4, 8 => Daddr6, 9 => Sport, 10 => Dport, 11 => Backup, 12 => Error, 13 => Flags, 14 => Timeout, 15 => IfIdx, 16 => ResetReason, 17 => ResetFlags, 18 => ServerSide}) #: Hash[::Integer, Attribute]
596
+ # @rbs return: ::Integer
597
+ # @return [Integer]
598
+ # @see Token
599
+ def token; self[:"token"]&.value; end
600
+ # @rbs return: ::Integer
601
+ # @return [Integer]
602
+ # @see Family
603
+ def family; self[:"family"]&.value; end
604
+ # @rbs return: ::Integer
605
+ # @return [Integer]
606
+ # @see LocId
607
+ def loc_id; self[:"loc_id"]&.value; end
608
+ # @rbs return: ::Integer
609
+ # @return [Integer]
610
+ # @see RemId
611
+ def rem_id; self[:"rem_id"]&.value; end
612
+ # @rbs return: ::Integer
613
+ # @return [Integer]
614
+ # @see Saddr4
615
+ def saddr4; self[:"saddr4"]&.value; end
616
+ # @rbs return: ::String
617
+ # @return [String]
618
+ # @see Saddr6
619
+ def saddr6; self[:"saddr6"]&.value; end
620
+ # @rbs return: ::Integer
621
+ # @return [Integer]
622
+ # @see Daddr4
623
+ def daddr4; self[:"daddr4"]&.value; end
624
+ # @rbs return: ::String
625
+ # @return [String]
626
+ # @see Daddr6
627
+ def daddr6; self[:"daddr6"]&.value; end
628
+ # @rbs return: ::Integer
629
+ # @return [Integer]
630
+ # @see Sport
631
+ def sport; self[:"sport"]&.value; end
632
+ # @rbs return: ::Integer
633
+ # @return [Integer]
634
+ # @see Dport
635
+ def dport; self[:"dport"]&.value; end
636
+ # @rbs return: ::Integer
637
+ # @return [Integer]
638
+ # @see Backup
639
+ def backup; self[:"backup"]&.value; end
640
+ # @rbs return: ::Integer
641
+ # @return [Integer]
642
+ # @see Error
643
+ def error; self[:"error"]&.value; end
644
+ # @rbs return: ::Integer
645
+ # @return [Integer]
646
+ # @see Flags
647
+ def flags; self[:"flags"]&.value; end
648
+ # @rbs return: ::Integer
649
+ # @return [Integer]
650
+ # @see Timeout
651
+ def timeout; self[:"timeout"]&.value; end
652
+ # @rbs return: ::Integer
653
+ # @return [Integer]
654
+ # @see IfIdx
655
+ def if_idx; self[:"if_idx"]&.value; end
656
+ # @rbs return: ::Integer
657
+ # @return [Integer]
658
+ # @see ResetReason
659
+ def reset_reason; self[:"reset_reason"]&.value; end
660
+ # @rbs return: ::Integer
661
+ # @return [Integer]
662
+ # @see ResetFlags
663
+ def reset_flags; self[:"reset_flags"]&.value; end
664
+ # Deprecated: use 'flags'
665
+ # @rbs return: ::Integer
666
+ # @return [Integer]
667
+ # @see ServerSide
668
+ def server_side; self[:"server_side"]&.value; end
319
669
  class << self
320
670
  # Looks up Attribute class by name.
321
- #--
322
671
  # @rbs name: Symbol
323
672
  # @rbs return: Attribute
673
+ # @param [Symbol] name
674
+ # @return [Attribute]
324
675
  def by_name(name); BY_NAME.fetch(name); end
325
676
  # Looks up Attribute class by type value.
326
- #--
327
677
  # @rbs type: Integer
328
678
  # @rbs return: Attribute
679
+ # @param [Integer] type
680
+ # @return [Attribute]
329
681
  def by_type(type); BY_TYPE.fetch(type); end
330
682
  end
331
683
  end
332
- Endpoint::Addr::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(Address)
333
- Attr::Addr::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(Address)
334
- Attr::AddrRemote::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(Address)
684
+ # @private
685
+ Endpoint::Addr::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::Address, selector_bindings: Ractor.make_shareable([]))
686
+ # @private
687
+ Attr::Addr::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::Address, selector_bindings: Ractor.make_shareable([]))
688
+ # @private
689
+ Attr::AddrRemote::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::Address, selector_bindings: Ractor.make_shareable([]))
335
690
  end
336
691
  module Messages
337
692
  # Add endpoint
338
- class DoAddAddrRequest < ::Nl::Protocols::Genl::Message
693
+ #
694
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
695
+ class DoAddAddrRequest < ::Nl::Genl::Message
339
696
  TYPE = 1
340
697
  FIXED_HEADER = nil
341
698
  ATTRIBUTE_SET = AttributeSets::Endpoint
342
699
  ATTRIBUTES = Ractor.make_shareable(%i[addr])
343
- # Gets the value of `addr` attribute in the message.
344
- #--
345
700
  # @rbs return: AttributeSets::Address
701
+ # @return [AttributeSets::Address]
702
+ # @see AttributeSets::Endpoint::Addr
346
703
  def addr; attributes[:"addr"]&.value; end
347
704
  end
348
705
  # Delete endpoint
349
- class DoDelAddrRequest < ::Nl::Protocols::Genl::Message
706
+ #
707
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
708
+ class DoDelAddrRequest < ::Nl::Genl::Message
350
709
  TYPE = 2
351
710
  FIXED_HEADER = nil
352
711
  ATTRIBUTE_SET = AttributeSets::Endpoint
353
712
  ATTRIBUTES = Ractor.make_shareable(%i[addr])
354
- # Gets the value of `addr` attribute in the message.
355
- #--
356
713
  # @rbs return: AttributeSets::Address
714
+ # @return [AttributeSets::Address]
715
+ # @see AttributeSets::Endpoint::Addr
357
716
  def addr; attributes[:"addr"]&.value; end
358
717
  end
359
718
  # Get endpoint information
360
- class DoGetAddrRequest < ::Nl::Protocols::Genl::Message
719
+ class DoGetAddrRequest < ::Nl::Genl::Message
361
720
  TYPE = 3
362
721
  FIXED_HEADER = nil
363
722
  ATTRIBUTE_SET = AttributeSets::Attr
364
723
  ATTRIBUTES = Ractor.make_shareable(%i[addr token])
365
- # Gets the value of `addr` attribute in the message.
366
- #--
367
724
  # @rbs return: AttributeSets::Address
725
+ # @return [AttributeSets::Address]
726
+ # @see AttributeSets::Attr::Addr
368
727
  def addr; attributes[:"addr"]&.value; end
369
- # Gets the value of `token` attribute in the message.
370
- #--
371
728
  # @rbs return: ::Integer
729
+ # @return [Integer]
730
+ # @see AttributeSets::Attr::Token
372
731
  def token; attributes[:"token"]&.value; end
373
732
  end
374
733
  # Get endpoint information
375
- class DoGetAddrReply < ::Nl::Protocols::Genl::Message
734
+ class DoGetAddrReply < ::Nl::Genl::Message
376
735
  TYPE = 3
377
736
  FIXED_HEADER = nil
378
737
  ATTRIBUTE_SET = AttributeSets::Attr
379
738
  ATTRIBUTES = Ractor.make_shareable(%i[addr])
380
- # Gets the value of `addr` attribute in the message.
381
- #--
382
739
  # @rbs return: AttributeSets::Address
740
+ # @return [AttributeSets::Address]
741
+ # @see AttributeSets::Attr::Addr
383
742
  def addr; attributes[:"addr"]&.value; end
384
743
  end
385
744
  # Get endpoint information
386
- class DumpGetAddrReply < ::Nl::Protocols::Genl::Message
745
+ class DumpGetAddrRequest < ::Nl::Genl::Message
746
+ TYPE = 3
747
+ FIXED_HEADER = nil
748
+ ATTRIBUTE_SET = AttributeSets::Attr
749
+ ATTRIBUTES = Ractor.make_shareable(%i[])
750
+ end
751
+ # Get endpoint information
752
+ class DumpGetAddrReply < ::Nl::Genl::Message
387
753
  TYPE = 3
388
754
  FIXED_HEADER = nil
389
755
  ATTRIBUTE_SET = AttributeSets::Attr
390
756
  ATTRIBUTES = Ractor.make_shareable(%i[addr])
391
- # Gets the value of `addr` attribute in the message.
392
- #--
393
757
  # @rbs return: AttributeSets::Address
758
+ # @return [AttributeSets::Address]
759
+ # @see AttributeSets::Attr::Addr
394
760
  def addr; attributes[:"addr"]&.value; end
395
761
  end
396
762
  # Flush addresses
397
- class DoFlushAddrsRequest < ::Nl::Protocols::Genl::Message
763
+ #
764
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
765
+ class DoFlushAddrsRequest < ::Nl::Genl::Message
398
766
  TYPE = 4
399
767
  FIXED_HEADER = nil
400
768
  ATTRIBUTE_SET = AttributeSets::Endpoint
401
769
  ATTRIBUTES = Ractor.make_shareable(%i[addr])
402
- # Gets the value of `addr` attribute in the message.
403
- #--
404
770
  # @rbs return: AttributeSets::Address
771
+ # @return [AttributeSets::Address]
772
+ # @see AttributeSets::Endpoint::Addr
405
773
  def addr; attributes[:"addr"]&.value; end
406
774
  end
407
775
  # Set protocol limits
408
- class DoSetLimitsRequest < ::Nl::Protocols::Genl::Message
776
+ #
777
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
778
+ class DoSetLimitsRequest < ::Nl::Genl::Message
409
779
  TYPE = 5
410
780
  FIXED_HEADER = nil
411
781
  ATTRIBUTE_SET = AttributeSets::Attr
412
782
  ATTRIBUTES = Ractor.make_shareable(%i[rcv_add_addrs subflows])
413
- # Gets the value of `rcv-add-addrs` attribute in the message.
414
- #--
415
783
  # @rbs return: ::Integer
784
+ # @return [Integer]
785
+ # @see AttributeSets::Attr::RcvAddAddrs
416
786
  def rcv_add_addrs; attributes[:"rcv_add_addrs"]&.value; end
417
- # Gets the value of `subflows` attribute in the message.
418
- #--
419
787
  # @rbs return: ::Integer
788
+ # @return [Integer]
789
+ # @see AttributeSets::Attr::Subflows
420
790
  def subflows; attributes[:"subflows"]&.value; end
421
791
  end
422
792
  # Get protocol limits
423
- class DoGetLimitsRequest < ::Nl::Protocols::Genl::Message
793
+ class DoGetLimitsRequest < ::Nl::Genl::Message
424
794
  TYPE = 6
425
795
  FIXED_HEADER = nil
426
796
  ATTRIBUTE_SET = AttributeSets::Attr
427
797
  ATTRIBUTES = Ractor.make_shareable(%i[rcv_add_addrs subflows])
428
- # Gets the value of `rcv-add-addrs` attribute in the message.
429
- #--
430
798
  # @rbs return: ::Integer
799
+ # @return [Integer]
800
+ # @see AttributeSets::Attr::RcvAddAddrs
431
801
  def rcv_add_addrs; attributes[:"rcv_add_addrs"]&.value; end
432
- # Gets the value of `subflows` attribute in the message.
433
- #--
434
802
  # @rbs return: ::Integer
803
+ # @return [Integer]
804
+ # @see AttributeSets::Attr::Subflows
435
805
  def subflows; attributes[:"subflows"]&.value; end
436
806
  end
437
807
  # Get protocol limits
438
- class DoGetLimitsReply < ::Nl::Protocols::Genl::Message
808
+ class DoGetLimitsReply < ::Nl::Genl::Message
439
809
  TYPE = 6
440
810
  FIXED_HEADER = nil
441
811
  ATTRIBUTE_SET = AttributeSets::Attr
442
812
  ATTRIBUTES = Ractor.make_shareable(%i[rcv_add_addrs subflows])
443
- # Gets the value of `rcv-add-addrs` attribute in the message.
444
- #--
445
813
  # @rbs return: ::Integer
814
+ # @return [Integer]
815
+ # @see AttributeSets::Attr::RcvAddAddrs
446
816
  def rcv_add_addrs; attributes[:"rcv_add_addrs"]&.value; end
447
- # Gets the value of `subflows` attribute in the message.
448
- #--
449
817
  # @rbs return: ::Integer
818
+ # @return [Integer]
819
+ # @see AttributeSets::Attr::Subflows
450
820
  def subflows; attributes[:"subflows"]&.value; end
451
821
  end
452
822
  # Change endpoint flags
453
- class DoSetFlagsRequest < ::Nl::Protocols::Genl::Message
823
+ #
824
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
825
+ class DoSetFlagsRequest < ::Nl::Genl::Message
454
826
  TYPE = 7
455
827
  FIXED_HEADER = nil
456
828
  ATTRIBUTE_SET = AttributeSets::Attr
457
829
  ATTRIBUTES = Ractor.make_shareable(%i[addr token addr_remote])
458
- # Gets the value of `addr` attribute in the message.
459
- #--
460
830
  # @rbs return: AttributeSets::Address
831
+ # @return [AttributeSets::Address]
832
+ # @see AttributeSets::Attr::Addr
461
833
  def addr; attributes[:"addr"]&.value; end
462
- # Gets the value of `token` attribute in the message.
463
- #--
464
834
  # @rbs return: ::Integer
835
+ # @return [Integer]
836
+ # @see AttributeSets::Attr::Token
465
837
  def token; attributes[:"token"]&.value; end
466
- # Gets the value of `addr-remote` attribute in the message.
467
- #--
468
838
  # @rbs return: AttributeSets::Address
839
+ # @return [AttributeSets::Address]
840
+ # @see AttributeSets::Attr::AddrRemote
469
841
  def addr_remote; attributes[:"addr_remote"]&.value; end
470
842
  end
471
843
  # Announce new address
472
- class DoAnnounceRequest < ::Nl::Protocols::Genl::Message
844
+ #
845
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
846
+ class DoAnnounceRequest < ::Nl::Genl::Message
473
847
  TYPE = 8
474
848
  FIXED_HEADER = nil
475
849
  ATTRIBUTE_SET = AttributeSets::Attr
476
850
  ATTRIBUTES = Ractor.make_shareable(%i[addr token])
477
- # Gets the value of `addr` attribute in the message.
478
- #--
479
851
  # @rbs return: AttributeSets::Address
852
+ # @return [AttributeSets::Address]
853
+ # @see AttributeSets::Attr::Addr
480
854
  def addr; attributes[:"addr"]&.value; end
481
- # Gets the value of `token` attribute in the message.
482
- #--
483
855
  # @rbs return: ::Integer
856
+ # @return [Integer]
857
+ # @see AttributeSets::Attr::Token
484
858
  def token; attributes[:"token"]&.value; end
485
859
  end
486
860
  # Announce removal
487
- class DoRemoveRequest < ::Nl::Protocols::Genl::Message
861
+ #
862
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
863
+ class DoRemoveRequest < ::Nl::Genl::Message
488
864
  TYPE = 9
489
865
  FIXED_HEADER = nil
490
866
  ATTRIBUTE_SET = AttributeSets::Attr
491
867
  ATTRIBUTES = Ractor.make_shareable(%i[token loc_id])
492
- # Gets the value of `token` attribute in the message.
493
- #--
494
868
  # @rbs return: ::Integer
869
+ # @return [Integer]
870
+ # @see AttributeSets::Attr::Token
495
871
  def token; attributes[:"token"]&.value; end
496
- # Gets the value of `loc-id` attribute in the message.
497
- #--
498
872
  # @rbs return: ::Integer
873
+ # @return [Integer]
874
+ # @see AttributeSets::Attr::LocId
499
875
  def loc_id; attributes[:"loc_id"]&.value; end
500
876
  end
501
877
  # Create subflow
502
- class DoSubflowCreateRequest < ::Nl::Protocols::Genl::Message
878
+ #
879
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
880
+ class DoSubflowCreateRequest < ::Nl::Genl::Message
503
881
  TYPE = 10
504
882
  FIXED_HEADER = nil
505
883
  ATTRIBUTE_SET = AttributeSets::Attr
506
884
  ATTRIBUTES = Ractor.make_shareable(%i[addr token addr_remote])
507
- # Gets the value of `addr` attribute in the message.
508
- #--
509
885
  # @rbs return: AttributeSets::Address
886
+ # @return [AttributeSets::Address]
887
+ # @see AttributeSets::Attr::Addr
510
888
  def addr; attributes[:"addr"]&.value; end
511
- # Gets the value of `token` attribute in the message.
512
- #--
513
889
  # @rbs return: ::Integer
890
+ # @return [Integer]
891
+ # @see AttributeSets::Attr::Token
514
892
  def token; attributes[:"token"]&.value; end
515
- # Gets the value of `addr-remote` attribute in the message.
516
- #--
517
893
  # @rbs return: AttributeSets::Address
894
+ # @return [AttributeSets::Address]
895
+ # @see AttributeSets::Attr::AddrRemote
518
896
  def addr_remote; attributes[:"addr_remote"]&.value; end
519
897
  end
520
898
  # Destroy subflow
521
- class DoSubflowDestroyRequest < ::Nl::Protocols::Genl::Message
899
+ #
900
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
901
+ class DoSubflowDestroyRequest < ::Nl::Genl::Message
522
902
  TYPE = 11
523
903
  FIXED_HEADER = nil
524
904
  ATTRIBUTE_SET = AttributeSets::Attr
525
905
  ATTRIBUTES = Ractor.make_shareable(%i[addr token addr_remote])
526
- # Gets the value of `addr` attribute in the message.
527
- #--
528
906
  # @rbs return: AttributeSets::Address
907
+ # @return [AttributeSets::Address]
908
+ # @see AttributeSets::Attr::Addr
529
909
  def addr; attributes[:"addr"]&.value; end
530
- # Gets the value of `token` attribute in the message.
531
- #--
532
910
  # @rbs return: ::Integer
911
+ # @return [Integer]
912
+ # @see AttributeSets::Attr::Token
533
913
  def token; attributes[:"token"]&.value; end
534
- # Gets the value of `addr-remote` attribute in the message.
535
- #--
536
914
  # @rbs return: AttributeSets::Address
915
+ # @return [AttributeSets::Address]
916
+ # @see AttributeSets::Attr::AddrRemote
537
917
  def addr_remote; attributes[:"addr_remote"]&.value; end
538
918
  end
539
919
  end
920
+ module Notifications
921
+ end
922
+ # @private
923
+ NOTIFICATIONS = Ractor.make_shareable({}) #: Hash[::Integer, ::Class]
540
924
  # Add endpoint
541
- #--
542
- # @rbs (?addr: AttributeSets::Address) -> void
925
+ #
926
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
927
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped])) -> void
928
+ # @param [Hash] args
929
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
930
+ # @return [void]
931
+ # @see Messages::DoAddAddrRequest
543
932
  def do_add_addr(**args)
544
933
  exchange_message(:"do", Messages::DoAddAddrRequest, nil, args)
545
934
  end
546
935
  # Delete endpoint
547
- #--
548
- # @rbs (?addr: AttributeSets::Address) -> void
936
+ #
937
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
938
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped])) -> void
939
+ # @param [Hash] args
940
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
941
+ # @return [void]
942
+ # @see Messages::DoDelAddrRequest
549
943
  def do_del_addr(**args)
550
944
  exchange_message(:"do", Messages::DoDelAddrRequest, nil, args)
551
945
  end
552
946
  # Get endpoint information
553
- #--
554
- # @rbs (?addr: AttributeSets::Address, ?token: ::Integer) -> Messages::DoGetAddrReply
947
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped]), ?token: ::Integer) -> Messages::DoGetAddrReply
948
+ # @param [Hash] args
949
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
950
+ # @option args [Integer] token
951
+ # @return [Messages::DoGetAddrReply]
952
+ # @see Messages::DoGetAddrRequest
555
953
  def do_get_addr(**args)
556
954
  exchange_message(:"do", Messages::DoGetAddrRequest, Messages::DoGetAddrReply, args)
557
955
  end
956
+ # Get endpoint information
957
+ # @rbs () -> Array[Messages::DumpGetAddrReply]
958
+ # | () { (Messages::DumpGetAddrReply) -> void } -> void
959
+ # @overload dump_get_addr(**args)
960
+ # Returns an array when no block is given.
961
+ # @param [Hash] args
962
+ # @return [Array<Messages::DumpGetAddrReply>]
963
+ # @overload dump_get_addr(**args, &block)
964
+ # Yields each reply when a block is given.
965
+ # @param [Hash] args
966
+ # @yieldparam [Messages::DumpGetAddrReply] reply
967
+ # @return [void]
968
+ # @see Messages::DumpGetAddrRequest
969
+ def dump_get_addr(**args, &block)
970
+ exchange_message(:"dump", Messages::DumpGetAddrRequest, Messages::DumpGetAddrReply, args, &block)
971
+ end
558
972
  # Flush addresses
559
- #--
560
- # @rbs (?addr: AttributeSets::Address) -> void
973
+ #
974
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
975
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped])) -> void
976
+ # @param [Hash] args
977
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
978
+ # @return [void]
979
+ # @see Messages::DoFlushAddrsRequest
561
980
  def do_flush_addrs(**args)
562
981
  exchange_message(:"do", Messages::DoFlushAddrsRequest, nil, args)
563
982
  end
564
983
  # Set protocol limits
565
- #--
984
+ #
985
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
566
986
  # @rbs (?rcv_add_addrs: ::Integer, ?subflows: ::Integer) -> void
987
+ # @param [Hash] args
988
+ # @option args [Integer] rcv_add_addrs
989
+ # @option args [Integer] subflows
990
+ # @return [void]
991
+ # @see Messages::DoSetLimitsRequest
567
992
  def do_set_limits(**args)
568
993
  exchange_message(:"do", Messages::DoSetLimitsRequest, nil, args)
569
994
  end
570
995
  # Get protocol limits
571
- #--
572
996
  # @rbs (?rcv_add_addrs: ::Integer, ?subflows: ::Integer) -> Messages::DoGetLimitsReply
997
+ # @param [Hash] args
998
+ # @option args [Integer] rcv_add_addrs
999
+ # @option args [Integer] subflows
1000
+ # @return [Messages::DoGetLimitsReply]
1001
+ # @see Messages::DoGetLimitsRequest
573
1002
  def do_get_limits(**args)
574
1003
  exchange_message(:"do", Messages::DoGetLimitsRequest, Messages::DoGetLimitsReply, args)
575
1004
  end
576
1005
  # Change endpoint flags
577
- #--
578
- # @rbs (?addr: AttributeSets::Address, ?token: ::Integer, ?addr_remote: AttributeSets::Address) -> void
1006
+ #
1007
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1008
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped]), ?token: ::Integer, ?addr_remote: (AttributeSets::Address | ::Hash[::Symbol, untyped])) -> void
1009
+ # @param [Hash] args
1010
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
1011
+ # @option args [Integer] token
1012
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr_remote
1013
+ # @return [void]
1014
+ # @see Messages::DoSetFlagsRequest
579
1015
  def do_set_flags(**args)
580
1016
  exchange_message(:"do", Messages::DoSetFlagsRequest, nil, args)
581
1017
  end
582
1018
  # Announce new address
583
- #--
584
- # @rbs (?addr: AttributeSets::Address, ?token: ::Integer) -> void
1019
+ #
1020
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1021
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped]), ?token: ::Integer) -> void
1022
+ # @param [Hash] args
1023
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
1024
+ # @option args [Integer] token
1025
+ # @return [void]
1026
+ # @see Messages::DoAnnounceRequest
585
1027
  def do_announce(**args)
586
1028
  exchange_message(:"do", Messages::DoAnnounceRequest, nil, args)
587
1029
  end
588
1030
  # Announce removal
589
- #--
1031
+ #
1032
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
590
1033
  # @rbs (?token: ::Integer, ?loc_id: ::Integer) -> void
1034
+ # @param [Hash] args
1035
+ # @option args [Integer] token
1036
+ # @option args [Integer] loc_id
1037
+ # @return [void]
1038
+ # @see Messages::DoRemoveRequest
591
1039
  def do_remove(**args)
592
1040
  exchange_message(:"do", Messages::DoRemoveRequest, nil, args)
593
1041
  end
594
1042
  # Create subflow
595
- #--
596
- # @rbs (?addr: AttributeSets::Address, ?token: ::Integer, ?addr_remote: AttributeSets::Address) -> void
1043
+ #
1044
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1045
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped]), ?token: ::Integer, ?addr_remote: (AttributeSets::Address | ::Hash[::Symbol, untyped])) -> void
1046
+ # @param [Hash] args
1047
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
1048
+ # @option args [Integer] token
1049
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr_remote
1050
+ # @return [void]
1051
+ # @see Messages::DoSubflowCreateRequest
597
1052
  def do_subflow_create(**args)
598
1053
  exchange_message(:"do", Messages::DoSubflowCreateRequest, nil, args)
599
1054
  end
600
1055
  # Destroy subflow
601
- #--
602
- # @rbs (?addr: AttributeSets::Address, ?token: ::Integer, ?addr_remote: AttributeSets::Address) -> void
1056
+ #
1057
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1058
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped]), ?token: ::Integer, ?addr_remote: (AttributeSets::Address | ::Hash[::Symbol, untyped])) -> void
1059
+ # @param [Hash] args
1060
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
1061
+ # @option args [Integer] token
1062
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr_remote
1063
+ # @return [void]
1064
+ # @see Messages::DoSubflowDestroyRequest
603
1065
  def do_subflow_destroy(**args)
604
1066
  exchange_message(:"do", Messages::DoSubflowDestroyRequest, nil, args)
605
1067
  end
1068
+ class AsyncOperations
1069
+ # @private
1070
+ def initialize(&exchange)
1071
+ @exchange = exchange
1072
+ end
1073
+ # Add endpoint
1074
+ #
1075
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1076
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped])) -> ::Nl::Async::Future[void]
1077
+ # @param [Hash] args
1078
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
1079
+ # @return [Nl::Async::Future<void>]
1080
+ # @see Messages::DoAddAddrRequest
1081
+ def do_add_addr(**args)
1082
+ @exchange.call(:"do", Messages::DoAddAddrRequest, nil, args)
1083
+ end
1084
+ # Delete endpoint
1085
+ #
1086
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1087
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped])) -> ::Nl::Async::Future[void]
1088
+ # @param [Hash] args
1089
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
1090
+ # @return [Nl::Async::Future<void>]
1091
+ # @see Messages::DoDelAddrRequest
1092
+ def do_del_addr(**args)
1093
+ @exchange.call(:"do", Messages::DoDelAddrRequest, nil, args)
1094
+ end
1095
+ # Get endpoint information
1096
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped]), ?token: ::Integer) -> ::Nl::Async::Future[Messages::DoGetAddrReply]
1097
+ # @param [Hash] args
1098
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
1099
+ # @option args [Integer] token
1100
+ # @return [Nl::Async::Future<Messages::DoGetAddrReply>]
1101
+ # @see Messages::DoGetAddrRequest
1102
+ def do_get_addr(**args)
1103
+ @exchange.call(:"do", Messages::DoGetAddrRequest, Messages::DoGetAddrReply, args)
1104
+ end
1105
+ # Get endpoint information
1106
+ # @rbs () -> ::Nl::Async::Stream[Messages::DumpGetAddrReply]
1107
+ # @param [Hash] args
1108
+ # @return [Nl::Async::Stream<Messages::DumpGetAddrReply>]
1109
+ # @see Messages::DumpGetAddrRequest
1110
+ def dump_get_addr(**args)
1111
+ @exchange.call(:"dump", Messages::DumpGetAddrRequest, Messages::DumpGetAddrReply, args)
1112
+ end
1113
+ # Flush addresses
1114
+ #
1115
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1116
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped])) -> ::Nl::Async::Future[void]
1117
+ # @param [Hash] args
1118
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
1119
+ # @return [Nl::Async::Future<void>]
1120
+ # @see Messages::DoFlushAddrsRequest
1121
+ def do_flush_addrs(**args)
1122
+ @exchange.call(:"do", Messages::DoFlushAddrsRequest, nil, args)
1123
+ end
1124
+ # Set protocol limits
1125
+ #
1126
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1127
+ # @rbs (?rcv_add_addrs: ::Integer, ?subflows: ::Integer) -> ::Nl::Async::Future[void]
1128
+ # @param [Hash] args
1129
+ # @option args [Integer] rcv_add_addrs
1130
+ # @option args [Integer] subflows
1131
+ # @return [Nl::Async::Future<void>]
1132
+ # @see Messages::DoSetLimitsRequest
1133
+ def do_set_limits(**args)
1134
+ @exchange.call(:"do", Messages::DoSetLimitsRequest, nil, args)
1135
+ end
1136
+ # Get protocol limits
1137
+ # @rbs (?rcv_add_addrs: ::Integer, ?subflows: ::Integer) -> ::Nl::Async::Future[Messages::DoGetLimitsReply]
1138
+ # @param [Hash] args
1139
+ # @option args [Integer] rcv_add_addrs
1140
+ # @option args [Integer] subflows
1141
+ # @return [Nl::Async::Future<Messages::DoGetLimitsReply>]
1142
+ # @see Messages::DoGetLimitsRequest
1143
+ def do_get_limits(**args)
1144
+ @exchange.call(:"do", Messages::DoGetLimitsRequest, Messages::DoGetLimitsReply, args)
1145
+ end
1146
+ # Change endpoint flags
1147
+ #
1148
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1149
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped]), ?token: ::Integer, ?addr_remote: (AttributeSets::Address | ::Hash[::Symbol, untyped])) -> ::Nl::Async::Future[void]
1150
+ # @param [Hash] args
1151
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
1152
+ # @option args [Integer] token
1153
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr_remote
1154
+ # @return [Nl::Async::Future<void>]
1155
+ # @see Messages::DoSetFlagsRequest
1156
+ def do_set_flags(**args)
1157
+ @exchange.call(:"do", Messages::DoSetFlagsRequest, nil, args)
1158
+ end
1159
+ # Announce new address
1160
+ #
1161
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1162
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped]), ?token: ::Integer) -> ::Nl::Async::Future[void]
1163
+ # @param [Hash] args
1164
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
1165
+ # @option args [Integer] token
1166
+ # @return [Nl::Async::Future<void>]
1167
+ # @see Messages::DoAnnounceRequest
1168
+ def do_announce(**args)
1169
+ @exchange.call(:"do", Messages::DoAnnounceRequest, nil, args)
1170
+ end
1171
+ # Announce removal
1172
+ #
1173
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1174
+ # @rbs (?token: ::Integer, ?loc_id: ::Integer) -> ::Nl::Async::Future[void]
1175
+ # @param [Hash] args
1176
+ # @option args [Integer] token
1177
+ # @option args [Integer] loc_id
1178
+ # @return [Nl::Async::Future<void>]
1179
+ # @see Messages::DoRemoveRequest
1180
+ def do_remove(**args)
1181
+ @exchange.call(:"do", Messages::DoRemoveRequest, nil, args)
1182
+ end
1183
+ # Create subflow
1184
+ #
1185
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1186
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped]), ?token: ::Integer, ?addr_remote: (AttributeSets::Address | ::Hash[::Symbol, untyped])) -> ::Nl::Async::Future[void]
1187
+ # @param [Hash] args
1188
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
1189
+ # @option args [Integer] token
1190
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr_remote
1191
+ # @return [Nl::Async::Future<void>]
1192
+ # @see Messages::DoSubflowCreateRequest
1193
+ def do_subflow_create(**args)
1194
+ @exchange.call(:"do", Messages::DoSubflowCreateRequest, nil, args)
1195
+ end
1196
+ # Destroy subflow
1197
+ #
1198
+ # Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
1199
+ # @rbs (?addr: (AttributeSets::Address | ::Hash[::Symbol, untyped]), ?token: ::Integer, ?addr_remote: (AttributeSets::Address | ::Hash[::Symbol, untyped])) -> ::Nl::Async::Future[void]
1200
+ # @param [Hash] args
1201
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr
1202
+ # @option args [Integer] token
1203
+ # @option args [AttributeSets::Address, Hash<Symbol, Object>] addr_remote
1204
+ # @return [Nl::Async::Future<void>]
1205
+ # @see Messages::DoSubflowDestroyRequest
1206
+ def do_subflow_destroy(**args)
1207
+ @exchange.call(:"do", Messages::DoSubflowDestroyRequest, nil, args)
1208
+ end
1209
+ end
1210
+ # Returns the asynchronous operation facade for this family.
1211
+ # @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
1212
+ # @param [::Integer, nil] stream_capacity
1213
+ # @return [AsyncOperations]
1214
+ def async(stream_capacity: nil)
1215
+ return @async_operations ||= build_async_facade(AsyncOperations) if stream_capacity.nil?
1216
+ build_async_facade(AsyncOperations, stream_capacity:)
1217
+ end
606
1218
  end
607
1219
  end; end