nl-linux 0.3.0 → 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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +5 -0
  3. data/CHANGELOG.md +6 -0
  4. data/Rakefile +14 -2
  5. data/generated/nl/linux/binder.rb +172 -44
  6. data/generated/nl/linux/conntrack.rb +1293 -370
  7. data/generated/nl/linux/dev_energymodel.rb +278 -93
  8. data/generated/nl/linux/devlink.rb +5654 -1954
  9. data/generated/nl/linux/dpll.rb +1838 -669
  10. data/generated/nl/linux/drm_ras.rb +234 -72
  11. data/generated/nl/linux/ethtool.rb +6683 -2885
  12. data/generated/nl/linux/fou.rb +308 -129
  13. data/generated/nl/linux/handshake.rb +277 -99
  14. data/generated/nl/linux/lockd.rb +88 -33
  15. data/generated/nl/linux/mptcp_pm.rb +639 -186
  16. data/generated/nl/linux/net_shaper.rb +782 -224
  17. data/generated/nl/linux/netdev.rb +2105 -631
  18. data/generated/nl/linux/nfsd.rb +1030 -358
  19. data/generated/nl/linux/nftables.rb +5041 -1612
  20. data/generated/nl/linux/nl80211.rb +4531 -871
  21. data/generated/nl/linux/nlctrl.rb +411 -119
  22. data/generated/nl/linux/ovpn.rb +1211 -293
  23. data/generated/nl/linux/ovs_datapath.rb +271 -106
  24. data/generated/nl/linux/ovs_flow.rb +1819 -354
  25. data/generated/nl/linux/ovs_packet.rb +257 -82
  26. data/generated/nl/linux/ovs_vport.rb +334 -132
  27. data/generated/nl/linux/psp.rb +916 -281
  28. data/generated/nl/linux/rt_addr.rb +369 -166
  29. data/generated/nl/linux/rt_link.rb +6708 -1450
  30. data/generated/nl/linux/rt_neigh.rb +919 -364
  31. data/generated/nl/linux/rt_route.rb +1034 -448
  32. data/generated/nl/linux/rt_rule.rb +775 -395
  33. data/generated/nl/linux/sunrpc_cache.rb +297 -102
  34. data/generated/nl/linux/tc.rb +9989 -1780
  35. data/generated/nl/linux/tcp_metrics.rb +327 -105
  36. data/generated/nl/linux/team.rb +279 -93
  37. data/generated/nl/linux/wireguard.rb +432 -95
  38. data/generated/nl/linux.rb +1 -0
  39. data/lib/nl/linux/nlctrl_resolver.rb +31 -0
  40. data/lib/nl/linux/version.rb +1 -1
  41. data/sig/generated/nl/linux/binder.rbs +366 -0
  42. data/sig/generated/nl/linux/conntrack.rbs +2787 -0
  43. data/sig/generated/nl/linux/dev_energymodel.rbs +636 -0
  44. data/sig/generated/nl/linux/devlink.rbs +12496 -0
  45. data/sig/generated/nl/linux/dpll.rbs +3461 -0
  46. data/sig/generated/nl/linux/drm_ras.rbs +553 -0
  47. data/sig/generated/nl/linux/ethtool.rbs +15291 -0
  48. data/sig/generated/nl/linux/fou.rbs +702 -0
  49. data/sig/generated/nl/linux/handshake.rbs +622 -0
  50. data/sig/generated/nl/linux/lockd.rbs +234 -0
  51. data/sig/generated/nl/linux/mptcp_pm.rbs +1511 -0
  52. data/sig/generated/nl/linux/net_shaper.rbs +1645 -0
  53. data/sig/generated/nl/linux/netdev.rbs +4187 -0
  54. data/sig/generated/nl/linux/nfsd.rbs +2520 -0
  55. data/sig/generated/nl/linux/nftables.rbs +10304 -0
  56. data/sig/generated/nl/linux/nl80211.rbs +9786 -0
  57. data/sig/generated/nl/linux/nlctrl.rbs +944 -0
  58. data/sig/generated/nl/linux/nlctrl_resolver.rbs +20 -0
  59. data/sig/generated/nl/linux/ovpn.rbs +2564 -0
  60. data/sig/generated/nl/linux/ovs_datapath.rbs +640 -0
  61. data/sig/generated/nl/linux/ovs_flow.rbs +3659 -0
  62. data/sig/generated/nl/linux/ovs_packet.rbs +540 -0
  63. data/sig/generated/nl/linux/ovs_vport.rbs +777 -0
  64. data/sig/generated/nl/linux/psp.rbs +1846 -0
  65. data/sig/generated/nl/linux/rt_addr.rbs +866 -0
  66. data/sig/generated/nl/linux/rt_link.rbs +13438 -0
  67. data/sig/generated/nl/linux/rt_neigh.rbs +2124 -0
  68. data/sig/generated/nl/linux/rt_route.rbs +2218 -0
  69. data/sig/generated/nl/linux/rt_rule.rbs +1726 -0
  70. data/sig/generated/nl/linux/sunrpc_cache.rbs +739 -0
  71. data/sig/generated/nl/linux/tc.rbs +19931 -0
  72. data/sig/generated/nl/linux/tcp_metrics.rbs +740 -0
  73. data/sig/generated/nl/linux/team.rbs +733 -0
  74. data/sig/generated/nl/linux/version.rbs +7 -0
  75. data/sig/generated/nl/linux/wireguard.rbs +1006 -0
  76. data/sig/generated/nl/linux.rbs +6 -0
  77. data/sig/generated/nl-linux.rbs +2 -0
  78. metadata +46 -7
@@ -3,33 +3,63 @@
3
3
  # This file is based on Documentation/netlink/specs/ovs_vport.yaml from Linux v7.2.
4
4
  #--
5
5
  # frozen_string_literal: true
6
- # rbs_inline: enabled
7
6
  # This code is generated by Ynl::Generator. DO NOT EDIT.
8
7
  require 'nl'
9
8
  module Nl; module Linux
10
9
  # OVS vport configuration over generic netlink.
11
- class OvsVport < ::Nl::Family
10
+ class OvsVport < ::Nl::Genl::Family
12
11
  NAME = "ovs_vport"
13
- PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Genl.new("ovs_vport"))
12
+ VERSION = 2
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 [OvsVport]
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 [OvsVport] 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
14
30
  MCAST_GROUPS = Ractor.make_shareable({:"ovs_vport" => ::Nl::McastGroup.new("ovs_vport", nil)}) #: Hash[::Symbol, ::Nl::McastGroup]
31
+ module Enums
32
+ module VportType
33
+ Unspec = 0
34
+ Netdev = 1
35
+ Internal = 2
36
+ Gre = 3
37
+ Vxlan = 4
38
+ Geneve = 5
39
+ end
40
+ end
15
41
  module Structs
16
42
  OvsHeader = Struct.new(
17
43
  :"dp_ifindex", #: ::Integer
18
44
  )
19
45
  class OvsHeader
20
- # :nodoc:
21
- MEMBERS = Ractor.make_shareable({dp_ifindex: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
46
+ # @!attribute [rw] dp_ifindex
47
+ # @return [Integer]
48
+ # @private
49
+ MEMBERS = Ractor.make_shareable({dp_ifindex: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
22
50
  # Decodes the struct.
23
- #--
24
51
  # @rbs decoder: ::Nl::Decoder
25
52
  # @rbs return: instance
53
+ # @param [Nl::Decoder] decoder
54
+ # @return [self]
26
55
  def self.decode(decoder)
27
56
  self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
28
57
  end
29
58
  # Encodes the struct.
30
- #--
31
59
  # @rbs encoder: ::Nl::Encoder
32
60
  # @rbs return: void
61
+ # @param [Nl::Encoder] encoder
62
+ # @return [void]
33
63
  def encode(encoder)
34
64
  MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
35
65
  end
@@ -45,396 +75,568 @@ class OvsVport < ::Nl::Family
45
75
  :"tx_dropped", #: ::Integer
46
76
  )
47
77
  class OvsVportStats
48
- # :nodoc:
49
- MEMBERS = Ractor.make_shareable({rx_packets: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), tx_packets: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), rx_bytes: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), tx_bytes: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), rx_errors: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), tx_errors: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), rx_dropped: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), tx_dropped: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
78
+ # @!attribute [rw] rx_packets
79
+ # @return [Integer]
80
+ # @!attribute [rw] tx_packets
81
+ # @return [Integer]
82
+ # @!attribute [rw] rx_bytes
83
+ # @return [Integer]
84
+ # @!attribute [rw] tx_bytes
85
+ # @return [Integer]
86
+ # @!attribute [rw] rx_errors
87
+ # @return [Integer]
88
+ # @!attribute [rw] tx_errors
89
+ # @return [Integer]
90
+ # @!attribute [rw] rx_dropped
91
+ # @return [Integer]
92
+ # @!attribute [rw] tx_dropped
93
+ # @return [Integer]
94
+ # @private
95
+ MEMBERS = Ractor.make_shareable({rx_packets: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), tx_packets: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), rx_bytes: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), tx_bytes: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), rx_errors: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), tx_errors: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), rx_dropped: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), tx_dropped: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
50
96
  # Decodes the struct.
51
- #--
52
97
  # @rbs decoder: ::Nl::Decoder
53
98
  # @rbs return: instance
99
+ # @param [Nl::Decoder] decoder
100
+ # @return [self]
54
101
  def self.decode(decoder)
55
102
  self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
56
103
  end
57
104
  # Encodes the struct.
58
- #--
59
105
  # @rbs encoder: ::Nl::Encoder
60
106
  # @rbs return: void
107
+ # @param [Nl::Encoder] encoder
108
+ # @return [void]
61
109
  def encode(encoder)
62
110
  MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
63
111
  end
64
112
  end
65
113
  end
66
114
  module AttributeSets
67
- class VportOptions < ::Nl::Protocols::Genl::AttributeSet
115
+ class VportOptions < ::Nl::AttributeSet
68
116
  # Abstract class
69
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
117
+ class Attribute < ::Nl::AttributeSet::Attribute
70
118
  end
71
119
  class DstPort < Attribute
72
120
  TYPE = 1
73
121
  NAME = :"dst_port"
74
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
122
+ # @private
123
+ ORDER = 0
124
+ # @private
125
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
75
126
  end
76
127
  class Extension < Attribute
77
128
  TYPE = 2
78
129
  NAME = :"extension"
79
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
130
+ # @private
131
+ ORDER = 1
132
+ # @private
133
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
80
134
  end
81
- # :nodoc:
135
+ # @private
82
136
  BY_NAME = Ractor.make_shareable({:"dst_port" => DstPort, :"extension" => Extension}) #: Hash[::Symbol, Attribute]
83
- # :nodoc:
137
+ # @private
84
138
  BY_TYPE = Ractor.make_shareable({1 => DstPort, 2 => Extension}) #: Hash[::Integer, Attribute]
139
+ # @rbs return: ::Integer
140
+ # @return [Integer]
141
+ # @see DstPort
142
+ def dst_port; self[:"dst_port"]&.value; end
143
+ # @rbs return: ::Integer
144
+ # @return [Integer]
145
+ # @see Extension
146
+ def extension; self[:"extension"]&.value; end
85
147
  class << self
86
148
  # Looks up Attribute class by name.
87
- #--
88
149
  # @rbs name: Symbol
89
150
  # @rbs return: Attribute
151
+ # @param [Symbol] name
152
+ # @return [Attribute]
90
153
  def by_name(name); BY_NAME.fetch(name); end
91
154
  # Looks up Attribute class by type value.
92
- #--
93
155
  # @rbs type: Integer
94
156
  # @rbs return: Attribute
157
+ # @param [Integer] type
158
+ # @return [Attribute]
95
159
  def by_type(type); BY_TYPE.fetch(type); end
96
160
  end
97
161
  end
98
- class UpcallStats < ::Nl::Protocols::Genl::AttributeSet
162
+ class UpcallStats < ::Nl::AttributeSet
99
163
  # Abstract class
100
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
164
+ class Attribute < ::Nl::AttributeSet::Attribute
101
165
  end
102
166
  class Success < Attribute
103
167
  TYPE = 0
104
168
  NAME = :"success"
105
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
169
+ # @private
170
+ ORDER = 0
171
+ # @private
172
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
106
173
  end
107
174
  class Fail < Attribute
108
175
  TYPE = 1
109
176
  NAME = :"fail"
110
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
177
+ # @private
178
+ ORDER = 1
179
+ # @private
180
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
111
181
  end
112
- # :nodoc:
182
+ # @private
113
183
  BY_NAME = Ractor.make_shareable({:"success" => Success, :"fail" => Fail}) #: Hash[::Symbol, Attribute]
114
- # :nodoc:
184
+ # @private
115
185
  BY_TYPE = Ractor.make_shareable({0 => Success, 1 => Fail}) #: Hash[::Integer, Attribute]
186
+ # @rbs return: ::Integer
187
+ # @return [Integer]
188
+ # @see Success
189
+ def success; self[:"success"]&.value; end
190
+ # @rbs return: ::Integer
191
+ # @return [Integer]
192
+ # @see Fail
193
+ def fail; self[:"fail"]&.value; end
116
194
  class << self
117
195
  # Looks up Attribute class by name.
118
- #--
119
196
  # @rbs name: Symbol
120
197
  # @rbs return: Attribute
198
+ # @param [Symbol] name
199
+ # @return [Attribute]
121
200
  def by_name(name); BY_NAME.fetch(name); end
122
201
  # Looks up Attribute class by type value.
123
- #--
124
202
  # @rbs type: Integer
125
203
  # @rbs return: Attribute
204
+ # @param [Integer] type
205
+ # @return [Attribute]
126
206
  def by_type(type); BY_TYPE.fetch(type); end
127
207
  end
128
208
  end
129
- class Vport < ::Nl::Protocols::Genl::AttributeSet
209
+ class Vport < ::Nl::AttributeSet
130
210
  # Abstract class
131
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
211
+ class Attribute < ::Nl::AttributeSet::Attribute
132
212
  end
133
213
  class PortNo < Attribute
134
214
  TYPE = 1
135
215
  NAME = :"port_no"
136
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
216
+ # @private
217
+ ORDER = 0
218
+ # @private
219
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
137
220
  end
221
+ # Known enum values are defined in {Enums::VportType}.
138
222
  class Type < Attribute
139
223
  TYPE = 2
140
224
  NAME = :"type"
141
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
225
+ # @private
226
+ ORDER = 1
227
+ # @private
228
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
142
229
  end
143
230
  class Name < Attribute
144
231
  TYPE = 3
145
232
  NAME = :"name"
146
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
233
+ # @private
234
+ ORDER = 2
235
+ # @private
236
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
147
237
  end
148
238
  class Options < Attribute
149
239
  TYPE = 4
150
240
  NAME = :"options"
241
+ # @private
242
+ ORDER = 3
151
243
  end
152
244
  class UpcallPid < Attribute
153
245
  TYPE = 5
154
246
  NAME = :"upcall_pid"
155
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
247
+ # @private
248
+ ORDER = 4
249
+ # @private
250
+ DATATYPE = ::Nl::DataTypes::PackedArray.new(::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil), check: nil)
156
251
  end
157
252
  class Stats < Attribute
158
253
  TYPE = 6
159
254
  NAME = :"stats"
160
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
255
+ # @private
256
+ ORDER = 5
257
+ # @private
258
+ DATATYPE = ::Nl::DataTypes::Struct.new(Structs::OvsVportStats, check: nil, consume_remaining: true)
161
259
  end
162
260
  class Ifindex < Attribute
163
261
  TYPE = 8
164
262
  NAME = :"ifindex"
165
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
263
+ # @private
264
+ ORDER = 6
265
+ # @private
266
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
166
267
  end
167
268
  class Netnsid < Attribute
168
269
  TYPE = 9
169
270
  NAME = :"netnsid"
170
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
271
+ # @private
272
+ ORDER = 7
273
+ # @private
274
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
171
275
  end
172
276
  class UpcallStats < Attribute
173
277
  TYPE = 10
174
278
  NAME = :"upcall_stats"
279
+ # @private
280
+ ORDER = 8
175
281
  end
176
- # :nodoc:
282
+ # @private
177
283
  BY_NAME = Ractor.make_shareable({:"port_no" => PortNo, :"type" => Type, :"name" => Name, :"options" => Options, :"upcall_pid" => UpcallPid, :"stats" => Stats, :"ifindex" => Ifindex, :"netnsid" => Netnsid, :"upcall_stats" => UpcallStats}) #: Hash[::Symbol, Attribute]
178
- # :nodoc:
284
+ # @private
179
285
  BY_TYPE = Ractor.make_shareable({1 => PortNo, 2 => Type, 3 => Name, 4 => Options, 5 => UpcallPid, 6 => Stats, 8 => Ifindex, 9 => Netnsid, 10 => UpcallStats}) #: Hash[::Integer, Attribute]
286
+ # @rbs return: ::Integer
287
+ # @return [Integer]
288
+ # @see PortNo
289
+ def port_no; self[:"port_no"]&.value; end
290
+ # Known enum values are defined in {Enums::VportType}.
291
+ # @rbs return: ::Integer
292
+ # @return [Integer]
293
+ # @see Type
294
+ def type; self[:"type"]&.value; end
295
+ # @rbs return: ::String
296
+ # @return [String]
297
+ # @see Name
298
+ def name; self[:"name"]&.value; end
299
+ # @rbs return: AttributeSets::VportOptions
300
+ # @return [AttributeSets::VportOptions]
301
+ # @see Options
302
+ def options; self[:"options"]&.value; end
303
+ # @rbs return: ::Array[::Integer]
304
+ # @return [Array<Integer>]
305
+ # @see UpcallPid
306
+ def upcall_pid; self[:"upcall_pid"]&.value; end
307
+ # @rbs return: Structs::OvsVportStats
308
+ # @return [Structs::OvsVportStats]
309
+ # @see Stats
310
+ def stats; self[:"stats"]&.value; end
311
+ # @rbs return: ::Integer
312
+ # @return [Integer]
313
+ # @see Ifindex
314
+ def ifindex; self[:"ifindex"]&.value; end
315
+ # @rbs return: ::Integer
316
+ # @return [Integer]
317
+ # @see Netnsid
318
+ def netnsid; self[:"netnsid"]&.value; end
319
+ # @rbs return: AttributeSets::UpcallStats
320
+ # @return [AttributeSets::UpcallStats]
321
+ # @see UpcallStats
322
+ def upcall_stats; self[:"upcall_stats"]&.value; end
180
323
  class << self
181
324
  # Looks up Attribute class by name.
182
- #--
183
325
  # @rbs name: Symbol
184
326
  # @rbs return: Attribute
327
+ # @param [Symbol] name
328
+ # @return [Attribute]
185
329
  def by_name(name); BY_NAME.fetch(name); end
186
330
  # Looks up Attribute class by type value.
187
- #--
188
331
  # @rbs type: Integer
189
332
  # @rbs return: Attribute
333
+ # @param [Integer] type
334
+ # @return [Attribute]
190
335
  def by_type(type); BY_TYPE.fetch(type); end
191
336
  end
192
337
  end
193
- Vport::Options::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(VportOptions)
194
- Vport::UpcallStats::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(UpcallStats)
338
+ # @private
339
+ Vport::Options::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::VportOptions, selector_bindings: Ractor.make_shareable([]))
340
+ # @private
341
+ Vport::UpcallStats::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::UpcallStats, selector_bindings: Ractor.make_shareable([]))
195
342
  end
196
343
  module Messages
197
344
  # Create a new OVS vport
198
- class DoNewRequest < ::Nl::Protocols::Genl::Message
345
+ class DoNewRequest < ::Nl::Genl::Message
199
346
  TYPE = 1
200
347
  FIXED_HEADER = Structs::OvsHeader
201
348
  ATTRIBUTE_SET = AttributeSets::Vport
202
349
  ATTRIBUTES = Ractor.make_shareable(%i[type name options upcall_pid ifindex])
203
- # Gets the value of `dp-ifindex` field in the message's fixed header.
204
- #--
205
350
  # @rbs return: ::Integer
351
+ # @return [Integer]
206
352
  def dp_ifindex; fixed_header.dp_ifindex; end
207
- # Gets the value of `type` attribute in the message.
208
- #--
353
+ # Known enum values are defined in {Enums::VportType}.
209
354
  # @rbs return: ::Integer
355
+ # @return [Integer]
356
+ # @see AttributeSets::Vport::Type
210
357
  def type; attributes[:"type"]&.value; end
211
- # Gets the value of `name` attribute in the message.
212
- #--
213
358
  # @rbs return: ::String
359
+ # @return [String]
360
+ # @see AttributeSets::Vport::Name
214
361
  def name; attributes[:"name"]&.value; end
215
- # Gets the value of `options` attribute in the message.
216
- #--
217
362
  # @rbs return: AttributeSets::VportOptions
363
+ # @return [AttributeSets::VportOptions]
364
+ # @see AttributeSets::Vport::Options
218
365
  def options; attributes[:"options"]&.value; end
219
- # Gets the value of `upcall-pid` attribute in the message.
220
- #--
221
- # @rbs return: ::String
366
+ # @rbs return: ::Array[::Integer]
367
+ # @return [Array<Integer>]
368
+ # @see AttributeSets::Vport::UpcallPid
222
369
  def upcall_pid; attributes[:"upcall_pid"]&.value; end
223
- # Gets the value of `ifindex` attribute in the message.
224
- #--
225
370
  # @rbs return: ::Integer
371
+ # @return [Integer]
372
+ # @see AttributeSets::Vport::Ifindex
226
373
  def ifindex; attributes[:"ifindex"]&.value; end
227
374
  end
228
375
  # Delete existing OVS vport from a data path
229
- class DoDelRequest < ::Nl::Protocols::Genl::Message
376
+ class DoDelRequest < ::Nl::Genl::Message
230
377
  TYPE = 2
231
378
  FIXED_HEADER = Structs::OvsHeader
232
379
  ATTRIBUTE_SET = AttributeSets::Vport
233
380
  ATTRIBUTES = Ractor.make_shareable(%i[port_no type name])
234
- # Gets the value of `dp-ifindex` field in the message's fixed header.
235
- #--
236
381
  # @rbs return: ::Integer
382
+ # @return [Integer]
237
383
  def dp_ifindex; fixed_header.dp_ifindex; end
238
- # Gets the value of `port-no` attribute in the message.
239
- #--
240
384
  # @rbs return: ::Integer
385
+ # @return [Integer]
386
+ # @see AttributeSets::Vport::PortNo
241
387
  def port_no; attributes[:"port_no"]&.value; end
242
- # Gets the value of `type` attribute in the message.
243
- #--
388
+ # Known enum values are defined in {Enums::VportType}.
244
389
  # @rbs return: ::Integer
390
+ # @return [Integer]
391
+ # @see AttributeSets::Vport::Type
245
392
  def type; attributes[:"type"]&.value; end
246
- # Gets the value of `name` attribute in the message.
247
- #--
248
393
  # @rbs return: ::String
394
+ # @return [String]
395
+ # @see AttributeSets::Vport::Name
249
396
  def name; attributes[:"name"]&.value; end
250
397
  end
251
398
  # Get / dump OVS vport configuration and state
252
- class DoGetRequest < ::Nl::Protocols::Genl::Message
399
+ class DoGetRequest < ::Nl::Genl::Message
253
400
  TYPE = 3
254
401
  FIXED_HEADER = Structs::OvsHeader
255
402
  ATTRIBUTE_SET = AttributeSets::Vport
256
403
  ATTRIBUTES = Ractor.make_shareable(%i[name])
257
- # Gets the value of `dp-ifindex` field in the message's fixed header.
258
- #--
259
404
  # @rbs return: ::Integer
405
+ # @return [Integer]
260
406
  def dp_ifindex; fixed_header.dp_ifindex; end
261
- # Gets the value of `name` attribute in the message.
262
- #--
263
407
  # @rbs return: ::String
408
+ # @return [String]
409
+ # @see AttributeSets::Vport::Name
264
410
  def name; attributes[:"name"]&.value; end
265
411
  end
266
412
  # Get / dump OVS vport configuration and state
267
- class DoGetReply < ::Nl::Protocols::Genl::Message
413
+ class DoGetReply < ::Nl::Genl::Message
268
414
  TYPE = 3
269
415
  FIXED_HEADER = Structs::OvsHeader
270
416
  ATTRIBUTE_SET = AttributeSets::Vport
271
417
  ATTRIBUTES = Ractor.make_shareable(%i[port_no type name upcall_pid stats ifindex netnsid upcall_stats])
272
- # Gets the value of `dp-ifindex` field in the message's fixed header.
273
- #--
274
418
  # @rbs return: ::Integer
419
+ # @return [Integer]
275
420
  def dp_ifindex; fixed_header.dp_ifindex; end
276
- # Gets the value of `port-no` attribute in the message.
277
- #--
278
421
  # @rbs return: ::Integer
422
+ # @return [Integer]
423
+ # @see AttributeSets::Vport::PortNo
279
424
  def port_no; attributes[:"port_no"]&.value; end
280
- # Gets the value of `type` attribute in the message.
281
- #--
425
+ # Known enum values are defined in {Enums::VportType}.
282
426
  # @rbs return: ::Integer
427
+ # @return [Integer]
428
+ # @see AttributeSets::Vport::Type
283
429
  def type; attributes[:"type"]&.value; end
284
- # Gets the value of `name` attribute in the message.
285
- #--
286
430
  # @rbs return: ::String
431
+ # @return [String]
432
+ # @see AttributeSets::Vport::Name
287
433
  def name; attributes[:"name"]&.value; end
288
- # Gets the value of `upcall-pid` attribute in the message.
289
- #--
290
- # @rbs return: ::String
434
+ # @rbs return: ::Array[::Integer]
435
+ # @return [Array<Integer>]
436
+ # @see AttributeSets::Vport::UpcallPid
291
437
  def upcall_pid; attributes[:"upcall_pid"]&.value; end
292
- # Gets the value of `stats` attribute in the message.
293
- #--
294
- # @rbs return: ::String
438
+ # @rbs return: Structs::OvsVportStats
439
+ # @return [Structs::OvsVportStats]
440
+ # @see AttributeSets::Vport::Stats
295
441
  def stats; attributes[:"stats"]&.value; end
296
- # Gets the value of `ifindex` attribute in the message.
297
- #--
298
442
  # @rbs return: ::Integer
443
+ # @return [Integer]
444
+ # @see AttributeSets::Vport::Ifindex
299
445
  def ifindex; attributes[:"ifindex"]&.value; end
300
- # Gets the value of `netnsid` attribute in the message.
301
- #--
302
446
  # @rbs return: ::Integer
447
+ # @return [Integer]
448
+ # @see AttributeSets::Vport::Netnsid
303
449
  def netnsid; attributes[:"netnsid"]&.value; end
304
- # Gets the value of `upcall-stats` attribute in the message.
305
- #--
306
450
  # @rbs return: AttributeSets::UpcallStats
451
+ # @return [AttributeSets::UpcallStats]
452
+ # @see AttributeSets::Vport::UpcallStats
307
453
  def upcall_stats; attributes[:"upcall_stats"]&.value; end
308
454
  end
309
455
  # Get / dump OVS vport configuration and state
310
- class DumpGetRequest < ::Nl::Protocols::Genl::Message
456
+ class DumpGetRequest < ::Nl::Genl::Message
311
457
  TYPE = 3
312
458
  FIXED_HEADER = Structs::OvsHeader
313
459
  ATTRIBUTE_SET = AttributeSets::Vport
314
460
  ATTRIBUTES = Ractor.make_shareable(%i[name])
315
- # Gets the value of `dp-ifindex` field in the message's fixed header.
316
- #--
317
461
  # @rbs return: ::Integer
462
+ # @return [Integer]
318
463
  def dp_ifindex; fixed_header.dp_ifindex; end
319
- # Gets the value of `name` attribute in the message.
320
- #--
321
464
  # @rbs return: ::String
465
+ # @return [String]
466
+ # @see AttributeSets::Vport::Name
322
467
  def name; attributes[:"name"]&.value; end
323
468
  end
324
469
  # Get / dump OVS vport configuration and state
325
- class DumpGetReply < ::Nl::Protocols::Genl::Message
470
+ class DumpGetReply < ::Nl::Genl::Message
326
471
  TYPE = 3
327
472
  FIXED_HEADER = Structs::OvsHeader
328
473
  ATTRIBUTE_SET = AttributeSets::Vport
329
474
  ATTRIBUTES = Ractor.make_shareable(%i[port_no type name upcall_pid stats ifindex netnsid upcall_stats])
330
- # Gets the value of `dp-ifindex` field in the message's fixed header.
331
- #--
332
475
  # @rbs return: ::Integer
476
+ # @return [Integer]
333
477
  def dp_ifindex; fixed_header.dp_ifindex; end
334
- # Gets the value of `port-no` attribute in the message.
335
- #--
336
478
  # @rbs return: ::Integer
479
+ # @return [Integer]
480
+ # @see AttributeSets::Vport::PortNo
337
481
  def port_no; attributes[:"port_no"]&.value; end
338
- # Gets the value of `type` attribute in the message.
339
- #--
482
+ # Known enum values are defined in {Enums::VportType}.
340
483
  # @rbs return: ::Integer
484
+ # @return [Integer]
485
+ # @see AttributeSets::Vport::Type
341
486
  def type; attributes[:"type"]&.value; end
342
- # Gets the value of `name` attribute in the message.
343
- #--
344
487
  # @rbs return: ::String
488
+ # @return [String]
489
+ # @see AttributeSets::Vport::Name
345
490
  def name; attributes[:"name"]&.value; end
346
- # Gets the value of `upcall-pid` attribute in the message.
347
- #--
348
- # @rbs return: ::String
491
+ # @rbs return: ::Array[::Integer]
492
+ # @return [Array<Integer>]
493
+ # @see AttributeSets::Vport::UpcallPid
349
494
  def upcall_pid; attributes[:"upcall_pid"]&.value; end
350
- # Gets the value of `stats` attribute in the message.
351
- #--
352
- # @rbs return: ::String
495
+ # @rbs return: Structs::OvsVportStats
496
+ # @return [Structs::OvsVportStats]
497
+ # @see AttributeSets::Vport::Stats
353
498
  def stats; attributes[:"stats"]&.value; end
354
- # Gets the value of `ifindex` attribute in the message.
355
- #--
356
499
  # @rbs return: ::Integer
500
+ # @return [Integer]
501
+ # @see AttributeSets::Vport::Ifindex
357
502
  def ifindex; attributes[:"ifindex"]&.value; end
358
- # Gets the value of `netnsid` attribute in the message.
359
- #--
360
503
  # @rbs return: ::Integer
504
+ # @return [Integer]
505
+ # @see AttributeSets::Vport::Netnsid
361
506
  def netnsid; attributes[:"netnsid"]&.value; end
362
- # Gets the value of `upcall-stats` attribute in the message.
363
- #--
364
507
  # @rbs return: AttributeSets::UpcallStats
508
+ # @return [AttributeSets::UpcallStats]
509
+ # @see AttributeSets::Vport::UpcallStats
365
510
  def upcall_stats; attributes[:"upcall_stats"]&.value; end
366
511
  end
367
512
  end
368
513
  module Notifications
369
514
  end
515
+ # @private
370
516
  NOTIFICATIONS = Ractor.make_shareable({}) #: Hash[::Integer, ::Class]
371
517
  # Create a new OVS vport
372
- #--
373
- # @rbs (?dp_ifindex: ::Integer, ?type: ::Integer, ?name: ::String, ?options: AttributeSets::VportOptions, ?upcall_pid: ::String, ?ifindex: ::Integer) -> void
518
+ # @rbs (?dp_ifindex: ::Integer, ?type: ::Integer, ?name: ::String, ?options: (AttributeSets::VportOptions | ::Hash[::Symbol, untyped]), ?upcall_pid: ::Array[::Integer], ?ifindex: ::Integer) -> void
519
+ # @param [Hash] args
520
+ # @option args [Integer] dp_ifindex
521
+ # @option args [Integer] type Known enum values are defined in {Enums::VportType}.
522
+ # @option args [String] name
523
+ # @option args [AttributeSets::VportOptions, Hash<Symbol, Object>] options
524
+ # @option args [Array<Integer>] upcall_pid
525
+ # @option args [Integer] ifindex
526
+ # @return [void]
527
+ # @see Messages::DoNewRequest
374
528
  def do_new(**args)
375
529
  exchange_message(:"do", Messages::DoNewRequest, nil, args)
376
530
  end
377
531
  # Delete existing OVS vport from a data path
378
- #--
379
532
  # @rbs (?dp_ifindex: ::Integer, ?port_no: ::Integer, ?type: ::Integer, ?name: ::String) -> void
533
+ # @param [Hash] args
534
+ # @option args [Integer] dp_ifindex
535
+ # @option args [Integer] port_no
536
+ # @option args [Integer] type Known enum values are defined in {Enums::VportType}.
537
+ # @option args [String] name
538
+ # @return [void]
539
+ # @see Messages::DoDelRequest
380
540
  def do_del(**args)
381
541
  exchange_message(:"do", Messages::DoDelRequest, nil, args)
382
542
  end
383
543
  # Get / dump OVS vport configuration and state
384
- #--
385
544
  # @rbs (?dp_ifindex: ::Integer, ?name: ::String) -> Messages::DoGetReply
545
+ # @param [Hash] args
546
+ # @option args [Integer] dp_ifindex
547
+ # @option args [String] name
548
+ # @return [Messages::DoGetReply]
549
+ # @see Messages::DoGetRequest
386
550
  def do_get(**args)
387
551
  exchange_message(:"do", Messages::DoGetRequest, Messages::DoGetReply, args)
388
552
  end
389
553
  # Get / dump OVS vport configuration and state
390
- #--
391
- # @rbs (?dp_ifindex: ::Integer, ?name: ::String) -> Enumerable[Messages::DumpGetReply]
554
+ # @rbs (?dp_ifindex: ::Integer, ?name: ::String) -> Array[Messages::DumpGetReply]
392
555
  # | (?dp_ifindex: ::Integer, ?name: ::String) { (Messages::DumpGetReply) -> void } -> void
556
+ # @overload dump_get(**args)
557
+ # Returns an array when no block is given.
558
+ # @param [Hash] args
559
+ # @option args [Integer] dp_ifindex
560
+ # @option args [String] name
561
+ # @return [Array<Messages::DumpGetReply>]
562
+ # @overload dump_get(**args, &block)
563
+ # Yields each reply when a block is given.
564
+ # @param [Hash] args
565
+ # @option args [Integer] dp_ifindex
566
+ # @option args [String] name
567
+ # @yieldparam [Messages::DumpGetReply] reply
568
+ # @return [void]
569
+ # @see Messages::DumpGetRequest
393
570
  def dump_get(**args, &block)
394
571
  exchange_message(:"dump", Messages::DumpGetRequest, Messages::DumpGetReply, args, &block)
395
572
  end
396
573
  class AsyncOperations
397
- # :nodoc:
574
+ # @private
398
575
  def initialize(&exchange)
399
576
  @exchange = exchange
400
577
  end
401
578
  # Create a new OVS vport
402
- #--
403
- # @rbs (?dp_ifindex: ::Integer, ?type: ::Integer, ?name: ::String, ?options: AttributeSets::VportOptions, ?upcall_pid: ::String, ?ifindex: ::Integer) -> ::Nl::Async::Future[void]
579
+ # @rbs (?dp_ifindex: ::Integer, ?type: ::Integer, ?name: ::String, ?options: (AttributeSets::VportOptions | ::Hash[::Symbol, untyped]), ?upcall_pid: ::Array[::Integer], ?ifindex: ::Integer) -> ::Nl::Async::Future[void]
580
+ # @param [Hash] args
581
+ # @option args [Integer] dp_ifindex
582
+ # @option args [Integer] type Known enum values are defined in {Enums::VportType}.
583
+ # @option args [String] name
584
+ # @option args [AttributeSets::VportOptions, Hash<Symbol, Object>] options
585
+ # @option args [Array<Integer>] upcall_pid
586
+ # @option args [Integer] ifindex
587
+ # @return [Nl::Async::Future<void>]
588
+ # @see Messages::DoNewRequest
404
589
  def do_new(**args)
405
590
  @exchange.call(:"do", Messages::DoNewRequest, nil, args)
406
591
  end
407
592
  # Delete existing OVS vport from a data path
408
- #--
409
593
  # @rbs (?dp_ifindex: ::Integer, ?port_no: ::Integer, ?type: ::Integer, ?name: ::String) -> ::Nl::Async::Future[void]
594
+ # @param [Hash] args
595
+ # @option args [Integer] dp_ifindex
596
+ # @option args [Integer] port_no
597
+ # @option args [Integer] type Known enum values are defined in {Enums::VportType}.
598
+ # @option args [String] name
599
+ # @return [Nl::Async::Future<void>]
600
+ # @see Messages::DoDelRequest
410
601
  def do_del(**args)
411
602
  @exchange.call(:"do", Messages::DoDelRequest, nil, args)
412
603
  end
413
604
  # Get / dump OVS vport configuration and state
414
- #--
415
605
  # @rbs (?dp_ifindex: ::Integer, ?name: ::String) -> ::Nl::Async::Future[Messages::DoGetReply]
606
+ # @param [Hash] args
607
+ # @option args [Integer] dp_ifindex
608
+ # @option args [String] name
609
+ # @return [Nl::Async::Future<Messages::DoGetReply>]
610
+ # @see Messages::DoGetRequest
416
611
  def do_get(**args)
417
612
  @exchange.call(:"do", Messages::DoGetRequest, Messages::DoGetReply, args)
418
613
  end
419
614
  # Get / dump OVS vport configuration and state
420
- #--
421
615
  # @rbs (?dp_ifindex: ::Integer, ?name: ::String) -> ::Nl::Async::Stream[Messages::DumpGetReply]
616
+ # @param [Hash] args
617
+ # @option args [Integer] dp_ifindex
618
+ # @option args [String] name
619
+ # @return [Nl::Async::Stream<Messages::DumpGetReply>]
620
+ # @see Messages::DumpGetRequest
422
621
  def dump_get(**args)
423
622
  @exchange.call(:"dump", Messages::DumpGetRequest, Messages::DumpGetReply, args)
424
623
  end
425
624
  end
426
625
  # Returns the asynchronous operation facade for this family.
427
- #--
428
626
  # @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
627
+ # @param [::Integer, nil] stream_capacity
628
+ # @return [AsyncOperations]
429
629
  def async(stream_capacity: nil)
430
630
  return @async_operations ||= build_async_facade(AsyncOperations) if stream_capacity.nil?
431
631
  build_async_facade(AsyncOperations, stream_capacity:)
432
632
  end
433
- #--
434
633
  # @rbs (*(:ovs_vport) groups) -> self
634
+ # @param [Array<:ovs_vport>] groups
635
+ # @return [self]
435
636
  def subscribe(*groups) = super
436
- #--
437
637
  # @rbs (*(:ovs_vport) groups) -> self
638
+ # @param [Array<:ovs_vport>] groups
639
+ # @return [self]
438
640
  def unsubscribe(*groups) = super
439
641
  end
440
642
  end; end