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