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,1058 +1,2040 @@
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/nfsd.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
  # NFSD configuration over generic netlink.
9
- class Nfsd < ::Nl::Family
10
+ class Nfsd < ::Nl::Genl::Family
10
11
  NAME = "nfsd"
11
- PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Genl.new("nfsd"))
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 [Nfsd]
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 [Nfsd] 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({:"none" => ::Nl::McastGroup.new("none", nil), :"exportd" => ::Nl::McastGroup.new("exportd", nil)}) #: Hash[::Symbol, ::Nl::McastGroup]
31
+ module Flags
32
+ module CacheType
33
+ SvcExport = 1
34
+ Expkey = 2
35
+ end
36
+ # These flags are ordered to match the NFSEXP_* flags in include/linux/nfsd/export.h
37
+ module ExportFlags
38
+ Readonly = 1
39
+ InsecurePort = 2
40
+ Rootsquash = 4
41
+ Allsquash = 8
42
+ Async = 16
43
+ GatheredWrites = 32
44
+ Noreaddirplus = 64
45
+ SecurityLabel = 128
46
+ SignFh = 256
47
+ Nohide = 512
48
+ Nosubtreecheck = 1024
49
+ Noauthnlm = 2048
50
+ Msnfs = 4096
51
+ Fsid = 8192
52
+ Crossmount = 16384
53
+ Noacl = 32768
54
+ V4root = 65536
55
+ Pnfs = 131072
56
+ end
57
+ # These flags are ordered to match the NFSEXP_XPRTSEC_* flags in include/linux/nfsd/export.h
58
+ module XprtsecMode
59
+ None = 1
60
+ Tls = 2
61
+ Mtls = 4
62
+ end
63
+ end
12
64
  module Structs
13
65
  end
14
66
  module AttributeSets
15
- class CacheNotify < ::Nl::Protocols::Genl::AttributeSet
67
+ class CacheNotify < ::Nl::AttributeSet
16
68
  # Abstract class
17
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
69
+ class Attribute < ::Nl::AttributeSet::Attribute
18
70
  end
71
+ # Known flags are defined in {Flags::CacheType}.
19
72
  class CacheType < Attribute
20
73
  TYPE = 1
21
74
  NAME = :"cache_type"
22
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
75
+ # @private
76
+ ORDER = 0
77
+ # @private
78
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
23
79
  end
24
- # :nodoc:
80
+ # @private
25
81
  BY_NAME = Ractor.make_shareable({:"cache_type" => CacheType}) #: Hash[::Symbol, Attribute]
26
- # :nodoc:
82
+ # @private
27
83
  BY_TYPE = Ractor.make_shareable({1 => CacheType}) #: Hash[::Integer, Attribute]
84
+ # Known flags are defined in {Flags::CacheType}.
85
+ # @rbs return: ::Integer
86
+ # @return [Integer]
87
+ # @see CacheType
88
+ def cache_type; self[:"cache_type"]&.value; end
28
89
  class << self
29
90
  # Looks up Attribute class by name.
30
- #--
31
91
  # @rbs name: Symbol
32
92
  # @rbs return: Attribute
93
+ # @param [Symbol] name
94
+ # @return [Attribute]
33
95
  def by_name(name); BY_NAME.fetch(name); end
34
96
  # Looks up Attribute class by type value.
35
- #--
36
97
  # @rbs type: Integer
37
98
  # @rbs return: Attribute
99
+ # @param [Integer] type
100
+ # @return [Attribute]
38
101
  def by_type(type); BY_TYPE.fetch(type); end
39
102
  end
40
103
  end
41
- class RpcStatus < ::Nl::Protocols::Genl::AttributeSet
104
+ class RpcStatus < ::Nl::AttributeSet
42
105
  # Abstract class
43
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
106
+ class Attribute < ::Nl::AttributeSet::Attribute
44
107
  end
45
108
  class Xid < Attribute
46
109
  TYPE = 1
47
110
  NAME = :"xid"
48
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
111
+ # @private
112
+ ORDER = 0
113
+ # @private
114
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
49
115
  end
50
116
  class Flags < Attribute
51
117
  TYPE = 2
52
118
  NAME = :"flags"
53
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
119
+ # @private
120
+ ORDER = 1
121
+ # @private
122
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
54
123
  end
55
124
  class Prog < Attribute
56
125
  TYPE = 3
57
126
  NAME = :"prog"
58
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
127
+ # @private
128
+ ORDER = 2
129
+ # @private
130
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
59
131
  end
60
132
  class Version < Attribute
61
133
  TYPE = 4
62
134
  NAME = :"version"
63
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
135
+ # @private
136
+ ORDER = 3
137
+ # @private
138
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
64
139
  end
65
140
  class Proc < Attribute
66
141
  TYPE = 5
67
142
  NAME = :"proc"
68
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
143
+ # @private
144
+ ORDER = 4
145
+ # @private
146
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
69
147
  end
70
148
  class ServiceTime < Attribute
71
149
  TYPE = 6
72
150
  NAME = :"service_time"
73
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::S64, check: nil)
151
+ # @private
152
+ ORDER = 5
153
+ # @private
154
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::S64, check: nil)
74
155
  end
75
156
  class Pad < Attribute
76
157
  TYPE = 7
77
158
  NAME = :"pad"
78
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Pad.new()
159
+ # @private
160
+ ORDER = 6
161
+ # @private
162
+ DATATYPE = ::Nl::DataTypes::Pad.new()
79
163
  end
80
164
  class Saddr4 < Attribute
81
165
  TYPE = 8
82
166
  NAME = :"saddr4"
83
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
167
+ # @private
168
+ ORDER = 7
169
+ # @private
170
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
84
171
  end
85
172
  class Daddr4 < Attribute
86
173
  TYPE = 9
87
174
  NAME = :"daddr4"
88
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
175
+ # @private
176
+ ORDER = 8
177
+ # @private
178
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
89
179
  end
90
180
  class Saddr6 < Attribute
91
181
  TYPE = 10
92
182
  NAME = :"saddr6"
93
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
183
+ # @private
184
+ ORDER = 9
185
+ # @private
186
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: nil)
94
187
  end
95
188
  class Daddr6 < Attribute
96
189
  TYPE = 11
97
190
  NAME = :"daddr6"
98
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
191
+ # @private
192
+ ORDER = 10
193
+ # @private
194
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: nil)
99
195
  end
100
196
  class Sport < Attribute
101
197
  TYPE = 12
102
198
  NAME = :"sport"
103
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
199
+ # @private
200
+ ORDER = 11
201
+ # @private
202
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
104
203
  end
105
204
  class Dport < Attribute
106
205
  TYPE = 13
107
206
  NAME = :"dport"
108
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
207
+ # @private
208
+ ORDER = 12
209
+ # @private
210
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
109
211
  end
110
212
  class CompoundOps < Attribute
111
213
  TYPE = 14
112
214
  NAME = :"compound_ops"
113
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
114
- end
115
- # :nodoc:
215
+ # @private
216
+ MULTI = true
217
+ # @private
218
+ ORDER = 13
219
+ # @private
220
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
221
+ end
222
+ # @private
116
223
  BY_NAME = Ractor.make_shareable({:"xid" => Xid, :"flags" => Flags, :"prog" => Prog, :"version" => Version, :"proc" => Proc, :"service_time" => ServiceTime, :"pad" => Pad, :"saddr4" => Saddr4, :"daddr4" => Daddr4, :"saddr6" => Saddr6, :"daddr6" => Daddr6, :"sport" => Sport, :"dport" => Dport, :"compound_ops" => CompoundOps}) #: Hash[::Symbol, Attribute]
117
- # :nodoc:
224
+ # @private
118
225
  BY_TYPE = Ractor.make_shareable({1 => Xid, 2 => Flags, 3 => Prog, 4 => Version, 5 => Proc, 6 => ServiceTime, 7 => Pad, 8 => Saddr4, 9 => Daddr4, 10 => Saddr6, 11 => Daddr6, 12 => Sport, 13 => Dport, 14 => CompoundOps}) #: Hash[::Integer, Attribute]
226
+ # @rbs return: ::Integer
227
+ # @return [Integer]
228
+ # @see Xid
229
+ def xid; self[:"xid"]&.value; end
230
+ # @rbs return: ::Integer
231
+ # @return [Integer]
232
+ # @see Flags
233
+ def flags; self[:"flags"]&.value; end
234
+ # @rbs return: ::Integer
235
+ # @return [Integer]
236
+ # @see Prog
237
+ def prog; self[:"prog"]&.value; end
238
+ # @rbs return: ::Integer
239
+ # @return [Integer]
240
+ # @see Version
241
+ def version; self[:"version"]&.value; end
242
+ # @rbs return: ::Integer
243
+ # @return [Integer]
244
+ # @see Proc
245
+ def proc; self[:"proc"]&.value; end
246
+ # @rbs return: ::Integer
247
+ # @return [Integer]
248
+ # @see ServiceTime
249
+ def service_time; self[:"service_time"]&.value; end
250
+ # @rbs return: ::Integer
251
+ # @return [Integer]
252
+ # @see Saddr4
253
+ def saddr4; self[:"saddr4"]&.value; end
254
+ # @rbs return: ::Integer
255
+ # @return [Integer]
256
+ # @see Daddr4
257
+ def daddr4; self[:"daddr4"]&.value; end
258
+ # @rbs return: ::String
259
+ # @return [String]
260
+ # @see Saddr6
261
+ def saddr6; self[:"saddr6"]&.value; end
262
+ # @rbs return: ::String
263
+ # @return [String]
264
+ # @see Daddr6
265
+ def daddr6; self[:"daddr6"]&.value; end
266
+ # @rbs return: ::Integer
267
+ # @return [Integer]
268
+ # @see Sport
269
+ def sport; self[:"sport"]&.value; end
270
+ # @rbs return: ::Integer
271
+ # @return [Integer]
272
+ # @see Dport
273
+ def dport; self[:"dport"]&.value; end
274
+ # @rbs return: ::Array[::Integer]
275
+ # @return [Array<Integer>]
276
+ # @see CompoundOps
277
+ def compound_ops; self[:"compound_ops"].map(&:value); end
119
278
  class << self
120
279
  # Looks up Attribute class by name.
121
- #--
122
280
  # @rbs name: Symbol
123
281
  # @rbs return: Attribute
282
+ # @param [Symbol] name
283
+ # @return [Attribute]
124
284
  def by_name(name); BY_NAME.fetch(name); end
125
285
  # Looks up Attribute class by type value.
126
- #--
127
286
  # @rbs type: Integer
128
287
  # @rbs return: Attribute
288
+ # @param [Integer] type
289
+ # @return [Attribute]
129
290
  def by_type(type); BY_TYPE.fetch(type); end
130
291
  end
131
292
  end
132
- class Server < ::Nl::Protocols::Genl::AttributeSet
293
+ class Server < ::Nl::AttributeSet
133
294
  # Abstract class
134
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
295
+ class Attribute < ::Nl::AttributeSet::Attribute
135
296
  end
136
297
  class Threads < Attribute
137
298
  TYPE = 1
138
299
  NAME = :"threads"
139
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
300
+ # @private
301
+ MULTI = true
302
+ # @private
303
+ ORDER = 0
304
+ # @private
305
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
140
306
  end
141
307
  class Gracetime < Attribute
142
308
  TYPE = 2
143
309
  NAME = :"gracetime"
144
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
310
+ # @private
311
+ ORDER = 1
312
+ # @private
313
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
145
314
  end
146
315
  class Leasetime < Attribute
147
316
  TYPE = 3
148
317
  NAME = :"leasetime"
149
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
318
+ # @private
319
+ ORDER = 2
320
+ # @private
321
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
150
322
  end
151
323
  class Scope < Attribute
152
324
  TYPE = 4
153
325
  NAME = :"scope"
154
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
326
+ # @private
327
+ ORDER = 3
328
+ # @private
329
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
155
330
  end
156
331
  class MinThreads < Attribute
157
332
  TYPE = 5
158
333
  NAME = :"min_threads"
159
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
334
+ # @private
335
+ ORDER = 4
336
+ # @private
337
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
160
338
  end
161
339
  class FhKey < Attribute
162
340
  TYPE = 6
163
341
  NAME = :"fh_key"
164
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is not equal to length 16" unless it.bytesize == 16 })
342
+ # @private
343
+ ORDER = 5
344
+ # @private
345
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is not equal to length 16" unless it.bytesize == 16 })
165
346
  end
166
- # :nodoc:
347
+ # @private
167
348
  BY_NAME = Ractor.make_shareable({:"threads" => Threads, :"gracetime" => Gracetime, :"leasetime" => Leasetime, :"scope" => Scope, :"min_threads" => MinThreads, :"fh_key" => FhKey}) #: Hash[::Symbol, Attribute]
168
- # :nodoc:
349
+ # @private
169
350
  BY_TYPE = Ractor.make_shareable({1 => Threads, 2 => Gracetime, 3 => Leasetime, 4 => Scope, 5 => MinThreads, 6 => FhKey}) #: Hash[::Integer, Attribute]
351
+ # @rbs return: ::Array[::Integer]
352
+ # @return [Array<Integer>]
353
+ # @see Threads
354
+ def threads; self[:"threads"].map(&:value); end
355
+ # @rbs return: ::Integer
356
+ # @return [Integer]
357
+ # @see Gracetime
358
+ def gracetime; self[:"gracetime"]&.value; end
359
+ # @rbs return: ::Integer
360
+ # @return [Integer]
361
+ # @see Leasetime
362
+ def leasetime; self[:"leasetime"]&.value; end
363
+ # @rbs return: ::String
364
+ # @return [String]
365
+ # @see Scope
366
+ def scope; self[:"scope"]&.value; end
367
+ # @rbs return: ::Integer
368
+ # @return [Integer]
369
+ # @see MinThreads
370
+ def min_threads; self[:"min_threads"]&.value; end
371
+ # @rbs return: ::String
372
+ # @return [String]
373
+ # @see FhKey
374
+ def fh_key; self[:"fh_key"]&.value; end
170
375
  class << self
171
376
  # Looks up Attribute class by name.
172
- #--
173
377
  # @rbs name: Symbol
174
378
  # @rbs return: Attribute
379
+ # @param [Symbol] name
380
+ # @return [Attribute]
175
381
  def by_name(name); BY_NAME.fetch(name); end
176
382
  # Looks up Attribute class by type value.
177
- #--
178
383
  # @rbs type: Integer
179
384
  # @rbs return: Attribute
385
+ # @param [Integer] type
386
+ # @return [Attribute]
180
387
  def by_type(type); BY_TYPE.fetch(type); end
181
388
  end
182
389
  end
183
- class Version < ::Nl::Protocols::Genl::AttributeSet
390
+ class Version < ::Nl::AttributeSet
184
391
  # Abstract class
185
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
392
+ class Attribute < ::Nl::AttributeSet::Attribute
186
393
  end
187
394
  class Major < Attribute
188
395
  TYPE = 1
189
396
  NAME = :"major"
190
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
397
+ # @private
398
+ ORDER = 0
399
+ # @private
400
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
191
401
  end
192
402
  class Minor < Attribute
193
403
  TYPE = 2
194
404
  NAME = :"minor"
195
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
405
+ # @private
406
+ ORDER = 1
407
+ # @private
408
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
196
409
  end
197
410
  class Enabled < Attribute
198
411
  TYPE = 3
199
412
  NAME = :"enabled"
200
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
413
+ # @private
414
+ ORDER = 2
415
+ # @private
416
+ DATATYPE = ::Nl::DataTypes::Flag.new
201
417
  end
202
- # :nodoc:
418
+ # @private
203
419
  BY_NAME = Ractor.make_shareable({:"major" => Major, :"minor" => Minor, :"enabled" => Enabled}) #: Hash[::Symbol, Attribute]
204
- # :nodoc:
420
+ # @private
205
421
  BY_TYPE = Ractor.make_shareable({1 => Major, 2 => Minor, 3 => Enabled}) #: Hash[::Integer, Attribute]
422
+ # @rbs return: ::Integer
423
+ # @return [Integer]
424
+ # @see Major
425
+ def major; self[:"major"]&.value; end
426
+ # @rbs return: ::Integer
427
+ # @return [Integer]
428
+ # @see Minor
429
+ def minor; self[:"minor"]&.value; end
430
+ # @rbs return: ::Integer
431
+ # @return [Integer]
432
+ # @see Enabled
433
+ def enabled; self[:"enabled"]&.value; end
206
434
  class << self
207
435
  # Looks up Attribute class by name.
208
- #--
209
436
  # @rbs name: Symbol
210
437
  # @rbs return: Attribute
438
+ # @param [Symbol] name
439
+ # @return [Attribute]
211
440
  def by_name(name); BY_NAME.fetch(name); end
212
441
  # Looks up Attribute class by type value.
213
- #--
214
442
  # @rbs type: Integer
215
443
  # @rbs return: Attribute
444
+ # @param [Integer] type
445
+ # @return [Attribute]
216
446
  def by_type(type); BY_TYPE.fetch(type); end
217
447
  end
218
448
  end
219
- class ServerProto < ::Nl::Protocols::Genl::AttributeSet
449
+ class ServerProto < ::Nl::AttributeSet
220
450
  # Abstract class
221
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
451
+ class Attribute < ::Nl::AttributeSet::Attribute
222
452
  end
223
453
  class Version < Attribute
224
454
  TYPE = 1
225
455
  NAME = :"version"
456
+ # @private
457
+ MULTI = true
458
+ # @private
459
+ ORDER = 0
226
460
  end
227
- # :nodoc:
461
+ # @private
228
462
  BY_NAME = Ractor.make_shareable({:"version" => Version}) #: Hash[::Symbol, Attribute]
229
- # :nodoc:
463
+ # @private
230
464
  BY_TYPE = Ractor.make_shareable({1 => Version}) #: Hash[::Integer, Attribute]
465
+ # @rbs return: ::Array[AttributeSets::Version]
466
+ # @return [Array<AttributeSets::Version>]
467
+ # @see Version
468
+ def version; self[:"version"].map(&:value); end
231
469
  class << self
232
470
  # Looks up Attribute class by name.
233
- #--
234
471
  # @rbs name: Symbol
235
472
  # @rbs return: Attribute
473
+ # @param [Symbol] name
474
+ # @return [Attribute]
236
475
  def by_name(name); BY_NAME.fetch(name); end
237
476
  # Looks up Attribute class by type value.
238
- #--
239
477
  # @rbs type: Integer
240
478
  # @rbs return: Attribute
479
+ # @param [Integer] type
480
+ # @return [Attribute]
241
481
  def by_type(type); BY_TYPE.fetch(type); end
242
482
  end
243
483
  end
244
- class Sock < ::Nl::Protocols::Genl::AttributeSet
484
+ class Sock < ::Nl::AttributeSet
245
485
  # Abstract class
246
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
486
+ class Attribute < ::Nl::AttributeSet::Attribute
247
487
  end
248
488
  class Addr < Attribute
249
489
  TYPE = 1
250
490
  NAME = :"addr"
251
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
491
+ # @private
492
+ ORDER = 0
493
+ # @private
494
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: nil)
252
495
  end
253
496
  class TransportName < Attribute
254
497
  TYPE = 2
255
498
  NAME = :"transport_name"
256
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
499
+ # @private
500
+ ORDER = 1
501
+ # @private
502
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
257
503
  end
258
- # :nodoc:
504
+ # @private
259
505
  BY_NAME = Ractor.make_shareable({:"addr" => Addr, :"transport_name" => TransportName}) #: Hash[::Symbol, Attribute]
260
- # :nodoc:
506
+ # @private
261
507
  BY_TYPE = Ractor.make_shareable({1 => Addr, 2 => TransportName}) #: Hash[::Integer, Attribute]
508
+ # @rbs return: ::String
509
+ # @return [String]
510
+ # @see Addr
511
+ def addr; self[:"addr"]&.value; end
512
+ # @rbs return: ::String
513
+ # @return [String]
514
+ # @see TransportName
515
+ def transport_name; self[:"transport_name"]&.value; end
262
516
  class << self
263
517
  # Looks up Attribute class by name.
264
- #--
265
518
  # @rbs name: Symbol
266
519
  # @rbs return: Attribute
520
+ # @param [Symbol] name
521
+ # @return [Attribute]
267
522
  def by_name(name); BY_NAME.fetch(name); end
268
523
  # Looks up Attribute class by type value.
269
- #--
270
524
  # @rbs type: Integer
271
525
  # @rbs return: Attribute
526
+ # @param [Integer] type
527
+ # @return [Attribute]
272
528
  def by_type(type); BY_TYPE.fetch(type); end
273
529
  end
274
530
  end
275
- class ServerSock < ::Nl::Protocols::Genl::AttributeSet
531
+ class ServerSock < ::Nl::AttributeSet
276
532
  # Abstract class
277
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
533
+ class Attribute < ::Nl::AttributeSet::Attribute
278
534
  end
279
535
  class Addr < Attribute
280
536
  TYPE = 1
281
537
  NAME = :"addr"
538
+ # @private
539
+ MULTI = true
540
+ # @private
541
+ ORDER = 0
282
542
  end
283
- # :nodoc:
543
+ # @private
284
544
  BY_NAME = Ractor.make_shareable({:"addr" => Addr}) #: Hash[::Symbol, Attribute]
285
- # :nodoc:
545
+ # @private
286
546
  BY_TYPE = Ractor.make_shareable({1 => Addr}) #: Hash[::Integer, Attribute]
547
+ # @rbs return: ::Array[AttributeSets::Sock]
548
+ # @return [Array<AttributeSets::Sock>]
549
+ # @see Addr
550
+ def addr; self[:"addr"].map(&:value); end
287
551
  class << self
288
552
  # Looks up Attribute class by name.
289
- #--
290
553
  # @rbs name: Symbol
291
554
  # @rbs return: Attribute
555
+ # @param [Symbol] name
556
+ # @return [Attribute]
292
557
  def by_name(name); BY_NAME.fetch(name); end
293
558
  # Looks up Attribute class by type value.
294
- #--
295
559
  # @rbs type: Integer
296
560
  # @rbs return: Attribute
561
+ # @param [Integer] type
562
+ # @return [Attribute]
297
563
  def by_type(type); BY_TYPE.fetch(type); end
298
564
  end
299
565
  end
300
- class PoolMode < ::Nl::Protocols::Genl::AttributeSet
566
+ class PoolMode < ::Nl::AttributeSet
301
567
  # Abstract class
302
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
568
+ class Attribute < ::Nl::AttributeSet::Attribute
303
569
  end
304
570
  class Mode < Attribute
305
571
  TYPE = 1
306
572
  NAME = :"mode"
307
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
573
+ # @private
574
+ ORDER = 0
575
+ # @private
576
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
308
577
  end
309
578
  class Npools < Attribute
310
579
  TYPE = 2
311
580
  NAME = :"npools"
312
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
581
+ # @private
582
+ ORDER = 1
583
+ # @private
584
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
313
585
  end
314
- # :nodoc:
586
+ # @private
315
587
  BY_NAME = Ractor.make_shareable({:"mode" => Mode, :"npools" => Npools}) #: Hash[::Symbol, Attribute]
316
- # :nodoc:
588
+ # @private
317
589
  BY_TYPE = Ractor.make_shareable({1 => Mode, 2 => Npools}) #: Hash[::Integer, Attribute]
590
+ # @rbs return: ::String
591
+ # @return [String]
592
+ # @see Mode
593
+ def mode; self[:"mode"]&.value; end
594
+ # @rbs return: ::Integer
595
+ # @return [Integer]
596
+ # @see Npools
597
+ def npools; self[:"npools"]&.value; end
318
598
  class << self
319
599
  # Looks up Attribute class by name.
320
- #--
321
600
  # @rbs name: Symbol
322
601
  # @rbs return: Attribute
602
+ # @param [Symbol] name
603
+ # @return [Attribute]
323
604
  def by_name(name); BY_NAME.fetch(name); end
324
605
  # Looks up Attribute class by type value.
325
- #--
326
606
  # @rbs type: Integer
327
607
  # @rbs return: Attribute
608
+ # @param [Integer] type
609
+ # @return [Attribute]
328
610
  def by_type(type); BY_TYPE.fetch(type); end
329
611
  end
330
612
  end
331
- class Fslocation < ::Nl::Protocols::Genl::AttributeSet
613
+ class Fslocation < ::Nl::AttributeSet
332
614
  # Abstract class
333
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
615
+ class Attribute < ::Nl::AttributeSet::Attribute
334
616
  end
335
617
  class Host < Attribute
336
618
  TYPE = 1
337
619
  NAME = :"host"
338
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
620
+ # @private
621
+ ORDER = 0
622
+ # @private
623
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
339
624
  end
340
625
  class Path < Attribute
341
626
  TYPE = 2
342
627
  NAME = :"path"
343
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
628
+ # @private
629
+ ORDER = 1
630
+ # @private
631
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
344
632
  end
345
- # :nodoc:
633
+ # @private
346
634
  BY_NAME = Ractor.make_shareable({:"host" => Host, :"path" => Path}) #: Hash[::Symbol, Attribute]
347
- # :nodoc:
635
+ # @private
348
636
  BY_TYPE = Ractor.make_shareable({1 => Host, 2 => Path}) #: Hash[::Integer, Attribute]
637
+ # @rbs return: ::String
638
+ # @return [String]
639
+ # @see Host
640
+ def host; self[:"host"]&.value; end
641
+ # @rbs return: ::String
642
+ # @return [String]
643
+ # @see Path
644
+ def path; self[:"path"]&.value; end
349
645
  class << self
350
646
  # Looks up Attribute class by name.
351
- #--
352
647
  # @rbs name: Symbol
353
648
  # @rbs return: Attribute
649
+ # @param [Symbol] name
650
+ # @return [Attribute]
354
651
  def by_name(name); BY_NAME.fetch(name); end
355
652
  # Looks up Attribute class by type value.
356
- #--
357
653
  # @rbs type: Integer
358
654
  # @rbs return: Attribute
655
+ # @param [Integer] type
656
+ # @return [Attribute]
359
657
  def by_type(type); BY_TYPE.fetch(type); end
360
658
  end
361
659
  end
362
- class Fslocations < ::Nl::Protocols::Genl::AttributeSet
660
+ class Fslocations < ::Nl::AttributeSet
363
661
  # Abstract class
364
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
662
+ class Attribute < ::Nl::AttributeSet::Attribute
365
663
  end
366
664
  class Location < Attribute
367
665
  TYPE = 1
368
666
  NAME = :"location"
667
+ # @private
668
+ MULTI = true
669
+ # @private
670
+ ORDER = 0
369
671
  end
370
- # :nodoc:
672
+ # @private
371
673
  BY_NAME = Ractor.make_shareable({:"location" => Location}) #: Hash[::Symbol, Attribute]
372
- # :nodoc:
674
+ # @private
373
675
  BY_TYPE = Ractor.make_shareable({1 => Location}) #: Hash[::Integer, Attribute]
676
+ # @rbs return: ::Array[AttributeSets::Fslocation]
677
+ # @return [Array<AttributeSets::Fslocation>]
678
+ # @see Location
679
+ def location; self[:"location"].map(&:value); end
374
680
  class << self
375
681
  # Looks up Attribute class by name.
376
- #--
377
682
  # @rbs name: Symbol
378
683
  # @rbs return: Attribute
684
+ # @param [Symbol] name
685
+ # @return [Attribute]
379
686
  def by_name(name); BY_NAME.fetch(name); end
380
687
  # Looks up Attribute class by type value.
381
- #--
382
688
  # @rbs type: Integer
383
689
  # @rbs return: Attribute
690
+ # @param [Integer] type
691
+ # @return [Attribute]
384
692
  def by_type(type); BY_TYPE.fetch(type); end
385
693
  end
386
694
  end
387
- class AuthFlavor < ::Nl::Protocols::Genl::AttributeSet
695
+ class AuthFlavor < ::Nl::AttributeSet
388
696
  # Abstract class
389
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
697
+ class Attribute < ::Nl::AttributeSet::Attribute
390
698
  end
391
699
  class Pseudoflavor < Attribute
392
700
  TYPE = 1
393
701
  NAME = :"pseudoflavor"
394
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
702
+ # @private
703
+ ORDER = 0
704
+ # @private
705
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
395
706
  end
707
+ # Known flags are defined in {Flags::ExportFlags}.
396
708
  class Flags < Attribute
397
709
  TYPE = 2
398
710
  NAME = :"flags"
399
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
711
+ # @private
712
+ ORDER = 1
713
+ # @private
714
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
400
715
  end
401
- # :nodoc:
716
+ # @private
402
717
  BY_NAME = Ractor.make_shareable({:"pseudoflavor" => Pseudoflavor, :"flags" => Flags}) #: Hash[::Symbol, Attribute]
403
- # :nodoc:
718
+ # @private
404
719
  BY_TYPE = Ractor.make_shareable({1 => Pseudoflavor, 2 => Flags}) #: Hash[::Integer, Attribute]
720
+ # @rbs return: ::Integer
721
+ # @return [Integer]
722
+ # @see Pseudoflavor
723
+ def pseudoflavor; self[:"pseudoflavor"]&.value; end
724
+ # Known flags are defined in {Flags::ExportFlags}.
725
+ # @rbs return: ::Integer
726
+ # @return [Integer]
727
+ # @see Flags
728
+ def flags; self[:"flags"]&.value; end
405
729
  class << self
406
730
  # Looks up Attribute class by name.
407
- #--
408
731
  # @rbs name: Symbol
409
732
  # @rbs return: Attribute
733
+ # @param [Symbol] name
734
+ # @return [Attribute]
410
735
  def by_name(name); BY_NAME.fetch(name); end
411
736
  # Looks up Attribute class by type value.
412
- #--
413
737
  # @rbs type: Integer
414
738
  # @rbs return: Attribute
739
+ # @param [Integer] type
740
+ # @return [Attribute]
415
741
  def by_type(type); BY_TYPE.fetch(type); end
416
742
  end
417
743
  end
418
- class SvcExport < ::Nl::Protocols::Genl::AttributeSet
744
+ class SvcExport < ::Nl::AttributeSet
419
745
  # Abstract class
420
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
746
+ class Attribute < ::Nl::AttributeSet::Attribute
421
747
  end
422
748
  class Seqno < Attribute
423
749
  TYPE = 1
424
750
  NAME = :"seqno"
425
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
751
+ # @private
752
+ ORDER = 0
753
+ # @private
754
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
426
755
  end
427
756
  class Client < Attribute
428
757
  TYPE = 2
429
758
  NAME = :"client"
430
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
759
+ # @private
760
+ ORDER = 1
761
+ # @private
762
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
431
763
  end
432
764
  class Path < Attribute
433
765
  TYPE = 3
434
766
  NAME = :"path"
435
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
767
+ # @private
768
+ ORDER = 2
769
+ # @private
770
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
436
771
  end
437
772
  class Negative < Attribute
438
773
  TYPE = 4
439
774
  NAME = :"negative"
440
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
775
+ # @private
776
+ ORDER = 3
777
+ # @private
778
+ DATATYPE = ::Nl::DataTypes::Flag.new
441
779
  end
442
780
  class Expiry < Attribute
443
781
  TYPE = 5
444
782
  NAME = :"expiry"
445
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
783
+ # @private
784
+ ORDER = 4
785
+ # @private
786
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
446
787
  end
447
788
  class AnonUid < Attribute
448
789
  TYPE = 6
449
790
  NAME = :"anon_uid"
450
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
791
+ # @private
792
+ ORDER = 5
793
+ # @private
794
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
451
795
  end
452
796
  class AnonGid < Attribute
453
797
  TYPE = 7
454
798
  NAME = :"anon_gid"
455
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
799
+ # @private
800
+ ORDER = 6
801
+ # @private
802
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
456
803
  end
457
804
  class Fslocations < Attribute
458
805
  TYPE = 8
459
806
  NAME = :"fslocations"
807
+ # @private
808
+ ORDER = 7
460
809
  end
461
810
  class Uuid < Attribute
462
811
  TYPE = 9
463
812
  NAME = :"uuid"
464
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
813
+ # @private
814
+ ORDER = 8
815
+ # @private
816
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: nil)
465
817
  end
466
818
  class Secinfo < Attribute
467
819
  TYPE = 10
468
820
  NAME = :"secinfo"
821
+ # @private
822
+ MULTI = true
823
+ # @private
824
+ ORDER = 9
469
825
  end
826
+ # Known flags are defined in {Flags::XprtsecMode}.
470
827
  class Xprtsec < Attribute
471
828
  TYPE = 11
472
829
  NAME = :"xprtsec"
473
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
474
- end
830
+ # @private
831
+ MULTI = true
832
+ # @private
833
+ ORDER = 10
834
+ # @private
835
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
836
+ end
837
+ # Known flags are defined in {Flags::ExportFlags}.
475
838
  class Flags < Attribute
476
839
  TYPE = 12
477
840
  NAME = :"flags"
478
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
841
+ # @private
842
+ ORDER = 11
843
+ # @private
844
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
479
845
  end
480
846
  class Fsid < Attribute
481
847
  TYPE = 13
482
848
  NAME = :"fsid"
483
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::S32, check: nil)
849
+ # @private
850
+ ORDER = 12
851
+ # @private
852
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::S32, check: nil)
484
853
  end
485
- # :nodoc:
854
+ # @private
486
855
  BY_NAME = Ractor.make_shareable({:"seqno" => Seqno, :"client" => Client, :"path" => Path, :"negative" => Negative, :"expiry" => Expiry, :"anon_uid" => AnonUid, :"anon_gid" => AnonGid, :"fslocations" => Fslocations, :"uuid" => Uuid, :"secinfo" => Secinfo, :"xprtsec" => Xprtsec, :"flags" => Flags, :"fsid" => Fsid}) #: Hash[::Symbol, Attribute]
487
- # :nodoc:
856
+ # @private
488
857
  BY_TYPE = Ractor.make_shareable({1 => Seqno, 2 => Client, 3 => Path, 4 => Negative, 5 => Expiry, 6 => AnonUid, 7 => AnonGid, 8 => Fslocations, 9 => Uuid, 10 => Secinfo, 11 => Xprtsec, 12 => Flags, 13 => Fsid}) #: Hash[::Integer, Attribute]
858
+ # @rbs return: ::Integer
859
+ # @return [Integer]
860
+ # @see Seqno
861
+ def seqno; self[:"seqno"]&.value; end
862
+ # @rbs return: ::String
863
+ # @return [String]
864
+ # @see Client
865
+ def client; self[:"client"]&.value; end
866
+ # @rbs return: ::String
867
+ # @return [String]
868
+ # @see Path
869
+ def path; self[:"path"]&.value; end
870
+ # @rbs return: ::Integer
871
+ # @return [Integer]
872
+ # @see Negative
873
+ def negative; self[:"negative"]&.value; end
874
+ # @rbs return: ::Integer
875
+ # @return [Integer]
876
+ # @see Expiry
877
+ def expiry; self[:"expiry"]&.value; end
878
+ # @rbs return: ::Integer
879
+ # @return [Integer]
880
+ # @see AnonUid
881
+ def anon_uid; self[:"anon_uid"]&.value; end
882
+ # @rbs return: ::Integer
883
+ # @return [Integer]
884
+ # @see AnonGid
885
+ def anon_gid; self[:"anon_gid"]&.value; end
886
+ # @rbs return: AttributeSets::Fslocations
887
+ # @return [AttributeSets::Fslocations]
888
+ # @see Fslocations
889
+ def fslocations; self[:"fslocations"]&.value; end
890
+ # @rbs return: ::String
891
+ # @return [String]
892
+ # @see Uuid
893
+ def uuid; self[:"uuid"]&.value; end
894
+ # @rbs return: ::Array[AttributeSets::AuthFlavor]
895
+ # @return [Array<AttributeSets::AuthFlavor>]
896
+ # @see Secinfo
897
+ def secinfo; self[:"secinfo"].map(&:value); end
898
+ # Known flags are defined in {Flags::XprtsecMode}.
899
+ # @rbs return: ::Array[::Integer]
900
+ # @return [Array<Integer>]
901
+ # @see Xprtsec
902
+ def xprtsec; self[:"xprtsec"].map(&:value); end
903
+ # Known flags are defined in {Flags::ExportFlags}.
904
+ # @rbs return: ::Integer
905
+ # @return [Integer]
906
+ # @see Flags
907
+ def flags; self[:"flags"]&.value; end
908
+ # @rbs return: ::Integer
909
+ # @return [Integer]
910
+ # @see Fsid
911
+ def fsid; self[:"fsid"]&.value; end
489
912
  class << self
490
913
  # Looks up Attribute class by name.
491
- #--
492
914
  # @rbs name: Symbol
493
915
  # @rbs return: Attribute
916
+ # @param [Symbol] name
917
+ # @return [Attribute]
494
918
  def by_name(name); BY_NAME.fetch(name); end
495
919
  # Looks up Attribute class by type value.
496
- #--
497
920
  # @rbs type: Integer
498
921
  # @rbs return: Attribute
922
+ # @param [Integer] type
923
+ # @return [Attribute]
499
924
  def by_type(type); BY_TYPE.fetch(type); end
500
925
  end
501
926
  end
502
- class SvcExportReqs < ::Nl::Protocols::Genl::AttributeSet
927
+ class SvcExportReqs < ::Nl::AttributeSet
503
928
  # Abstract class
504
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
929
+ class Attribute < ::Nl::AttributeSet::Attribute
505
930
  end
506
931
  class Requests < Attribute
507
932
  TYPE = 1
508
933
  NAME = :"requests"
934
+ # @private
935
+ MULTI = true
936
+ # @private
937
+ ORDER = 0
509
938
  end
510
- # :nodoc:
939
+ # @private
511
940
  BY_NAME = Ractor.make_shareable({:"requests" => Requests}) #: Hash[::Symbol, Attribute]
512
- # :nodoc:
941
+ # @private
513
942
  BY_TYPE = Ractor.make_shareable({1 => Requests}) #: Hash[::Integer, Attribute]
943
+ # @rbs return: ::Array[AttributeSets::SvcExport]
944
+ # @return [Array<AttributeSets::SvcExport>]
945
+ # @see Requests
946
+ def requests; self[:"requests"].map(&:value); end
514
947
  class << self
515
948
  # Looks up Attribute class by name.
516
- #--
517
949
  # @rbs name: Symbol
518
950
  # @rbs return: Attribute
951
+ # @param [Symbol] name
952
+ # @return [Attribute]
519
953
  def by_name(name); BY_NAME.fetch(name); end
520
954
  # Looks up Attribute class by type value.
521
- #--
522
955
  # @rbs type: Integer
523
956
  # @rbs return: Attribute
957
+ # @param [Integer] type
958
+ # @return [Attribute]
524
959
  def by_type(type); BY_TYPE.fetch(type); end
525
960
  end
526
961
  end
527
- class Expkey < ::Nl::Protocols::Genl::AttributeSet
962
+ class Expkey < ::Nl::AttributeSet
528
963
  # Abstract class
529
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
964
+ class Attribute < ::Nl::AttributeSet::Attribute
530
965
  end
531
966
  class Seqno < Attribute
532
967
  TYPE = 1
533
968
  NAME = :"seqno"
534
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
969
+ # @private
970
+ ORDER = 0
971
+ # @private
972
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
535
973
  end
536
974
  class Client < Attribute
537
975
  TYPE = 2
538
976
  NAME = :"client"
539
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
977
+ # @private
978
+ ORDER = 1
979
+ # @private
980
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
540
981
  end
541
982
  class Fsidtype < Attribute
542
983
  TYPE = 3
543
984
  NAME = :"fsidtype"
544
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
985
+ # @private
986
+ ORDER = 2
987
+ # @private
988
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
545
989
  end
546
990
  class Fsid < Attribute
547
991
  TYPE = 4
548
992
  NAME = :"fsid"
549
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
993
+ # @private
994
+ ORDER = 3
995
+ # @private
996
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: nil)
550
997
  end
551
998
  class Negative < Attribute
552
999
  TYPE = 5
553
1000
  NAME = :"negative"
554
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
1001
+ # @private
1002
+ ORDER = 4
1003
+ # @private
1004
+ DATATYPE = ::Nl::DataTypes::Flag.new
555
1005
  end
556
1006
  class Expiry < Attribute
557
1007
  TYPE = 6
558
1008
  NAME = :"expiry"
559
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
1009
+ # @private
1010
+ ORDER = 5
1011
+ # @private
1012
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
560
1013
  end
561
1014
  class Path < Attribute
562
1015
  TYPE = 7
563
1016
  NAME = :"path"
564
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
1017
+ # @private
1018
+ ORDER = 6
1019
+ # @private
1020
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
565
1021
  end
566
- # :nodoc:
1022
+ # @private
567
1023
  BY_NAME = Ractor.make_shareable({:"seqno" => Seqno, :"client" => Client, :"fsidtype" => Fsidtype, :"fsid" => Fsid, :"negative" => Negative, :"expiry" => Expiry, :"path" => Path}) #: Hash[::Symbol, Attribute]
568
- # :nodoc:
1024
+ # @private
569
1025
  BY_TYPE = Ractor.make_shareable({1 => Seqno, 2 => Client, 3 => Fsidtype, 4 => Fsid, 5 => Negative, 6 => Expiry, 7 => Path}) #: Hash[::Integer, Attribute]
1026
+ # @rbs return: ::Integer
1027
+ # @return [Integer]
1028
+ # @see Seqno
1029
+ def seqno; self[:"seqno"]&.value; end
1030
+ # @rbs return: ::String
1031
+ # @return [String]
1032
+ # @see Client
1033
+ def client; self[:"client"]&.value; end
1034
+ # @rbs return: ::Integer
1035
+ # @return [Integer]
1036
+ # @see Fsidtype
1037
+ def fsidtype; self[:"fsidtype"]&.value; end
1038
+ # @rbs return: ::String
1039
+ # @return [String]
1040
+ # @see Fsid
1041
+ def fsid; self[:"fsid"]&.value; end
1042
+ # @rbs return: ::Integer
1043
+ # @return [Integer]
1044
+ # @see Negative
1045
+ def negative; self[:"negative"]&.value; end
1046
+ # @rbs return: ::Integer
1047
+ # @return [Integer]
1048
+ # @see Expiry
1049
+ def expiry; self[:"expiry"]&.value; end
1050
+ # @rbs return: ::String
1051
+ # @return [String]
1052
+ # @see Path
1053
+ def path; self[:"path"]&.value; end
570
1054
  class << self
571
1055
  # Looks up Attribute class by name.
572
- #--
573
1056
  # @rbs name: Symbol
574
1057
  # @rbs return: Attribute
1058
+ # @param [Symbol] name
1059
+ # @return [Attribute]
575
1060
  def by_name(name); BY_NAME.fetch(name); end
576
1061
  # Looks up Attribute class by type value.
577
- #--
578
1062
  # @rbs type: Integer
579
1063
  # @rbs return: Attribute
1064
+ # @param [Integer] type
1065
+ # @return [Attribute]
580
1066
  def by_type(type); BY_TYPE.fetch(type); end
581
1067
  end
582
1068
  end
583
- class ExpkeyReqs < ::Nl::Protocols::Genl::AttributeSet
1069
+ class ExpkeyReqs < ::Nl::AttributeSet
584
1070
  # Abstract class
585
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
1071
+ class Attribute < ::Nl::AttributeSet::Attribute
586
1072
  end
587
1073
  class Requests < Attribute
588
1074
  TYPE = 1
589
1075
  NAME = :"requests"
1076
+ # @private
1077
+ MULTI = true
1078
+ # @private
1079
+ ORDER = 0
590
1080
  end
591
- # :nodoc:
1081
+ # @private
592
1082
  BY_NAME = Ractor.make_shareable({:"requests" => Requests}) #: Hash[::Symbol, Attribute]
593
- # :nodoc:
1083
+ # @private
594
1084
  BY_TYPE = Ractor.make_shareable({1 => Requests}) #: Hash[::Integer, Attribute]
1085
+ # @rbs return: ::Array[AttributeSets::Expkey]
1086
+ # @return [Array<AttributeSets::Expkey>]
1087
+ # @see Requests
1088
+ def requests; self[:"requests"].map(&:value); end
595
1089
  class << self
596
1090
  # Looks up Attribute class by name.
597
- #--
598
1091
  # @rbs name: Symbol
599
1092
  # @rbs return: Attribute
1093
+ # @param [Symbol] name
1094
+ # @return [Attribute]
600
1095
  def by_name(name); BY_NAME.fetch(name); end
601
1096
  # Looks up Attribute class by type value.
602
- #--
603
1097
  # @rbs type: Integer
604
1098
  # @rbs return: Attribute
1099
+ # @param [Integer] type
1100
+ # @return [Attribute]
605
1101
  def by_type(type); BY_TYPE.fetch(type); end
606
1102
  end
607
1103
  end
608
- class CacheFlush < ::Nl::Protocols::Genl::AttributeSet
1104
+ class CacheFlush < ::Nl::AttributeSet
609
1105
  # Abstract class
610
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
1106
+ class Attribute < ::Nl::AttributeSet::Attribute
611
1107
  end
1108
+ # Known flags are defined in {Flags::CacheType}.
612
1109
  class Mask < Attribute
613
1110
  TYPE = 1
614
1111
  NAME = :"mask"
615
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
1112
+ # @private
1113
+ ORDER = 0
1114
+ # @private
1115
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
616
1116
  end
617
- # :nodoc:
1117
+ # @private
618
1118
  BY_NAME = Ractor.make_shareable({:"mask" => Mask}) #: Hash[::Symbol, Attribute]
619
- # :nodoc:
1119
+ # @private
620
1120
  BY_TYPE = Ractor.make_shareable({1 => Mask}) #: Hash[::Integer, Attribute]
1121
+ # Known flags are defined in {Flags::CacheType}.
1122
+ # @rbs return: ::Integer
1123
+ # @return [Integer]
1124
+ # @see Mask
1125
+ def mask; self[:"mask"]&.value; end
621
1126
  class << self
622
1127
  # Looks up Attribute class by name.
623
- #--
624
1128
  # @rbs name: Symbol
625
1129
  # @rbs return: Attribute
1130
+ # @param [Symbol] name
1131
+ # @return [Attribute]
626
1132
  def by_name(name); BY_NAME.fetch(name); end
627
1133
  # Looks up Attribute class by type value.
628
- #--
629
1134
  # @rbs type: Integer
630
1135
  # @rbs return: Attribute
1136
+ # @param [Integer] type
1137
+ # @return [Attribute]
631
1138
  def by_type(type); BY_TYPE.fetch(type); end
632
1139
  end
633
1140
  end
634
- class UnlockIp < ::Nl::Protocols::Genl::AttributeSet
1141
+ class UnlockIp < ::Nl::AttributeSet
635
1142
  # Abstract class
636
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
1143
+ class Attribute < ::Nl::AttributeSet::Attribute
637
1144
  end
1145
+ # struct sockaddr_in or struct sockaddr_in6.
638
1146
  class Address < Attribute
639
1147
  TYPE = 1
640
1148
  NAME = :"address"
641
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 16" unless it.bytesize >= 16 })
1149
+ # @private
1150
+ ORDER = 0
1151
+ # @private
1152
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 16" unless it.bytesize >= 16 })
642
1153
  end
643
- # :nodoc:
1154
+ # @private
644
1155
  BY_NAME = Ractor.make_shareable({:"address" => Address}) #: Hash[::Symbol, Attribute]
645
- # :nodoc:
1156
+ # @private
646
1157
  BY_TYPE = Ractor.make_shareable({1 => Address}) #: Hash[::Integer, Attribute]
1158
+ # struct sockaddr_in or struct sockaddr_in6.
1159
+ # @rbs return: ::String
1160
+ # @return [String]
1161
+ # @see Address
1162
+ def address; self[:"address"]&.value; end
647
1163
  class << self
648
1164
  # Looks up Attribute class by name.
649
- #--
650
1165
  # @rbs name: Symbol
651
1166
  # @rbs return: Attribute
1167
+ # @param [Symbol] name
1168
+ # @return [Attribute]
652
1169
  def by_name(name); BY_NAME.fetch(name); end
653
1170
  # Looks up Attribute class by type value.
654
- #--
655
1171
  # @rbs type: Integer
656
1172
  # @rbs return: Attribute
1173
+ # @param [Integer] type
1174
+ # @return [Attribute]
657
1175
  def by_type(type); BY_TYPE.fetch(type); end
658
1176
  end
659
1177
  end
660
- class UnlockFilesystem < ::Nl::Protocols::Genl::AttributeSet
1178
+ class UnlockFilesystem < ::Nl::AttributeSet
661
1179
  # Abstract class
662
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
1180
+ class Attribute < ::Nl::AttributeSet::Attribute
663
1181
  end
1182
+ # Filesystem path whose state should be released.
664
1183
  class Path < Attribute
665
1184
  TYPE = 1
666
1185
  NAME = :"path"
667
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
1186
+ # @private
1187
+ ORDER = 0
1188
+ # @private
1189
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
668
1190
  end
669
- # :nodoc:
1191
+ # @private
670
1192
  BY_NAME = Ractor.make_shareable({:"path" => Path}) #: Hash[::Symbol, Attribute]
671
- # :nodoc:
1193
+ # @private
672
1194
  BY_TYPE = Ractor.make_shareable({1 => Path}) #: Hash[::Integer, Attribute]
1195
+ # Filesystem path whose state should be released.
1196
+ # @rbs return: ::String
1197
+ # @return [String]
1198
+ # @see Path
1199
+ def path; self[:"path"]&.value; end
673
1200
  class << self
674
1201
  # Looks up Attribute class by name.
675
- #--
676
1202
  # @rbs name: Symbol
677
1203
  # @rbs return: Attribute
1204
+ # @param [Symbol] name
1205
+ # @return [Attribute]
678
1206
  def by_name(name); BY_NAME.fetch(name); end
679
1207
  # Looks up Attribute class by type value.
680
- #--
681
1208
  # @rbs type: Integer
682
1209
  # @rbs return: Attribute
1210
+ # @param [Integer] type
1211
+ # @return [Attribute]
683
1212
  def by_type(type); BY_TYPE.fetch(type); end
684
1213
  end
685
1214
  end
686
- class UnlockExport < ::Nl::Protocols::Genl::AttributeSet
1215
+ class UnlockExport < ::Nl::AttributeSet
687
1216
  # Abstract class
688
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
1217
+ class Attribute < ::Nl::AttributeSet::Attribute
689
1218
  end
1219
+ # Export path whose NFSv4 state should be revoked. All state (opens, locks, delegations, layouts) acquired through any export of this path is revoked, regardless of which client holds the state. Intended for use after all clients have been unexported from a given path, enabling the underlying filesystem to be unmounted.
690
1220
  class Path < Attribute
691
1221
  TYPE = 1
692
1222
  NAME = :"path"
693
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
1223
+ # @private
1224
+ ORDER = 0
1225
+ # @private
1226
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
694
1227
  end
695
- # :nodoc:
1228
+ # @private
696
1229
  BY_NAME = Ractor.make_shareable({:"path" => Path}) #: Hash[::Symbol, Attribute]
697
- # :nodoc:
1230
+ # @private
698
1231
  BY_TYPE = Ractor.make_shareable({1 => Path}) #: Hash[::Integer, Attribute]
1232
+ # Export path whose NFSv4 state should be revoked. All state (opens, locks, delegations, layouts) acquired through any export of this path is revoked, regardless of which client holds the state. Intended for use after all clients have been unexported from a given path, enabling the underlying filesystem to be unmounted.
1233
+ # @rbs return: ::String
1234
+ # @return [String]
1235
+ # @see Path
1236
+ def path; self[:"path"]&.value; end
699
1237
  class << self
700
1238
  # Looks up Attribute class by name.
701
- #--
702
1239
  # @rbs name: Symbol
703
1240
  # @rbs return: Attribute
1241
+ # @param [Symbol] name
1242
+ # @return [Attribute]
704
1243
  def by_name(name); BY_NAME.fetch(name); end
705
1244
  # Looks up Attribute class by type value.
706
- #--
707
1245
  # @rbs type: Integer
708
1246
  # @rbs return: Attribute
1247
+ # @param [Integer] type
1248
+ # @return [Attribute]
709
1249
  def by_type(type); BY_TYPE.fetch(type); end
710
1250
  end
711
1251
  end
712
- ServerProto::Version::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(Version)
713
- ServerSock::Addr::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(Sock)
714
- Fslocations::Location::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(Fslocation)
715
- SvcExport::Fslocations::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(Fslocations)
716
- SvcExport::Secinfo::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(AuthFlavor)
717
- SvcExportReqs::Requests::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(SvcExport)
718
- ExpkeyReqs::Requests::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(Expkey)
1252
+ # @private
1253
+ ServerProto::Version::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::Version, selector_bindings: Ractor.make_shareable([]))
1254
+ # @private
1255
+ ServerSock::Addr::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::Sock, selector_bindings: Ractor.make_shareable([]))
1256
+ # @private
1257
+ Fslocations::Location::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::Fslocation, selector_bindings: Ractor.make_shareable([]))
1258
+ # @private
1259
+ SvcExport::Fslocations::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::Fslocations, selector_bindings: Ractor.make_shareable([]))
1260
+ # @private
1261
+ SvcExport::Secinfo::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::AuthFlavor, selector_bindings: Ractor.make_shareable([]))
1262
+ # @private
1263
+ SvcExportReqs::Requests::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::SvcExport, selector_bindings: Ractor.make_shareable([]))
1264
+ # @private
1265
+ ExpkeyReqs::Requests::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::Expkey, selector_bindings: Ractor.make_shareable([]))
719
1266
  end
720
1267
  module Messages
721
1268
  # dump pending nfsd rpc
722
- class DumpRpcStatusGetReply < ::Nl::Protocols::Genl::Message
1269
+ class DumpRpcStatusGetRequest < ::Nl::Genl::Message
1270
+ TYPE = 1
1271
+ FIXED_HEADER = nil
1272
+ ATTRIBUTE_SET = AttributeSets::RpcStatus
1273
+ ATTRIBUTES = Ractor.make_shareable(%i[])
1274
+ end
1275
+ # dump pending nfsd rpc
1276
+ class DumpRpcStatusGetReply < ::Nl::Genl::Message
723
1277
  TYPE = 1
724
1278
  FIXED_HEADER = nil
725
1279
  ATTRIBUTE_SET = AttributeSets::RpcStatus
726
1280
  ATTRIBUTES = Ractor.make_shareable(%i[xid flags prog version proc service_time saddr4 daddr4 saddr6 daddr6 sport dport compound_ops])
727
- # Gets the value of `xid` attribute in the message.
728
- #--
729
1281
  # @rbs return: ::Integer
1282
+ # @return [Integer]
1283
+ # @see AttributeSets::RpcStatus::Xid
730
1284
  def xid; attributes[:"xid"]&.value; end
731
- # Gets the value of `flags` attribute in the message.
732
- #--
733
1285
  # @rbs return: ::Integer
1286
+ # @return [Integer]
1287
+ # @see AttributeSets::RpcStatus::Flags
734
1288
  def flags; attributes[:"flags"]&.value; end
735
- # Gets the value of `prog` attribute in the message.
736
- #--
737
1289
  # @rbs return: ::Integer
1290
+ # @return [Integer]
1291
+ # @see AttributeSets::RpcStatus::Prog
738
1292
  def prog; attributes[:"prog"]&.value; end
739
- # Gets the value of `version` attribute in the message.
740
- #--
741
1293
  # @rbs return: ::Integer
1294
+ # @return [Integer]
1295
+ # @see AttributeSets::RpcStatus::Version
742
1296
  def version; attributes[:"version"]&.value; end
743
- # Gets the value of `proc` attribute in the message.
744
- #--
745
1297
  # @rbs return: ::Integer
1298
+ # @return [Integer]
1299
+ # @see AttributeSets::RpcStatus::Proc
746
1300
  def proc; attributes[:"proc"]&.value; end
747
- # Gets the value of `service-time` attribute in the message.
748
- #--
749
1301
  # @rbs return: ::Integer
1302
+ # @return [Integer]
1303
+ # @see AttributeSets::RpcStatus::ServiceTime
750
1304
  def service_time; attributes[:"service_time"]&.value; end
751
- # Gets the value of `saddr4` attribute in the message.
752
- #--
753
1305
  # @rbs return: ::Integer
1306
+ # @return [Integer]
1307
+ # @see AttributeSets::RpcStatus::Saddr4
754
1308
  def saddr4; attributes[:"saddr4"]&.value; end
755
- # Gets the value of `daddr4` attribute in the message.
756
- #--
757
1309
  # @rbs return: ::Integer
1310
+ # @return [Integer]
1311
+ # @see AttributeSets::RpcStatus::Daddr4
758
1312
  def daddr4; attributes[:"daddr4"]&.value; end
759
- # Gets the value of `saddr6` attribute in the message.
760
- #--
761
- # @rbs return: untyped
1313
+ # @rbs return: ::String
1314
+ # @return [String]
1315
+ # @see AttributeSets::RpcStatus::Saddr6
762
1316
  def saddr6; attributes[:"saddr6"]&.value; end
763
- # Gets the value of `daddr6` attribute in the message.
764
- #--
765
- # @rbs return: untyped
1317
+ # @rbs return: ::String
1318
+ # @return [String]
1319
+ # @see AttributeSets::RpcStatus::Daddr6
766
1320
  def daddr6; attributes[:"daddr6"]&.value; end
767
- # Gets the value of `sport` attribute in the message.
768
- #--
769
1321
  # @rbs return: ::Integer
1322
+ # @return [Integer]
1323
+ # @see AttributeSets::RpcStatus::Sport
770
1324
  def sport; attributes[:"sport"]&.value; end
771
- # Gets the value of `dport` attribute in the message.
772
- #--
773
1325
  # @rbs return: ::Integer
1326
+ # @return [Integer]
1327
+ # @see AttributeSets::RpcStatus::Dport
774
1328
  def dport; attributes[:"dport"]&.value; end
775
- # Gets the value of `compound-ops` attribute in the message.
776
- #--
777
- # @rbs return: ::Integer
778
- def compound_ops; attributes[:"compound_ops"]&.value; end
1329
+ # @rbs return: ::Array[::Integer]
1330
+ # @return [Array<Integer>]
1331
+ # @see AttributeSets::RpcStatus::CompoundOps
1332
+ def compound_ops; attributes[:"compound_ops"].map(&:value); end
779
1333
  end
780
1334
  # set the maximum number of running threads
781
- class DoThreadsSetRequest < ::Nl::Protocols::Genl::Message
1335
+ #
1336
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1337
+ class DoThreadsSetRequest < ::Nl::Genl::Message
782
1338
  TYPE = 2
783
1339
  FIXED_HEADER = nil
784
1340
  ATTRIBUTE_SET = AttributeSets::Server
785
1341
  ATTRIBUTES = Ractor.make_shareable(%i[threads gracetime leasetime scope min_threads fh_key])
786
- # Gets the value of `threads` attribute in the message.
787
- #--
788
- # @rbs return: ::Integer
789
- def threads; attributes[:"threads"]&.value; end
790
- # Gets the value of `gracetime` attribute in the message.
791
- #--
1342
+ # @rbs return: ::Array[::Integer]
1343
+ # @return [Array<Integer>]
1344
+ # @see AttributeSets::Server::Threads
1345
+ def threads; attributes[:"threads"].map(&:value); end
792
1346
  # @rbs return: ::Integer
1347
+ # @return [Integer]
1348
+ # @see AttributeSets::Server::Gracetime
793
1349
  def gracetime; attributes[:"gracetime"]&.value; end
794
- # Gets the value of `leasetime` attribute in the message.
795
- #--
796
1350
  # @rbs return: ::Integer
1351
+ # @return [Integer]
1352
+ # @see AttributeSets::Server::Leasetime
797
1353
  def leasetime; attributes[:"leasetime"]&.value; end
798
- # Gets the value of `scope` attribute in the message.
799
- #--
800
1354
  # @rbs return: ::String
1355
+ # @return [String]
1356
+ # @see AttributeSets::Server::Scope
801
1357
  def scope; attributes[:"scope"]&.value; end
802
- # Gets the value of `min-threads` attribute in the message.
803
- #--
804
1358
  # @rbs return: ::Integer
1359
+ # @return [Integer]
1360
+ # @see AttributeSets::Server::MinThreads
805
1361
  def min_threads; attributes[:"min_threads"]&.value; end
806
- # Gets the value of `fh-key` attribute in the message.
807
- #--
808
- # @rbs return: untyped
1362
+ # @rbs return: ::String
1363
+ # @return [String]
1364
+ # @see AttributeSets::Server::FhKey
809
1365
  def fh_key; attributes[:"fh_key"]&.value; end
810
1366
  end
811
1367
  # get the maximum number of running threads
812
- class DoThreadsGetReply < ::Nl::Protocols::Genl::Message
1368
+ class DoThreadsGetRequest < ::Nl::Genl::Message
1369
+ TYPE = 3
1370
+ FIXED_HEADER = nil
1371
+ ATTRIBUTE_SET = AttributeSets::Server
1372
+ ATTRIBUTES = Ractor.make_shareable(%i[])
1373
+ end
1374
+ # get the maximum number of running threads
1375
+ class DoThreadsGetReply < ::Nl::Genl::Message
813
1376
  TYPE = 3
814
1377
  FIXED_HEADER = nil
815
1378
  ATTRIBUTE_SET = AttributeSets::Server
816
1379
  ATTRIBUTES = Ractor.make_shareable(%i[threads gracetime leasetime scope min_threads])
817
- # Gets the value of `threads` attribute in the message.
818
- #--
819
- # @rbs return: ::Integer
820
- def threads; attributes[:"threads"]&.value; end
821
- # Gets the value of `gracetime` attribute in the message.
822
- #--
1380
+ # @rbs return: ::Array[::Integer]
1381
+ # @return [Array<Integer>]
1382
+ # @see AttributeSets::Server::Threads
1383
+ def threads; attributes[:"threads"].map(&:value); end
823
1384
  # @rbs return: ::Integer
1385
+ # @return [Integer]
1386
+ # @see AttributeSets::Server::Gracetime
824
1387
  def gracetime; attributes[:"gracetime"]&.value; end
825
- # Gets the value of `leasetime` attribute in the message.
826
- #--
827
1388
  # @rbs return: ::Integer
1389
+ # @return [Integer]
1390
+ # @see AttributeSets::Server::Leasetime
828
1391
  def leasetime; attributes[:"leasetime"]&.value; end
829
- # Gets the value of `scope` attribute in the message.
830
- #--
831
1392
  # @rbs return: ::String
1393
+ # @return [String]
1394
+ # @see AttributeSets::Server::Scope
832
1395
  def scope; attributes[:"scope"]&.value; end
833
- # Gets the value of `min-threads` attribute in the message.
834
- #--
835
1396
  # @rbs return: ::Integer
1397
+ # @return [Integer]
1398
+ # @see AttributeSets::Server::MinThreads
836
1399
  def min_threads; attributes[:"min_threads"]&.value; end
837
1400
  end
838
1401
  # set nfs enabled versions
839
- class DoVersionSetRequest < ::Nl::Protocols::Genl::Message
1402
+ #
1403
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1404
+ class DoVersionSetRequest < ::Nl::Genl::Message
840
1405
  TYPE = 4
841
1406
  FIXED_HEADER = nil
842
1407
  ATTRIBUTE_SET = AttributeSets::ServerProto
843
1408
  ATTRIBUTES = Ractor.make_shareable(%i[version])
844
- # Gets the value of `version` attribute in the message.
845
- #--
846
- # @rbs return: AttributeSets::Version
847
- def version; attributes[:"version"]&.value; end
1409
+ # @rbs return: ::Array[AttributeSets::Version]
1410
+ # @return [Array<AttributeSets::Version>]
1411
+ # @see AttributeSets::ServerProto::Version
1412
+ def version; attributes[:"version"].map(&:value); end
848
1413
  end
849
1414
  # get nfs enabled versions
850
- class DoVersionGetReply < ::Nl::Protocols::Genl::Message
1415
+ class DoVersionGetRequest < ::Nl::Genl::Message
1416
+ TYPE = 5
1417
+ FIXED_HEADER = nil
1418
+ ATTRIBUTE_SET = AttributeSets::ServerProto
1419
+ ATTRIBUTES = Ractor.make_shareable(%i[])
1420
+ end
1421
+ # get nfs enabled versions
1422
+ class DoVersionGetReply < ::Nl::Genl::Message
851
1423
  TYPE = 5
852
1424
  FIXED_HEADER = nil
853
1425
  ATTRIBUTE_SET = AttributeSets::ServerProto
854
1426
  ATTRIBUTES = Ractor.make_shareable(%i[version])
855
- # Gets the value of `version` attribute in the message.
856
- #--
857
- # @rbs return: AttributeSets::Version
858
- def version; attributes[:"version"]&.value; end
1427
+ # @rbs return: ::Array[AttributeSets::Version]
1428
+ # @return [Array<AttributeSets::Version>]
1429
+ # @see AttributeSets::ServerProto::Version
1430
+ def version; attributes[:"version"].map(&:value); end
859
1431
  end
860
1432
  # set nfs running sockets
861
- class DoListenerSetRequest < ::Nl::Protocols::Genl::Message
1433
+ #
1434
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1435
+ class DoListenerSetRequest < ::Nl::Genl::Message
862
1436
  TYPE = 6
863
1437
  FIXED_HEADER = nil
864
1438
  ATTRIBUTE_SET = AttributeSets::ServerSock
865
1439
  ATTRIBUTES = Ractor.make_shareable(%i[addr])
866
- # Gets the value of `addr` attribute in the message.
867
- #--
868
- # @rbs return: AttributeSets::Sock
869
- def addr; attributes[:"addr"]&.value; end
1440
+ # @rbs return: ::Array[AttributeSets::Sock]
1441
+ # @return [Array<AttributeSets::Sock>]
1442
+ # @see AttributeSets::ServerSock::Addr
1443
+ def addr; attributes[:"addr"].map(&:value); end
1444
+ end
1445
+ # get nfs running listeners
1446
+ class DoListenerGetRequest < ::Nl::Genl::Message
1447
+ TYPE = 7
1448
+ FIXED_HEADER = nil
1449
+ ATTRIBUTE_SET = AttributeSets::ServerSock
1450
+ ATTRIBUTES = Ractor.make_shareable(%i[])
870
1451
  end
871
1452
  # get nfs running listeners
872
- class DoListenerGetReply < ::Nl::Protocols::Genl::Message
1453
+ class DoListenerGetReply < ::Nl::Genl::Message
873
1454
  TYPE = 7
874
1455
  FIXED_HEADER = nil
875
1456
  ATTRIBUTE_SET = AttributeSets::ServerSock
876
1457
  ATTRIBUTES = Ractor.make_shareable(%i[addr])
877
- # Gets the value of `addr` attribute in the message.
878
- #--
879
- # @rbs return: AttributeSets::Sock
880
- def addr; attributes[:"addr"]&.value; end
1458
+ # @rbs return: ::Array[AttributeSets::Sock]
1459
+ # @return [Array<AttributeSets::Sock>]
1460
+ # @see AttributeSets::ServerSock::Addr
1461
+ def addr; attributes[:"addr"].map(&:value); end
881
1462
  end
882
1463
  # set the current server pool-mode
883
- class DoPoolModeSetRequest < ::Nl::Protocols::Genl::Message
1464
+ #
1465
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1466
+ class DoPoolModeSetRequest < ::Nl::Genl::Message
884
1467
  TYPE = 8
885
1468
  FIXED_HEADER = nil
886
1469
  ATTRIBUTE_SET = AttributeSets::PoolMode
887
1470
  ATTRIBUTES = Ractor.make_shareable(%i[mode])
888
- # Gets the value of `mode` attribute in the message.
889
- #--
890
1471
  # @rbs return: ::String
1472
+ # @return [String]
1473
+ # @see AttributeSets::PoolMode::Mode
891
1474
  def mode; attributes[:"mode"]&.value; end
892
1475
  end
893
1476
  # get info about server pool-mode
894
- class DoPoolModeGetReply < ::Nl::Protocols::Genl::Message
1477
+ class DoPoolModeGetRequest < ::Nl::Genl::Message
1478
+ TYPE = 9
1479
+ FIXED_HEADER = nil
1480
+ ATTRIBUTE_SET = AttributeSets::PoolMode
1481
+ ATTRIBUTES = Ractor.make_shareable(%i[])
1482
+ end
1483
+ # get info about server pool-mode
1484
+ class DoPoolModeGetReply < ::Nl::Genl::Message
895
1485
  TYPE = 9
896
1486
  FIXED_HEADER = nil
897
1487
  ATTRIBUTE_SET = AttributeSets::PoolMode
898
1488
  ATTRIBUTES = Ractor.make_shareable(%i[mode npools])
899
- # Gets the value of `mode` attribute in the message.
900
- #--
901
1489
  # @rbs return: ::String
1490
+ # @return [String]
1491
+ # @see AttributeSets::PoolMode::Mode
902
1492
  def mode; attributes[:"mode"]&.value; end
903
- # Gets the value of `npools` attribute in the message.
904
- #--
905
1493
  # @rbs return: ::Integer
1494
+ # @return [Integer]
1495
+ # @see AttributeSets::PoolMode::Npools
906
1496
  def npools; attributes[:"npools"]&.value; end
907
1497
  end
908
1498
  # Dump all pending svc_export requests
909
- class DumpSvcExportGetReqsReply < ::Nl::Protocols::Genl::Message
1499
+ #
1500
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1501
+ class DumpSvcExportGetReqsRequest < ::Nl::Genl::Message
1502
+ TYPE = 11
1503
+ FIXED_HEADER = nil
1504
+ ATTRIBUTE_SET = AttributeSets::SvcExportReqs
1505
+ ATTRIBUTES = Ractor.make_shareable(%i[])
1506
+ end
1507
+ # Dump all pending svc_export requests
1508
+ #
1509
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1510
+ class DumpSvcExportGetReqsReply < ::Nl::Genl::Message
910
1511
  TYPE = 11
911
1512
  FIXED_HEADER = nil
912
1513
  ATTRIBUTE_SET = AttributeSets::SvcExportReqs
913
1514
  ATTRIBUTES = Ractor.make_shareable(%i[requests])
914
- # Gets the value of `requests` attribute in the message.
915
- #--
916
- # @rbs return: AttributeSets::SvcExport
917
- def requests; attributes[:"requests"]&.value; end
1515
+ # @rbs return: ::Array[AttributeSets::SvcExport]
1516
+ # @return [Array<AttributeSets::SvcExport>]
1517
+ # @see AttributeSets::SvcExportReqs::Requests
1518
+ def requests; attributes[:"requests"].map(&:value); end
918
1519
  end
919
1520
  # Respond to one or more svc_export requests
920
- class DoSvcExportSetReqsRequest < ::Nl::Protocols::Genl::Message
1521
+ #
1522
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1523
+ class DoSvcExportSetReqsRequest < ::Nl::Genl::Message
921
1524
  TYPE = 12
922
1525
  FIXED_HEADER = nil
923
1526
  ATTRIBUTE_SET = AttributeSets::SvcExportReqs
924
1527
  ATTRIBUTES = Ractor.make_shareable(%i[requests])
925
- # Gets the value of `requests` attribute in the message.
926
- #--
927
- # @rbs return: AttributeSets::SvcExport
928
- def requests; attributes[:"requests"]&.value; end
1528
+ # @rbs return: ::Array[AttributeSets::SvcExport]
1529
+ # @return [Array<AttributeSets::SvcExport>]
1530
+ # @see AttributeSets::SvcExportReqs::Requests
1531
+ def requests; attributes[:"requests"].map(&:value); end
929
1532
  end
930
1533
  # Dump all pending expkey requests
931
- class DumpExpkeyGetReqsReply < ::Nl::Protocols::Genl::Message
1534
+ #
1535
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1536
+ class DumpExpkeyGetReqsRequest < ::Nl::Genl::Message
1537
+ TYPE = 13
1538
+ FIXED_HEADER = nil
1539
+ ATTRIBUTE_SET = AttributeSets::ExpkeyReqs
1540
+ ATTRIBUTES = Ractor.make_shareable(%i[])
1541
+ end
1542
+ # Dump all pending expkey requests
1543
+ #
1544
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1545
+ class DumpExpkeyGetReqsReply < ::Nl::Genl::Message
932
1546
  TYPE = 13
933
1547
  FIXED_HEADER = nil
934
1548
  ATTRIBUTE_SET = AttributeSets::ExpkeyReqs
935
1549
  ATTRIBUTES = Ractor.make_shareable(%i[requests])
936
- # Gets the value of `requests` attribute in the message.
937
- #--
938
- # @rbs return: AttributeSets::Expkey
939
- def requests; attributes[:"requests"]&.value; end
1550
+ # @rbs return: ::Array[AttributeSets::Expkey]
1551
+ # @return [Array<AttributeSets::Expkey>]
1552
+ # @see AttributeSets::ExpkeyReqs::Requests
1553
+ def requests; attributes[:"requests"].map(&:value); end
940
1554
  end
941
1555
  # Respond to one or more expkey requests
942
- class DoExpkeySetReqsRequest < ::Nl::Protocols::Genl::Message
1556
+ #
1557
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1558
+ class DoExpkeySetReqsRequest < ::Nl::Genl::Message
943
1559
  TYPE = 14
944
1560
  FIXED_HEADER = nil
945
1561
  ATTRIBUTE_SET = AttributeSets::ExpkeyReqs
946
1562
  ATTRIBUTES = Ractor.make_shareable(%i[requests])
947
- # Gets the value of `requests` attribute in the message.
948
- #--
949
- # @rbs return: AttributeSets::Expkey
950
- def requests; attributes[:"requests"]&.value; end
1563
+ # @rbs return: ::Array[AttributeSets::Expkey]
1564
+ # @return [Array<AttributeSets::Expkey>]
1565
+ # @see AttributeSets::ExpkeyReqs::Requests
1566
+ def requests; attributes[:"requests"].map(&:value); end
951
1567
  end
952
1568
  # Flush nfsd caches (svc_export and/or expkey)
953
- class DoCacheFlushRequest < ::Nl::Protocols::Genl::Message
1569
+ #
1570
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1571
+ class DoCacheFlushRequest < ::Nl::Genl::Message
954
1572
  TYPE = 15
955
1573
  FIXED_HEADER = nil
956
1574
  ATTRIBUTE_SET = AttributeSets::CacheFlush
957
1575
  ATTRIBUTES = Ractor.make_shareable(%i[mask])
958
- # Gets the value of `mask` attribute in the message.
959
- #--
1576
+ # Known flags are defined in {Flags::CacheType}.
960
1577
  # @rbs return: ::Integer
1578
+ # @return [Integer]
1579
+ # @see AttributeSets::CacheFlush::Mask
961
1580
  def mask; attributes[:"mask"]&.value; end
962
1581
  end
963
1582
  # release NLM locks held by an IP address
964
- class DoUnlockIpRequest < ::Nl::Protocols::Genl::Message
1583
+ #
1584
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1585
+ class DoUnlockIpRequest < ::Nl::Genl::Message
965
1586
  TYPE = 16
966
1587
  FIXED_HEADER = nil
967
1588
  ATTRIBUTE_SET = AttributeSets::UnlockIp
968
1589
  ATTRIBUTES = Ractor.make_shareable(%i[address])
969
- # Gets the value of `address` attribute in the message.
970
- #--
971
- # @rbs return: untyped
1590
+ # struct sockaddr_in or struct sockaddr_in6.
1591
+ # @rbs return: ::String
1592
+ # @return [String]
1593
+ # @see AttributeSets::UnlockIp::Address
972
1594
  def address; attributes[:"address"]&.value; end
973
1595
  end
974
1596
  # revoke NFS state under a filesystem path
975
- class DoUnlockFilesystemRequest < ::Nl::Protocols::Genl::Message
1597
+ #
1598
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1599
+ class DoUnlockFilesystemRequest < ::Nl::Genl::Message
976
1600
  TYPE = 17
977
1601
  FIXED_HEADER = nil
978
1602
  ATTRIBUTE_SET = AttributeSets::UnlockFilesystem
979
1603
  ATTRIBUTES = Ractor.make_shareable(%i[path])
980
- # Gets the value of `path` attribute in the message.
981
- #--
1604
+ # Filesystem path whose state should be released.
982
1605
  # @rbs return: ::String
1606
+ # @return [String]
1607
+ # @see AttributeSets::UnlockFilesystem::Path
983
1608
  def path; attributes[:"path"]&.value; end
984
1609
  end
985
1610
  # Revoke NFSv4 state acquired through exports of a given path. Unlike unlock-filesystem, which operates at superblock granularity, this command targets only state associated with a specific export path. Userspace (exportfs -u) sends this after removing the last client for a path so the underlying filesystem can be unmounted.
986
- class DoUnlockExportRequest < ::Nl::Protocols::Genl::Message
1611
+ #
1612
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1613
+ class DoUnlockExportRequest < ::Nl::Genl::Message
987
1614
  TYPE = 18
988
1615
  FIXED_HEADER = nil
989
1616
  ATTRIBUTE_SET = AttributeSets::UnlockExport
990
1617
  ATTRIBUTES = Ractor.make_shareable(%i[path])
991
- # Gets the value of `path` attribute in the message.
992
- #--
1618
+ # Export path whose NFSv4 state should be revoked. All state (opens, locks, delegations, layouts) acquired through any export of this path is revoked, regardless of which client holds the state. Intended for use after all clients have been unexported from a given path, enabling the underlying filesystem to be unmounted.
993
1619
  # @rbs return: ::String
1620
+ # @return [String]
1621
+ # @see AttributeSets::UnlockExport::Path
994
1622
  def path; attributes[:"path"]&.value; end
995
1623
  end
996
1624
  end
1625
+ module Notifications
1626
+ # Notification that there are cache requests that need servicing
1627
+ #
1628
+ # Multicast group: `exportd`.
1629
+ class CacheNotify < ::Nl::Genl::Message
1630
+ TYPE = 10
1631
+ FIXED_HEADER = nil
1632
+ ATTRIBUTE_SET = AttributeSets::CacheNotify
1633
+ ATTRIBUTES = Ractor.make_shareable(%i[cache_type])
1634
+ # Known flags are defined in {Flags::CacheType}.
1635
+ # @rbs return: ::Integer
1636
+ # @return [Integer]
1637
+ # @see AttributeSets::CacheNotify::CacheType
1638
+ def cache_type; attributes[:"cache_type"]&.value; end
1639
+ end
1640
+ end
1641
+ # @private
1642
+ NOTIFICATIONS = Ractor.make_shareable({10 => Notifications::CacheNotify}) #: Hash[::Integer, ::Class]
1643
+ # dump pending nfsd rpc
1644
+ # @rbs () -> Array[Messages::DumpRpcStatusGetReply]
1645
+ # | () { (Messages::DumpRpcStatusGetReply) -> void } -> void
1646
+ # @overload dump_rpc_status_get(**args)
1647
+ # Returns an array when no block is given.
1648
+ # @param [Hash] args
1649
+ # @return [Array<Messages::DumpRpcStatusGetReply>]
1650
+ # @overload dump_rpc_status_get(**args, &block)
1651
+ # Yields each reply when a block is given.
1652
+ # @param [Hash] args
1653
+ # @yieldparam [Messages::DumpRpcStatusGetReply] reply
1654
+ # @return [void]
1655
+ # @see Messages::DumpRpcStatusGetRequest
1656
+ def dump_rpc_status_get(**args, &block)
1657
+ exchange_message(:"dump", Messages::DumpRpcStatusGetRequest, Messages::DumpRpcStatusGetReply, args, &block)
1658
+ end
997
1659
  # set the maximum number of running threads
998
- #--
999
- # @rbs (?threads: ::Integer, ?gracetime: ::Integer, ?leasetime: ::Integer, ?scope: ::String, ?min_threads: ::Integer, ?fh_key: untyped) -> void
1660
+ #
1661
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1662
+ # @rbs (?threads: ::Array[::Integer], ?gracetime: ::Integer, ?leasetime: ::Integer, ?scope: ::String, ?min_threads: ::Integer, ?fh_key: ::String) -> void
1663
+ # @param [Hash] args
1664
+ # @option args [Array<Integer>] threads
1665
+ # @option args [Integer] gracetime
1666
+ # @option args [Integer] leasetime
1667
+ # @option args [String] scope
1668
+ # @option args [Integer] min_threads
1669
+ # @option args [String] fh_key
1670
+ # @return [void]
1671
+ # @see Messages::DoThreadsSetRequest
1000
1672
  def do_threads_set(**args)
1001
1673
  exchange_message(:"do", Messages::DoThreadsSetRequest, nil, args)
1002
1674
  end
1675
+ # get the maximum number of running threads
1676
+ # @rbs () -> Messages::DoThreadsGetReply
1677
+ # @param [Hash] args
1678
+ # @return [Messages::DoThreadsGetReply]
1679
+ # @see Messages::DoThreadsGetRequest
1680
+ def do_threads_get(**args)
1681
+ exchange_message(:"do", Messages::DoThreadsGetRequest, Messages::DoThreadsGetReply, args)
1682
+ end
1003
1683
  # set nfs enabled versions
1004
- #--
1005
- # @rbs (?version: AttributeSets::Version) -> void
1684
+ #
1685
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1686
+ # @rbs (?version: ::Array[(AttributeSets::Version | ::Hash[::Symbol, untyped])]) -> void
1687
+ # @param [Hash] args
1688
+ # @option args [Array<AttributeSets::Version, Hash<Symbol, Object>>] version
1689
+ # @return [void]
1690
+ # @see Messages::DoVersionSetRequest
1006
1691
  def do_version_set(**args)
1007
1692
  exchange_message(:"do", Messages::DoVersionSetRequest, nil, args)
1008
1693
  end
1694
+ # get nfs enabled versions
1695
+ # @rbs () -> Messages::DoVersionGetReply
1696
+ # @param [Hash] args
1697
+ # @return [Messages::DoVersionGetReply]
1698
+ # @see Messages::DoVersionGetRequest
1699
+ def do_version_get(**args)
1700
+ exchange_message(:"do", Messages::DoVersionGetRequest, Messages::DoVersionGetReply, args)
1701
+ end
1009
1702
  # set nfs running sockets
1010
- #--
1011
- # @rbs (?addr: AttributeSets::Sock) -> void
1703
+ #
1704
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1705
+ # @rbs (?addr: ::Array[(AttributeSets::Sock | ::Hash[::Symbol, untyped])]) -> void
1706
+ # @param [Hash] args
1707
+ # @option args [Array<AttributeSets::Sock, Hash<Symbol, Object>>] addr
1708
+ # @return [void]
1709
+ # @see Messages::DoListenerSetRequest
1012
1710
  def do_listener_set(**args)
1013
1711
  exchange_message(:"do", Messages::DoListenerSetRequest, nil, args)
1014
1712
  end
1713
+ # get nfs running listeners
1714
+ # @rbs () -> Messages::DoListenerGetReply
1715
+ # @param [Hash] args
1716
+ # @return [Messages::DoListenerGetReply]
1717
+ # @see Messages::DoListenerGetRequest
1718
+ def do_listener_get(**args)
1719
+ exchange_message(:"do", Messages::DoListenerGetRequest, Messages::DoListenerGetReply, args)
1720
+ end
1015
1721
  # set the current server pool-mode
1016
- #--
1722
+ #
1723
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1017
1724
  # @rbs (?mode: ::String) -> void
1725
+ # @param [Hash] args
1726
+ # @option args [String] mode
1727
+ # @return [void]
1728
+ # @see Messages::DoPoolModeSetRequest
1018
1729
  def do_pool_mode_set(**args)
1019
1730
  exchange_message(:"do", Messages::DoPoolModeSetRequest, nil, args)
1020
1731
  end
1732
+ # get info about server pool-mode
1733
+ # @rbs () -> Messages::DoPoolModeGetReply
1734
+ # @param [Hash] args
1735
+ # @return [Messages::DoPoolModeGetReply]
1736
+ # @see Messages::DoPoolModeGetRequest
1737
+ def do_pool_mode_get(**args)
1738
+ exchange_message(:"do", Messages::DoPoolModeGetRequest, Messages::DoPoolModeGetReply, args)
1739
+ end
1740
+ # Dump all pending svc_export requests
1741
+ #
1742
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1743
+ # @rbs () -> Array[Messages::DumpSvcExportGetReqsReply]
1744
+ # | () { (Messages::DumpSvcExportGetReqsReply) -> void } -> void
1745
+ # @overload dump_svc_export_get_reqs(**args)
1746
+ # Returns an array when no block is given.
1747
+ # @param [Hash] args
1748
+ # @return [Array<Messages::DumpSvcExportGetReqsReply>]
1749
+ # @overload dump_svc_export_get_reqs(**args, &block)
1750
+ # Yields each reply when a block is given.
1751
+ # @param [Hash] args
1752
+ # @yieldparam [Messages::DumpSvcExportGetReqsReply] reply
1753
+ # @return [void]
1754
+ # @see Messages::DumpSvcExportGetReqsRequest
1755
+ def dump_svc_export_get_reqs(**args, &block)
1756
+ exchange_message(:"dump", Messages::DumpSvcExportGetReqsRequest, Messages::DumpSvcExportGetReqsReply, args, &block)
1757
+ end
1021
1758
  # Respond to one or more svc_export requests
1022
- #--
1023
- # @rbs (?requests: AttributeSets::SvcExport) -> void
1759
+ #
1760
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1761
+ # @rbs (?requests: ::Array[(AttributeSets::SvcExport | ::Hash[::Symbol, untyped])]) -> void
1762
+ # @param [Hash] args
1763
+ # @option args [Array<AttributeSets::SvcExport, Hash<Symbol, Object>>] requests
1764
+ # @return [void]
1765
+ # @see Messages::DoSvcExportSetReqsRequest
1024
1766
  def do_svc_export_set_reqs(**args)
1025
1767
  exchange_message(:"do", Messages::DoSvcExportSetReqsRequest, nil, args)
1026
1768
  end
1769
+ # Dump all pending expkey requests
1770
+ #
1771
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1772
+ # @rbs () -> Array[Messages::DumpExpkeyGetReqsReply]
1773
+ # | () { (Messages::DumpExpkeyGetReqsReply) -> void } -> void
1774
+ # @overload dump_expkey_get_reqs(**args)
1775
+ # Returns an array when no block is given.
1776
+ # @param [Hash] args
1777
+ # @return [Array<Messages::DumpExpkeyGetReqsReply>]
1778
+ # @overload dump_expkey_get_reqs(**args, &block)
1779
+ # Yields each reply when a block is given.
1780
+ # @param [Hash] args
1781
+ # @yieldparam [Messages::DumpExpkeyGetReqsReply] reply
1782
+ # @return [void]
1783
+ # @see Messages::DumpExpkeyGetReqsRequest
1784
+ def dump_expkey_get_reqs(**args, &block)
1785
+ exchange_message(:"dump", Messages::DumpExpkeyGetReqsRequest, Messages::DumpExpkeyGetReqsReply, args, &block)
1786
+ end
1027
1787
  # Respond to one or more expkey requests
1028
- #--
1029
- # @rbs (?requests: AttributeSets::Expkey) -> void
1788
+ #
1789
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1790
+ # @rbs (?requests: ::Array[(AttributeSets::Expkey | ::Hash[::Symbol, untyped])]) -> void
1791
+ # @param [Hash] args
1792
+ # @option args [Array<AttributeSets::Expkey, Hash<Symbol, Object>>] requests
1793
+ # @return [void]
1794
+ # @see Messages::DoExpkeySetReqsRequest
1030
1795
  def do_expkey_set_reqs(**args)
1031
1796
  exchange_message(:"do", Messages::DoExpkeySetReqsRequest, nil, args)
1032
1797
  end
1033
1798
  # Flush nfsd caches (svc_export and/or expkey)
1034
- #--
1799
+ #
1800
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1035
1801
  # @rbs (?mask: ::Integer) -> void
1802
+ # @param [Hash] args
1803
+ # @option args [Integer] mask Known flags are defined in {Flags::CacheType}.
1804
+ # @return [void]
1805
+ # @see Messages::DoCacheFlushRequest
1036
1806
  def do_cache_flush(**args)
1037
1807
  exchange_message(:"do", Messages::DoCacheFlushRequest, nil, args)
1038
1808
  end
1039
1809
  # release NLM locks held by an IP address
1040
- #--
1041
- # @rbs (?address: untyped) -> void
1810
+ #
1811
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1812
+ # @rbs (?address: ::String) -> void
1813
+ # @param [Hash] args
1814
+ # @option args [String] address struct sockaddr_in or struct sockaddr_in6.
1815
+ # @return [void]
1816
+ # @see Messages::DoUnlockIpRequest
1042
1817
  def do_unlock_ip(**args)
1043
1818
  exchange_message(:"do", Messages::DoUnlockIpRequest, nil, args)
1044
1819
  end
1045
1820
  # revoke NFS state under a filesystem path
1046
- #--
1821
+ #
1822
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1047
1823
  # @rbs (?path: ::String) -> void
1824
+ # @param [Hash] args
1825
+ # @option args [String] path Filesystem path whose state should be released.
1826
+ # @return [void]
1827
+ # @see Messages::DoUnlockFilesystemRequest
1048
1828
  def do_unlock_filesystem(**args)
1049
1829
  exchange_message(:"do", Messages::DoUnlockFilesystemRequest, nil, args)
1050
1830
  end
1051
1831
  # Revoke NFSv4 state acquired through exports of a given path. Unlike unlock-filesystem, which operates at superblock granularity, this command targets only state associated with a specific export path. Userspace (exportfs -u) sends this after removing the last client for a path so the underlying filesystem can be unmounted.
1052
- #--
1832
+ #
1833
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1053
1834
  # @rbs (?path: ::String) -> void
1835
+ # @param [Hash] args
1836
+ # @option args [String] path Export path whose NFSv4 state should be revoked. All state (opens, locks, delegations, layouts) acquired through any export of this path is revoked, regardless of which client holds the state. Intended for use after all clients have been unexported from a given path, enabling the underlying filesystem to be unmounted.
1837
+ # @return [void]
1838
+ # @see Messages::DoUnlockExportRequest
1054
1839
  def do_unlock_export(**args)
1055
1840
  exchange_message(:"do", Messages::DoUnlockExportRequest, nil, args)
1056
1841
  end
1842
+ class AsyncOperations
1843
+ # @private
1844
+ def initialize(&exchange)
1845
+ @exchange = exchange
1846
+ end
1847
+ # dump pending nfsd rpc
1848
+ # @rbs () -> ::Nl::Async::Stream[Messages::DumpRpcStatusGetReply]
1849
+ # @param [Hash] args
1850
+ # @return [Nl::Async::Stream<Messages::DumpRpcStatusGetReply>]
1851
+ # @see Messages::DumpRpcStatusGetRequest
1852
+ def dump_rpc_status_get(**args)
1853
+ @exchange.call(:"dump", Messages::DumpRpcStatusGetRequest, Messages::DumpRpcStatusGetReply, args)
1854
+ end
1855
+ # set the maximum number of running threads
1856
+ #
1857
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1858
+ # @rbs (?threads: ::Array[::Integer], ?gracetime: ::Integer, ?leasetime: ::Integer, ?scope: ::String, ?min_threads: ::Integer, ?fh_key: ::String) -> ::Nl::Async::Future[void]
1859
+ # @param [Hash] args
1860
+ # @option args [Array<Integer>] threads
1861
+ # @option args [Integer] gracetime
1862
+ # @option args [Integer] leasetime
1863
+ # @option args [String] scope
1864
+ # @option args [Integer] min_threads
1865
+ # @option args [String] fh_key
1866
+ # @return [Nl::Async::Future<void>]
1867
+ # @see Messages::DoThreadsSetRequest
1868
+ def do_threads_set(**args)
1869
+ @exchange.call(:"do", Messages::DoThreadsSetRequest, nil, args)
1870
+ end
1871
+ # get the maximum number of running threads
1872
+ # @rbs () -> ::Nl::Async::Future[Messages::DoThreadsGetReply]
1873
+ # @param [Hash] args
1874
+ # @return [Nl::Async::Future<Messages::DoThreadsGetReply>]
1875
+ # @see Messages::DoThreadsGetRequest
1876
+ def do_threads_get(**args)
1877
+ @exchange.call(:"do", Messages::DoThreadsGetRequest, Messages::DoThreadsGetReply, args)
1878
+ end
1879
+ # set nfs enabled versions
1880
+ #
1881
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1882
+ # @rbs (?version: ::Array[(AttributeSets::Version | ::Hash[::Symbol, untyped])]) -> ::Nl::Async::Future[void]
1883
+ # @param [Hash] args
1884
+ # @option args [Array<AttributeSets::Version, Hash<Symbol, Object>>] version
1885
+ # @return [Nl::Async::Future<void>]
1886
+ # @see Messages::DoVersionSetRequest
1887
+ def do_version_set(**args)
1888
+ @exchange.call(:"do", Messages::DoVersionSetRequest, nil, args)
1889
+ end
1890
+ # get nfs enabled versions
1891
+ # @rbs () -> ::Nl::Async::Future[Messages::DoVersionGetReply]
1892
+ # @param [Hash] args
1893
+ # @return [Nl::Async::Future<Messages::DoVersionGetReply>]
1894
+ # @see Messages::DoVersionGetRequest
1895
+ def do_version_get(**args)
1896
+ @exchange.call(:"do", Messages::DoVersionGetRequest, Messages::DoVersionGetReply, args)
1897
+ end
1898
+ # set nfs running sockets
1899
+ #
1900
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1901
+ # @rbs (?addr: ::Array[(AttributeSets::Sock | ::Hash[::Symbol, untyped])]) -> ::Nl::Async::Future[void]
1902
+ # @param [Hash] args
1903
+ # @option args [Array<AttributeSets::Sock, Hash<Symbol, Object>>] addr
1904
+ # @return [Nl::Async::Future<void>]
1905
+ # @see Messages::DoListenerSetRequest
1906
+ def do_listener_set(**args)
1907
+ @exchange.call(:"do", Messages::DoListenerSetRequest, nil, args)
1908
+ end
1909
+ # get nfs running listeners
1910
+ # @rbs () -> ::Nl::Async::Future[Messages::DoListenerGetReply]
1911
+ # @param [Hash] args
1912
+ # @return [Nl::Async::Future<Messages::DoListenerGetReply>]
1913
+ # @see Messages::DoListenerGetRequest
1914
+ def do_listener_get(**args)
1915
+ @exchange.call(:"do", Messages::DoListenerGetRequest, Messages::DoListenerGetReply, args)
1916
+ end
1917
+ # set the current server pool-mode
1918
+ #
1919
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1920
+ # @rbs (?mode: ::String) -> ::Nl::Async::Future[void]
1921
+ # @param [Hash] args
1922
+ # @option args [String] mode
1923
+ # @return [Nl::Async::Future<void>]
1924
+ # @see Messages::DoPoolModeSetRequest
1925
+ def do_pool_mode_set(**args)
1926
+ @exchange.call(:"do", Messages::DoPoolModeSetRequest, nil, args)
1927
+ end
1928
+ # get info about server pool-mode
1929
+ # @rbs () -> ::Nl::Async::Future[Messages::DoPoolModeGetReply]
1930
+ # @param [Hash] args
1931
+ # @return [Nl::Async::Future<Messages::DoPoolModeGetReply>]
1932
+ # @see Messages::DoPoolModeGetRequest
1933
+ def do_pool_mode_get(**args)
1934
+ @exchange.call(:"do", Messages::DoPoolModeGetRequest, Messages::DoPoolModeGetReply, args)
1935
+ end
1936
+ # Dump all pending svc_export requests
1937
+ #
1938
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1939
+ # @rbs () -> ::Nl::Async::Stream[Messages::DumpSvcExportGetReqsReply]
1940
+ # @param [Hash] args
1941
+ # @return [Nl::Async::Stream<Messages::DumpSvcExportGetReqsReply>]
1942
+ # @see Messages::DumpSvcExportGetReqsRequest
1943
+ def dump_svc_export_get_reqs(**args)
1944
+ @exchange.call(:"dump", Messages::DumpSvcExportGetReqsRequest, Messages::DumpSvcExportGetReqsReply, args)
1945
+ end
1946
+ # Respond to one or more svc_export requests
1947
+ #
1948
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1949
+ # @rbs (?requests: ::Array[(AttributeSets::SvcExport | ::Hash[::Symbol, untyped])]) -> ::Nl::Async::Future[void]
1950
+ # @param [Hash] args
1951
+ # @option args [Array<AttributeSets::SvcExport, Hash<Symbol, Object>>] requests
1952
+ # @return [Nl::Async::Future<void>]
1953
+ # @see Messages::DoSvcExportSetReqsRequest
1954
+ def do_svc_export_set_reqs(**args)
1955
+ @exchange.call(:"do", Messages::DoSvcExportSetReqsRequest, nil, args)
1956
+ end
1957
+ # Dump all pending expkey requests
1958
+ #
1959
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1960
+ # @rbs () -> ::Nl::Async::Stream[Messages::DumpExpkeyGetReqsReply]
1961
+ # @param [Hash] args
1962
+ # @return [Nl::Async::Stream<Messages::DumpExpkeyGetReqsReply>]
1963
+ # @see Messages::DumpExpkeyGetReqsRequest
1964
+ def dump_expkey_get_reqs(**args)
1965
+ @exchange.call(:"dump", Messages::DumpExpkeyGetReqsRequest, Messages::DumpExpkeyGetReqsReply, args)
1966
+ end
1967
+ # Respond to one or more expkey requests
1968
+ #
1969
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1970
+ # @rbs (?requests: ::Array[(AttributeSets::Expkey | ::Hash[::Symbol, untyped])]) -> ::Nl::Async::Future[void]
1971
+ # @param [Hash] args
1972
+ # @option args [Array<AttributeSets::Expkey, Hash<Symbol, Object>>] requests
1973
+ # @return [Nl::Async::Future<void>]
1974
+ # @see Messages::DoExpkeySetReqsRequest
1975
+ def do_expkey_set_reqs(**args)
1976
+ @exchange.call(:"do", Messages::DoExpkeySetReqsRequest, nil, args)
1977
+ end
1978
+ # Flush nfsd caches (svc_export and/or expkey)
1979
+ #
1980
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1981
+ # @rbs (?mask: ::Integer) -> ::Nl::Async::Future[void]
1982
+ # @param [Hash] args
1983
+ # @option args [Integer] mask Known flags are defined in {Flags::CacheType}.
1984
+ # @return [Nl::Async::Future<void>]
1985
+ # @see Messages::DoCacheFlushRequest
1986
+ def do_cache_flush(**args)
1987
+ @exchange.call(:"do", Messages::DoCacheFlushRequest, nil, args)
1988
+ end
1989
+ # release NLM locks held by an IP address
1990
+ #
1991
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1992
+ # @rbs (?address: ::String) -> ::Nl::Async::Future[void]
1993
+ # @param [Hash] args
1994
+ # @option args [String] address struct sockaddr_in or struct sockaddr_in6.
1995
+ # @return [Nl::Async::Future<void>]
1996
+ # @see Messages::DoUnlockIpRequest
1997
+ def do_unlock_ip(**args)
1998
+ @exchange.call(:"do", Messages::DoUnlockIpRequest, nil, args)
1999
+ end
2000
+ # revoke NFS state under a filesystem path
2001
+ #
2002
+ # Requires CAP_NET_ADMIN in the initial user namespace.
2003
+ # @rbs (?path: ::String) -> ::Nl::Async::Future[void]
2004
+ # @param [Hash] args
2005
+ # @option args [String] path Filesystem path whose state should be released.
2006
+ # @return [Nl::Async::Future<void>]
2007
+ # @see Messages::DoUnlockFilesystemRequest
2008
+ def do_unlock_filesystem(**args)
2009
+ @exchange.call(:"do", Messages::DoUnlockFilesystemRequest, nil, args)
2010
+ end
2011
+ # Revoke NFSv4 state acquired through exports of a given path. Unlike unlock-filesystem, which operates at superblock granularity, this command targets only state associated with a specific export path. Userspace (exportfs -u) sends this after removing the last client for a path so the underlying filesystem can be unmounted.
2012
+ #
2013
+ # Requires CAP_NET_ADMIN in the initial user namespace.
2014
+ # @rbs (?path: ::String) -> ::Nl::Async::Future[void]
2015
+ # @param [Hash] args
2016
+ # @option args [String] path Export path whose NFSv4 state should be revoked. All state (opens, locks, delegations, layouts) acquired through any export of this path is revoked, regardless of which client holds the state. Intended for use after all clients have been unexported from a given path, enabling the underlying filesystem to be unmounted.
2017
+ # @return [Nl::Async::Future<void>]
2018
+ # @see Messages::DoUnlockExportRequest
2019
+ def do_unlock_export(**args)
2020
+ @exchange.call(:"do", Messages::DoUnlockExportRequest, nil, args)
2021
+ end
2022
+ end
2023
+ # Returns the asynchronous operation facade for this family.
2024
+ # @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
2025
+ # @param [::Integer, nil] stream_capacity
2026
+ # @return [AsyncOperations]
2027
+ def async(stream_capacity: nil)
2028
+ return @async_operations ||= build_async_facade(AsyncOperations) if stream_capacity.nil?
2029
+ build_async_facade(AsyncOperations, stream_capacity:)
2030
+ end
2031
+ # @rbs (*(:none | :exportd) groups) -> self
2032
+ # @param [Array<:none, :exportd>] groups
2033
+ # @return [self]
2034
+ def subscribe(*groups) = super
2035
+ # @rbs (*(:none | :exportd) groups) -> self
2036
+ # @param [Array<:none, :exportd>] groups
2037
+ # @return [self]
2038
+ def unsubscribe(*groups) = super
1057
2039
  end
1058
2040
  end; end