nl-linux 0.2.0 → 0.2.2

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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/Rakefile +31 -5
  4. data/generated/nl/linux/binder.rb +96 -0
  5. data/generated/nl/linux/conntrack.rb +1227 -0
  6. data/generated/nl/linux/dev_energymodel.rb +235 -0
  7. data/generated/nl/linux/devlink.rb +5177 -0
  8. data/generated/nl/linux/dpll.rb +944 -0
  9. data/generated/nl/linux/ethtool.rb +7121 -0
  10. data/generated/nl/linux/fou.rb +332 -0
  11. data/generated/nl/linux/handshake.rb +238 -0
  12. data/generated/nl/linux/lockd.rb +99 -0
  13. data/generated/nl/linux/mptcp_pm.rb +607 -0
  14. data/generated/nl/linux/net_shaper.rb +731 -0
  15. data/generated/nl/linux/netdev.rb +1450 -0
  16. data/generated/nl/linux/nfsd.rb +500 -0
  17. data/generated/nl/linux/nftables.rb +2924 -0
  18. data/generated/nl/linux/nl80211.rb +3393 -0
  19. data/generated/nl/linux/nlctrl.rb +397 -0
  20. data/generated/nl/linux/ovpn.rb +964 -0
  21. data/generated/nl/linux/ovs_datapath.rb +321 -0
  22. data/generated/nl/linux/ovs_flow.rb +1447 -0
  23. data/generated/nl/linux/ovs_vport.rb +391 -0
  24. data/generated/nl/linux/psp.rb +463 -0
  25. data/generated/nl/linux/rt_addr.rb +448 -0
  26. data/generated/nl/linux/rt_link.rb +4613 -0
  27. data/generated/nl/linux/rt_neigh.rb +897 -0
  28. data/generated/nl/linux/rt_route.rb +1126 -0
  29. data/generated/nl/linux/rt_rule.rb +708 -0
  30. data/generated/nl/linux/tc.rb +7066 -0
  31. data/generated/nl/linux/tcp_metrics.rb +317 -0
  32. data/generated/nl/linux/team.rb +339 -0
  33. data/generated/nl/linux/wireguard.rb +430 -0
  34. data/generated/nl/linux.rb +35 -0
  35. data/lib/nl/linux/version.rb +1 -1
  36. data/lib/nl-linux.rb +1 -1
  37. metadata +37 -7
  38. data/lib/nl/linux.rb +0 -3
@@ -0,0 +1,1450 @@
1
+ # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
+ #--
3
+ # frozen_string_literal: true
4
+ # rbs_inline: enabled
5
+ # This code is generated by Ynl::Generator. DO NOT EDIT.
6
+ require 'nl'
7
+ module Nl; module Linux
8
+ # netdev configuration over generic netlink.
9
+ class Netdev < ::Nl::Family
10
+ NAME = "netdev"
11
+ PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Genl.new("netdev"))
12
+ module Structs
13
+ end
14
+ module AttributeSets
15
+ class Dev < ::Nl::Protocols::Genl::AttributeSet
16
+ # Abstract class
17
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
18
+ end
19
+ class Ifindex < Attribute
20
+ TYPE = 1
21
+ NAME = :"ifindex"
22
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1 })
23
+ end
24
+ class Pad < Attribute
25
+ TYPE = 2
26
+ NAME = :"pad"
27
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Pad.new()
28
+ end
29
+ class XdpFeatures < Attribute
30
+ TYPE = 3
31
+ NAME = :"xdp_features"
32
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
33
+ end
34
+ class XdpZcMaxSegs < Attribute
35
+ TYPE = 4
36
+ NAME = :"xdp_zc_max_segs"
37
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1 })
38
+ end
39
+ class XdpRxMetadataFeatures < Attribute
40
+ TYPE = 5
41
+ NAME = :"xdp_rx_metadata_features"
42
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
43
+ end
44
+ class XskFeatures < Attribute
45
+ TYPE = 6
46
+ NAME = :"xsk_features"
47
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
48
+ end
49
+ # :nodoc:
50
+ BY_NAME = Ractor.make_shareable({:"ifindex" => Ifindex, :"pad" => Pad, :"xdp_features" => XdpFeatures, :"xdp_zc_max_segs" => XdpZcMaxSegs, :"xdp_rx_metadata_features" => XdpRxMetadataFeatures, :"xsk_features" => XskFeatures}) #: Hash[::Symbol, Attribute]
51
+ # :nodoc:
52
+ BY_TYPE = Ractor.make_shareable({1 => Ifindex, 2 => Pad, 3 => XdpFeatures, 4 => XdpZcMaxSegs, 5 => XdpRxMetadataFeatures, 6 => XskFeatures}) #: Hash[::Integer, Attribute]
53
+ class << self
54
+ # Looks up Attribute class by name.
55
+ #--
56
+ # @rbs name: Symbol
57
+ # @rbs return: Attribute
58
+ def by_name(name); BY_NAME.fetch(name); end
59
+ # Looks up Attribute class by type value.
60
+ #--
61
+ # @rbs type: Integer
62
+ # @rbs return: Attribute
63
+ def by_type(type); BY_TYPE.fetch(type); end
64
+ end
65
+ end
66
+ class IoUringProviderInfo < ::Nl::Protocols::Genl::AttributeSet
67
+ # Abstract class
68
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
69
+ end
70
+ # :nodoc:
71
+ BY_NAME = Ractor.make_shareable({}) #: Hash[::Symbol, Attribute]
72
+ # :nodoc:
73
+ BY_TYPE = Ractor.make_shareable({}) #: Hash[::Integer, Attribute]
74
+ class << self
75
+ # Looks up Attribute class by name.
76
+ #--
77
+ # @rbs name: Symbol
78
+ # @rbs return: Attribute
79
+ def by_name(name); BY_NAME.fetch(name); end
80
+ # Looks up Attribute class by type value.
81
+ #--
82
+ # @rbs type: Integer
83
+ # @rbs return: Attribute
84
+ def by_type(type); BY_TYPE.fetch(type); end
85
+ end
86
+ end
87
+ class PagePool < ::Nl::Protocols::Genl::AttributeSet
88
+ # Abstract class
89
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
90
+ end
91
+ class Id < Attribute
92
+ TYPE = 1
93
+ NAME = :"id"
94
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1; raise ArgumentError, "Value #{it.inspect} is greater than maximum 4294967295" unless it <= 4294967295 })
95
+ end
96
+ class Ifindex < Attribute
97
+ TYPE = 2
98
+ NAME = :"ifindex"
99
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1; raise ArgumentError, "Value #{it.inspect} is greater than maximum 2147483647" unless it <= 2147483647 })
100
+ end
101
+ class NapiId < Attribute
102
+ TYPE = 3
103
+ NAME = :"napi_id"
104
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1; raise ArgumentError, "Value #{it.inspect} is greater than maximum 4294967295" unless it <= 4294967295 })
105
+ end
106
+ class Inflight < Attribute
107
+ TYPE = 4
108
+ NAME = :"inflight"
109
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
110
+ end
111
+ class InflightMem < Attribute
112
+ TYPE = 5
113
+ NAME = :"inflight_mem"
114
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
115
+ end
116
+ class DetachTime < Attribute
117
+ TYPE = 6
118
+ NAME = :"detach_time"
119
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
120
+ end
121
+ class Dmabuf < Attribute
122
+ TYPE = 7
123
+ NAME = :"dmabuf"
124
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
125
+ end
126
+ class IoUring < Attribute
127
+ TYPE = 8
128
+ NAME = :"io_uring"
129
+ end
130
+ # :nodoc:
131
+ BY_NAME = Ractor.make_shareable({:"id" => Id, :"ifindex" => Ifindex, :"napi_id" => NapiId, :"inflight" => Inflight, :"inflight_mem" => InflightMem, :"detach_time" => DetachTime, :"dmabuf" => Dmabuf, :"io_uring" => IoUring}) #: Hash[::Symbol, Attribute]
132
+ # :nodoc:
133
+ BY_TYPE = Ractor.make_shareable({1 => Id, 2 => Ifindex, 3 => NapiId, 4 => Inflight, 5 => InflightMem, 6 => DetachTime, 7 => Dmabuf, 8 => IoUring}) #: Hash[::Integer, Attribute]
134
+ class << self
135
+ # Looks up Attribute class by name.
136
+ #--
137
+ # @rbs name: Symbol
138
+ # @rbs return: Attribute
139
+ def by_name(name); BY_NAME.fetch(name); end
140
+ # Looks up Attribute class by type value.
141
+ #--
142
+ # @rbs type: Integer
143
+ # @rbs return: Attribute
144
+ def by_type(type); BY_TYPE.fetch(type); end
145
+ end
146
+ end
147
+ class PagePoolInfo < ::Nl::Protocols::Genl::AttributeSet
148
+ # Abstract class
149
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
150
+ end
151
+ class Id < Attribute
152
+ TYPE = 1
153
+ NAME = :"id"
154
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1; raise ArgumentError, "Value #{it.inspect} is greater than maximum 4294967295" unless it <= 4294967295 })
155
+ end
156
+ class Ifindex < Attribute
157
+ TYPE = 2
158
+ NAME = :"ifindex"
159
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1; raise ArgumentError, "Value #{it.inspect} is greater than maximum 2147483647" unless it <= 2147483647 })
160
+ end
161
+ # :nodoc:
162
+ BY_NAME = Ractor.make_shareable({:"id" => Id, :"ifindex" => Ifindex}) #: Hash[::Symbol, Attribute]
163
+ # :nodoc:
164
+ BY_TYPE = Ractor.make_shareable({1 => Id, 2 => Ifindex}) #: Hash[::Integer, Attribute]
165
+ class << self
166
+ # Looks up Attribute class by name.
167
+ #--
168
+ # @rbs name: Symbol
169
+ # @rbs return: Attribute
170
+ def by_name(name); BY_NAME.fetch(name); end
171
+ # Looks up Attribute class by type value.
172
+ #--
173
+ # @rbs type: Integer
174
+ # @rbs return: Attribute
175
+ def by_type(type); BY_TYPE.fetch(type); end
176
+ end
177
+ end
178
+ # Page pool statistics, see docs for struct page_pool_stats
179
+ # for information about individual statistics.
180
+ class PagePoolStats < ::Nl::Protocols::Genl::AttributeSet
181
+ # Abstract class
182
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
183
+ end
184
+ class Info < Attribute
185
+ TYPE = 1
186
+ NAME = :"info"
187
+ end
188
+ class AllocFast < Attribute
189
+ TYPE = 8
190
+ NAME = :"alloc_fast"
191
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
192
+ end
193
+ class AllocSlow < Attribute
194
+ TYPE = 9
195
+ NAME = :"alloc_slow"
196
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
197
+ end
198
+ class AllocSlowHighOrder < Attribute
199
+ TYPE = 10
200
+ NAME = :"alloc_slow_high_order"
201
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
202
+ end
203
+ class AllocEmpty < Attribute
204
+ TYPE = 11
205
+ NAME = :"alloc_empty"
206
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
207
+ end
208
+ class AllocRefill < Attribute
209
+ TYPE = 12
210
+ NAME = :"alloc_refill"
211
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
212
+ end
213
+ class AllocWaive < Attribute
214
+ TYPE = 13
215
+ NAME = :"alloc_waive"
216
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
217
+ end
218
+ class RecycleCached < Attribute
219
+ TYPE = 14
220
+ NAME = :"recycle_cached"
221
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
222
+ end
223
+ class RecycleCacheFull < Attribute
224
+ TYPE = 15
225
+ NAME = :"recycle_cache_full"
226
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
227
+ end
228
+ class RecycleRing < Attribute
229
+ TYPE = 16
230
+ NAME = :"recycle_ring"
231
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
232
+ end
233
+ class RecycleRingFull < Attribute
234
+ TYPE = 17
235
+ NAME = :"recycle_ring_full"
236
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
237
+ end
238
+ class RecycleReleasedRefcnt < Attribute
239
+ TYPE = 18
240
+ NAME = :"recycle_released_refcnt"
241
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
242
+ end
243
+ # :nodoc:
244
+ BY_NAME = Ractor.make_shareable({:"info" => Info, :"alloc_fast" => AllocFast, :"alloc_slow" => AllocSlow, :"alloc_slow_high_order" => AllocSlowHighOrder, :"alloc_empty" => AllocEmpty, :"alloc_refill" => AllocRefill, :"alloc_waive" => AllocWaive, :"recycle_cached" => RecycleCached, :"recycle_cache_full" => RecycleCacheFull, :"recycle_ring" => RecycleRing, :"recycle_ring_full" => RecycleRingFull, :"recycle_released_refcnt" => RecycleReleasedRefcnt}) #: Hash[::Symbol, Attribute]
245
+ # :nodoc:
246
+ BY_TYPE = Ractor.make_shareable({1 => Info, 8 => AllocFast, 9 => AllocSlow, 10 => AllocSlowHighOrder, 11 => AllocEmpty, 12 => AllocRefill, 13 => AllocWaive, 14 => RecycleCached, 15 => RecycleCacheFull, 16 => RecycleRing, 17 => RecycleRingFull, 18 => RecycleReleasedRefcnt}) #: Hash[::Integer, Attribute]
247
+ class << self
248
+ # Looks up Attribute class by name.
249
+ #--
250
+ # @rbs name: Symbol
251
+ # @rbs return: Attribute
252
+ def by_name(name); BY_NAME.fetch(name); end
253
+ # Looks up Attribute class by type value.
254
+ #--
255
+ # @rbs type: Integer
256
+ # @rbs return: Attribute
257
+ def by_type(type); BY_TYPE.fetch(type); end
258
+ end
259
+ end
260
+ class Napi < ::Nl::Protocols::Genl::AttributeSet
261
+ # Abstract class
262
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
263
+ end
264
+ class Ifindex < Attribute
265
+ TYPE = 1
266
+ NAME = :"ifindex"
267
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1 })
268
+ end
269
+ class Id < Attribute
270
+ TYPE = 2
271
+ NAME = :"id"
272
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
273
+ end
274
+ class Irq < Attribute
275
+ TYPE = 3
276
+ NAME = :"irq"
277
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
278
+ end
279
+ class Pid < Attribute
280
+ TYPE = 4
281
+ NAME = :"pid"
282
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
283
+ end
284
+ class DeferHardIrqs < Attribute
285
+ TYPE = 5
286
+ NAME = :"defer_hard_irqs"
287
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: -> { raise ArgumentError, "Value #{it.inspect} is greater than maximum 2147483647" unless it <= 2147483647 })
288
+ end
289
+ class GroFlushTimeout < Attribute
290
+ TYPE = 6
291
+ NAME = :"gro_flush_timeout"
292
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
293
+ end
294
+ class IrqSuspendTimeout < Attribute
295
+ TYPE = 7
296
+ NAME = :"irq_suspend_timeout"
297
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
298
+ end
299
+ class Threaded < Attribute
300
+ TYPE = 8
301
+ NAME = :"threaded"
302
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
303
+ end
304
+ # :nodoc:
305
+ BY_NAME = Ractor.make_shareable({:"ifindex" => Ifindex, :"id" => Id, :"irq" => Irq, :"pid" => Pid, :"defer_hard_irqs" => DeferHardIrqs, :"gro_flush_timeout" => GroFlushTimeout, :"irq_suspend_timeout" => IrqSuspendTimeout, :"threaded" => Threaded}) #: Hash[::Symbol, Attribute]
306
+ # :nodoc:
307
+ BY_TYPE = Ractor.make_shareable({1 => Ifindex, 2 => Id, 3 => Irq, 4 => Pid, 5 => DeferHardIrqs, 6 => GroFlushTimeout, 7 => IrqSuspendTimeout, 8 => Threaded}) #: Hash[::Integer, Attribute]
308
+ class << self
309
+ # Looks up Attribute class by name.
310
+ #--
311
+ # @rbs name: Symbol
312
+ # @rbs return: Attribute
313
+ def by_name(name); BY_NAME.fetch(name); end
314
+ # Looks up Attribute class by type value.
315
+ #--
316
+ # @rbs type: Integer
317
+ # @rbs return: Attribute
318
+ def by_type(type); BY_TYPE.fetch(type); end
319
+ end
320
+ end
321
+ class XskInfo < ::Nl::Protocols::Genl::AttributeSet
322
+ # Abstract class
323
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
324
+ end
325
+ # :nodoc:
326
+ BY_NAME = Ractor.make_shareable({}) #: Hash[::Symbol, Attribute]
327
+ # :nodoc:
328
+ BY_TYPE = Ractor.make_shareable({}) #: Hash[::Integer, Attribute]
329
+ class << self
330
+ # Looks up Attribute class by name.
331
+ #--
332
+ # @rbs name: Symbol
333
+ # @rbs return: Attribute
334
+ def by_name(name); BY_NAME.fetch(name); end
335
+ # Looks up Attribute class by type value.
336
+ #--
337
+ # @rbs type: Integer
338
+ # @rbs return: Attribute
339
+ def by_type(type); BY_TYPE.fetch(type); end
340
+ end
341
+ end
342
+ class Queue < ::Nl::Protocols::Genl::AttributeSet
343
+ # Abstract class
344
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
345
+ end
346
+ class Id < Attribute
347
+ TYPE = 1
348
+ NAME = :"id"
349
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
350
+ end
351
+ class Ifindex < Attribute
352
+ TYPE = 2
353
+ NAME = :"ifindex"
354
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1 })
355
+ end
356
+ class Type < Attribute
357
+ TYPE = 3
358
+ NAME = :"type"
359
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
360
+ end
361
+ class NapiId < Attribute
362
+ TYPE = 4
363
+ NAME = :"napi_id"
364
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
365
+ end
366
+ class Dmabuf < Attribute
367
+ TYPE = 5
368
+ NAME = :"dmabuf"
369
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
370
+ end
371
+ class IoUring < Attribute
372
+ TYPE = 6
373
+ NAME = :"io_uring"
374
+ end
375
+ class Xsk < Attribute
376
+ TYPE = 7
377
+ NAME = :"xsk"
378
+ end
379
+ # :nodoc:
380
+ BY_NAME = Ractor.make_shareable({:"id" => Id, :"ifindex" => Ifindex, :"type" => Type, :"napi_id" => NapiId, :"dmabuf" => Dmabuf, :"io_uring" => IoUring, :"xsk" => Xsk}) #: Hash[::Symbol, Attribute]
381
+ # :nodoc:
382
+ BY_TYPE = Ractor.make_shareable({1 => Id, 2 => Ifindex, 3 => Type, 4 => NapiId, 5 => Dmabuf, 6 => IoUring, 7 => Xsk}) #: Hash[::Integer, Attribute]
383
+ class << self
384
+ # Looks up Attribute class by name.
385
+ #--
386
+ # @rbs name: Symbol
387
+ # @rbs return: Attribute
388
+ def by_name(name); BY_NAME.fetch(name); end
389
+ # Looks up Attribute class by type value.
390
+ #--
391
+ # @rbs type: Integer
392
+ # @rbs return: Attribute
393
+ def by_type(type); BY_TYPE.fetch(type); end
394
+ end
395
+ end
396
+ # Get device statistics, scoped to a device or a queue.
397
+ # These statistics extend (and partially duplicate) statistics available
398
+ # in struct rtnl_link_stats64.
399
+ # Value of the `scope` attribute determines how statistics are
400
+ # aggregated. When aggregated for the entire device the statistics
401
+ # represent the total number of events since last explicit reset of
402
+ # the device (i.e. not a reconfiguration like changing queue count).
403
+ # When reported per-queue, however, the statistics may not add
404
+ # up to the total number of events, will only be reported for currently
405
+ # active objects, and will likely report the number of events since last
406
+ # reconfiguration.
407
+ class Qstats < ::Nl::Protocols::Genl::AttributeSet
408
+ # Abstract class
409
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
410
+ end
411
+ class Ifindex < Attribute
412
+ TYPE = 1
413
+ NAME = :"ifindex"
414
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1 })
415
+ end
416
+ class QueueType < Attribute
417
+ TYPE = 2
418
+ NAME = :"queue_type"
419
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
420
+ end
421
+ class QueueId < Attribute
422
+ TYPE = 3
423
+ NAME = :"queue_id"
424
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
425
+ end
426
+ class Scope < Attribute
427
+ TYPE = 4
428
+ NAME = :"scope"
429
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
430
+ end
431
+ class RxPackets < Attribute
432
+ TYPE = 8
433
+ NAME = :"rx_packets"
434
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
435
+ end
436
+ class RxBytes < Attribute
437
+ TYPE = 9
438
+ NAME = :"rx_bytes"
439
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
440
+ end
441
+ class TxPackets < Attribute
442
+ TYPE = 10
443
+ NAME = :"tx_packets"
444
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
445
+ end
446
+ class TxBytes < Attribute
447
+ TYPE = 11
448
+ NAME = :"tx_bytes"
449
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
450
+ end
451
+ class RxAllocFail < Attribute
452
+ TYPE = 12
453
+ NAME = :"rx_alloc_fail"
454
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
455
+ end
456
+ class RxHwDrops < Attribute
457
+ TYPE = 13
458
+ NAME = :"rx_hw_drops"
459
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
460
+ end
461
+ class RxHwDropOverruns < Attribute
462
+ TYPE = 14
463
+ NAME = :"rx_hw_drop_overruns"
464
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
465
+ end
466
+ class RxCsumComplete < Attribute
467
+ TYPE = 15
468
+ NAME = :"rx_csum_complete"
469
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
470
+ end
471
+ class RxCsumUnnecessary < Attribute
472
+ TYPE = 16
473
+ NAME = :"rx_csum_unnecessary"
474
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
475
+ end
476
+ class RxCsumNone < Attribute
477
+ TYPE = 17
478
+ NAME = :"rx_csum_none"
479
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
480
+ end
481
+ class RxCsumBad < Attribute
482
+ TYPE = 18
483
+ NAME = :"rx_csum_bad"
484
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
485
+ end
486
+ class RxHwGroPackets < Attribute
487
+ TYPE = 19
488
+ NAME = :"rx_hw_gro_packets"
489
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
490
+ end
491
+ class RxHwGroBytes < Attribute
492
+ TYPE = 20
493
+ NAME = :"rx_hw_gro_bytes"
494
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
495
+ end
496
+ class RxHwGroWirePackets < Attribute
497
+ TYPE = 21
498
+ NAME = :"rx_hw_gro_wire_packets"
499
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
500
+ end
501
+ class RxHwGroWireBytes < Attribute
502
+ TYPE = 22
503
+ NAME = :"rx_hw_gro_wire_bytes"
504
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
505
+ end
506
+ class RxHwDropRatelimits < Attribute
507
+ TYPE = 23
508
+ NAME = :"rx_hw_drop_ratelimits"
509
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
510
+ end
511
+ class TxHwDrops < Attribute
512
+ TYPE = 24
513
+ NAME = :"tx_hw_drops"
514
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
515
+ end
516
+ class TxHwDropErrors < Attribute
517
+ TYPE = 25
518
+ NAME = :"tx_hw_drop_errors"
519
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
520
+ end
521
+ class TxCsumNone < Attribute
522
+ TYPE = 26
523
+ NAME = :"tx_csum_none"
524
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
525
+ end
526
+ class TxNeedsCsum < Attribute
527
+ TYPE = 27
528
+ NAME = :"tx_needs_csum"
529
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
530
+ end
531
+ class TxHwGsoPackets < Attribute
532
+ TYPE = 28
533
+ NAME = :"tx_hw_gso_packets"
534
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
535
+ end
536
+ class TxHwGsoBytes < Attribute
537
+ TYPE = 29
538
+ NAME = :"tx_hw_gso_bytes"
539
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
540
+ end
541
+ class TxHwGsoWirePackets < Attribute
542
+ TYPE = 30
543
+ NAME = :"tx_hw_gso_wire_packets"
544
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
545
+ end
546
+ class TxHwGsoWireBytes < Attribute
547
+ TYPE = 31
548
+ NAME = :"tx_hw_gso_wire_bytes"
549
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
550
+ end
551
+ class TxHwDropRatelimits < Attribute
552
+ TYPE = 32
553
+ NAME = :"tx_hw_drop_ratelimits"
554
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
555
+ end
556
+ class TxStop < Attribute
557
+ TYPE = 33
558
+ NAME = :"tx_stop"
559
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
560
+ end
561
+ class TxWake < Attribute
562
+ TYPE = 34
563
+ NAME = :"tx_wake"
564
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
565
+ end
566
+ # :nodoc:
567
+ BY_NAME = Ractor.make_shareable({:"ifindex" => Ifindex, :"queue_type" => QueueType, :"queue_id" => QueueId, :"scope" => Scope, :"rx_packets" => RxPackets, :"rx_bytes" => RxBytes, :"tx_packets" => TxPackets, :"tx_bytes" => TxBytes, :"rx_alloc_fail" => RxAllocFail, :"rx_hw_drops" => RxHwDrops, :"rx_hw_drop_overruns" => RxHwDropOverruns, :"rx_csum_complete" => RxCsumComplete, :"rx_csum_unnecessary" => RxCsumUnnecessary, :"rx_csum_none" => RxCsumNone, :"rx_csum_bad" => RxCsumBad, :"rx_hw_gro_packets" => RxHwGroPackets, :"rx_hw_gro_bytes" => RxHwGroBytes, :"rx_hw_gro_wire_packets" => RxHwGroWirePackets, :"rx_hw_gro_wire_bytes" => RxHwGroWireBytes, :"rx_hw_drop_ratelimits" => RxHwDropRatelimits, :"tx_hw_drops" => TxHwDrops, :"tx_hw_drop_errors" => TxHwDropErrors, :"tx_csum_none" => TxCsumNone, :"tx_needs_csum" => TxNeedsCsum, :"tx_hw_gso_packets" => TxHwGsoPackets, :"tx_hw_gso_bytes" => TxHwGsoBytes, :"tx_hw_gso_wire_packets" => TxHwGsoWirePackets, :"tx_hw_gso_wire_bytes" => TxHwGsoWireBytes, :"tx_hw_drop_ratelimits" => TxHwDropRatelimits, :"tx_stop" => TxStop, :"tx_wake" => TxWake}) #: Hash[::Symbol, Attribute]
568
+ # :nodoc:
569
+ BY_TYPE = Ractor.make_shareable({1 => Ifindex, 2 => QueueType, 3 => QueueId, 4 => Scope, 8 => RxPackets, 9 => RxBytes, 10 => TxPackets, 11 => TxBytes, 12 => RxAllocFail, 13 => RxHwDrops, 14 => RxHwDropOverruns, 15 => RxCsumComplete, 16 => RxCsumUnnecessary, 17 => RxCsumNone, 18 => RxCsumBad, 19 => RxHwGroPackets, 20 => RxHwGroBytes, 21 => RxHwGroWirePackets, 22 => RxHwGroWireBytes, 23 => RxHwDropRatelimits, 24 => TxHwDrops, 25 => TxHwDropErrors, 26 => TxCsumNone, 27 => TxNeedsCsum, 28 => TxHwGsoPackets, 29 => TxHwGsoBytes, 30 => TxHwGsoWirePackets, 31 => TxHwGsoWireBytes, 32 => TxHwDropRatelimits, 33 => TxStop, 34 => TxWake}) #: Hash[::Integer, Attribute]
570
+ class << self
571
+ # Looks up Attribute class by name.
572
+ #--
573
+ # @rbs name: Symbol
574
+ # @rbs return: Attribute
575
+ def by_name(name); BY_NAME.fetch(name); end
576
+ # Looks up Attribute class by type value.
577
+ #--
578
+ # @rbs type: Integer
579
+ # @rbs return: Attribute
580
+ def by_type(type); BY_TYPE.fetch(type); end
581
+ end
582
+ end
583
+ class QueueId < ::Nl::Protocols::Genl::AttributeSet
584
+ # Abstract class
585
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
586
+ end
587
+ class Id < Attribute
588
+ TYPE = 1
589
+ NAME = :"id"
590
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
591
+ end
592
+ class Type < Attribute
593
+ TYPE = 3
594
+ NAME = :"type"
595
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
596
+ end
597
+ # :nodoc:
598
+ BY_NAME = Ractor.make_shareable({:"id" => Id, :"type" => Type}) #: Hash[::Symbol, Attribute]
599
+ # :nodoc:
600
+ BY_TYPE = Ractor.make_shareable({1 => Id, 3 => Type}) #: Hash[::Integer, Attribute]
601
+ class << self
602
+ # Looks up Attribute class by name.
603
+ #--
604
+ # @rbs name: Symbol
605
+ # @rbs return: Attribute
606
+ def by_name(name); BY_NAME.fetch(name); end
607
+ # Looks up Attribute class by type value.
608
+ #--
609
+ # @rbs type: Integer
610
+ # @rbs return: Attribute
611
+ def by_type(type); BY_TYPE.fetch(type); end
612
+ end
613
+ end
614
+ class Dmabuf < ::Nl::Protocols::Genl::AttributeSet
615
+ # Abstract class
616
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
617
+ end
618
+ class Ifindex < Attribute
619
+ TYPE = 1
620
+ NAME = :"ifindex"
621
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1 })
622
+ end
623
+ class Queues < Attribute
624
+ TYPE = 2
625
+ NAME = :"queues"
626
+ end
627
+ class Fd < Attribute
628
+ TYPE = 3
629
+ NAME = :"fd"
630
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
631
+ end
632
+ class Id < Attribute
633
+ TYPE = 4
634
+ NAME = :"id"
635
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1 })
636
+ end
637
+ # :nodoc:
638
+ BY_NAME = Ractor.make_shareable({:"ifindex" => Ifindex, :"queues" => Queues, :"fd" => Fd, :"id" => Id}) #: Hash[::Symbol, Attribute]
639
+ # :nodoc:
640
+ BY_TYPE = Ractor.make_shareable({1 => Ifindex, 2 => Queues, 3 => Fd, 4 => Id}) #: Hash[::Integer, Attribute]
641
+ class << self
642
+ # Looks up Attribute class by name.
643
+ #--
644
+ # @rbs name: Symbol
645
+ # @rbs return: Attribute
646
+ def by_name(name); BY_NAME.fetch(name); end
647
+ # Looks up Attribute class by type value.
648
+ #--
649
+ # @rbs type: Integer
650
+ # @rbs return: Attribute
651
+ def by_type(type); BY_TYPE.fetch(type); end
652
+ end
653
+ end
654
+ PagePool::IoUring::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(IoUringProviderInfo)
655
+ PagePoolStats::Info::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(PagePoolInfo)
656
+ Queue::IoUring::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(IoUringProviderInfo)
657
+ Queue::Xsk::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(XskInfo)
658
+ Dmabuf::Queues::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(QueueId)
659
+ end
660
+ module Messages
661
+ # Get / dump information about a netdev.
662
+ class DoDevGetRequest < ::Nl::Protocols::Genl::Message
663
+ TYPE = 1
664
+ FIXED_HEADER = nil
665
+ ATTRIBUTE_SET = AttributeSets::Dev
666
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex])
667
+ # Gets the value of `ifindex` attribute in the message.
668
+ #--
669
+ # @rbs return: ::Integer
670
+ def ifindex; attributes[:"ifindex"]&.value; end
671
+ end
672
+ # Get / dump information about a netdev.
673
+ class DoDevGetReply < ::Nl::Protocols::Genl::Message
674
+ TYPE = 1
675
+ FIXED_HEADER = nil
676
+ ATTRIBUTE_SET = AttributeSets::Dev
677
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex xdp_features xdp_zc_max_segs xdp_rx_metadata_features xsk_features])
678
+ # Gets the value of `ifindex` attribute in the message.
679
+ #--
680
+ # @rbs return: ::Integer
681
+ def ifindex; attributes[:"ifindex"]&.value; end
682
+ # Gets the value of `xdp-features` attribute in the message.
683
+ #--
684
+ # @rbs return: ::Integer
685
+ def xdp_features; attributes[:"xdp_features"]&.value; end
686
+ # Gets the value of `xdp-zc-max-segs` attribute in the message.
687
+ #--
688
+ # @rbs return: ::Integer
689
+ def xdp_zc_max_segs; attributes[:"xdp_zc_max_segs"]&.value; end
690
+ # Gets the value of `xdp-rx-metadata-features` attribute in the message.
691
+ #--
692
+ # @rbs return: ::Integer
693
+ def xdp_rx_metadata_features; attributes[:"xdp_rx_metadata_features"]&.value; end
694
+ # Gets the value of `xsk-features` attribute in the message.
695
+ #--
696
+ # @rbs return: ::Integer
697
+ def xsk_features; attributes[:"xsk_features"]&.value; end
698
+ end
699
+ # Get / dump information about a netdev.
700
+ class DumpDevGetReply < ::Nl::Protocols::Genl::Message
701
+ TYPE = 1
702
+ FIXED_HEADER = nil
703
+ ATTRIBUTE_SET = AttributeSets::Dev
704
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex xdp_features xdp_zc_max_segs xdp_rx_metadata_features xsk_features])
705
+ # Gets the value of `ifindex` attribute in the message.
706
+ #--
707
+ # @rbs return: ::Integer
708
+ def ifindex; attributes[:"ifindex"]&.value; end
709
+ # Gets the value of `xdp-features` attribute in the message.
710
+ #--
711
+ # @rbs return: ::Integer
712
+ def xdp_features; attributes[:"xdp_features"]&.value; end
713
+ # Gets the value of `xdp-zc-max-segs` attribute in the message.
714
+ #--
715
+ # @rbs return: ::Integer
716
+ def xdp_zc_max_segs; attributes[:"xdp_zc_max_segs"]&.value; end
717
+ # Gets the value of `xdp-rx-metadata-features` attribute in the message.
718
+ #--
719
+ # @rbs return: ::Integer
720
+ def xdp_rx_metadata_features; attributes[:"xdp_rx_metadata_features"]&.value; end
721
+ # Gets the value of `xsk-features` attribute in the message.
722
+ #--
723
+ # @rbs return: ::Integer
724
+ def xsk_features; attributes[:"xsk_features"]&.value; end
725
+ end
726
+ # Get / dump information about Page Pools.
727
+ # Only Page Pools associated by the driver with a net_device
728
+ # can be listed. ifindex will not be reported if the net_device
729
+ # no longer exists.
730
+ class DoPagePoolGetRequest < ::Nl::Protocols::Genl::Message
731
+ TYPE = 5
732
+ FIXED_HEADER = nil
733
+ ATTRIBUTE_SET = AttributeSets::PagePool
734
+ ATTRIBUTES = Ractor.make_shareable(%i[id])
735
+ # Gets the value of `id` attribute in the message.
736
+ #--
737
+ # @rbs return: ::Integer
738
+ def id; attributes[:"id"]&.value; end
739
+ end
740
+ # Get / dump information about Page Pools.
741
+ # Only Page Pools associated by the driver with a net_device
742
+ # can be listed. ifindex will not be reported if the net_device
743
+ # no longer exists.
744
+ class DoPagePoolGetReply < ::Nl::Protocols::Genl::Message
745
+ TYPE = 5
746
+ FIXED_HEADER = nil
747
+ ATTRIBUTE_SET = AttributeSets::PagePool
748
+ ATTRIBUTES = Ractor.make_shareable(%i[id ifindex napi_id inflight inflight_mem detach_time dmabuf io_uring])
749
+ # Gets the value of `id` attribute in the message.
750
+ #--
751
+ # @rbs return: ::Integer
752
+ def id; attributes[:"id"]&.value; end
753
+ # Gets the value of `ifindex` attribute in the message.
754
+ #--
755
+ # @rbs return: ::Integer
756
+ def ifindex; attributes[:"ifindex"]&.value; end
757
+ # Gets the value of `napi-id` attribute in the message.
758
+ #--
759
+ # @rbs return: ::Integer
760
+ def napi_id; attributes[:"napi_id"]&.value; end
761
+ # Gets the value of `inflight` attribute in the message.
762
+ #--
763
+ # @rbs return: ::Integer
764
+ def inflight; attributes[:"inflight"]&.value; end
765
+ # Gets the value of `inflight-mem` attribute in the message.
766
+ #--
767
+ # @rbs return: ::Integer
768
+ def inflight_mem; attributes[:"inflight_mem"]&.value; end
769
+ # Gets the value of `detach-time` attribute in the message.
770
+ #--
771
+ # @rbs return: ::Integer
772
+ def detach_time; attributes[:"detach_time"]&.value; end
773
+ # Gets the value of `dmabuf` attribute in the message.
774
+ #--
775
+ # @rbs return: ::Integer
776
+ def dmabuf; attributes[:"dmabuf"]&.value; end
777
+ # Gets the value of `io-uring` attribute in the message.
778
+ #--
779
+ # @rbs return: AttributeSets::IoUringProviderInfo
780
+ def io_uring; attributes[:"io_uring"]&.value; end
781
+ end
782
+ # Get / dump information about Page Pools.
783
+ # Only Page Pools associated by the driver with a net_device
784
+ # can be listed. ifindex will not be reported if the net_device
785
+ # no longer exists.
786
+ class DumpPagePoolGetReply < ::Nl::Protocols::Genl::Message
787
+ TYPE = 5
788
+ FIXED_HEADER = nil
789
+ ATTRIBUTE_SET = AttributeSets::PagePool
790
+ ATTRIBUTES = Ractor.make_shareable(%i[id ifindex napi_id inflight inflight_mem detach_time dmabuf io_uring])
791
+ # Gets the value of `id` attribute in the message.
792
+ #--
793
+ # @rbs return: ::Integer
794
+ def id; attributes[:"id"]&.value; end
795
+ # Gets the value of `ifindex` attribute in the message.
796
+ #--
797
+ # @rbs return: ::Integer
798
+ def ifindex; attributes[:"ifindex"]&.value; end
799
+ # Gets the value of `napi-id` attribute in the message.
800
+ #--
801
+ # @rbs return: ::Integer
802
+ def napi_id; attributes[:"napi_id"]&.value; end
803
+ # Gets the value of `inflight` attribute in the message.
804
+ #--
805
+ # @rbs return: ::Integer
806
+ def inflight; attributes[:"inflight"]&.value; end
807
+ # Gets the value of `inflight-mem` attribute in the message.
808
+ #--
809
+ # @rbs return: ::Integer
810
+ def inflight_mem; attributes[:"inflight_mem"]&.value; end
811
+ # Gets the value of `detach-time` attribute in the message.
812
+ #--
813
+ # @rbs return: ::Integer
814
+ def detach_time; attributes[:"detach_time"]&.value; end
815
+ # Gets the value of `dmabuf` attribute in the message.
816
+ #--
817
+ # @rbs return: ::Integer
818
+ def dmabuf; attributes[:"dmabuf"]&.value; end
819
+ # Gets the value of `io-uring` attribute in the message.
820
+ #--
821
+ # @rbs return: AttributeSets::IoUringProviderInfo
822
+ def io_uring; attributes[:"io_uring"]&.value; end
823
+ end
824
+ # Get page pool statistics.
825
+ class DoPagePoolStatsGetRequest < ::Nl::Protocols::Genl::Message
826
+ TYPE = 9
827
+ FIXED_HEADER = nil
828
+ ATTRIBUTE_SET = AttributeSets::PagePoolStats
829
+ ATTRIBUTES = Ractor.make_shareable(%i[info])
830
+ # Gets the value of `info` attribute in the message.
831
+ #--
832
+ # @rbs return: AttributeSets::PagePoolInfo
833
+ def info; attributes[:"info"]&.value; end
834
+ end
835
+ # Get page pool statistics.
836
+ class DoPagePoolStatsGetReply < ::Nl::Protocols::Genl::Message
837
+ TYPE = 9
838
+ FIXED_HEADER = nil
839
+ ATTRIBUTE_SET = AttributeSets::PagePoolStats
840
+ ATTRIBUTES = Ractor.make_shareable(%i[info alloc_fast alloc_slow alloc_slow_high_order alloc_empty alloc_refill alloc_waive recycle_cached recycle_cache_full recycle_ring recycle_ring_full recycle_released_refcnt])
841
+ # Gets the value of `info` attribute in the message.
842
+ #--
843
+ # @rbs return: AttributeSets::PagePoolInfo
844
+ def info; attributes[:"info"]&.value; end
845
+ # Gets the value of `alloc-fast` attribute in the message.
846
+ #--
847
+ # @rbs return: ::Integer
848
+ def alloc_fast; attributes[:"alloc_fast"]&.value; end
849
+ # Gets the value of `alloc-slow` attribute in the message.
850
+ #--
851
+ # @rbs return: ::Integer
852
+ def alloc_slow; attributes[:"alloc_slow"]&.value; end
853
+ # Gets the value of `alloc-slow-high-order` attribute in the message.
854
+ #--
855
+ # @rbs return: ::Integer
856
+ def alloc_slow_high_order; attributes[:"alloc_slow_high_order"]&.value; end
857
+ # Gets the value of `alloc-empty` attribute in the message.
858
+ #--
859
+ # @rbs return: ::Integer
860
+ def alloc_empty; attributes[:"alloc_empty"]&.value; end
861
+ # Gets the value of `alloc-refill` attribute in the message.
862
+ #--
863
+ # @rbs return: ::Integer
864
+ def alloc_refill; attributes[:"alloc_refill"]&.value; end
865
+ # Gets the value of `alloc-waive` attribute in the message.
866
+ #--
867
+ # @rbs return: ::Integer
868
+ def alloc_waive; attributes[:"alloc_waive"]&.value; end
869
+ # Gets the value of `recycle-cached` attribute in the message.
870
+ #--
871
+ # @rbs return: ::Integer
872
+ def recycle_cached; attributes[:"recycle_cached"]&.value; end
873
+ # Gets the value of `recycle-cache-full` attribute in the message.
874
+ #--
875
+ # @rbs return: ::Integer
876
+ def recycle_cache_full; attributes[:"recycle_cache_full"]&.value; end
877
+ # Gets the value of `recycle-ring` attribute in the message.
878
+ #--
879
+ # @rbs return: ::Integer
880
+ def recycle_ring; attributes[:"recycle_ring"]&.value; end
881
+ # Gets the value of `recycle-ring-full` attribute in the message.
882
+ #--
883
+ # @rbs return: ::Integer
884
+ def recycle_ring_full; attributes[:"recycle_ring_full"]&.value; end
885
+ # Gets the value of `recycle-released-refcnt` attribute in the message.
886
+ #--
887
+ # @rbs return: ::Integer
888
+ def recycle_released_refcnt; attributes[:"recycle_released_refcnt"]&.value; end
889
+ end
890
+ # Get page pool statistics.
891
+ class DumpPagePoolStatsGetReply < ::Nl::Protocols::Genl::Message
892
+ TYPE = 9
893
+ FIXED_HEADER = nil
894
+ ATTRIBUTE_SET = AttributeSets::PagePoolStats
895
+ ATTRIBUTES = Ractor.make_shareable(%i[info alloc_fast alloc_slow alloc_slow_high_order alloc_empty alloc_refill alloc_waive recycle_cached recycle_cache_full recycle_ring recycle_ring_full recycle_released_refcnt])
896
+ # Gets the value of `info` attribute in the message.
897
+ #--
898
+ # @rbs return: AttributeSets::PagePoolInfo
899
+ def info; attributes[:"info"]&.value; end
900
+ # Gets the value of `alloc-fast` attribute in the message.
901
+ #--
902
+ # @rbs return: ::Integer
903
+ def alloc_fast; attributes[:"alloc_fast"]&.value; end
904
+ # Gets the value of `alloc-slow` attribute in the message.
905
+ #--
906
+ # @rbs return: ::Integer
907
+ def alloc_slow; attributes[:"alloc_slow"]&.value; end
908
+ # Gets the value of `alloc-slow-high-order` attribute in the message.
909
+ #--
910
+ # @rbs return: ::Integer
911
+ def alloc_slow_high_order; attributes[:"alloc_slow_high_order"]&.value; end
912
+ # Gets the value of `alloc-empty` attribute in the message.
913
+ #--
914
+ # @rbs return: ::Integer
915
+ def alloc_empty; attributes[:"alloc_empty"]&.value; end
916
+ # Gets the value of `alloc-refill` attribute in the message.
917
+ #--
918
+ # @rbs return: ::Integer
919
+ def alloc_refill; attributes[:"alloc_refill"]&.value; end
920
+ # Gets the value of `alloc-waive` attribute in the message.
921
+ #--
922
+ # @rbs return: ::Integer
923
+ def alloc_waive; attributes[:"alloc_waive"]&.value; end
924
+ # Gets the value of `recycle-cached` attribute in the message.
925
+ #--
926
+ # @rbs return: ::Integer
927
+ def recycle_cached; attributes[:"recycle_cached"]&.value; end
928
+ # Gets the value of `recycle-cache-full` attribute in the message.
929
+ #--
930
+ # @rbs return: ::Integer
931
+ def recycle_cache_full; attributes[:"recycle_cache_full"]&.value; end
932
+ # Gets the value of `recycle-ring` attribute in the message.
933
+ #--
934
+ # @rbs return: ::Integer
935
+ def recycle_ring; attributes[:"recycle_ring"]&.value; end
936
+ # Gets the value of `recycle-ring-full` attribute in the message.
937
+ #--
938
+ # @rbs return: ::Integer
939
+ def recycle_ring_full; attributes[:"recycle_ring_full"]&.value; end
940
+ # Gets the value of `recycle-released-refcnt` attribute in the message.
941
+ #--
942
+ # @rbs return: ::Integer
943
+ def recycle_released_refcnt; attributes[:"recycle_released_refcnt"]&.value; end
944
+ end
945
+ # Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
946
+ class DoQueueGetRequest < ::Nl::Protocols::Genl::Message
947
+ TYPE = 10
948
+ FIXED_HEADER = nil
949
+ ATTRIBUTE_SET = AttributeSets::Queue
950
+ ATTRIBUTES = Ractor.make_shareable(%i[id ifindex type])
951
+ # Gets the value of `id` attribute in the message.
952
+ #--
953
+ # @rbs return: ::Integer
954
+ def id; attributes[:"id"]&.value; end
955
+ # Gets the value of `ifindex` attribute in the message.
956
+ #--
957
+ # @rbs return: ::Integer
958
+ def ifindex; attributes[:"ifindex"]&.value; end
959
+ # Gets the value of `type` attribute in the message.
960
+ #--
961
+ # @rbs return: ::Integer
962
+ def type; attributes[:"type"]&.value; end
963
+ end
964
+ # Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
965
+ class DoQueueGetReply < ::Nl::Protocols::Genl::Message
966
+ TYPE = 10
967
+ FIXED_HEADER = nil
968
+ ATTRIBUTE_SET = AttributeSets::Queue
969
+ ATTRIBUTES = Ractor.make_shareable(%i[id ifindex type napi_id dmabuf io_uring xsk])
970
+ # Gets the value of `id` attribute in the message.
971
+ #--
972
+ # @rbs return: ::Integer
973
+ def id; attributes[:"id"]&.value; end
974
+ # Gets the value of `ifindex` attribute in the message.
975
+ #--
976
+ # @rbs return: ::Integer
977
+ def ifindex; attributes[:"ifindex"]&.value; end
978
+ # Gets the value of `type` attribute in the message.
979
+ #--
980
+ # @rbs return: ::Integer
981
+ def type; attributes[:"type"]&.value; end
982
+ # Gets the value of `napi-id` attribute in the message.
983
+ #--
984
+ # @rbs return: ::Integer
985
+ def napi_id; attributes[:"napi_id"]&.value; end
986
+ # Gets the value of `dmabuf` attribute in the message.
987
+ #--
988
+ # @rbs return: ::Integer
989
+ def dmabuf; attributes[:"dmabuf"]&.value; end
990
+ # Gets the value of `io-uring` attribute in the message.
991
+ #--
992
+ # @rbs return: AttributeSets::IoUringProviderInfo
993
+ def io_uring; attributes[:"io_uring"]&.value; end
994
+ # Gets the value of `xsk` attribute in the message.
995
+ #--
996
+ # @rbs return: AttributeSets::XskInfo
997
+ def xsk; attributes[:"xsk"]&.value; end
998
+ end
999
+ # Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
1000
+ class DumpQueueGetRequest < ::Nl::Protocols::Genl::Message
1001
+ TYPE = 10
1002
+ FIXED_HEADER = nil
1003
+ ATTRIBUTE_SET = AttributeSets::Queue
1004
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex])
1005
+ # Gets the value of `ifindex` attribute in the message.
1006
+ #--
1007
+ # @rbs return: ::Integer
1008
+ def ifindex; attributes[:"ifindex"]&.value; end
1009
+ end
1010
+ # Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
1011
+ class DumpQueueGetReply < ::Nl::Protocols::Genl::Message
1012
+ TYPE = 10
1013
+ FIXED_HEADER = nil
1014
+ ATTRIBUTE_SET = AttributeSets::Queue
1015
+ ATTRIBUTES = Ractor.make_shareable(%i[id ifindex type napi_id dmabuf io_uring xsk])
1016
+ # Gets the value of `id` attribute in the message.
1017
+ #--
1018
+ # @rbs return: ::Integer
1019
+ def id; attributes[:"id"]&.value; end
1020
+ # Gets the value of `ifindex` attribute in the message.
1021
+ #--
1022
+ # @rbs return: ::Integer
1023
+ def ifindex; attributes[:"ifindex"]&.value; end
1024
+ # Gets the value of `type` attribute in the message.
1025
+ #--
1026
+ # @rbs return: ::Integer
1027
+ def type; attributes[:"type"]&.value; end
1028
+ # Gets the value of `napi-id` attribute in the message.
1029
+ #--
1030
+ # @rbs return: ::Integer
1031
+ def napi_id; attributes[:"napi_id"]&.value; end
1032
+ # Gets the value of `dmabuf` attribute in the message.
1033
+ #--
1034
+ # @rbs return: ::Integer
1035
+ def dmabuf; attributes[:"dmabuf"]&.value; end
1036
+ # Gets the value of `io-uring` attribute in the message.
1037
+ #--
1038
+ # @rbs return: AttributeSets::IoUringProviderInfo
1039
+ def io_uring; attributes[:"io_uring"]&.value; end
1040
+ # Gets the value of `xsk` attribute in the message.
1041
+ #--
1042
+ # @rbs return: AttributeSets::XskInfo
1043
+ def xsk; attributes[:"xsk"]&.value; end
1044
+ end
1045
+ # Get information about NAPI instances configured on the system.
1046
+ class DoNapiGetRequest < ::Nl::Protocols::Genl::Message
1047
+ TYPE = 11
1048
+ FIXED_HEADER = nil
1049
+ ATTRIBUTE_SET = AttributeSets::Napi
1050
+ ATTRIBUTES = Ractor.make_shareable(%i[id])
1051
+ # Gets the value of `id` attribute in the message.
1052
+ #--
1053
+ # @rbs return: ::Integer
1054
+ def id; attributes[:"id"]&.value; end
1055
+ end
1056
+ # Get information about NAPI instances configured on the system.
1057
+ class DoNapiGetReply < ::Nl::Protocols::Genl::Message
1058
+ TYPE = 11
1059
+ FIXED_HEADER = nil
1060
+ ATTRIBUTE_SET = AttributeSets::Napi
1061
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex id irq pid defer_hard_irqs gro_flush_timeout irq_suspend_timeout threaded])
1062
+ # Gets the value of `ifindex` attribute in the message.
1063
+ #--
1064
+ # @rbs return: ::Integer
1065
+ def ifindex; attributes[:"ifindex"]&.value; end
1066
+ # Gets the value of `id` attribute in the message.
1067
+ #--
1068
+ # @rbs return: ::Integer
1069
+ def id; attributes[:"id"]&.value; end
1070
+ # Gets the value of `irq` attribute in the message.
1071
+ #--
1072
+ # @rbs return: ::Integer
1073
+ def irq; attributes[:"irq"]&.value; end
1074
+ # Gets the value of `pid` attribute in the message.
1075
+ #--
1076
+ # @rbs return: ::Integer
1077
+ def pid; attributes[:"pid"]&.value; end
1078
+ # Gets the value of `defer-hard-irqs` attribute in the message.
1079
+ #--
1080
+ # @rbs return: ::Integer
1081
+ def defer_hard_irqs; attributes[:"defer_hard_irqs"]&.value; end
1082
+ # Gets the value of `gro-flush-timeout` attribute in the message.
1083
+ #--
1084
+ # @rbs return: ::Integer
1085
+ def gro_flush_timeout; attributes[:"gro_flush_timeout"]&.value; end
1086
+ # Gets the value of `irq-suspend-timeout` attribute in the message.
1087
+ #--
1088
+ # @rbs return: ::Integer
1089
+ def irq_suspend_timeout; attributes[:"irq_suspend_timeout"]&.value; end
1090
+ # Gets the value of `threaded` attribute in the message.
1091
+ #--
1092
+ # @rbs return: ::Integer
1093
+ def threaded; attributes[:"threaded"]&.value; end
1094
+ end
1095
+ # Get information about NAPI instances configured on the system.
1096
+ class DumpNapiGetRequest < ::Nl::Protocols::Genl::Message
1097
+ TYPE = 11
1098
+ FIXED_HEADER = nil
1099
+ ATTRIBUTE_SET = AttributeSets::Napi
1100
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex])
1101
+ # Gets the value of `ifindex` attribute in the message.
1102
+ #--
1103
+ # @rbs return: ::Integer
1104
+ def ifindex; attributes[:"ifindex"]&.value; end
1105
+ end
1106
+ # Get information about NAPI instances configured on the system.
1107
+ class DumpNapiGetReply < ::Nl::Protocols::Genl::Message
1108
+ TYPE = 11
1109
+ FIXED_HEADER = nil
1110
+ ATTRIBUTE_SET = AttributeSets::Napi
1111
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex id irq pid defer_hard_irqs gro_flush_timeout irq_suspend_timeout threaded])
1112
+ # Gets the value of `ifindex` attribute in the message.
1113
+ #--
1114
+ # @rbs return: ::Integer
1115
+ def ifindex; attributes[:"ifindex"]&.value; end
1116
+ # Gets the value of `id` attribute in the message.
1117
+ #--
1118
+ # @rbs return: ::Integer
1119
+ def id; attributes[:"id"]&.value; end
1120
+ # Gets the value of `irq` attribute in the message.
1121
+ #--
1122
+ # @rbs return: ::Integer
1123
+ def irq; attributes[:"irq"]&.value; end
1124
+ # Gets the value of `pid` attribute in the message.
1125
+ #--
1126
+ # @rbs return: ::Integer
1127
+ def pid; attributes[:"pid"]&.value; end
1128
+ # Gets the value of `defer-hard-irqs` attribute in the message.
1129
+ #--
1130
+ # @rbs return: ::Integer
1131
+ def defer_hard_irqs; attributes[:"defer_hard_irqs"]&.value; end
1132
+ # Gets the value of `gro-flush-timeout` attribute in the message.
1133
+ #--
1134
+ # @rbs return: ::Integer
1135
+ def gro_flush_timeout; attributes[:"gro_flush_timeout"]&.value; end
1136
+ # Gets the value of `irq-suspend-timeout` attribute in the message.
1137
+ #--
1138
+ # @rbs return: ::Integer
1139
+ def irq_suspend_timeout; attributes[:"irq_suspend_timeout"]&.value; end
1140
+ # Gets the value of `threaded` attribute in the message.
1141
+ #--
1142
+ # @rbs return: ::Integer
1143
+ def threaded; attributes[:"threaded"]&.value; end
1144
+ end
1145
+ # Get / dump fine grained statistics. Which statistics are reported
1146
+ # depends on the device and the driver, and whether the driver stores
1147
+ # software counters per-queue.
1148
+ class DumpQstatsGetRequest < ::Nl::Protocols::Genl::Message
1149
+ TYPE = 12
1150
+ FIXED_HEADER = nil
1151
+ ATTRIBUTE_SET = AttributeSets::Qstats
1152
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex scope])
1153
+ # Gets the value of `ifindex` attribute in the message.
1154
+ #--
1155
+ # @rbs return: ::Integer
1156
+ def ifindex; attributes[:"ifindex"]&.value; end
1157
+ # Gets the value of `scope` attribute in the message.
1158
+ #--
1159
+ # @rbs return: ::Integer
1160
+ def scope; attributes[:"scope"]&.value; end
1161
+ end
1162
+ # Get / dump fine grained statistics. Which statistics are reported
1163
+ # depends on the device and the driver, and whether the driver stores
1164
+ # software counters per-queue.
1165
+ class DumpQstatsGetReply < ::Nl::Protocols::Genl::Message
1166
+ TYPE = 12
1167
+ FIXED_HEADER = nil
1168
+ ATTRIBUTE_SET = AttributeSets::Qstats
1169
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex queue_type queue_id rx_packets rx_bytes tx_packets tx_bytes rx_alloc_fail rx_hw_drops rx_hw_drop_overruns rx_csum_complete rx_csum_unnecessary rx_csum_none rx_csum_bad rx_hw_gro_packets rx_hw_gro_bytes rx_hw_gro_wire_packets rx_hw_gro_wire_bytes rx_hw_drop_ratelimits tx_hw_drops tx_hw_drop_errors tx_csum_none tx_needs_csum tx_hw_gso_packets tx_hw_gso_bytes tx_hw_gso_wire_packets tx_hw_gso_wire_bytes tx_hw_drop_ratelimits tx_stop tx_wake])
1170
+ # Gets the value of `ifindex` attribute in the message.
1171
+ #--
1172
+ # @rbs return: ::Integer
1173
+ def ifindex; attributes[:"ifindex"]&.value; end
1174
+ # Gets the value of `queue-type` attribute in the message.
1175
+ #--
1176
+ # @rbs return: ::Integer
1177
+ def queue_type; attributes[:"queue_type"]&.value; end
1178
+ # Gets the value of `queue-id` attribute in the message.
1179
+ #--
1180
+ # @rbs return: ::Integer
1181
+ def queue_id; attributes[:"queue_id"]&.value; end
1182
+ # Gets the value of `rx-packets` attribute in the message.
1183
+ #--
1184
+ # @rbs return: ::Integer
1185
+ def rx_packets; attributes[:"rx_packets"]&.value; end
1186
+ # Gets the value of `rx-bytes` attribute in the message.
1187
+ #--
1188
+ # @rbs return: ::Integer
1189
+ def rx_bytes; attributes[:"rx_bytes"]&.value; end
1190
+ # Gets the value of `tx-packets` attribute in the message.
1191
+ #--
1192
+ # @rbs return: ::Integer
1193
+ def tx_packets; attributes[:"tx_packets"]&.value; end
1194
+ # Gets the value of `tx-bytes` attribute in the message.
1195
+ #--
1196
+ # @rbs return: ::Integer
1197
+ def tx_bytes; attributes[:"tx_bytes"]&.value; end
1198
+ # Gets the value of `rx-alloc-fail` attribute in the message.
1199
+ #--
1200
+ # @rbs return: ::Integer
1201
+ def rx_alloc_fail; attributes[:"rx_alloc_fail"]&.value; end
1202
+ # Gets the value of `rx-hw-drops` attribute in the message.
1203
+ #--
1204
+ # @rbs return: ::Integer
1205
+ def rx_hw_drops; attributes[:"rx_hw_drops"]&.value; end
1206
+ # Gets the value of `rx-hw-drop-overruns` attribute in the message.
1207
+ #--
1208
+ # @rbs return: ::Integer
1209
+ def rx_hw_drop_overruns; attributes[:"rx_hw_drop_overruns"]&.value; end
1210
+ # Gets the value of `rx-csum-complete` attribute in the message.
1211
+ #--
1212
+ # @rbs return: ::Integer
1213
+ def rx_csum_complete; attributes[:"rx_csum_complete"]&.value; end
1214
+ # Gets the value of `rx-csum-unnecessary` attribute in the message.
1215
+ #--
1216
+ # @rbs return: ::Integer
1217
+ def rx_csum_unnecessary; attributes[:"rx_csum_unnecessary"]&.value; end
1218
+ # Gets the value of `rx-csum-none` attribute in the message.
1219
+ #--
1220
+ # @rbs return: ::Integer
1221
+ def rx_csum_none; attributes[:"rx_csum_none"]&.value; end
1222
+ # Gets the value of `rx-csum-bad` attribute in the message.
1223
+ #--
1224
+ # @rbs return: ::Integer
1225
+ def rx_csum_bad; attributes[:"rx_csum_bad"]&.value; end
1226
+ # Gets the value of `rx-hw-gro-packets` attribute in the message.
1227
+ #--
1228
+ # @rbs return: ::Integer
1229
+ def rx_hw_gro_packets; attributes[:"rx_hw_gro_packets"]&.value; end
1230
+ # Gets the value of `rx-hw-gro-bytes` attribute in the message.
1231
+ #--
1232
+ # @rbs return: ::Integer
1233
+ def rx_hw_gro_bytes; attributes[:"rx_hw_gro_bytes"]&.value; end
1234
+ # Gets the value of `rx-hw-gro-wire-packets` attribute in the message.
1235
+ #--
1236
+ # @rbs return: ::Integer
1237
+ def rx_hw_gro_wire_packets; attributes[:"rx_hw_gro_wire_packets"]&.value; end
1238
+ # Gets the value of `rx-hw-gro-wire-bytes` attribute in the message.
1239
+ #--
1240
+ # @rbs return: ::Integer
1241
+ def rx_hw_gro_wire_bytes; attributes[:"rx_hw_gro_wire_bytes"]&.value; end
1242
+ # Gets the value of `rx-hw-drop-ratelimits` attribute in the message.
1243
+ #--
1244
+ # @rbs return: ::Integer
1245
+ def rx_hw_drop_ratelimits; attributes[:"rx_hw_drop_ratelimits"]&.value; end
1246
+ # Gets the value of `tx-hw-drops` attribute in the message.
1247
+ #--
1248
+ # @rbs return: ::Integer
1249
+ def tx_hw_drops; attributes[:"tx_hw_drops"]&.value; end
1250
+ # Gets the value of `tx-hw-drop-errors` attribute in the message.
1251
+ #--
1252
+ # @rbs return: ::Integer
1253
+ def tx_hw_drop_errors; attributes[:"tx_hw_drop_errors"]&.value; end
1254
+ # Gets the value of `tx-csum-none` attribute in the message.
1255
+ #--
1256
+ # @rbs return: ::Integer
1257
+ def tx_csum_none; attributes[:"tx_csum_none"]&.value; end
1258
+ # Gets the value of `tx-needs-csum` attribute in the message.
1259
+ #--
1260
+ # @rbs return: ::Integer
1261
+ def tx_needs_csum; attributes[:"tx_needs_csum"]&.value; end
1262
+ # Gets the value of `tx-hw-gso-packets` attribute in the message.
1263
+ #--
1264
+ # @rbs return: ::Integer
1265
+ def tx_hw_gso_packets; attributes[:"tx_hw_gso_packets"]&.value; end
1266
+ # Gets the value of `tx-hw-gso-bytes` attribute in the message.
1267
+ #--
1268
+ # @rbs return: ::Integer
1269
+ def tx_hw_gso_bytes; attributes[:"tx_hw_gso_bytes"]&.value; end
1270
+ # Gets the value of `tx-hw-gso-wire-packets` attribute in the message.
1271
+ #--
1272
+ # @rbs return: ::Integer
1273
+ def tx_hw_gso_wire_packets; attributes[:"tx_hw_gso_wire_packets"]&.value; end
1274
+ # Gets the value of `tx-hw-gso-wire-bytes` attribute in the message.
1275
+ #--
1276
+ # @rbs return: ::Integer
1277
+ def tx_hw_gso_wire_bytes; attributes[:"tx_hw_gso_wire_bytes"]&.value; end
1278
+ # Gets the value of `tx-hw-drop-ratelimits` attribute in the message.
1279
+ #--
1280
+ # @rbs return: ::Integer
1281
+ def tx_hw_drop_ratelimits; attributes[:"tx_hw_drop_ratelimits"]&.value; end
1282
+ # Gets the value of `tx-stop` attribute in the message.
1283
+ #--
1284
+ # @rbs return: ::Integer
1285
+ def tx_stop; attributes[:"tx_stop"]&.value; end
1286
+ # Gets the value of `tx-wake` attribute in the message.
1287
+ #--
1288
+ # @rbs return: ::Integer
1289
+ def tx_wake; attributes[:"tx_wake"]&.value; end
1290
+ end
1291
+ # Bind dmabuf to netdev
1292
+ class DoBindRxRequest < ::Nl::Protocols::Genl::Message
1293
+ TYPE = 13
1294
+ FIXED_HEADER = nil
1295
+ ATTRIBUTE_SET = AttributeSets::Dmabuf
1296
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex queues fd])
1297
+ # Gets the value of `ifindex` attribute in the message.
1298
+ #--
1299
+ # @rbs return: ::Integer
1300
+ def ifindex; attributes[:"ifindex"]&.value; end
1301
+ # Gets the value of `queues` attribute in the message.
1302
+ #--
1303
+ # @rbs return: AttributeSets::QueueId
1304
+ def queues; attributes[:"queues"]&.value; end
1305
+ # Gets the value of `fd` attribute in the message.
1306
+ #--
1307
+ # @rbs return: ::Integer
1308
+ def fd; attributes[:"fd"]&.value; end
1309
+ end
1310
+ # Bind dmabuf to netdev
1311
+ class DoBindRxReply < ::Nl::Protocols::Genl::Message
1312
+ TYPE = 13
1313
+ FIXED_HEADER = nil
1314
+ ATTRIBUTE_SET = AttributeSets::Dmabuf
1315
+ ATTRIBUTES = Ractor.make_shareable(%i[id])
1316
+ # Gets the value of `id` attribute in the message.
1317
+ #--
1318
+ # @rbs return: ::Integer
1319
+ def id; attributes[:"id"]&.value; end
1320
+ end
1321
+ # Set configurable NAPI instance settings.
1322
+ class DoNapiSetRequest < ::Nl::Protocols::Genl::Message
1323
+ TYPE = 14
1324
+ FIXED_HEADER = nil
1325
+ ATTRIBUTE_SET = AttributeSets::Napi
1326
+ ATTRIBUTES = Ractor.make_shareable(%i[id defer_hard_irqs gro_flush_timeout irq_suspend_timeout threaded])
1327
+ # Gets the value of `id` attribute in the message.
1328
+ #--
1329
+ # @rbs return: ::Integer
1330
+ def id; attributes[:"id"]&.value; end
1331
+ # Gets the value of `defer-hard-irqs` attribute in the message.
1332
+ #--
1333
+ # @rbs return: ::Integer
1334
+ def defer_hard_irqs; attributes[:"defer_hard_irqs"]&.value; end
1335
+ # Gets the value of `gro-flush-timeout` attribute in the message.
1336
+ #--
1337
+ # @rbs return: ::Integer
1338
+ def gro_flush_timeout; attributes[:"gro_flush_timeout"]&.value; end
1339
+ # Gets the value of `irq-suspend-timeout` attribute in the message.
1340
+ #--
1341
+ # @rbs return: ::Integer
1342
+ def irq_suspend_timeout; attributes[:"irq_suspend_timeout"]&.value; end
1343
+ # Gets the value of `threaded` attribute in the message.
1344
+ #--
1345
+ # @rbs return: ::Integer
1346
+ def threaded; attributes[:"threaded"]&.value; end
1347
+ end
1348
+ # Bind dmabuf to netdev for TX
1349
+ class DoBindTxRequest < ::Nl::Protocols::Genl::Message
1350
+ TYPE = 15
1351
+ FIXED_HEADER = nil
1352
+ ATTRIBUTE_SET = AttributeSets::Dmabuf
1353
+ ATTRIBUTES = Ractor.make_shareable(%i[ifindex fd])
1354
+ # Gets the value of `ifindex` attribute in the message.
1355
+ #--
1356
+ # @rbs return: ::Integer
1357
+ def ifindex; attributes[:"ifindex"]&.value; end
1358
+ # Gets the value of `fd` attribute in the message.
1359
+ #--
1360
+ # @rbs return: ::Integer
1361
+ def fd; attributes[:"fd"]&.value; end
1362
+ end
1363
+ # Bind dmabuf to netdev for TX
1364
+ class DoBindTxReply < ::Nl::Protocols::Genl::Message
1365
+ TYPE = 15
1366
+ FIXED_HEADER = nil
1367
+ ATTRIBUTE_SET = AttributeSets::Dmabuf
1368
+ ATTRIBUTES = Ractor.make_shareable(%i[id])
1369
+ # Gets the value of `id` attribute in the message.
1370
+ #--
1371
+ # @rbs return: ::Integer
1372
+ def id; attributes[:"id"]&.value; end
1373
+ end
1374
+ end
1375
+ # Get / dump information about a netdev.
1376
+ #--
1377
+ # @rbs (?ifindex: ::Integer) -> Messages::DoDevGetReply
1378
+ def do_dev_get(**args)
1379
+ exchange_message(:"do", Messages::DoDevGetRequest, Messages::DoDevGetReply, args)
1380
+ end
1381
+ # Get / dump information about Page Pools.
1382
+ # Only Page Pools associated by the driver with a net_device
1383
+ # can be listed. ifindex will not be reported if the net_device
1384
+ # no longer exists.
1385
+ #--
1386
+ # @rbs (?id: ::Integer) -> Messages::DoPagePoolGetReply
1387
+ def do_page_pool_get(**args)
1388
+ exchange_message(:"do", Messages::DoPagePoolGetRequest, Messages::DoPagePoolGetReply, args)
1389
+ end
1390
+ # Get page pool statistics.
1391
+ #--
1392
+ # @rbs (?info: AttributeSets::PagePoolInfo) -> Messages::DoPagePoolStatsGetReply
1393
+ def do_page_pool_stats_get(**args)
1394
+ exchange_message(:"do", Messages::DoPagePoolStatsGetRequest, Messages::DoPagePoolStatsGetReply, args)
1395
+ end
1396
+ # Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
1397
+ #--
1398
+ # @rbs (?id: ::Integer, ?ifindex: ::Integer, ?type: ::Integer) -> Messages::DoQueueGetReply
1399
+ def do_queue_get(**args)
1400
+ exchange_message(:"do", Messages::DoQueueGetRequest, Messages::DoQueueGetReply, args)
1401
+ end
1402
+ # Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
1403
+ #--
1404
+ # @rbs (?ifindex: ::Integer) -> Enumerable[Messages::DumpQueueGetReply]
1405
+ # | (?ifindex: ::Integer) { (Messages::DumpQueueGetReply) -> void } -> void
1406
+ def dump_queue_get(**args, &block)
1407
+ exchange_message(:"dump", Messages::DumpQueueGetRequest, Messages::DumpQueueGetReply, args, &block)
1408
+ end
1409
+ # Get information about NAPI instances configured on the system.
1410
+ #--
1411
+ # @rbs (?id: ::Integer) -> Messages::DoNapiGetReply
1412
+ def do_napi_get(**args)
1413
+ exchange_message(:"do", Messages::DoNapiGetRequest, Messages::DoNapiGetReply, args)
1414
+ end
1415
+ # Get information about NAPI instances configured on the system.
1416
+ #--
1417
+ # @rbs (?ifindex: ::Integer) -> Enumerable[Messages::DumpNapiGetReply]
1418
+ # | (?ifindex: ::Integer) { (Messages::DumpNapiGetReply) -> void } -> void
1419
+ def dump_napi_get(**args, &block)
1420
+ exchange_message(:"dump", Messages::DumpNapiGetRequest, Messages::DumpNapiGetReply, args, &block)
1421
+ end
1422
+ # Get / dump fine grained statistics. Which statistics are reported
1423
+ # depends on the device and the driver, and whether the driver stores
1424
+ # software counters per-queue.
1425
+ #--
1426
+ # @rbs (?ifindex: ::Integer, ?scope: ::Integer) -> Enumerable[Messages::DumpQstatsGetReply]
1427
+ # | (?ifindex: ::Integer, ?scope: ::Integer) { (Messages::DumpQstatsGetReply) -> void } -> void
1428
+ def dump_qstats_get(**args, &block)
1429
+ exchange_message(:"dump", Messages::DumpQstatsGetRequest, Messages::DumpQstatsGetReply, args, &block)
1430
+ end
1431
+ # Bind dmabuf to netdev
1432
+ #--
1433
+ # @rbs (?ifindex: ::Integer, ?queues: AttributeSets::QueueId, ?fd: ::Integer) -> Messages::DoBindRxReply
1434
+ def do_bind_rx(**args)
1435
+ exchange_message(:"do", Messages::DoBindRxRequest, Messages::DoBindRxReply, args)
1436
+ end
1437
+ # Set configurable NAPI instance settings.
1438
+ #--
1439
+ # @rbs (?id: ::Integer, ?defer_hard_irqs: ::Integer, ?gro_flush_timeout: ::Integer, ?irq_suspend_timeout: ::Integer, ?threaded: ::Integer) -> void
1440
+ def do_napi_set(**args)
1441
+ exchange_message(:"do", Messages::DoNapiSetRequest, nil, args)
1442
+ end
1443
+ # Bind dmabuf to netdev for TX
1444
+ #--
1445
+ # @rbs (?ifindex: ::Integer, ?fd: ::Integer) -> Messages::DoBindTxReply
1446
+ def do_bind_tx(**args)
1447
+ exchange_message(:"do", Messages::DoBindTxRequest, Messages::DoBindTxReply, args)
1448
+ end
1449
+ end
1450
+ end; end